Berkeley DB内核源码分析

原创 2012年03月25日 15:51:11

Berkeley DB是一个优秀的数据库存储引擎,虽然它比起那些大块头的DBMS来说显的很小,但是size并不与能力呈正比,Berkeley DB拥有那些大块头DBMS的存储引擎所拥有的全部功能,而且做得还不错。哪些大块头之所以大,很大程度是

对于数据库管理系统的设计技术感兴趣的同行们来说,学习Berkeley DB是一个很好的开始,因为Berkeley DB全面地拥有一个DBMS的存储引擎应该有的全部功能,而且由于它自身有清晰的结构,学习它你可以容易理解存储引擎应该有哪些模块,每个模块如何工作,模块之间如何协作来完成存储引擎的功能。事实上,Berkeley DB是深入学习理解数据库存储引擎设计和实现技术的优秀范例,当你理解了Berkeley DB内核之后,就可以举一反三,轻易理解其他DBMS内核。

当你熟练地掌握Berkeley DB的用法之后,可能你会想,Berkeley DB的这些很cool的功能是如何实现的。我当时就是这样。不过,Oracle内部也没有详细的Berkeley DB开发文档,所有的技术细节都积累在每个人的脑袋里面,以及记录每个大大小小的问题的解决方案的讨论记录中。于是,处于兴趣和自己工作方便,我在闲暇的时候会阅读bdb的源代码,并且为关键函数,关键算法和功能实现写文档,总结起来就是我自己的“Berkeley DB内核源码分析”。通过这样的分析,可以掌握bdb的技术细节,学习到通用的数据库存储引擎的设计和实现方法,以及很多bdb特有的很好的设计思路和方法。

国内真正懂数据库内核并且做过数据库内核开发的人太少了,在近期我们方正的招聘中可以深切地感受到这一点。 这种现状应该改变,不然我国在基础软件方面就无法拥有自己的开发人才,更提不上什么世界领先了。  我愿意尽自己的微薄之力,在后面会分若干篇文章贡献出我的“Berkeley DB源码分析”,请大家关注。要提醒的是,只有把Berkeley DB的功能和用法熟记于心之后,才好理解那些内核分析。也就是要把bdb的参考文档和API文档熟记于心,并且使用bdb的API做过一定时间的实际开发之后,再花时间去理解内核。


版权声明:本文为博主原创文章,未经博主允许不得转载。

Berkeley DB 源代码分析 (7) --- 事务和日志 (2)

这篇和上篇一样,也是含有一些wiki格式控制字符,看的时候直接忽略这些格式字符。 = Logging subsystem = == Architecture == Log sub...
  • smartpig_zw
  • smartpig_zw
  • 2012年03月25日 15:57
  • 754

Berkeley DB使用全解

 在开发桌面级应用程序时,常常需要用到可持续存储技术,做为保存程序在退出之前所使用的数据,如变量,对象,窗口位置,大小.一般我们会使用office access这类桌面型文件数据库,或者是使用注册表....
  • sjcode
  • sjcode
  • 2007年09月13日 15:11
  • 4524

Berkeley DB 1.8.6源代码学习(七)

函数分析:文件hash.c__hash_open:哈希表打开函数,根据数据库文件名和哈希函数信息打开哈希表,函数有6个参数:file:字符指针,传入数据库文件名;flags:整型,文件打开标志;mod...
  • missyou03
  • missyou03
  • 2010年04月01日 12:34
  • 2055

Berkeley DB 源代码分析 --- 小结

刚才贴了一些文章,都是我之前读Berkeley DB的代码时候记下来的笔记,基于Berkeley DB 4.6 ~ Berkeley DB 4.8版本的代码,不过相信与现在最新的代码差别也不大,有兴趣...
  • smartpig_zw
  • smartpig_zw
  • 2012年03月25日 15:59
  • 2011

[转]Berkeley DB实现分析

Berkeley DB实现分析
  • heiyeshuwu
  • heiyeshuwu
  • 2016年05月27日 20:44
  • 3205

Berkeley DB基础教程

一、Berkeley DB的介绍 (1)Berkeley DB是一个嵌入式数据库,它适合于管理海量的、简单的数据。如Google使用其来保存账户信息,Heritrix用其来保存froniter. (...
  • jediael_lu
  • jediael_lu
  • 2014年05月29日 15:21
  • 14209

[转]Berkeley DB简介及安装使用

1        简介 BDB的全称Berkeley DB,是一套开放源码的嵌入式数据库的程序库。它为应用程序提供可伸缩的、高性能的、有事务保护功能的数据管理服务。Berkeley DB为数据的...
  • anda0109
  • anda0109
  • 2014年05月16日 10:54
  • 1309

"Berkeley DB"数据库的优点和不足之处

Sleepycat软件公司出品的Berkeley DB是一种在特定的数据管理应用程序中广泛使用的数据库系统,在世界范围内有超过两亿的用户支持.许多世界知名的厂商,像Amazon, AOL, Briti...
  • hit_hlj_sgy
  • hit_hlj_sgy
  • 2013年09月17日 17:34
  • 1938

Berkeley db使用方法简介(c接口)

1. 打开数据库 首先必须调用db_create()函数初始化DB句柄,然后就可以使用open()方法打开数据库了。默认情况下,如果数据库不存在,DB不会创建。为了覆盖缺省行为,可以在open()调...
  • bg205
  • bg205
  • 2013年09月19日 22:42
  • 1065

[转]Berkeley DB设计经验

关于Berkeley DB数据库的总体设计与实现的文章
  • heiyeshuwu
  • heiyeshuwu
  • 2016年05月27日 20:24
  • 3636
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Berkeley DB内核源码分析
举报原因:
原因补充:

(最多只允许输入30个字)