星环分布式存储TDDMS大揭秘(二)TDDMS是什么

友情链接:


TDDMS是什么

TDDMS是星环自研的一个分布式数据管理系统,该系统搭建了一个通用的分布式存储处理框架,提供了数据的分布管理、元信息管理、分布式事务、分布式一致性协议以及数据高可用保障。TDDMS 支持多种不同的数据模型,并为不同的数据模型提供了格式化的数据读写接口,便于分布式计算引擎进行数据读写等操作,真正实现了多源数据的高效融合。

与HDFS/TDFS等分布式文件系统定位不同,TDDMS本身不对外提供数据/文件存储服务,而是通过与存储引擎结合的方式,对接不同的存储引擎插件,提供不同的数据模型,目前已接入包括列式关系存储引擎Holodesk,图关系存储引擎StellarFS,倒排索引搜索引擎Lucene,以及KV存储引擎Tab(内置,不对外提供服务)等多个存储引擎。

image.png

TDDMS架构

接口层

  • TDDMS WebServer:负责监控TDDMS集群的状态,包括Master和Tablet Server,并提供运维管理能力,以及各类Restful API服务;同时,也可以借助webserver,看到每张表的tablet分布,以及每个tablet Server上存储的表数据;
  • TDDMS Restful API:运维管理的北向接口,支持数据重分布、清理GC、快照恢复等;
  • TDDMS Client:Quark server调用接口;

管理层

Master Server由以下三大功能组成:

image.png

① Raft实例:

该部分由多个Master Server组成一个Raft Group,作用是负责存储数据的元信息, 一般由3或5(奇数)个一组,内部通过Raft算法保证每个Master内元数据的一致性,并选出Leader统一对外提供服务。如:

image.png

Group 需要做的事有:心跳检测、leader选举、数据同步以及数据一致性检测。

② 并发控制:

除了基于Raft协议在多台服务器上构建高可用服务之外,MasterServer还采用MVCC(多版本机制)进行并发控制,使用混合逻辑时钟算法(Hybrid Logic Clock)生成有序且可比较的事务时序号实现并发控制。

每一次提交修改时不是直接变更数据项,而是创建一个变更。这样会使得数据项每次变更都会增加一个新的版本,每张表事务的版本号是递增的,因此通过版本号就可以判断数据的有效期以及事务的提交顺序。

此外,TDDMS还提供了多种隔离控制方式以应对不同的场景需求防止commit冲突,详细信息查看后续章节。

③ 元数据管理:

TDDMS通过内存数据库进行表级别的tablet元数据管理,存储的表级别的tablet元信息相关数据会被读取到内存中。下图为Master Server的数据目录样例,实际存储的数据量很小。Quark Computing从Master Leader获取表的Tablet信息后,会访问各节点的Tablet Server获取具体的数据。

image.png

存储层

存储层涉及一个新的服务角色即Tablet Server。

Tablet是数据分布的基本单位(分片),由TabletServer进行管理。不同表的数据以tablet的粒度分布在各个节点的各个磁盘上。Tablet的分布决定了,表的数据实际存放在多少块磁盘上,直接影响了表的读写性能。星环提供了多种方式简化Tablet数量和分布的设置,具体查看后续章节。

硬件层

副本分配保证了节点内数据在磁盘间保持均衡。实际上每个服务器节点都保存了完整的一张表的数据,但不同磁盘之间的tablet不会重叠。


简单介绍了不同架构层的作用后我们可以发现,前述的内容共同组成了分布式数据库应该要有的特性,例如提高性能、保证数据一致性、保证高可用、数据恢复等功能。那么具体这些特性是怎么实现的呢?下一篇我们将更深入的了解各技术特性是如何实现的。


下一篇:分布式一致性技术是如何实现的(上)

评论
登录后可评论
发布者
星小环分享号
文章
182
问答
207
关注者
27
banner
关注星环科技
获取最新活动资讯

加入TDH社区版技术交流群

获取更多技术支持 ->

扫描二维码,立即加入