本节主要介绍 OceanBase 数据库产品及其技术特点。

自从 E.F.Codd 于 1970 年首次提出关系数据库模型后,关系数据库便以其易于使用的接口、完善的功能和生态而成为了 IT 领域必需的基础设施,广泛应用在各行各业,包括金融、电信、房地产、农林牧渔、制造业等。关系数据库经过了 40 多年的发展,涌现出了非常多优秀的商业数据库和开源数据库。

随着互联网行业和大数据的兴起和蓬勃发展,数据量和并发访问量呈现指数级的增长,这对整个系统的架构的设计、产品的能力都提出了极大的挑战。极度高昂的总体拥有成本、捉襟见肘的扩展能力、荏弱无力的大数据处理性能等都成为了高并发,大数据访问需求下越来越明显的灼痛。与此同时,阿里巴巴,蚂蚁的各类应用场景极其严苛,有着全球最大的并发量需求,对系统的可靠性,高可用性有着极高的要求,需要具备单机、机架、机房、以及地区级别的容灾恢复能力。早期使用共享存储、小型机等高端硬件也只能部分满足我们在性能和可靠性上的需求,我们能不能结合分布式系统和传统关系型数据库的优点,既拥有传统关系型数据库在功能上的优势,同时具备分布式系统库的可扩展性、高可靠性等特征?在这样的历史背景下,OceanBase 数据库作为一款原生的分布式数据库诞生了。OceanBase 数据库的设计之初就是构建在普通服务器组成的分布式集群之上,具备可扩展、高可用、高性能、低成本以及多租户等核心技术优势。目前已经成功服务于阿里巴巴集团和蚂蚁内部的多个核心业务并且经历过了多年电商“双十一”大促活动的严格考验。 OceanBase 数据库在阿里内部经过了 10 年的孕育和发展后才再逐步推广到外部市场,目前服务于金融、保险、电信等多个行业。

1.OceanBase 数据库的技术架构有哪些技术特点?
OceanBase 数据库作为一款原生的分布式数据库,有以下技术特点:

弹性扩展https://www.cndba.cn/hbhe0316/article/22195https://www.cndba.cn/hbhe0316/article/22195

OceanBase 数据库支持在线弹性扩展。当集群存储容量或处理能力不足时,可以随时加入新的 OBServer,系统有能力自动进行数据迁移,并根据机器的处理能力,将合适的数据分区迁移到新加入的机器上;同样,在系统容量充足和处理能力富余时,也可以将机器下线,降低成本;在类似于双 11 大促之类的活动中,可以提供良好的弹性伸缩能力。https://www.cndba.cn/hbhe0316/article/22195

负载均衡能力

OceanBase 数据库是一个分布式的数据库,管理着的许多台 OBServer 作为一个 OBServer 集群为多个租户提供数据服务。 OceaBase 集群管控的所有 OBServer 可以被视作一个超级大的“资源蛋糕”,在分配资源时,按需分配给创建租户时申请的资源。 为了保证 OBServer 集群顺畅运行,还会在初始化(BootStrap)时创建出系统租户,并分配给系统租户少量资源保证内部运行。https://www.cndba.cn/hbhe0316/article/22195

