浅谈OceanBase数据结构
OceanBase数据分为基线数据和增量数据两个部分,基线数据分布在多台ChunkServer上,增量数据全部存放在一台UpdateServer上。如下图所示,系统中有5个子表,每个子表有3个副本,所有的子表分布到4台ChunkServer 上。RootSever中维护了每个子表所在的ChunkServer的位置信息,UpdateServer存储了这5个子表的增量更新。
不考虑数据复制,各模块的数据结构如下:
基线数据的数据结构
- 每个表格按照主键组成一棵分布式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存储。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
从零开始仿写一个抖音App——开始
本文首发于简书——何时夕,搬运转载请注明出处,否则将追究版权责任。交流qq群:859640274 有人说我标题党,也怪我开始决定写的时候没有注意标题,也没想到会有这么多阅读量,的确会生出一些是非出来。那么从现在开始标题改为 从零开始仿写一个抖音App 系列。希望技术讨论能够多一点,没看文章就喷的人能够少一点。我会坚持写下去,好好提升自己的能力。 连载文章 2.从零开始仿写一个抖音app——基本架构与MVPs 3.从零开始仿写一个抖音App——Apt代码生成技术、gradle插件开发与protocol协议 本项目的 github 地址:MyTikTok 一、写在前面 这个坑可能会持续很久,之前开过好几个坑,但是都不长久。原因是计划赶不上变化。每过一段时间我都会感觉有更重要的事情要去做,所以之前开的坑就被我抛弃了。但是这一次不同,具体的不同点我会在下面一一列举出来。 1.关于目的:笔者目前在抖音的竞品里面做android端的视频拍摄和编辑这块。大公司大家也知道,各个业务都是分层的,所以我们平时的业务都是在音视频架构组封装的sdk之上进行的。所以一旦时间长久了自身的竞争力就会减弱,毕竟没有掌...
- 下一篇
局域网局域网架构简介
本文根据《鸟哥的Linux私房菜-服务器架设篇》第三章总结 局域网的布线规划 本文主要介绍的是小型局域网的架构,如果是比较大型的企业内部,那么将“配线架、线路设计、墙上网络接口”分别拆开施工的结构化布线会比较妥当。以下内容为假设仅有一条ADSL的对外连接的情况。 Linux 直接联网 -- 让 Linux 与一般 PC 的地位相同 特点:Linux 服务器可以作为内部的文件服务器或者是打印服务器。 优点:每个设备都给予一个相同的网络的私有 IP 就可以进行工作了,可享用局域网的功能的同时可以单独通过拨号连接 Internet 缺点:不安全,不容易进行网络控制 适用:一般家庭用户 Linux 直接联网 -- 让 Linux 与一般 PC 处于不同的地位相同 特点: Linux 服务器主要是提供 Internet 的 WWW 或 Mail 服务,且 Linux 有 Public IP 优点:易维护、配置,可以再 IP 路由器上设置简单的防火墙规则、如果 IP 路由器为功能全面的路由设备,可以定义较完整的防火墙规则,完善对内部主机的管理 缺点:不方便共享文件(服务器不在内部网络) 适用:小型...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Red5直播服务器,属于Java语言的直播服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装