[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: mdb database protected against any power cut?

Hallvard Breien Furuseth wrote:
> I wrote:
>> Francois Gnu writes:
>>> Is the mechanism of recovery mdb database working fine?
>> MDB needs no recovery.  You may lose the last commit or two, but the
>> database will be consistent if the filesystem is correct.
> Whoops - to clarify: You may lose the _last_ one or two commits, until
> they get flushed to disk.  The one in progress, and maybe the last
> successful commit.  Not just any random commit:-)
> You can set up checkpointing to limit how long the last successful
> commit can be endangered.  ...unless I read the code wrong.  The
> manpage says "checkpoint" is only needed with "dbnosync".  Hmm.

In the default mode (fully synchronous) you can only lose the in-progress
transaction. With dbnosync you can lose whatever hasn't been checkpointed yet.
There is another mode (recently added, not yet exposed in back-mdb) that only
flushes the data, not the metadata. With that mode, you might lose the
in-progress transaction and the immediately preceding commit. This mode is
slightly faster than fully-synchronous, and slightly slower than fully asynch.

  -- Howard Chu
  CTO, Symas Corp.           http://www.symas.com
  Director, Highland Sun     http://highlandsun.com/hyc/
  Chief Architect, OpenLDAP  http://www.openldap.org/project/