delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

31 Dec 2005

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。