Berkeley DB 1.8.6源代码学习(一)

本文深入解析Berkley DB 1.8.6版本,重点介绍其核心数据结构,包括数据库结构、B树基本信息、缓冲池机制以及页面节点等。详细分析了数据库结构的成员变量和相关函数,如B树的键比较和前缀比较,以及缓冲池的页面导入和导出处理。此外,还探讨了B树的内存页结构、内部节点和叶子节点的存储方式,以及游标和元数据结构。
摘要由CSDN通过智能技术生成

阅读 Berdely DB 1.8.6 版。

基本数据结构

1、  数据库

数据库结构只含有两个成员变量:

type DBTYPE 类型,用于标示数据库使用的数据类型,为枚举类型,枚举值可以为 DB_BTREE, DB_HASH, DB_RECNO ,分别表示 B 树、哈希表、 RECNO 算法;

internal void 类型指针,用于指向实际存储数据的数据结构,就 B+ 树来讲,指向 B+ 树结构;

数据库的成员变量:

close :关闭数据库;

del :删除数据库;

get :根据关键字获取一条记录;

put :写入 / 更新一条记录;

seq :顺序遍历;

sync :缓冲池与永久存储器中的数据同步,即将数据写入硬盘;

fd :获取数据库文件描述符,内存数据库没有文件描述符。

 

数据节点:数据节点用于在程序中传递关键字 / 数据的结构,有两个成员变脸,

data void 类型指针,存放数据内容;

size size_t 类型, data 的长度;

 

B 树基本信息结构:含有 6 个成员变量和 2 个成员函数,记录 B 树的基本属性。

flags :无符号 long 类型,表示数据库是否支持多条记录具备同一个关键字;

cachesize :无符号 int 型,可缓冲的字节数;

maxkeypage int 型,每页可含有最大键的个数;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值