BerkeleyDB使用中的cache同步问题
今天被一个程序折腾了很久。大致的流程是这样:
事件处理:
- 打开db文件,如果已经打开,直接使用该handle
- 获得排他锁,并读某一key对应的value
- 根据value和一些环境信息以及事件所附带的输入计算新的value
- 更新value,并同步文件、释放排他锁
锁的机制没有大毛病,可是数据死活不对。
最后发现是bdb在内存中的cache作祟……
选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……
今天被一个程序折腾了很久。大致的流程是这样:
事件处理:
锁的机制没有大毛病,可是数据死活不对。
最后发现是bdb在内存中的cache作祟……