广播表
广播表(Broadcast Table)是 TDSQL Boundless 中的一种表数据复制策略,指将表数据完整复制到集群的所有计算节点上,以便与大数据表进行高效的 JOIN 操作或者减少涉及多表操作时的分布式事务。由于广播表数据同步带来开销较大,适合“写少读多”的场景。
Compaction
合并/压缩合并(Compaction)是 LSM-Tree 存储引擎中的核心机制,负责将多个小数据文件合并为更少、更大的有序文件,以提升查询性能和优化存储空间。该机制通过后台异步执行多路归并排序,清理已删除或过期的数据,同时减少文件数量以降低查询时的多路归并开销。
数据亲和
数据亲和(Data Affinity)是将相关数据存储在同一节点或附近节点的技术,以提高数据访问效率。通过减少数据跨节点传输需求,可以显著降低延迟和网络流量,提升查询性能。TDSQL Boundless 在调度过程中会遵守自动或者手动设定的数据亲和规则,以确保会被同时访问的数据被一起调度迁移。
DDL
数据库模式定义语言(Data Definition Language,DDL),主要的命令有 CREATE、ALTER、DROP 等。
DML
数据库操纵语言(Data Manipulation Language,DML),命令是 SELECT、UPDATE、INSERT、DELETE。
数据对象
数据对象(Data Object)是表、分区、索引等数据库对象的逻辑概念。
分布式事务
分布式事务(Distributed Transaction)在多节点之间进行协同处理,共同承担单一事务职责。且对外呈现 ACID 的事务特性。在 TDSQL Boundless 中分布式事务模型为两阶段提交 + 多版本并发控制 + Time-Ordering。
间隙锁
间隙锁(Gap Lock)是 MySQL InnoDB 存储引擎在可重复读(REPEATABLE READ) 隔离级别下使用的一种锁机制。它锁定的是索引记录之间的间隙(Gap),即一个不确定义具体记录、但可以插入新记录的空间。其主要目的是防止其他事务在间隙中插入新数据,从而解决“幻读”问题。例如,它可能锁定某个值范围(如10到20)之间的空隙,阻止插入此范围内的新值。TDSQL Boundless 也具备 Gap Lock 能力。
全局时间戳
全局时间戳(Global Timestamp)是 TDSQL Boundless 中用于生成全局唯一且单调递增的时间戳标识的服务或机制,能够为分布式事务分配全局一致的时间戳,确保事务的全局顺序和一致性。
对等节点
对等架构节点(HyperNode),包含计算、存储两部分引擎,完整具备从计算到存储全链路的功能。
索引
索引(Index)是数据库中的一种排序数据结构,用于快速定位满足特定条件的记录。类似于书籍的目录,通过存储键值及其对应的数据位置,使查询操作能够跳过不必要的扫描过程,显著提高检索速度。
LSM-Tree
LSM-Tree(Log-Structured Merge Tree,日志结构合并树)是一种专为写密集型场景设计的数据结构,通过将随机写入转换为顺序写入,大幅提升写入性能,被广泛应用于现代数据库存储引擎。LSM-Tree 是 TDSQL Boundless 行存引擎的基础数据结构。
元数据集群
TDSQL Boundless 的元数据服务集群(Meta Cluster,MC),负责全局事务 ID 分配和元数据管理,以及数据调度。
MDL
元数据锁(Metadata Lock,MDL)是 TDSQL Boundless 中的一种表级锁机制,用于保护数据库对象的元数据(如表结构、索引、触发器等)在并发访问时的一致性。
MVCC
MVCC(Multi-Version Concurrency Control,多版本并发控制)是数据库管理系统中的一种并发控制机制,通过为数据维护多个版本来实现读写操作的非阻塞并发执行。其核心思想是让读操作访问历史版本数据,写操作创建新版本,从而避免读写冲突,显著提升数据库在高并发场景下的性能表现。
非分布式事务
非分布式事务(Non-Distributed Transaction)是所有操作都在单个数据库节点上完成的事务。事务中的所有SQL语句都访问和修改同一个数据库实例中的数据,其ACID特性由该单一节点保证。这与涉及多个独立节点的分布式事务形成对比。在 TDSQL Boundless 中当事务操作的数据都在相同节点时可被优化为非分布式事务。
OLAP
联机分析处理(On-Line Analytical Processing,OLAP),是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
Online DDL
数据定义语言在线执行(Online DDL)指在数据库保持在线、服务不中断的情况下,执行数据定义语言(DDL)操作,如修改表结构。
OLTP
联机事务处理(On-Line Transaction Processing,OLTP),是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。
乐观事务
乐观事务是(Optimistic Transaction)一种事务处理模型,在执行前假定不会发生写冲突,将数据修改缓存在内存中,在提交时才检查冲突并加锁。适用于写操作较少、读操作较多的场景,冲突率低时性能更高,但冲突频繁时回滚代价较大。
并行查询
并行查询(Parallel Query,PQ)是将复杂查询分解为多个子任务并行执行。
分区表
分区表(Partition Table)是数据库中将大表数据按特定规则划分为多个更小、更易管理的逻辑单元(分区)的技术。每个分区可以独立存储和管理,但对外仍表现为一个完整的表。在 TDSQL Boundless 中分区表的分区是调度的最小单位。
悲观事务
悲观事务(Pessimistic Transaction)是一种事务处理模型,在执行前预先对相关数据加锁,确保事务一定能够执行成功后才开始提交。适用于写操作较多的系统,从数据库层面避免写写冲突。
Raft 算法
Raft算法(Raft Algorithm)是一种用于分布式系统的共识算法,通过选举领导者和日志复制机制,确保多个节点之间的数据一致性。该算法将一致性问题分解为领导者选举、日志复制和安全性三个相对独立的子问题,相比Paxos算法更易于理解和实现。TDSQL Boundless 的高可用和数据冗余机制是基于 Raft 共识算法开发的。
Region
数据分片(Region),一段连续的 Key 空间。
RPC
RPC(Remote Procedure Call,远程过程调用)是一种进程间通信协议,允许程序调用另一台机器(或同一台机器的其他进程)上的函数或过程,就像调用本地函数一样,隐藏了网络通信的细节。
副本
在 TDSQL Boundless 中,数据使用 Raft 共识协议进行高可用冗余复制,其中每份数据被称为副本(Replica)。副本会分为 Leader 和 Follower 角色,其中 Leader 副本可承担读写职责,而 Follower 副本一般只进行数据复制并在需要的前提下承担读取。
复制组
复制组(Replication Group,RG),包含一个或多个 Region,对应一个 Raft 日志流。
RocksDB
RocksDB 是由 Facebook 基于 Google LevelDB 开发的高性能嵌入式键值存储引擎,采用 LSM-Tree(日志结构合并树)架构,专为高速存储设备(如 SSD)优化,支持高吞吐量写入和快速点查询,被广泛应用于分布式数据库、流处理系统等场景。TDSQL 的存储引擎基于 RocksDB 进行开发。
SQLEngine
TDSQL Boundless 的计算引擎,全面兼容 MySQL 8.0 实现,负责 SQL 解析、查询优化和执行。
SSTable
SSTable(Sorted String Table,排序字符串表)是 LSM-Tree 中存储在磁盘上的不可变数据文件,其核心特点是按键有序存储。数据以键值对形式按主键排序后写入,这种有序性使得范围查询和点查询(配合布隆过滤器)更加高效。SSTable 一旦写入磁盘便不可修改,更新和删除操作通过追加新记录实现,旧数据在 Compaction 过程中被清理。
表
表(Table)是数据库中存储数据的基本结构,由行和列组成。每一行代表一条记录,每一列代表一个字段(属性)。表是数据库中最基本的组成单位,用于组织和存储结构化数据。
TDStore
TDSQL Boundless 的存储引擎,基于 LSM-Tree + SSTable 结构,使用 Raft 共识协议进行容灾。
2PC
2PC(Two-Phase Commit,两阶段提交)是分布式系统中用于保证事务原子性的经典协议,通过协调者和参与者的交互,确保所有节点要么全部提交事务,要么全部回滚,实现强一致性。