OceanBase数据库中子查询的实现及优化文献综述
2020-05-15 22:00:49
文 献 综 述 研究背景 当下许多公司的核心资产是各种各样的商业数据,例如淘宝的商品、交易、订单、购物爱好等等,这些数据通常是结构化的,并且数据之间存在各种各样的关联,传统的关系数据库曾经是这些数据的最佳载体。
然而,随着业务的快速发展,这些数据急剧膨胀,记录数从几千万条增加到数十亿条,数据量从百GB增加到数TB,未来还可能增加到数千亿条和数百TB,传统的关系型数据库已经无法承担如此海量的数据。
OceanBase最初的诞生是为了解决阿里巴巴集团旗下的淘宝网的大规模数据问题。
单纯的硬件升级已经无法使问题得到解决,分库分表也并不总是凑效。
因此,OceanBase决定采用单台更新服务器来记录最近一段时间的修改增量,称为增量数据;而以前的数据保持不变,称为基准数据。
基准数据以类似分布式文件系统的方式存储于多台基准数据服务器中,每次查询都需要把基准数据和增量数据融合后返回给客户端。
因此,写事务都将集中在单台更新服务器上,避免了复杂的分布式事务,高效地实现了跨行跨表事务。
另外,更新服务器上的修改增量能够定期分发到多台基准数据服务器中,避免成为瓶颈,实现了良好的扩展性。
OceanBase的整体系统架构如下: 根据OceanBase系统架构图,可以看出整个系统可以分为四个模块:主控服务器RootServer、更新服务器UpdateServer、基准数据服务器ChunkServer以及合并服务器MergerServer。
相应的服务器的功能:1、RootServer:管理集群中的所有服务器,Tablet数据分布以及副本管理。