Hi guys,
We do use Counter tables a lot because in our app we have several things
to count (business logic)
More time we work with Cassandra we keep hearing more and more: "you
should not use counter tablesĀ because ....."
Yes, we also feel here and there the trade off is too much restrictive -
for us what hurts now days is that deleting counters it seems not that
simple... Also the TTL possibility we do miss a lot.
But I have to confess I do not see an obvious migration strategy here...
What bothers me e.g.: concurrency, and wrong results thanks to that
namely
If I want to fulfill the mission "UPDATE table SET mycounter = mycounter
+ x WHERE ..." does
with traditional table (with an int column) I need to do this:
1. read the value of "mycounter"
2. add x to the value I readc(in memory)
3. update mycounter = new value
Needless to say that if I have a race condition so ThreadA and ThreadB
are executing the above sequence ~ the same time then the mycounter
value will be wrong...
I started to wonder: how do you solve this problem?
Is anyone aware of any nice post/article regarding migration strategy -
stepping away from counters?
thanks!
--
Attila Wind
http://www.linkedin.com/in/attilaw <http://www.linkedin.com/in/attilaw>
Mobile: +49 176 43556932