Shu, Xinxin wrote:
Hi list ,
Recently I read docs about lmdb , there are two sentences
1) readers do not block writers
2) writers do not block readers
I can understand 'readers do not block writers' , but cannot
understand the second one , can someone help explain , how lmdb achieve
'writers do not block readers', below is my understandings , please
correct me if anything wrong.
if the access pattern is write - read, since lmdb only support two
version of data , when the write has been started but not committed ,
the concurrent read may read stale data since write has not been committed.
This is fundamental to ACID transactions. The reader's data is not "stale"
because in ACID, data doesn't actually exist until it's committed. This is what Atomicity
and Isolation are all about.
Sounds to me like you have never used a real transactional database before; you
need to do more reading on them because this is a very basic principle.
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/