购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

随着处理规模和数据规模的日益增长,传统集中式数据库的扩展能力几乎已达到极限,在这类场景中,人们越来越多地开始使用分布式数据库系统。

在开源数据库世界中,可供选择的成熟分布式数据库系统并不多,OceanBase正是其中极具代表性的一种。OceanBase开源版(社区版)源自在支付宝、阿里巴巴集团内久经考验的OceanBase,同时在性能上也通过TPC-C和TPC-H基准测试得到过验证,因而受到了很多企业用户以及数据库爱好者的关注。

为了帮助来自不同领域的企业和个人开发者更好地加入到OceanBase社区版的演进过程中,我们决定写一本技术性书籍,从源码级别分析OceanBase,用该书介绍OceanBase内部的实现细节,揭示一个分布式数据库系统的内部奥秘。我们希望本书能够帮助分布式数据库系统研发人员、开源数据库技术爱好者、数据库用户、科研人员更好地理解OceanBase,进而能够为OceanBase贡献特性或者更好地将OceanBase应用于各种不同的场景中。

读者定位

本书面向OceanBase内核开发人员、分布式数据库技术爱好者、数据库运维人员、高校学生、教师以及其他希望了解OceanBase数据库内部实现方法的读者。

为了更好地理解本书的内容,我们希望读者能具备以下基础:

·有一定C++语言开发经验。

·了解数据库系统(特别是分布式数据库系统)的基本概念和常用术语。

·学习过有关数据库管理系统实现原理的书籍或者课程。

本书组织

本书的组织如下:

第1章介绍OceanBase的发展历程、特性、应用案例以及基于源代码的编译和部署等内容。

第2章介绍OceanBase的架构、源码结构和安装目录结构,并且专门介绍了OceanBase的专用代理服务器ODP。

第3章介绍OceanBase集群中每个节点上的总控进程OBServer,对其中的网络子系统、多租户环境、线程结构、连接和会话管理、总控服务以及配置子系统进行了专门的分析。

第4章介绍OceanBase的存储引擎,对元数据存储、数据的物理存储、内存数据与磁盘数据之间的转储和合并、多级缓存等内外存管理机制进行详细分析。

第5章介绍OceanBase的SQL引擎,以SQL语句的处理过程为主线逐一分析其中的词法和语法分析、计划缓存、语义分析、重写、优化、执行等步骤。

第6章介绍OceanBase的事务引擎,给出了OceanBase中本地事务和分布式事务的呈现和管理方式以及保存点的实现原理,并对其重做日志、多版本并发控制等机制的实现进行了分析。

第7章介绍OceanBase的高可用机制,首先解释了高可用机制的基础理论Paxos协议,然后对分布式选举和以其为基础的多副本容错进行分析,最后详细解析了数据库对象闪回机制和备份恢复措施的实现方式。

第8章介绍OceanBase中用于资源隔离的多租户机制,对租户和各种资源限制的定义和存储方式进行分析,并详细分析了租户之间的资源隔离和自动资源均衡机制的实现细节。

第9章介绍OceanBase中的安全管理,分析了用户身份鉴别、访问控制、安全审计等安全机制的具体实现方法。

源代码版本

本书对OceanBase社区版的分析工作基于OceanBase社区版的3.1.0版本,该版本的源代码可以从以下地址下载:https://github.com/oceanbase/oceanbase/tree/3.1。

错误

由于作者的水平有限,本书难免存在差错或遗漏等,若您在阅读时发现任何问题以及想对本书提出批评和建议,都可以发送电子邮件到ywpeng@whu.edu.cn,作者不胜感激。由于时间有限,作者可能无法一一回答所有的电子邮件,但我们会将发现的错误和收到的建议整理后公布在作者个人网站(http://www.pengyuwei.net/obbook/)上本书的页面中。

致谢

感谢我的妻女。在写作本书的近一年时间里,她们从精神上给予了巨大的支持,使我能没有后顾之忧地埋头啃读代码和写作。

感谢两位合作者以及OceanBase团队的泽寰、羡林等技术专家。理解一个253万行代码的庞大数据库系统是一项艰难的任务,正是他们的帮助和及时解答,才使得我能在相对可控的时间内完成本书。

感谢OceanBase团队张婷婷女士为本书付出的努力和耗费的心血。

感谢每一位阅读本书的读者,你们给予了作者莫大的鼓励,也是作者继续前行的动力,希望本书能对你们有所帮助。

彭煜玮 uq6oq4Bp/GeykW6SB7CRXRbzWREzQ9Csh+RNoOfUmsBD2hfN/RQ6uE1P+Wd4cl7V

点击中间区域
呼出菜单
上一章
目录
下一章
×