Implementing MVCC on a Key-Value Store
Join the DZone community and get the full member experience.
Join For FreeThe 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:
UPDATE 10/18/2012: today I read another good post on how Postgres works with MVCC. It has a few more details to complement your knowledge: PostgreSQL Concurrency With MVCC
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?
UPDATE 10/18/2012: today I read another good post on how Postgres works with MVCC. It has a few more details to complement your knowledge: PostgreSQL Concurrency With MVCC
Database
Oracle Coherence
PostgreSQL
Contention (telecommunications)
NoSQL
POST (HTTP)
azure
Coherence (units of measurement)
Published at DZone with permission of Rodrigo De Castro, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Trending
-
Introduction To Git
-
Authorization: Get It Done Right, Get It Done Early
-
How To Integrate Microsoft Team With Cypress Cloud
-
Transactional Outbox Patterns Step by Step With Spring and Kotlin
Comments