The following post is quite interesting and has good ideas on how to implement MVCC (Multi-Version Concurrency Control) on a key-value store:
Implementation of MVCC Transactions for Key-Value Stores
It gives good ideas on how to track when each entity came into existence by storing the transaction that created and the one that deleted it.
However, I have concerns about this global sequence number and I copy here my comment instead of retyping it:
The idea of keeping the transaction ID is very interesting, but requires a global sequence number to be assigned to the transactions, right
I don’t know which NoSQL databases have that, but when I think about Windows Azure Storage (the one I’ve been working with more recently), that would be a problem. Actually, that’s a problem with any scalable DB, as it can be a contention point.
In the Windows Azure Storage, or others that don’t have that on the server side, it’s more of a problem to have this global number as it requires operations to read the number, increment, and then update them. This creates a contention point, and reduces the rate of transactions you can have.
What are your thoughts on it Have you tried to implement that on top of a NoSQL DB Does Oracle Coherence offer an increment operation for this global counter
来自 “ ITPUB博客 ” ，链接：http://blog.itpub.net/301743/viewspace-753883/，如需转载，请注明出处，否则将追究法律责任。