"CouchDB claims to be lockless" For absolute clarity, this claim is true.
B. On 18 August 2011 19:44, Paul Davis <[email protected]> wrote: > Reads are pulled from the last update that is made available to readers. This > is slightly different than "last MVCC checkpoint (or header write in couchdb > internal speak)" in that it doesn't require that the header was written to > disk (if you have delayed_commits=true, etc). > > Reads are never locked. They have concurrent access to the database file and > can read to the heart's content. This is because the database is append only, > so once they have a pointer to data on disk, that data will never be changed > (until the file is compacted away, but ignore that for now). > > Writes on the other hand aren't locked either, they're just coordinated > through a central writer process. The reason that the synchronous writes is > fine is that the writer batches write requests through the file IO and db > update process. Ie, say 1 person shows up with a write request, the writer > goes off to service this request. While its away, 10 more people show up with > write requests. When the writer returns the first request it sees 10 new > ones. Instead of handling one at a time, it handles all 10 simultaneously. > > HTH, > Paul Davis > > > On Aug 18, 2011, at 1:03 PM, Sean Copenhaver wrote: > >> To my understanding each read pulls from the last good MVCC >> checkpoint/revision/what-have-you so there are no read locks due to writes. >> Nor do any reads lock other reads. Then each write on a single file are done >> serially so there are no write locks. >> >> I believe each database and each view are in their own separate file so they >> can all be written to concurrently. Not positive on that though. >> >> On Thu, Aug 18, 2011 at 1:49 PM, Danny Sinang <[email protected]> wrote: >> >>> Hello, >>> >>> CouchDB claims to be lockless, thanks to its use of MVCC. Both CouchDB and >>> MarkLogic claim to use MVCC. >>> >>> However, http://www.odbms.org/download/inside-marklogic-server.pdf states >>> that MarkLogic does read and write locking for updates. >>> >>> Does CouchDB also do the same ? If not, how does it do updates differently >>> ? >>> >>> Regards, >>> Danny >>> >> >> >> >> -- >> “The limits of language are the limits of one's world. “ -Ludwig von >> Wittgenstein > >
