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




