术语
以下术语基于字母顺序排序
Client
进行数据访问和操作,支持JDBC、JavaSDK、PythonSDK,同时也支持通过sqlline或MySQLShell命令行的方式连接数据库并进行数据操作。
Coordinator
Coordinator维护全局和分支事务的状态,驱动全局提交或回滚。同时为整个集群提供数据库的元信息服务,负责集群所有节点的生命周期管理,提供其他数据库服务依赖的需要全局一致性的服务。
Dingo-Proxy
Proxy提供向量操作的一个桥接作用,并且为PythonSDK提供HTTP和GRPC接口。
Executor
Executor是运行作业任务的计算节点,负责SQL对应分布式任务的执行与数据存储交互,解析并响应Client端发出的SQL请求和其他管理请求,实现JDBC协议,进行Job管理,实现Task的分布式执行,通过SDK调用下层Meta,StoreAPI实现数据库功能。
Partition
Partition是DingoDB中最小的数据存储块,每个分区表示一个数据范围。默认情况下,每个分区有三个副本。分区的副本称为对等体。同一分区的多个对等体通过Raft共识算法复制数据,因此对等体也是Raft实例的成员。dingdb使用Multi-Raft来管理数据。也就是说,对于每个Partition,都有一个对应的、孤立的Raft组。
Partition Split
Partition是随着数据写入的增加而生成的。分裂的过程称为Partitionsplit,Partitionsplit的机制是使用一个初始分区来覆盖整个键值空间,每次分区的大小或键的数量达到一定阈值时,通过分割现有的分区来生成新的分区。
Raft
Raft是一种leader-based的共识算法,保证多个节点的数据一致性,即使是在部分节点故障、网络延时、网络分割的情况下,它能够提高系统的容错性。
Raft Engine
RaftEngine是一个具有日志结构设计的嵌入式持久存储引擎,它是为分布式键值存储而构建的,用于存储多raft日志。DingDB支持使用RaftEngine作为日志存储引擎。
Region
Region是实际数据的分区,一个数据表可以通过一些分裂策略分裂成多个Region,一个Region只能属于某一个Partition下,不会跨Partition。
Store
Store是DingoDB的存储层,提供数据存储和检索服务,是一个高可用、高扩展、高性能并支持海量数据的分布式KV存储,除了支持场景的KV操作,还支持向量数据类型,支持向量相似度检索。