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]
>
>

Reply via email to