Anthony and Jaydeep, thank you for weighing in. I am glad to see that they
are two different values (makes more sense mentally to me).

Anthony, what you said caught my attention "to ensure all nodes have a copy
you may not be able to survive the loss of a single node." -- why would
this be the case?

I assumed (incorrectly?) that a node would simply disappear off the map
until I could bring it back up again, at which point all the missing values
that it didn't get while it was done, it would slowly retrieve from other
members of the ring. Is this the wrong understanding?

If forcing a replication factor equal to the number of nodes in my ring
will cause a hard-stop when one ring goes down (as I understood your
comment to mean), it seems to me I should go with a much lower replication
factor... something along the lines of 3 or roughly ceiling(N / 2) and just
deal with the latency when one of the nodes has to route a request to
another server when it doesn't contain the value.

Is there a better way to accomplish what I want, or is keeping the
replication factor that aggressively high generally a bad thing and using
Cassandra in the "wrong" way?

Thank you for the help.

-Riyad

On Sun, Nov 6, 2011 at 11:14 PM, chovatia jaydeep <
chovatia_jayd...@yahoo.co.in> wrote:

> Hi Riyad,
>
> You can set replication = 5 (number of replicas) and write with CL = ONE.
> There is no hard requirement from Cassandra to write with CL=ALL to
> replicate the data unless you need it. Considering your example, If you
> write with CL=ONE then also it will replicate your data to all 5 replicas
> eventually.
>
> Thank you,
> Jaydeep
> ------------------------------
> *From:* Riyad Kalla <rka...@gmail.com>
> *To:* "user@cassandra.apache.org" <user@cassandra.apache.org>
> *Sent:* Sunday, 6 November 2011 9:50 PM
> *Subject:* Will writes with < ALL consistency eventually propagate?
>
> I am new to Cassandra and was curious about the following scenario...
>
> Lets say i have a ring of 5 servers. Ultimately I would like each server
> to be a full replication of the next (master-master-*).
>
> In a presentation i watched today on Cassandra, the presenter mentioned
> that the ring members will shard data and route your requests to the right
> host when they come in to a server that doesnt physically contain the value
> you wanted. To the client requesting this is seamless excwpt for the added
> latency.
>
> If i wanted to avoid the routing and latency and ensure every server had
> the full data set, do i have to write with a consistency level of ALL and
> wait for all of those writes to return in my code, or can i write with a CL
> of 1 or 2 and let the ring propagate the rest of the copies to the other
> servers in the background after my code has continued executing?
>
> I dont mind eventual consistency in my case, but i do (eventually) want
> all nodes to have all values and cannot tell if this is default behavior,
> or if sharding is the default and i can only force duplicates onto the
> other servers explicitly with a CL of ALL.
>
> Best,
> Riyad
>
>

Reply via email to