Thanks, this clears things up.
> On Feb 21, 2014, at 6:47 AM, Edward Capriolo <edlinuxg...@gmail.com> wrote: > > When you write at one, as soon as one node acknowledges the write the ack is > returned to the client. This means if you quickly read from aome other node > 1)you may get the result because by the time the read is processed the data > may be on that node > 2)the node you read from may proxy the request to the node woth the data or > not > 3)you may get a column not found because the read might hit a node where the > data does not exist yet. > > Generally even at level one the replication is fast. I have done an > experiment on what you are asking. Write.one read from another as soon as > client gets an ack. Most of the time the data is replicated by the time the > second requeat is received. However "most of the time" is not a guarentee. If > the nodes are geographically separate who is to say if the firat request and > the second route around the internet a different way and the second action > arrives on a node before the first. That is eventual consistency for you. > > On Friday, February 21, 2014, graham sanderson <gra...@vast.com> wrote: > > My bad; should have checked the code: > > > > /** > > * This function executes local and remote reads, and blocks for the > > results: > > * > > * 1. Get the replica locations, sorted by response time according to > > the snitch > > * 2. Send a data request to the closest replica, and digest requests > > to either > > * a) all the replicas, if read repair is enabled > > * b) the closest R-1 replicas, where R is the number required to > > satisfy the ConsistencyLevel > > * 3. Wait for a response from R replicas > > * 4. If the digests (if any) match the data return the data > > * 5. else carry out read repair by getting data from all the nodes. > > */ > > > > On Feb 21, 2014, at 3:10 AM, Duncan Sands <duncan.sa...@gmail.com> wrote: > > > >> Hi Graham, > >> > >> On 21/02/14 07:54, graham sanderson wrote: > >>> Note also; that reading at ONE there will be no read repair, since the > >>> coordinator does not know that another replica has stale data (remember > >>> at ONE, basically only one node is asked for the answer). > >> > >> I don't think this is right. My understanding is that while only one node > >> will be sent a direct read request, all other replicas will (not on every > >> query - it depends on the value of read_repair_chance) get a background > >> read repair request. You can test this experimentally using cqlsh and > >> turning tracing on: issue a read request many times. Most of the time you > >> will see that the coordinator sends a message to one node, but from time > >> to time (depending on read_repair_chance) you will see it sending messages > >> to many nodes. > >> > >> Best wishes, Duncan. > >> > >>> > >>> In practice for our use cases, we always write at LOCAL_QUORUM (failing > >>> the whole update if that doesn’t work - stale data is OK if >1 node is > >>> down), and we read at LOCAL_QUORUM, but (because stale data is better > >>> than no data), we will fall back per read request to LOCAL_ONE if we > >>> detect that there were insufficient nodes - this lets us cope with 2 down > >>> nodes in a 3 replica environment (or more if the nodes are not > >>> consecutive in the ring). > >>> > >>> On Feb 20, 2014, at 11:21 PM, Drew Kutcharian <d...@venarc.com> wrote: > >>> > >>>> Hi Guys, > >>>> > >>>> I wanted to get some clarification on what happens when you write and > >>>> read at consistency level 1. Say I have a keyspace with replication > >>>> factor of 3 and a table which will contain write-once/read-only wide > >>>> rows. If I write at consistency level 1 and the write happens on node A > >>>> and I read back at consistency level 1 from another node other than A, > >>>> say B, will C* return “not found” or will it trigger a read-repair > >>>> before responding? In addition, what’s the best consistency level for > >>>> reading/writing write-once/read-only wide rows? > >>>> > >>>> Thanks, > >>>> > >>>> Drew > >>>> > >>> > >> > > > > > > -- > Sorry this was sent from mobile. Will do less grammar and spell check than > usual.