共计 972 个字符,预计需要花费 3 分钟才能阅读完成。
在上次的 TcaplusDB 知识库中,TcaplusDB 君为大家解说了 TcaplusDB 所用的基于 HASH 表的 Key-value 存储引擎 TXHDB。存储引擎作为数据库的撑持底盘,其重要性半信半疑,而在本次的知识库系列分享中,TcaplusDB 君要跟大家分享一个对于数据库而言也很重要的构造,引擎计算层。
上面我将介绍一下 TcaplusDB 所用的引擎计算层 TcapRecord 的设计逻辑。
TcapRecord 的设计逻辑
为灵便反对多种表类型及简单数据存储,引擎计算层设计了 TcapRecord 对象来表白简单数据记录对象,在引擎计算层将简单数据对象转换成简略的 key-value 二进制数据记录,以对底层引擎屏蔽数据表形容等细节,理论底层只需实现 key-value 模型的通用存储接口。
TcapRecord 反对两种构造,表构造和嵌套数据结构。
表构造
TcaplusDB 底层是 Key-value 存储格局,如何映射到用户的操作的相似 Table 的构造呢?
field1 field2 field3 field4 field5 field6 ….
一个表,有 N 多字段,在 TcaplusDB 中能够选定一个表的多个字段做为 key,其余字段做为 value 来存储到 TcaplusDB 中。用户还能够选定多个 key 字段中的局部字段来做索引(留神索引必须蕴含 splittablekey — 根据该 key 来做数据分布)。
引擎计算层负责表构造到 Key-value 构造的映射. 实质上就是把所有的 key 字段依据表构造序列化为一个 key, 所有的 value 字段依据表构造序列化为一个 value,如下图所示:
嵌套数据结构
应用 TcaplusDB 的嵌套数据结构,有助于将关系型数据库应用时须要的多张表定义,转化为单张表定义。在解析数据时,对二进制数据进行遍历,依据 tag 信息解析各字段的 field number 及 value 数据。在数据打包时,遍历各字段,依据字段 field number,类型,value 数据,打包 tag 及 value 数据到指定的 buffer 里。在遇到解析的 value 为嵌套数据结构时,则依据元数据的定义,将 value 依照 tag、length、value 进行一一字段遍历及解析,实现嵌套数据结构的读写能力。
TcaplusDB 君本次的知识库分享就到这里完结啦,后续咱们将揭开更多 TcaplusDB 设计的非凡神秘。