在介绍副本前,需要先对以下名词进行释义:
Log:本文中主要指与事务相关的 Clog 日志。
MemTable:表示目前内存中已经被读写更改过的数据,亦可称之为内存表。
SSTable:表示存储在磁盘中的基线数据,当数据被事务读取或修改时,会暂存在 MemTable 中。合并发生时 MemTable 中的数据会和 SSTable 中的数据进行合并形成更新版本的 SSTable。
OceanBase 数据库是以表分区(partition)为原子粒度进行管理的,为了数据安全和提供高可用的数据服务,每个分区数据在物理上存储多份,每一份叫做分区的一个副本。每个副本,包括存储在磁盘上的静态数据(SSTable)、存储在内存的增量数据(MemTable)、以及记录事务的日志三类主要的数据。根据存储数据种类的不同,副本有几种不同的类型,以支持不同业务在在数据安全,性能伸缩性,可用性,成本等之间的选择。
OceanBase 数据库中有多种副本类型。本章节将分篇介绍副本类型和副本相关的操作: