Can anyone answer my questions ? I think the current datastax documents including python's one don't describe how we should set consistency with lightweight transactions precisely.
Regards, Hiro On Fri, Jan 8, 2016 at 11:48 AM, Hiroyuki Yamada <mogwa...@gmail.com> wrote: > 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/> >> > >