Dear Hiro,

Thank you! Yes, this is exactly my understanding. Is this explicitly
written down anywhere or can any expert confirm? I suppose I should read
the code but its a little intimidating.

Best wishes,
Craig



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

> Hi Craig,
>
> Now I probably understand what the python doc is saying.
>
> As long as `serial_consistency_level` is set to SERIAL for paxos phase
> and `consistency_level` is set to SERIAL for the later read,
> conflicts in paxos table can be properly detected, so
> `consistency_level` for commit phase can be anything (can be ANY as
> the doc says).
> Unfinished record write (commit) will be repaired in the read if any.
> But, if `consistency_level` is set to others (like ALL) for the later
> read, it won't be able to detect conflicts in the paxos table, so it
> does not work as expected.
>
> I'm not sure if it answers your question, but makes sense ?  > Craig.
>
> Is this understanding correct ? > C* professionals.
>
> Thanks,
> Hiro
>
> On Fri, May 24, 2019 at 10:49 AM Craig Pastro <siyo...@gmail.com> wrote:
> >
> > 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
> >>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscr...@cassandra.apache.org
> For additional commands, e-mail: user-h...@cassandra.apache.org
>
>

Reply via email to