Dear Hiro,

Thank you for your response!

Hmm, my understanding is slightly different I think. Please let me try to
explain one situation and let me know what you think.

1. Do a LWT write with serial_consistency = SERIAL (default) and
consistency = ONE.
2. LWT starts its Paxos phase and has communicated with a quorum of nodes
3. At this point a read of that data is initiated with consistency = SERIAL.

Now, here is where I am confused. What I think happens is that a SERIAL
read will read from a quorum of nodes and detect that the Paxos phase is
underway and... maybe wait until it is over before responding with the
latest data? The Paxos phase happens between a quorum so basically even
though the consistency level is ONE (or indeed ANY as the Python docs
state), doing a read with SERIAL implies that the write actually took place
at a consistency level equivalent to QUORUM.

Here also what I think is that a read initiated when the Paxos phase is
underway with a consistency level of QUORUM or ALL will not detect that a
Paxos phase is underway and return the old current data.

Is this correct?

Thank you for any help!

Best wishes,
Craig






On Fri, May 24, 2019 at 9:58 AM Hiroyuki Yamada <mogwa...@gmail.com> wrote:

> Hi Craig,
>
> I'm not 100 % sure about some corner cases,
> but I'm sure that LWT should be used with the following consistency
> levels usually.
>
> LWT write:
> serial_consistency_level: SERIAL
> consistency_level: QUORUM
>
> LWT read:
> consistency_level: SERIAL
> (It's a bit weird and mis-leading as a design that you can set SERIAL
> to consistency_level in read where as you can't for write.)
>
> BTW, I doubt the python doc is correct in especially the following part.
> "But if the regular consistency_level of that write is ANY, then only
> a read with a consistency_level of SERIAL is guaranteed to see it
> (even a read with consistency ALL is not guaranteed to be enough)."
> It is really true?
> It doesn't really make sense to me because SERIAL read mostly returns
> by seeing quorum of replications,
> and write with ANY returns by writing mostly one replication, so they
> don't overlap in that case.
> It would be great if anyone can clarify this.
>
> Thanks,
> Hiro
>
>
> On Thu, May 23, 2019 at 3:53 PM Craig Pastro <siyo...@gmail.com> wrote:
> >
> > Hello!
> >
> > I am trying to understand the consistency level (not serial consistency)
> required for LWTs. Basically what I am trying to understand is that if a
> consistency level of ONE is enough for a LWT write operation if I do my
> read with a consistency level of SERIAL?
> >
> > It would seem so based on what is written for the datastax python driver:
> >
> >
> http://datastax.github.io/python-driver/api/cassandra/query.html#cassandra.query.Statement.serial_consistency_level
> >
> > However, that is the only place that I can find this information so I am
> a little hesitant to believe it 100%.
> >
> > By the way, I did find basically the same question (
> https://www.mail-archive.com/user@cassandra.apache.org/msg45453.html) but
> I am unsure if the answer there really answers my question.
> >
> > Thank you in advance for any help!
> >
> > Best regards,
> > Craig
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscr...@cassandra.apache.org
> For additional commands, e-mail: user-h...@cassandra.apache.org
>
>

Reply via email to