OceanBase 数据库的负载均衡能力能够保证多个租户在整个 OBServer 集群中申请的资源占用相对均衡,并且在动态场景下(例如,添加或删除 OBServer、添加或删除业务租户以及数据增删过程中分区数据量发生倾斜等),负载均衡算法仍然能在已有的节点上平衡资源。OceanBase 数据库系统中的每个分区都维护了多个副本,其中一个为主(Leader 副本)对外提供强一致读的数据服务,其他副本为备(Follower 副本)。Leader 副本的集中和分散程度也就映射着未来业务负载的热度分布。在创建表创建分区的时候,OceanBase 数据库已经考虑到负载均衡了,OceanBase 数据库有能力将所有副本的Leader 相对均衡地打散到集群中的所有节点上。将所有 Leader 副本随机打散到不同的节点,可以将负载均衡到不同节点。但是有可能业务需求对数据服务分布的需求并不一定是尽量打散的。特别是在不同表、分区访问有关联关系的场景下。在分布式数据库中,跨节点的请求可能会有性能下降的代价。OceanBase 数据库使用表组(table group)将经常一起访问的多张表格聚集在一起。例如,有用户基本信息表(user)和用户商品表(user_item),这两张表格都按照用户编号哈希分布,只需要将二者设置为相同的表格组,系统后台就会自动将同一个用户所在的 user 表分区和 user_item 表分区调度到同一台服务器。这样,即使操作某个用户的多张表格,也不会产生跨机事务。OceanBase 数据库还支持手动地通过设置租户的 Primary Zone 来影响 Leader 副本分布的偏好、通过设置 Locality 控制租户或者表的副本类型来影响提供数据服务的主副本位置。这样在充分利用 OceanBase 数据库负载均衡能力的同时,可以更好地适配已经有一定特征和逻辑业务数据访场景,获得更快的请求响应时间。

OceanBase 数据库通过 RootService 管理各个节点间的负载均衡。不同类型的副本需求的资源各不相同,RootService 在执行分区管理操作时需要考虑的因素包括每台 OBServer 上的 CPU、磁盘使用量、内存使用量、IOPS 使用情况、避免同一张表格的分区全部落到少数几台 OBServer,等等。让耗内存多的副本和耗内存少的副本位于同一台机器上,让占磁盘空间多的副本和占磁盘空间少的副本位于同一台机器上。经过负载均衡,最终会使得所有机器的各类型资源占用都处于一种比较均衡的状态,充分利用每台机器的所有资源。负载均衡分机器、Unit 两个粒度,前者负责机器之间的均衡,选择一些 Unit 整体从负载高的机器迁移到负载低的机器上;后者负责两个 Unit 之间的均衡,从负载高的 Unit 搬迁副本到负载低的 Unit。

分布式事务 ACID 能力https://www.cndba.cn/hbhe0316/article/22195

OceanBase 数据库架构下事务的 ACID 的实现方式如下:

Durability:事务日志使用 Paxos 进行多副本同步。

Atomicity:使用两阶段提交保证快照事务原子性。

Isolation:使用多版本机制进行并发控制。

Consistency:保证事务的一致性。

高可用https://www.cndba.cn/hbhe0316/article/22195

OceanBase 数据库系统中的每个分区都维护了多个副本,一般为三个,且部署到三个不同的数据中心(Zone)。整个系统有可能至多会有百万分区,这些分区的多个副本之间通过 Paxos 协议进行日志同步。每个分区和它的副本构成一个独立的 Paxos 组,其中一个副本为主(Leader),其它副本为备(Follower)。每台 OBServer 服务的一部分分区为 Leader,一部分分区为 Follower。当 OBServer 出现故障时,Follower 分区不受影响,Leader 分区的写服务短时间内会受到影响,直到通过 Paxos 协议将该分区的某个 Follower 选为新的 Leader 为止,整个过程不超过 30s。通过引入 Paxos 协议,可以保证在数据强一致的情况下,具有极高的可用性及性能。

同时,OceanBase 数据库也支持主备库架构。OceanBase 集群的多副本机制可以提供丰富的容灾能力,在机器级、机房级、城市级故障情况下,可以实现自动切换,并且不丢数据,RPO = 0。OceanBase 数据库的主备库高可用架构是 OceanBase 数据库高可用能力的重要补充。当主集群出现计划内或计划外(多数派副本故障)的不可用情况时,备集群可以接管服务,并且提供无损切换(RPO = 0)和有损切换(RPO > 0)两种容灾能力,最大限度降低服务停机时间。

OceanBase 数据库支持创建、维护、管理和监控一个或多个备集群。备集群是生产库数据的热备份。管理员可以选择将资源密集型的报表操作分配到备集群,以便提高系统的性能和资源利用率。

高效的存储引擎https://www.cndba.cn/hbhe0316/article/22195

