Retry is the best option. Because the read repair will fix it on a subsequent read and it will actually fix it with a value that was actually deemed a failed write to the client.
Avinash On Thu, Apr 8, 2010 at 9:47 AM, David Strauss <da...@fourkitchens.com>wrote: > A read repair will fix it immediately after the first read of the row. > > On 2010-04-08 16:36, Mark Greene wrote: > > So unless you re-try the write, the previous stale write stays on the > > other two nodes? Would a read repair fix this eventually? > > > > On Thu, Apr 8, 2010 at 11:36 AM, Avinash Lakshman > > <avinash.laksh...@gmail.com <mailto:avinash.laksh...@gmail.com>> wrote: > > > > What your describing is a distributed transaction? Generally strong > > consistency is always associated with doing transactional writes > > where you never see the results of a failed write on a subsequent > > read no matter what happens. Cassandra has no notion of rollback. > > That is why no combination will give you strong consistency. The > > idea is you re-try the failed write and eventually the system would > > have gotten rid of the previous stale write. > > > > Avinash > > > > > > On Thu, Apr 8, 2010 at 8:29 AM, Jeremy Dunck <jdu...@gmail.com > > <mailto:jdu...@gmail.com>> wrote: > > > > On Thu, Apr 8, 2010 at 7:16 AM, Gary Dusbabek > > <gdusba...@gmail.com <mailto:gdusba...@gmail.com>> wrote: > > > On Thu, Apr 8, 2010 at 02:55, Paul Prescod <p...@ayogo.com > > <mailto:p...@ayogo.com>> wrote: > > >> In this¹ debate, there seemed to be consensus on the > > following fact: > > >> > > >> "In Cassandra, say you use N=3, W=3 & R=1. Let’s say you > > managed to > > >> only write to replicas A & B, but not C. In this case > > Cassandra will > > >> return an error to the application saying the write failed- > > which is > > >> acceptable given than W=3. But Cassandra does not > > cleanup/rollback the > > >> writes that happened to A & B." > > >> > > > > > > correct: no rolling back. Cassandra does go out of its way to > > make > > > sure the cluster is healthy enough to begin the write though. > > > > I think the general answer here is don't use R=1 if you can't > > tolerate > > inconsistency? Still the point of confusion -- if W=3 and the > write > > succeeds on 2 nodes but fails the 3rd, the write fails (to the > > updating client), but is the data on the two successful nodes > still > > readable (i.e. reading from what was actually a failed write)? > > > > > > > > > -- > David Strauss > | da...@fourkitchens.com > | +1 512 577 5827 [mobile] > Four Kitchens > | http://fourkitchens.com > | +1 512 454 6659 [office] > | +1 512 870 8453 [direct] > >