cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Shimi Kiviti <shim...@gmail.com>
Subject Re: Counter question
Date Thu, 29 Mar 2012 10:11:51 GMT
You set the consistency with every request.
Usually a client library will let you set a default one for all write/read
requests.
I don't know if Hector lets you set a default consistency level per CF.
Take a look at the Hector docs or ask it in the Hector mailing list.

Shimi

On Thu, Mar 29, 2012 at 11:47 AM, Tamar Fraenkel <tamar@tok-media.com>wrote:

> Can this be set on a CF basis.
> Only this CF needs higher consistency level.
> Thanks,
> Tamar
>
> *Tamar Fraenkel *
> Senior Software Engineer, TOK Media
>
> [image: Inline image 1]
>
> tamar@tok-media.com
> Tel:   +972 2 6409736
> Mob:  +972 54 8356490
> Fax:   +972 2 5612956
>
>
>
>
>
> On Thu, Mar 29, 2012 at 10:44 AM, Shimi Kiviti <shimi.k@gmail.com> wrote:
>
>> Like everything else in Cassandra, If you need full consistency you need
>> to make sure that you have the right combination of (write consistency
>> level) + (read consistency level)
>>
>> if
>> W = write consistency level
>> R = read consistency level
>> N = replication factor
>> then
>> W + R > N
>>
>> Shimi
>>
>>
>> On Thu, Mar 29, 2012 at 10:09 AM, Tamar Fraenkel <tamar@tok-media.com>wrote:
>>
>>> Hi!
>>> Asking again, as I didn't get responses :)
>>>
>>> I have a ring with 3 nodes and replication factor of 2.
>>> I have counter cf with the following definition:
>>>
>>> CREATE COLUMN FAMILY tk_counters
>>>     with comparator = 'UTF8Type'
>>>     and default_validation_class = 'CounterColumnType'
>>>     and key_validation_class = 'CompositeType(UTF8Type,UUIDType)'
>>>     and replicate_on_write = true;
>>>
>>> In my code (Java, Hector), I increment a counter and then read it.
>>> Is it possible that the value read will be the value before increment?
>>> If yes, how can I ensure it does not happen. All my reads and writes are
>>> done with consistency level one.
>>> If this is consistency issue, can I do only the actions on tk_counters
>>> column family with a higher consistency level?
>>> What does replicate_on_write mean? I thought this should help, but maybe
>>> even if replicating after write, my read happen before replication
>>> finished and it returns value from a still not updated node.
>>>
>>> My increment code is:
>>>     Mutator<Composite> mutator =
>>>             HFactory.createMutator(keyspace,
>>>                     CompositeSerializer.get());
>>>     mutator.incrementCounter(key,"tk_counters", columnName, inc);
>>>     mutator.execute();
>>>
>>> My read counter code is:
>>>     CounterQuery<Composite,String> query =
>>>             createCounterColumnQuery(keyspace,
>>>                     CompositeSerializer.get(), StringSerializer.get());
>>>     query.setColumnFamily("tk_counters");
>>>     query.setKey(key);
>>>     query.setName(columnName);
>>>     QueryResult<HCounterColumn<String>> r = query.execute();
>>>     return r.get().getValue();
>>>
>>> Thanks,
>>> *Tamar Fraenkel *
>>> Senior Software Engineer, TOK Media
>>>
>>> [image: Inline image 1]
>>>
>>> tamar@tok-media.com
>>> Tel:   +972 2 6409736
>>> Mob:  +972 54 8356490
>>> Fax:   +972 2 5612956
>>>
>>>
>>>
>>>
>>
>

Mime
View raw message