old is the value that was read from the column. val is the value that needs to be added to it. new is (old + val) that is written back to the column.
regards On Fri, Jan 10, 2014 at 4:36 PM, Andrey Ilinykh <ailin...@gmail.com> wrote: > For single thread, consistency ALL it should work. I believe you do > something different. What are these three numbers exactly? > old=60616 val =19 new =60635 > > > On Fri, Jan 10, 2014 at 1:50 PM, Manoj Khangaonkar > <khangaon...@gmail.com>wrote: > >> Hi >> >> Using Cassandra 2.0.0. >> 3 node cluster >> Replication 2. >> Using consistency ALL for both read and writes. >> >> I have a single thread that reads a value, updates it and writes it back >> to the table. The column type is big int. Updating counts for a timestamp. >> >> With single thread and consistency ALL , I expect no lost updates. But as >> seem from my application log below, >> >> 10 07:01:58,507 [Thread-10] BeaconCountersCAS2DAO [INFO] 1389366000 H >> old=59614 val =252 new =59866 >> 10 07:01:58,611 [Thread-10] BeaconCountersCAS2DAO [INFO] 1389366000 H >> old=59866 val =252 new =60118 >> 10 07:01:59,136 [Thread-10] BeaconCountersCAS2DAO [INFO] 1389366000 H >> old=60118 val =255 new =60373 >> 10 07:02:00,242 [Thread-10] BeaconCountersCAS2DAO [INFO] 1389366000 H >> old=60373 val =243 new =60616 >> 10 07:02:00,244 [Thread-10] BeaconCountersCAS2DAO [INFO] 1389366000 H >> old=60616 val =19 new =60635 >> 10 07:02:00,326 [Thread-10] BeaconCountersCAS2DAO [INFO] 1389366000 H >> old=60616 val =233 new =60849 >> >> See the last 2 lines of above log. >> value 60116 is updated to 60635. but the next operation reads the old >> value 60616 again. >> >> I am not using counter column type because it does not support TTL and i >> hear there are lot of open issues with counters. >> >> Is there anything else I can do to further tighten the consistency or is >> this pattern of high volume read - update - write not going to work in C* ? >> >> regards >> MJ >> >> -- >> >> > -- http://khangaonkar.blogspot.com/