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

OceanBase数据库分布概述

手机用户7761 2022-08-29
2264

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

Location Cache

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

分区的 Location 信息持久化到了 OceanBase 数据库内置的表中,持久化 Location 的内置表称为 Meta 表。为解决集群自举的问题,不同类型表的 Location 信息是按层次组织的,不同类型的表的 Location 会持久化到不同的 Meta 表中。各级 Meta 表的内容如下所示:

  • __all_virtual_core_root_table:记录 __all_root_table 的 Location。

  • __all_root_table:记录集群中所有内置表的 Location。

  • __all_virtual_meta_table:记录集群中所有租户的用户创建的表的分区的 Location。

副本类型

根据分区副本存储的数据种类的不同,副本被划分成不同的类型,以支持不同业务在数据安全、性能伸缩性、可用性、成本等之间的选择。目前 OceanBase 数据库支持定义以下四种副本类型:

  • 全能型副本

  • 日志型副本

  • 加密投票型副本

  • 只读型副本

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

评论