
Berkeley DB源代码学习
文章平均质量分 78
missyou03
这个作者很懒,什么都没留下…
展开
-
Berkeley DB 1.8.6源代码学习(一)
阅读Berdely DB 1.8.6版。基本数据结构1、 数据库数据库结构只含有两个成员变量:type:DBTYPE类型,用于标示数据库使用的数据类型,为枚举类型,枚举值可以为DB_BTREE, DB_HASH, DB_RECNO,分别表示B树、哈希表、RECNO算法;internal:vo原创 2010-01-18 21:49:00 · 5636 阅读 · 2 评论 -
Berkeley DB 1.8.6源代码学习(二)
函数信息数据库db.c文件dbopen函数:参数:fname:数据库文件名;flags:打开数据库的标志;mode:访问数据库文件的方式,只读、读写等;type:数据树采用的数据结构:B树、哈希表、RECNO算法等;openinfo:数据库的基本信息,根据使用不同的数据结原创 2010-01-21 20:55:00 · 3362 阅读 · 4 评论 -
Berkeley DB 1.8.6源代码学习(四)
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Sty原创 2010-01-31 15:48:00 · 2152 阅读 · 1 评论 -
Berkeley DB 1.8.6源代码学习(三)
B树bt_page.c文件:辅助文件,用于页面的部分操作;__bt_free函数:将一个空闲页放入树的空闲列表;参数列表:t:树指针;h:空闲页指针;返回值:成功则返回RET_SUCCESS;伪代码:将h的左兄弟置无效;将h的有兄弟指向树的空闲列表头;将树的空闲列表头原创 2010-01-31 15:44:00 · 3435 阅读 · 0 评论 -
Berkeley DB 1.8.6源代码学习(五)
bt_delete.c文件:删除B树中的数据;__bt_delete函数:删除指定的记录;int __bt_delete(dbp, key, flags) const DB *dbp; const DBT *key;原创 2010-02-02 22:03:00 · 1983 阅读 · 12 评论 -
Berkeley DB 1.8.6源代码学习(六)
动态哈希表哈希表就是通过对键值使用哈希函数计算得到入口点,从而可以插入或获取需要的值。对于计算得到相同入口点的情况,可以使用冲突消解策略来解决,一般使用附加链表的方式;哈希表在初始化时固定了入口点的个数,如果随着哈希表的使用,不断有数据进入,哈希表膨胀到一定的程度,需要扩展哈希表,该如何设计一个动态的、可扩展的哈希表呢?一般来讲需要解决两个问题:1原创 2010-03-29 21:02:00 · 1711 阅读 · 0 评论 -
Berkeley DB 1.8.6源代码学习(七)
函数分析:文件hash.c__hash_open:哈希表打开函数,根据数据库文件名和哈希函数信息打开哈希表,函数有6个参数:file:字符指针,传入数据库文件名;flags:整型,文件打开标志;mode:整型,文件打开模式;info:HASHINFO类型数据,导入哈希表信息;df原创 2010-04-01 12:34:00 · 2428 阅读 · 0 评论 -
Berkeley DB 1.8.6源代码学习(八)
hash_bigkey.c文件:关于大数据记录操作的函数;__big_insert函数:插入大数据记录;函数参数:hashp:HTAB指针;pagep:PAGE16类型指针,接收记录的页面;key:DBT类型指针;记录的键值部分;val:DBT类型指针,记录的数据值部分;原创 2010-04-01 20:53:00 · 1430 阅读 · 2 评论 -
Berkeley DB 1.8.6源代码学习(九)
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Sty原创 2010-04-03 16:19:00 · 2001 阅读 · 6 评论