This clarifies my doubt. Thanks You Sylvain for your help.
On Tue, Aug 26, 2014 at 11:59 PM, Sylvain Lebresne <sylv...@datastax.com> wrote: > On Tue, Aug 26, 2014 at 6:50 PM, Jaydeep Chovatia < > chovatia.jayd...@gmail.com> wrote: > >> Hi, >> >> I have question on inserting multiple cluster keys under same partition >> key. >> >> Ex: >> >> CREATE TABLE Employee ( >> deptId int, >> empId int, >> name varchar, >> address varchar, >> salary int, >> PRIMARY KEY(deptId, empId) >> ); >> >> BEGIN *UNLOGGED *BATCH >> INSERT INTO Employee (deptId, empId, name, address, salary) VALUES (1, >> 10, 'testNameA', 'testAddressA', 20000); >> INSERT INTO Employee (deptId, empId, name, address, salary) VALUES (1, >> 20, 'testNameB', 'testAddressB', 30000); >> APPLY BATCH; >> >> Here we are inserting two cluster keys (10 and 20) under same partition >> key (1). >> Q1) Is this batch transaction atomic and isolated? If yes then is there >> any performance overhead with this syntax? >> > > As long as the update are under the same partition key (and I insist, only > in that condition), logged (the one without the UNLOGGED keyword) and > unlogged batches behave *exactly* the same way. So yes, in that case the > batch is atomic and isolated (though on the isolation, you may want to be > aware that while technically isolated, the usual timestamp rules still > apply and so you might not get the behavior you think if 2 batches have the > same timestamp: see CASSANDRA-6123 > <https://issues.apache.org/jira/browse/CASSANDRA-6123>). There is no also > no performance overhead (assuming you meant "over logged batches"). > > Q2) Is this CQL syntax can be considered equivalent of Thrift >> "batch_mutate"? >> > > It is equivalent, both (the CQL syntax and Thrift "batch_mutate") resolve > to the same operation internally. > > -- > Sylvain >