OceanBase 数据库采用的是 Shared-Nothing 的分布式架构,每个 OBServer 都是对等的,管理不同的数据分区。管理不同的数据分区。OceanBase 数据库的存储引擎基于 LSM Tree 架构,数据被划分为两部分:MemTable(也经常被叫做 MemStore)和 SSTable。其中,MemTable 提供读写,而 SSTable 是只读的。用户新插入/删除/更新的数据先写入 MemTable,通过 Redo Log 来保证事务性,Redo Log 会在三副本间使用 Paxos 协议进行同步,当单台 Server 宕机时,通过 Paxos 协议我们可以保证数据的完整性,并通过较短的恢复时间来保证数据的高可用。当 MemTable 的大小达到某个阈值时,MemTable 被转存到 SSTable中。在查询时,需要将 MemTable 和 SSTable 的数据进行归并,才能得到最终的查询结果。对于 SSTable 我们增加了多层 Cache,用于缓存频繁访问的数据。

因为有大量的静态基线数据,可以很方便对其进行压缩,减少存储成本;增量数据写在内存中不可无尽增长,当 MemTable 的大小超过一定阈值时,就需要将 MemTable 中的数据转存到 SSTable 中以释放内存,这一过程称之为转储;转储会生成新的 SSTable,当转储的次数超过一定阈值时,或者在每天的业务低峰期,系统会将基线 SSTable 与之后转储的增量 SSTable 给合并为一个 SSTable,这一过程称之为合并。OceanBase 数据库高的存储引擎在优化了数据存储的空间基础上,提供了高效的读写服务,保证事务性和数据的完整性。https://www.cndba.cn/hbhe0316/article/22195

https://www.cndba.cn/hbhe0316/article/22195

https://www.cndba.cn/hbhe0316/article/22195

多租户

OceanBase 数据库是一个支持多租户的分布式数据库,一个集群支持多个业务系统,也就是通常所说的多租户特性。 多租户的架构优势在于可以充分利用系统资源,使得同样的资源可以服务更多的业务。通过将波峰、波谷期不同的业务系统部署到一个集群,以实现对系统资源最大限度的使用。在租户的实现中,保证了租户之间的隔离性:在数据安全方面,不允许跨租户的数据访问,确保用户的数据资产没有泄露的风险;在资源使用方面表现为租户“独占”其资源配额,该租户对应的前端应用,无论是响应时间还是 TPS/QPS 都比较平稳,不会受到其他租户负载轻重的影响。

Oracle 兼容和 MySQL 兼容

OceanBase 数据库支持 Oracle 兼容模式和 Oracle 兼容模式,用户可以根据不同的需要选择不同的模式。

详见官网:https://open.oceanbase.com/docs/knowledgeBase/oceanbase-database-products

OceanBase

