在上次的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设计的非凡神秘。