什么蚂蚁

导航

2010年7月7日 #

tokyo cabinet - 写入记录

摘要: 写入记录相对读取来说就复杂多了Tchdbput 接口来写入记录,首先对整个DB进行读锁定,调用tchdbbidx 来获取hash bucket index 和hash,然后对index对应的树进行写锁定,接着调用tchdbputimpl 进行记录写入。Tchdbputimpl 首先tchdbgetbucket获取首个节点的偏移,随后也是和读取记录相同的查找记录。如果能找到记录,根据处置方式处理记录... 阅读全文

posted @ 2010-07-07 10:51 蚂蚁慢慢爬 阅读(282) 评论(0) 推荐(0) 编辑

2010年7月1日 #

tokyo cabinet HDB – 读取&查找记录

摘要: tchdbget 首先对数据库读锁定,调用tchdbbidx 获取hash和bucket的index,这个算法分布是否均匀呢,没验证。看看代码吧:static uint64_t tchdbbidx(TCHDB *hdb, const char *kbuf, int ksiz, uint8_t *hp){ assert(hdb && kbuf && ksiz >... 阅读全文

posted @ 2010-07-01 16:30 蚂蚁慢慢爬 阅读(430) 评论(0) 推荐(0) 编辑

Tokyo cabinet HDB– 初始化

摘要: 看看tokyo cabinet 初始化的时候做了些什么事设置些参数(如rcnum,xmsize等)之后就可以调用tchdbopen来初始化HDB了,tchdbopen首先会对整个HDB对象进行写锁定,随后调用tchdbopenimpl进行真正初始化动作。Tchdbopenimpl首先对数据库文件用文件锁锁定,如果文件空就初始化文件,数据库文件的组织结构如下:Header(256字节)+Hash B... 阅读全文

posted @ 2010-07-01 16:21 蚂蚁慢慢爬 阅读(453) 评论(0) 推荐(0) 编辑