分布式数据库OcceanBase介绍

一、OcceanBase是什么

以下是oschina的介绍:

OceanBase是一个支持海量数据的高性能分布式数据库系统,实现了数千亿条记录、数百TB数据上的跨行跨表事务,由淘宝核心系统研发部、运维、DBA、广告、应用研发等部门共同完成。在设计和实现OceanBase的时候暂时摒弃了不紧急的DBMS的功能,例如临时表,视图(view),研发团队把有限的资源集中到关键点上,当前 OceanBase主要解决数据更新一致性、高性能的跨表读事务、范围查询、join、数据全量及增量dump、批量数据导入。

https://www.oschina.net/p/oceanbase

OcceanBase是淘宝开源的一个分布式关系数据库,以下是其官方地址:https://oceanbase.alipay.com/

 

二、OcceanBase的开发背景

我们来大概了解下淘宝为什么要开发这个数据库,在去IOE之后,淘宝核心场景都使用了Mysql,Mysql的好处是免费,并且可以运行在普通PC机上,但Mysql的扩展性是个大问题,虽然可以通过分库分表等中间件来做,但这些中间件多多少少有如下问题:

1、运维复杂
因为引入新的中间件,所以系统链路会延长,并且运维的工作量增加,需要对Mysql中间件做好监控,配置等操作。

 

2、扩容麻烦

     现有Mysql中间件扩容都比较复杂,即如果某个表原来分成8张子表,现在业务量增大,需要再增加即扩充成16张表,整体过程操作比较复杂,需要运维、开发一起配合,并且可能有不少手工操作,整个过程工作量大并且容易出错,对于淘宝前几年业务量增长迅猛的情况下肯定就不适合了。

 

当然还有其他原因,但主要是以上2点。

 

三、OcceanBase功能介绍

我们看下Occeanbase有哪些功能:

1、兼容MySQL 协议

兼容MySQL 5.6 版本大部分功能;

因为现有业务大量使用Mysql,如果业务升级还要改代码,则升级就会有不少阻力,所以设计的时候就采取兼容的方案,这样业务方只改改配置就可以快速上线了。

 

2、分布式,可水平扩展

  • 水平扩展,在线扩容缩容,服务不停;单集群规模超 100 台,数据量超 2PB;单表最多记录数超 3200 亿条。

注意:扩容时不停机这个功能,这个主要就是解决上面说的问题2的。

 

3、高可用

基于 Paxos 协议,少数派故障,数据不丢,服务不停;

这个是趋势,Mysql官方8.0也有这个功能了。

 

4、强一致

  • 分布式事务,ACID 强一致。

5、高性能

  • 准内存数据库性能,4200 万次/秒处理峰值的记录。

 

四、整体架构分析

       接下来我们分析Occeanbase的架构设计,是如何做到这么高性能,又强一致的。

 

先看下整体架构

 

RootServer:管理集群中所有服务器,及数据分布和副本管理,即元数据服务器;

UpdateServer:存储OcceanBase增量更新数据;

ChunkSerrver:存储基线数据,即不会变的数据;

MergeServer:接入用户请求,做完词法分析、查询优化等工作后转发给ChunkServer或UpdateServer;

 

可以看到,整个OcceanBase的计算和存储是分离的,MergeServer负责计算,ChunkServer和UpdateServer负责存储。

另外元数据是中心化的,这个也是目前分布式系统设计的趋势,只要元数据不要参与每一次请求,通过客户端缓存、增量更新等措施可以大大减少元数据服务器的压力。

 

OcceanBase独特的设计在于将增量更新数据全放到UpdateServer上 。

这个设计也决定了OcceanBase使用场景为一段时间更新不是特别多,像电商主要是写少读多,特别适合这样的场景。

 

这个设计有好有坏,好处有:

 

1、完美地支持分布式事务

      因为修改只在一次,就不存在数据同步和一致性的问题,事务就可以很好地支持,这样的设计也是为了淘宝这样的场景:一段时间内写入不多,但又要求强一致性

 

2、大大简化系统设计

    因为淘宝的场景是读多写少,在整体OcceanBase架构里写是单点,但读是可充的,即一段时间内没有修改,直接从ChunkServer返回,根本不用走到UpdateServer,而ChunkServer是可以水平扩充的,这样就可以在支持业务的条件下简化系统的设计,不用做数据同步,面对分布式锁等复杂问题。

 

当然这么设计的弊端也很明显,最大的问题就是单点,即整体系统写入都必须经过UpdateServer,但UpdateServer又无法水平扩容,当然OcceanBase做了很多设计来减少UpdateServer的负担,像读写分离,定期整理基线数据,这个后面慢慢分析。

 

 

BoneCP连接池重连机制分析

从一次线上故障来看redis删除机制

一次线上Mysql死锁分析

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一些关于分布式数据库理论的经典书籍: 1. "Distributed Systems: Principles and Paradigms" by Andrew S. Tanenbaum and Maarten Van Steen - 这本书详细介绍分布式系统的基本原理和范式,包括分布式数据库的设计和实现。 2. "Principles of Distributed Database Systems" by M. Tamer Özsu and Patrick Valduriez - 这本书系统地介绍分布式数据库系统的原理、体系结构、设计和实现,并覆盖了一系列相关的话题,如并行数据库、数据分片和复制等。 3. "Database Systems: The Complete Book" by Hector Garcia-Molina, Jeffrey D. Ullman, and Jennifer Widom - 这是一本经典的数据库系统教材,其中包含了关于分布式数据库系统的章节,讨论了分布式数据库的原理、设计和实现。 4. "Transaction Processing: Concepts and Techniques" by Jim Gray and Andreas Reuter - 这本书着重讨论了事务处理在分布式数据库系统中的关键概念和技术,包括事务管理、并发控制和故障恢复等。 5. "Data Replication" by Jim Gray, Pat Helland, Patrick O'Neil, and Dennis Shasha - 这本书探讨了数据复制在分布式数据库系统中的重要性和应用,涵盖了数据复制的原理、技术和算法等方面。 这些书籍涵盖了分布式数据库系统的关键概念、原理和技术,适合对分布式数据库理论感兴趣的读者阅读。请注意,这些书籍可能有不同的版本和出版年份,建议选择最新的版本以获取最新的知识和发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值