[发明专利]高效支持混合分布式交易和分析型查询的表存储结构构造方法有效
申请号: | 202011205014.9 | 申请日: | 2020-11-02 |
公开(公告)号: | CN112434029B | 公开(公告)日: | 2022-07-08 |
发明(设计)人: | 陈伟;富浩;臧铖;胡宏雀;张云粮 | 申请(专利权)人: | 浙商银行股份有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/28;G06Q40/02 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 刘静 |
地址: | 311200 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 高效 支持 混合 分布式 交易 分析 查询 存储 结构 构造 方法 | ||
1.一种高效支持混合分布式交易和分析型查询的表存储结构构造方法,其特征在于:
创建基于行存的表存储结构,该结构包括键Key和值Value两个部分;
构建表存储结构中键部分:键部分用于记录表与存入数据相关的数据基础信息,保存数据属性,包括:TID、RID、CFID、Row ID、Command ID、Timestamp、Delete Mark,其中TID表示键所在表的地址;RID表示所要存储数据列地址;CFID表示列簇的id号;Row ID表示所要存储数据行地址;Command ID表示记录一个事务中产生写操作的SQL行为;Timestamp表示时间戳;Delete Mark表示数据删除的状态;这些信息在键结构上按顺序排列且占用空间大小固定;还包括自定义信息:Key Columns(Fixed Width)、Key Column(Var Width),其中Key Columns(Fixed Width)表示键列的数据类型为固定长度数据类型;Key Column(VarWidth)表示键列的数据类型为变长数据类型;
构建表存储结构中值部分:值部分则用于有序地记录和保存数据,由Value Columns(Fixed Width)、IsNulls、Variable Width Offsets、Value Columns(Variable Width)四部分组成,其中Value Columns(Fixed Width)按顺序排列其中数据,从Val Col 1到ValCol N;IsNulls表示数据是否为空;Variable Width Offsets表示可变宽度补偿,是ValueColumns(Variable Width)的初始标志;Value Columns(Variable Width)接着ValueColumns(Fixed Width)继续按顺序排列数据,从Val Col N+1到Val Col N+M;
所述表存储结构存储数据的规则如下:
对于DDL中创建表的操作:如果没有指定主键,则采用一个隐藏的子增列作为其主键;如果用户指定了主键,则其必须满足最多有一个变长列且变长列为主键的最后一列;
对于DML和DQL操作:假设TID为事务的ID,S(TID)={Pending,Committed,Aborted}为该事务的状态,M(K,TID)={Kept,Deleted}是键值为K的元组在事务TID上的标志位;当数据进行增删改查时,事务状态为Pending,接着确定事务合法性,按规则对数据进行不同操作。
2.根据权利要求1所述的一种高效支持混合分布式交易和分析型查询的表存储结构构造方法,其特征在于,对于SELECT操作,合法的元组通过如下规则读取:
定义VMTID(K,TID)为最大的合法事务ID,则有:VMTID(K,TID)是在存储中对于Key K,最大的Transaction ID选择为,当Transaction IDTID时,状态为Committed的Transaction ID或者Transaction ID=TID时,状态为Pending的Transaction ID;
从而有如果M(K,VMTID)=Kept,则返回结果为VMTID;否则返回NULL。
3.根据权利要求1所述的一种高效支持混合分布式交易和分析型查询的表存储结构构造方法,其特征在于,对于INSERT操作,合法的插入操作通过如下规则完成:
定义DMTID(K)为最大的确定性事务ID,则有:DMTID(K)是在存储中对于Key K,最大的Transaction ID选择为,选择状态为Pending的Transaction ID或者状态为Committed的Transaction ID;
从而对于状态为Pending的Transaction ID,将元组(K,TID,V1,V2,…,Vn)分裂为元组序列(K,TID,NULL)和(K,TID,V1),(K,TID,V2),…,(K,TID,Vn),对于元组(K,TID,Vi),Vi为第i个插入数据,插入规则如表1和表2:
表1
表2
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙商银行股份有限公司,未经浙商银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011205014.9/1.html,转载请声明来源钻瓜专利网。