浅谈OceanBase数据结构

简介:

OceanBase数据分为基线数据和增量数据两个部分,基线数据分布在多台ChunkServer上,增量数据全部存放在一台UpdateServer上。如下图所示,系统中有5个子表,每个子表有3个副本,所有的子表分布到4台ChunkServer 上。RootSever中维护了每个子表所在的ChunkServer的位置信息,UpdateServer存储了这5个子表的增量更新。
OceanBase数据结构

不考虑数据复制,各模块的数据结构如下:

基线数据的数据结构

  • 每个表格按照主键组成一棵分布式B+树,主键由若干列组成;
  • 每个叶子节点包含表格一个前开后闭的主键范围(rk1,rk2]内的数据;
  • 每个叶子节点称为一个子表(tablet),包含一个或者多个SSTable;
  • 每个SSTable内部按主键范围有序划分为多个块(block)并内建块索引(block index);
  • 每个块的大小通常在4~64KB之间并内建块内的行索引;
  • 数据压缩以块为单位,压缩算法由用户指定并可随时变更;
  • 叶子节点可能合并或者分裂;
  • 所有叶子节点基本上是均匀的,随机地分布在多台ChunkServer机器上;
  • 通常情况下每个叶子节点有2-3个副本;
  • 叶子节点是负载平衡和任务调度的基本单元;
  • 支持布隆过滤器的过滤。

增量数据的数据结构

  • 增量数据按照时间从旧到新划分为多个版本;
  • 最新版本的数据为一棵内存中的B+树,称为活跃MemTable;
  • 用户的修改操作写入活跃MemTable,到达一定大小后,原有的活跃MemTable将被冻结,并开启新的活跃MemTable接受修改操作;
  • 冻结的MemTable 将以SSTable的形式转储到SSD中持久化;
  • 每个5STable内部按主键范围有序划分为多个块并内建块索引,每个块的大小通常为4~8KB并内建块内行索引,一般不压缩;
  • UpldateScver支持主备,增量数据通常为2个副本,每个副本支持RAID1存储。
目录
相关文章
|
6月前
|
存储 SQL 关系型数据库
关系型数据库数据结构化存储
【5月更文挑战第8天】关系型数据库数据结构化存储
94 6
|
3月前
|
JSON NoSQL MongoDB
MongoDB Schema设计实战指南:优化数据结构,提升查询性能与数据一致性
【8月更文挑战第24天】MongoDB是一款领先的NoSQL数据库,其灵活的文档模型突破了传统关系型数据库的限制。它允许自定义数据结构,适应多样化的数据需求。设计MongoDB的Schema时需考虑数据访问模式、一致性需求及性能因素。设计原则强调简洁性、查询优化与合理使用索引。例如,在构建博客系统时,可以通过精心设计文章和用户的集合结构来提高查询效率并确保数据一致性。正确设计能够充分发挥MongoDB的优势,实现高效的数据管理。
64 3
|
3月前
|
存储 SQL 数据库
数据库与数据结构设计
数据库与数据结构设计【8月更文挑战第22天】
23 0
|
3月前
|
存储 JSON NoSQL
Tair的发展问题之Tair 扩展了的高级数据结构有哪些
Tair的发展问题之Tair 扩展了的高级数据结构有哪些
|
6月前
|
Cloud Native 关系型数据库 MySQL
云原生数据仓库产品使用合集之在ADB中,如何将源数据的多表(数据结构一致)汇总到一张表
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
6月前
|
存储 NoSQL 分布式数据库
分布式NoSQL列存储数据库Hbase_高级思想(八)
分布式NoSQL列存储数据库Hbase_高级思想(八)
65 0
|
存储 NoSQL 关系型数据库
PostgreSQL中的变长数据结构Varlena
在本文是PostgreSQL学习系列---基础数据类型的第二篇,对PG中的Varlena类型进行了介绍,内容还会随着学习进行不断补充~
1549 0
|
存储 数据采集 数据管理
数据仓库和数据库的区别是什么?底层原理是什么?
数据仓库和数据库的区别是什么?底层原理是什么?
291 0
|
存储 SQL 算法
《OceanBase 存储引擎结构》下 | 学习笔记
快速学习《OceanBase 存储引擎结构》下
《OceanBase 存储引擎结构》下 | 学习笔记
|
存储 关系型数据库 数据库
【数据库专题】一文搞懂 B+树凭什么成为关系型数据库索引的主流数据结构
【数据库专题】一文搞懂 B+树凭什么成为关系型数据库索引的主流数据结构
【数据库专题】一文搞懂 B+树凭什么成为关系型数据库索引的主流数据结构