cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Lebresne <sylv...@datastax.com>
Subject Re: CQL performance inserting multiple cluster keys under same partition key
Date Wed, 27 Aug 2014 06:59:19 GMT
On Tue, Aug 26, 2014 at 6:50 PM, Jaydeep Chovatia <
chovatia.jaydeep@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

Mime
View raw message