BerkeleyDB

      做项目时遇到要存储大量的key/value对数据。mdbm可以,但它太浪费内存,同事建议用BerkeleyDB,它一样能存key/value对,而且对内存没有那么苛刻的要求。

      BerkeleyDB把主要的数据都存在硬盘,用cache来对付高度频繁的读写操作,但它不保证cache中的“脏数据”一定会立刻同步到硬盘上(除非你调用它的API同步函数)。这就意味着如果你的数据像黄金一样珍贵(比如银行交易数据),就不适宜用BerkeleyDB;但如果你的数据只是“比较”珍贵,丢个几十秒的数据没关系,那BerkeleyDB还是不错的选择。

      BerkeleyDB还支持Hash/Btree/Queue等不同的索引方式,由用户在建库时自己选择。它只能在建库时指定cache的大小,以后不能再改,通用性稍微差了些,但对于后端的底层存储系统,这不是个大问题。

      BerkeleyDB以前由sleepycat负责维护,06年oracle收购了BerkeleyDB。

      自己写程序试了试,结果coredump了,就在创建数据库的那个函数pdb->open()里,gdb又跟不进去,后来找了立中同志才知道:redhat下都默认装了bdb,我没必要下载一个自己编译,那样反而链接错动态库了。最后ok,bdb存数据确实很省。

 


相关文章

分类

留言:

关于文章

This page contains a single entry by DongHao published on 09 16, 2007 5:13 PM.

听起来不痛 was the previous entry in this blog.

又逛西湖 is the next entry in this blog.

Find recent content on the main index or look in the 存档 to find all content.