暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片
OceanBase 源码解读(十三):一号表.pdf
116
5页
7次
2023-09-29
免费下载
OceanBase 源码解读(十三):一号
OceanBase 有一套独特的元数据管理方式,它的一个设计目标是:
有的信息都保存在表里(甚至包括配置项)系统表的表模式也不能
Hardcode,且一切是自包含的没有外部依赖。这样一个明显的好处
在大规模集群管理时极大便利运维人员,但这也使得元数据有某些
循环依赖需要解开。用户表的元数据存储在系统表,系统表的元数据
存储在核心表,核心表的元数据存储在系统租户的一号表。一号表就
是开天辟地的那一个,THE ONE。
RootService(简 RS)即总控服务,负责整个 OceanBase 集群的
资源调度、资源分配、数据分布信息管理以及 Schema 管理等功能
而 RS 不是独立的进程,是启动在 __all_core_table 的 Leader
的一组服务。要想学习 RS 的相关代码,就需要先弄
__all_core_table。
__all_core_table 是什么?
从最基础的角度看,__all_core_table 是一张 key-value 结构的表,
表号为 1,是整个集群启动时生成的第一张表,它内部存储了 RS 启
动需要的一些信息。由于 RS 的启动、RS 提供的服务,都需要依赖
__all_core_table,使得 __all_core_table 成为了 RS 整个服务的
基础、RS 一切的起点。
1、 __all_core_table 的 schema
__all_core_table 是 key-yalue 结构的,它的 schema 硬编码在
int ObInnerTableSchema::all_core_table_schema(ObTableSchema
&table_schema) 中,可以在 ob_inner_table_schema_def.py 中查
看其 schema 具体内容。(其中 gm_columns 为隐藏列,自动生成时
间,可忽略。)
__all_core_table 的 rowkey 包含三个:table_name、row_id
column_name 每组 key 对应一个 column_value可以理解为将正
常的二维关系表拆分成一维进行存储。
of 5
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