BerkeleyDB使用中的cache同步问题
今天被一个程序折腾了很久。大致的流程是这样:
事件处理:
- 打开db文件,如果已经打开,直接使用该handle
- 获得排他锁,并读某一key对应的value
- 根据value和一些环境信息以及事件所附带的输入计算新的value
- 更新value,并同步文件、释放排他锁
锁的机制没有大毛病,可是数据死活不对。
最后发现是bdb在内存中的cache作祟……
Archived: 2 Comments
janny | May 3, 2006 9:29 PM
我也在看berkeley Db 哎,很多的困惑可以一起交流一下嘛:)
huihui844@163.com
langue | September 10, 2006 9:00 AM
呵呵,这个和那种两个进程,一个读一个写,同时操作一个文件的例子差不多。前提是使用异步I/O。