[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
BDB memory cache problem
Is there any way to turn off BDB memory_cacheing_to_disk ?
(__db.001 and other files) At least for write operations?
Most of the times this files causes data loss, when OS system crashes.
If I unterstand it right:
1. BDB waiting until memory buffer is full,
2. then write data to disk I/O buffer
3. then will be written data to *.bdb files.
Between 1 and 2 data is written to log.000000* file, but after OS recovering
there is always some data I can't read.
If OS fails and BDB memory buffer is not flushed, then data will loss. As I see this is
persistent problem in BDB over the time.
I know my problem is not strict OL specific, but I tried all DB_CONFIG option from sleepycat that
turns off memory cacheing, logging and so on. I always became:
DB_ENV->set_flags: direct I/O is not supported by this platform
DB_CONFIG:
----------
# Cachesize (20Mb)
set_cachesize 0 20971520 1
set_lg_regionmax 262144
set_lg_bsize 2097152
#set_lg_dir /var/log/bdb
# Automatically remove log files that are no longer needed.
# Just use these settings when doing slapadd...
set_flags DB_LOG_AUTOREMOVE
#set_flags DB_TXN_NOSYNC
#set_flags DB_TXN_NOT_DURABLE
(OL: 2.2.19, BDB: 4.2.52. + 2 patches, OS: Mandrake 10.0)
(SVN guys has similar problems with BDB. They started to use FSFS under SVN.)
Thx
Attila
--
Szuts Attila Linux Support Center Kft.
Email: aszuts@lsc.hu