首批通过分布式安全可靠测评,为关键业务系统打造
副本概述
更新时间:2023-07-28 10:45:58
本节主要介绍副本相关的基础概念及 OceanBase 数据库支持的副本类型。
副本基础信息
在介绍副本前,需要了解以下信息:
Log:本文中主要指与事务相关的 Clog 日志。
MemTable:表示目前内存中已经被读写更改过的数据,也可称之为内存表。
SSTable:表示存储在磁盘中的基线数据,当数据被事务读取或修改时,会暂存在 MemTable 中。合并发生时 MemTable 中的数据会和 SSTable 中的数据进行合并形成更新版本的 SSTable。
为了数据安全和提供高可用的数据服务,每个日志流的数据在物理上存储多份,每一份叫做日志流的一个副本。每个副本,包括存储在磁盘上的 Tablet 的静态数据( SSTable )、存储在内存上的 Tablet 的增量数据( MemTable )以及记录事务的日志三类主要的数据。根据存储数据种类的不同,副本有几种不同的类型,以支持不同业务在在数据安全,性能伸缩性,可用性,成本等之间的选择。
副本类型
当前,OceanBase 数据库仅支持全能型副本:
全能型副本
目前支持的普通副本,拥有事务日志、MemTable 和 SSTable 等全部完整的数据和功能。它可以随时快速切换为 Leader 以对外提供服务。
全能型副本的特性如下表所示。
| 特性 | 描述 |
|---|---|
| LOG | 有,参与投票( SYNC_CLOG ) |
| MemTable | 有( WITH_MEMSTORE ) |
| SSTable | 有( WITH_SSSTORE ) |
| 数据安全 | 高 |
| 恢复为 Leader 的时间 | 快 |
| 资源成本 | 高 |
| 服务 | Leader 提供读写, Follower 可非一致性读 |
| 名称(缩写) | FULL( F ) |
| 副本类型值 | 0 |
说明
副本类型值是副本类型名称对应的 ID,内部代码是通过此 ID 来识别不同的副本类型。replica_type 字段如果是 varchar,则会显示副本类型名称;如果是 int,会显示副本类型值。