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

OceanBase系统架构日志流和副本概述

2023-12-25
974

OceanBase 数据库参考传统数据库分区表的概念,把一张表格的数据划分成不同的分区(Partition)。在 V4.0.0 版本,分区是用户创建的逻辑对象,是划分和管理表数据的一种机制。

每个分区都有其对应的数据存储对象,称之为分片(Tablet),它具备存储数据的能力,支持在机器之间迁移(transfer),是数据均衡的最小单位。

日志流是由 OceanBase 数据库自动创建和管理的实体,它代表了一批数据的集合,包括若干 Tablet 和有序的 Redo 日志流。它通过 Paxos 协议实现了多副本日志同步,保证副本间数据的一致性,实现了数据的高可用。

在分布式环境下,为保证数据读写服务的高可用,OceanBase 数据库会把同一个日志流的数据拷贝到多个机器。不同机器同一个日志流的数据拷贝称为副本(Replica)。同一日志流的多个副本使用 Paxos 一致性协议保证副本的强一致,每个日志流和它的副本构成一个独立的 Paxos 组,其中一个日志流为主副本(Leader),其它日志流为从副本(Follower)。主副本具备强一致性读和写能力,从副本具备弱一致性读能力。

Location Cache

OceanBase 数据库按日志流、分片组织用户数据,且每个日志流有多个副本用于容灾。因此,在 SQL 请求执行过程中需要知道分区数据的位置信息,用于路由到特定机器读写对应副本的数据。分区数据的位置信息即称为 Location,每个 observer 进程会有一个服务,用于刷新及缓存本机需要的分区 Location 信息,该服务称为 Location Cache 服务。

V4.0.0 版本引入了日志流、分片的概念,如果需要获取分区数据的 Location 信息,就需要知道分区对应的分片、分片与日志流的映射关系,以及日志流副本的位置信息。您可以通过以下系统租户下的数据字典获取:

  • oceanbase.CDB_OBJECTS:指定 OBJECT_TYPE 为 TABLETABLE PARTITION 或 TABLE SUBPARTITION 可以获取对应分区的 DATA_OBJECT_ID,即 TABLET_ID(租户下分片的唯一标识)。

  • oceanbase.CDB_OB_TABLET_TO_LS:获取分片所属的日志流,日志流在租户下通过 LS_ID 唯一标识。

  • oceanbase.CDB_OB_LS_LOCATIONS:获取日志流的副本类型及位置。

副本类型

根据日志流副本存储数据种类的不同,副本被划分成不同的类型,以支持不同业务在数据安全、性能伸缩性、可用性、成本等之间的选择。

OceanBase 数据库支持以下三种类型的副本:

  • 全能型副本(FULL/F)

    说明

    V4.0.0 版本仅支持该副本类型。

  • 日志型副本(LOGONLY/L)

  • 只读型副本(READONLY/R)

全能型、日志型副本又称为 Paxos 副本,对应的副本可构成 Paxos 成员组;而只读型副本又称为非 Paxos 副本,对应的副本不可构成 Paxos 成员组。

分布式一致性协议

OceanBase 数据库使用 Paxos 协议在同一日志流各副本间同步事务日志,多数派同步成功才能提交。缺省情况下读、写操作在主副本上保证强一致;从副本支持弱一致性读,允许读取某一个稍旧版本的数据。

数据均衡

OceanBase 数据库通过 RootService 管理租户内各个资源单元间的负载均衡。不同类型的副本对资源的需求各不相同,RootService 在执行均衡操作时需要考虑的因素包括每个资源单元的 CPU、磁盘使用量、内存使用量以及 IOPS 使用情况。经过负载均衡,最终会使得所有机器的各类型资源占用都处于一种比较均衡的状态,充分利用每台机器的所有资源。

说明

OceanBase V4.0.0 暂时不支持副本扩容后的数据负载均衡,扩容前已经存在的数据无法均衡到新添加的节点上。

RootService 主要通过以下两种方式实现数据均衡:

  • 副本均衡

    RootService 会通过 Unit 迁移、日志流副本复制或迁移的方式,调整租户在各机器上的资源占用情况。

  • Leader 均衡

    在副本均衡的基础上,RootService 会根据租户的 Primary Zone 等因素,自动创建并均衡各机器日志流的 Leader 的数目。具体表现为,通过将日志流的 Leader 聚集到同一机器上,减少分布式事务执行的可能,减少业务请求的 RT(Response Time)。

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

评论