Thanks Tyler. I've read the python document and it's a bit more clear than before, but i'm still confused at what combinations make lightweight transaction operations work correctly.
So, let me clarify the conditions where lightweight transactions work. QUORUM conditional write -> QUORUM read => OK (meets linearizability) ANY conditional write -> SERIAL read => OK (meets linearizability) ONE conditional write -> SERIAL read => OK ? SERIAL conditional write -> ??? read => ERROR for some reasons (why?) One question is that my understanding about the top 2 conditions are correct ? And the other question is "ONE conditional write - SERIAL read" is ok ? Also, why SERIAL conditional write fails even though SERIAL conditional write with (for example) ANY read afterwards seems logically OK ? The following document says that it seems like we can specify SERIAL in writes, so, when should I use SERIAL in writes except conditional writes (, which fails) ? < https://docs.datastax.com/en/cassandra/2.0/cassandra/dml/dml_config_consistency_c.html > Thanks, Hiro On Fri, Jan 8, 2016 at 2:44 AM, Tyler Hobbs <ty...@datastax.com> wrote: > The python driver docs explain this pretty well, I think: > http://datastax.github.io/python-driver/api/cassandra/query.html#cassandra.query.Statement.serial_consistency_level > > On Thu, Jan 7, 2016 at 3:44 AM, Hiroyuki Yamada <mogwa...@gmail.com> > wrote: > >> Hi, >> >> I've been doing some POCs of lightweight transactions and >> I come up with some questions, so please let me ask them to you here. >> >> So the question is: >> what consistency level should I set when using IF NOT EXIST or UPDATE IF >> statements ? >> >> I used the statements with ONE and QUORUM first, then it seems fine. >> But, when I set SERIAL, it gave me the following error. >> >> === error message === >> Caused by: com.datastax.driver.core.exceptions.InvalidQueryException: >> SERIAL is not supported as conditional update commit consistency. Use ANY >> if you mean "make sure it is accepted but I don't care how many replicas >> commit it for non-SERIAL reads" >> === error message === >> >> >> So, I'm wondering what's SERIAL for when writing (and reading) and >> what the differences are in setting ONE, QUORUM and ANY when using IF NOT >> EXIST or UPDATE IF statements. >> >> Could you give me some advises ? >> >> Thanks, >> Hiro >> >> >> >> >> > > > -- > Tyler Hobbs > DataStax <http://datastax.com/> >