暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据库学习Q&A 009:OceanBase 数据库的技术架构有哪些技术特点?

OceanBase 数据库作为一款原生的分布式数据库,有以下技术特点:

弹性扩展

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

负载均衡能力

OceanBase 数据库管理着许多台 OBServer 节点形成一个 OBServer 集群为多个租户提供数据服务。 OceanBase 集群管控的所有 OBServer 节点可以被视为一个超级大的“资源蛋糕”,在分配资源时,按需分配给创建租户时申请的资源。 OceanBase 数据库的负载均衡能力能够保证多个租户在整个 OBServer 集群中申请的资源占用相对均衡,并且在动态场景下(比如添加删除 OBServer、 添加删除租户、增删过程中分区数据量发生倾斜等场景),负载均衡算法仍然能在已有的节点上平衡资源。

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

分布式事务 ACID 能力

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

Atomicity:使用两阶段提交保证快照事务原子性。
Consistency:保证事务的一致性。
Isolation:使用多版本机制进行并发控制。
Durability:事务日志使用 Paxos 协议做多副本同步。
高可用

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

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

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

高效的存储引擎

OceanBase 数据库的存储引擎基于 LSM-Tree 架构,数据被划分为MemTable(也称作 MemStore) 和 SSTable 两部分。其中 MemTable 提供读写,而 SSTable 是只读的。用户插入/删除/更新的数据先写入 MemTable,通过 Redo Log 来保证事务性,Redo Log 会在三副本间使用 Paxos 协议进行同步,当单台 Server 宕机时,通过 Paxos 协议保证数据的完整性,并通过较短的恢复时间来保证数据的高可用。 当 MemTable 的大小超过一定阈值时,就需要将 MemTable 中的数据转存到 SSTable 中以释放内存,我们将这一过程称之为转储;转储会生成新的 SSTable,当转储的次数超过一定阈值时,或者在每天的业务低峰期,存储引擎会将基线 SSTable 与之后转储的增量 SSTable 给合并为一个 SSTable,我们将这一过程称之为合并。OceanBas 数据库通过转储和合并的过程,优化了数据存储空间的基础,提供了高效的读写服务,保证事务性和数据的完整性。

多租户

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

Oracle 兼容和 MySQL 兼容

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

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论