OceanBase 数据库相关推荐

  1. 20强名单公布!2021 OceanBase 数据库大赛决赛酣战在即!

    2021 OceanBase 数据库大赛<从0到1打造你的数据库>从8月15号拉开帷幕, 此次大赛目标是让不熟悉数据库设计和实现的参赛选手能够快速地了解与深入学习数据库内核,期望通过 Oc ...

  2. 一路撑起支付宝的OceanBase数据库,背后究竟有哪些杀手锏?| 云·创课程报名

    位来 发自 凹非寺 量子位 编辑 | 公众号 QbitAI 随着云计算.大数据产业的迅速发展,数据量呈现规模化增长,并且应用场景也越发丰富.因此,新一代数据库软件系统已逐渐成为业界升级需求的最佳选择. ...

  3. OceanBase数据库实践入门——性能测试建议

    概述 本文主要分享针对想压测OceanBase时需要了解的一些技术原理.这些建议可以帮助用户对OceanBase做一些调优,再结合测试程序快速找到适合业务的最佳性能.由于OceanBase自身参数很多 ...

  4. 数据3分钟丨Oracle Database 21c终于发布而22c可能直接跳过;2021 OceanBase数据库大赛开启。...

    数据 3 分钟 由 ACDU (中国 DBA 联盟) 与墨天轮联合出品的全新视频节目上线啦-三分钟带你来了解数据行业动态,节目内容主要包含数据行业最新的产品发布.公司大事件.行业新闻等. 本期内容概览 ...

  5. OceanBase数据库开发和运维漫谈

    OceanBase开发和运维漫谈 目录 1     简介 2     开发视角看OceanBase 3     运维视角看OceanBase 4     再说分区Partition 5     数据拆 ...

  6. linux安装OceanBase数据库

    1.下载OceanBase数据库安装包 OceanBase官网下载页面 2. 解压安装包并安装 tar -xzf oceanbase-all-in-one.4.0.0.0-beta-100120221 ...

  7. 2021 OceanBase 数据库大赛来袭!邀你改编世界,码出未来

    如果你想从0到1实现自己的数据库 如果你想挑战数据库领域的"最强大脑" 如果你想拥有更好的思路解决你的问题‍ 如果你想提升自己的研发效率 如果你想获得含金量超高的比赛证书 如果你想 ...

  8. 赛况激烈!2022 OceanBase数据库大赛50强诞生

    数据库作为各行业数据的存储.管理和分析的软件,是承载数据要素.影响数字经济发展的底座.对于数据库从业者而言,对数据库的要求就是对自身能力的要求.据有关数据统计,目前国内从事数据库内核研发的人员稀缺,制 ...

  9. 猿创征文 | 国产数据库实战之使用Docker部署OceanBase 数据库

    猿创征文 | 国产数据库实战之使用Docker部署OceanBase 数据库 一.OceanBase 介绍 1.OceanBase介绍 2.OceanBase特点 3.OceanBase 数据库基础概 ...

  10. 数据驱动业务发展 共建数据技术未来——专访OceanBase数据库创始人阳振坤

    墨墨导读:2020年11月20日,一年一度的数据技术嘉年华(DTC)如约而至,今年正值DTC举办的第十个年头,大会以"自研·智能·新基建--云和数据促创新 生态融合新十年" 为主题 ...

最新文章

  1. 977dh用vbs通过wsh创建桌面快捷方式,快速启动,修改ie主页的恶意代码 ...
  2. AI专家警告:GPT-3令人赞叹,但缺乏透明度
  3. 微信小游戏 Egret开发数据域官方Demo下载地址
  4. 【转】职场三国杀:为什么职场争斗中认真干活的人有时会败给不干活的人
  5. 分别使用委托、接口、匿名方法、泛型委托实现加减乘除运算
  6. apache虚拟机配置步骤和修改访问端口
  7. 深度学习的数学 (1)基本概念
  8. Android课程设计倒计时app,单片机课程设计-可调倒计时器.doc
  9. python 截取字符串6位_在Python中从字符串获取x个最低有效位
  10. java url utf 8_java中文乱码解决之道(八)—–解决URL中文乱码问题
  11. 51多项式06——复系数和实系数多项式
  12. 混编Swift类和Objc类
  13. accept 返回0_Netty深入浅出系列:Netty源码分析之accept过程
  14. 老掉牙的ArrayList解析它它它又来了
  15. 用Websocket聊天完整demo,做笔记用,各位大佬多多指教
  16. css鼠标滑过图标显示_CSS和jQuery教程:苹果风格的花式图标滑出导航
  17. EF Core 执行SQL语句和存储过程
  18. 我幼儿园的弟看了都直呼简单的【栈和队列】
  19. 达梦数据库:备份 冷备与热备
  20. Android反向进度条(ProgressBar)的实现——从右到左的进度条

热门文章

  1. [转]一淘网是如何实现系统架构的
  2. 内存条hyperx_HyperX是什么牌子内存条
  3. 傲腾optane介绍
  4. html中加入标题居中,在html标题标记中居中的div元素
  5. word目录中有正文
  6. h5课件制作_H5课件制作
  7. 人生的两大奇迹思维:杠杆效应+飞轮效应《方法论》
  8. 网络安全协议(三)--基本安全协议
  9. 债券属性「久期」的本质是什么?
  10. 学硕与专硕 计算机,2019计算机考研选学硕还是专硕?