OceanBase数据库源码解析
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第1章
OceanBase概述

数据库系统是人们数字生活的幕后英雄,互联网、物联网等环境下产生的大量数据都通过各种类型的数据库系统管理着,为人们提供了各种高质量、高效率的信息服务。

随着各类互联网应用、信息系统的规模不断扩大,需要管理的数据不管是数量上还是种类上都快速增加,而单一的机器由于硬件扩展能力的限制已经无法适应这种快速增长的数据管理需求,因此人们对于可以灵活扩展系统规模的分布式数据库系统越来越重视。

分布式数据库(或者严格来说:分布式数据库管理系统)是一种由多个机器共同构成的系统,这些机器(称为节点)上各自都运行着某种数据库系统软件(本地数据库),它们一起合作形成一个统一的数据库系统(全局数据库)对用户提供服务。对于分布式数据库来说,其“分布”性可能会体现在数据的分布或者功能的分布两个方面,即整个系统中的数据和功能都可能会分散在系统的各个节点上,分布式数据库的用户并不清楚自己正在访问的数据放在哪个节点上或者自己正在使用的功能是由哪个(哪些)节点执行的。

一般来说,人们更加关心分布式数据库系统的这些方面:

1)可扩展性:人们通常希望所使用的分布式数据库能够通过灵活地增加节点(机器)来增加系统的处理能力。不过,可扩展性并不是简单的能或者不能的问题,更重要的是扩展的灵活性如何,例如扩展节点之后系统中的数据是否需要进行大规模的重新分布等。

2)处理能力:分布式数据库的根本仍然是性能,扩展节点的最终目的还是增强系统对于数据规模和处理压力的承载能力,人们希望分布式数据库系统中增加的硬件资源能够“无损地”转换为用户可见的并发处理能力,不过目前的分布式数据库系统都无法实现这一点。

3)可用性:相对于单节点数据库的“一损俱损”,分布式数据库系统中多个相对独立的节点为高可用性提供了天然的基础,但不同的系统对于这种基础的利用程度并不相同,这也导致了它们对系统故障程度耐受能力的差异。

分布式数据库并不是一个新鲜事物,早在20世纪70年代,学术界就已经在开始探讨分布式数据管理技术的可能性。经过近50年的发展,业界逐渐形成了一些相对比较成熟的分布式数据库系统,由蚂蚁集团研发并开源的OceanBase就是其中一个优秀的代表。