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.
Cheers, xinxin
Several other questions about lmdb
1) does lmdb store one key-value pair in a single page? How lmdb organizes these key-value pairs in a single page 2) if size is larger than single page size , how lmdb process this request?
Any help will be appreciated ? thanks
Cheers, xinxin
-----Original Message----- From: Shu, Xinxin Sent: Thursday, March 19, 2015 3:49 PM To: openldap-devel@openldap.org Cc: Shu, Xinxin Subject: questions about LMDB
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.
Cheers, xinxin
Shu, Xinxin wrote:
Several other questions about lmdb
- does lmdb store one key-value pair in a single page? How lmdb organizes these key-value pairs in a single page
- if size is larger than single page size , how lmdb process this request?
This list is for developers to discuss actual coding issues inside the OpenLDAP code; your questions are too elementary and don't belong here. Use the -technical list for user-oriented questions.
Any help will be appreciated ? thanks
Cheers, xinxin
-----Original Message----- From: Shu, Xinxin Sent: Thursday, March 19, 2015 3:49 PM To: openldap-devel@openldap.org Cc: Shu, Xinxin Subject: questions about LMDB
Hi list ,
Recently I read docs about lmdb , there are two sentences
- readers do not block writers
- 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.
Cheers, xinxin
Sorry for the wrong mail list , I will forward this request to technical list
Cheers, xinxin
-----Original Message----- From: Howard Chu [mailto:hyc@symas.com] Sent: Thursday, March 19, 2015 11:52 PM To: Shu, Xinxin; openldap-devel@openldap.org Subject: Re: questions about LMDB
Shu, Xinxin wrote:
Several other questions about lmdb
- does lmdb store one key-value pair in a single page? How lmdb organizes these key-value pairs in a single page
- if size is larger than single page size , how lmdb process this request?
This list is for developers to discuss actual coding issues inside the OpenLDAP code; your questions are too elementary and don't belong here. Use the -technical list for user-oriented questions.
Any help will be appreciated ? thanks
Cheers, xinxin
-----Original Message----- From: Shu, Xinxin Sent: Thursday, March 19, 2015 3:49 PM To: openldap-devel@openldap.org Cc: Shu, Xinxin Subject: questions about LMDB
Hi list ,
Recently I read docs about lmdb , there are two sentences
- readers do not block writers
- 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.
Cheers, xinxin
Shu, Xinxin wrote:
Hi list ,
Recently I read docs about lmdb , there are two sentences
- readers do not block writers
- 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.