Using an HDB backend, if I set the dbnosync parameter in slapd.conf,
how often will modifications be flushed to the underlying database?
The DB_TXN_NOSYNC flag affects the transaction log file, not the database
files. Using NoSync means the log file will never be explicitly flushed, so
it will only get written out whenever the log buffer overflows.
Modifications to the databases are cached separately and will only get
written from the BDB cache to the database files when dirty pages are forced
from the cache, or during a checkpoint.
I did not find the Berkeley DB documentation to be terribly helpful
this case. It mentions that more frequent checkpointing can help:
Should I be using the checkpoint parameter in slapd.conf?
I was under
the impression (based on threads I have seen in other mailing lists)
that checkpoint didn't actually do anything anymore.
I don't know what other lists you're referring to, but they're wrong.
(And I have not
had much luck with using txn_checkpoint in the DB_CONFIG file -- it
txn_checkpoint is not documented as a valid DB_CONFIG keyword anywhere in the
BerkeleyDB documentation, so that's not surprising.
I'm not asking for troubleshooting help on fixing checkpointing.
just want to know how risky it is to use dbnosync, and if
checkpointing can help minimize risks.
Yes, checkpointing will minimize the risk. How risky is NoSync - depends
entirely on your hardware and software environment.
-- Howard Chu
Chief Architect, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc
OpenLDAP Core Team http://www.openldap.org/project/