Maxim Grinev explains why having idempotent data operations is important for scalability and how you might have some small surprises with highly distributed NoSQL databases like Cassandra, Riak, or Project Voldemort:
The idea is that you retry the failed update until it is successful. As a result, the same update can be executed several times! If the update increments a counter the counter value gets incorrect. Here we come to the main point of this post: all your updates should be idempotent (i.e. repeated update applications have the same effect as one). Designing updates to be idempotent is the standard discipline to cope with repeated updates. Read great articles ☞ Life beyond Distributed Transactions: an Apostate’s Opinion (pdf) and ☞ Building on Quicksand by Pat Helland that stress the importance of idempotent updates in highly scalable systems.
This blog is called myNoSQL and it is written by me, Alex Popescu, a software architect with a passion for open source and communities.
It records my readings, learnings, and opinions on NoSQL databases, polyglot persistence, and distributed systems -- subjects that I'm passionate about.
The opinions expressed here are my own, and no other party necessarily agrees with them.
If you feel I'm biased, I probably am.