数据库交互数据编码方法及装置制造方法及图纸

技术编号:26762370 阅读:19 留言:0更新日期:2020-12-18 23:10
本发明专利技术提供一种数据库交互数据编码实现方法和装置,所述方法包括:设定存储模块内存储编码数据的初始地址;接收输入数据,将接收的输入数据作为中包中小包的数据本体依次存放于所述存储模块内从所述初始地址起除包头存储位置之外的地址,并对数据本体进行统计;根据小包边界信息确定当前小包内数据本体的数量,并将确定的数量填充到当前小包的小包头中;根据中包边界信息确定当前中包内小包的数量和中包数据量,并将确定的数据填充到当前中包的中包头中的小包数量信息位和中包数据量信息位;根据大包边界信息确定大包内中包的数量和大包数据量,并将确定的数据填充到大包头中的中包数量信息位和大包数据量信息位,以生成具有预定数据结构的大包。

【技术实现步骤摘要】
数据库交互数据编码方法及装置
本专利技术涉及数据编码
,尤其涉及一种数据库交互数据编码实现方法及装置。
技术介绍
随着数据量的增加,数据库访问延时越来越大,许多曾经在小数据上用传统方法很容易完成的任务,如今在大数据上就变得非常困难。目前最快的固态硬盘(SSD)存储可以达到12GB/s的读取速度,但即便这样的速度,如果数据库有15TB大小,想要用完整检索的方式完成一次查询仍然需要33小时。为了加快数据库查询速度,大都采用设计数据库专用处理器的方法来提高性能。数据库专用加速器是一种数据库专用处理器,在应用过程中,数据库专用加速器通常作为现在服务器(CPU)的协处理器角色出现。数据库专用处理器与CPU之间需要进行频繁的数据交互,在很多情况下数据交互性能成为整个CPU-数据库处理器系统的性能的关键。在传统数据库系统中,各数据库管理系统都运行在CPU中,各数据库管理系统都有各自独立的内部数据存储结构,如B+树。同时,多数数据库管理系统为了节省存储空间,通常对数据压缩后进行存储。另外,在装有数据库专用处理器的数据库管理系统中,数据管理工作仍由运行在CPU上软件数据管理系统来负责,即数据主要存储在CPU端的主存DRAM中。而数据处理交由专用加速器实现,这就导致了CPU和加速器之间频繁的数据交换,同时两者之间数据格式不同在交换时需要实时转换。数据库加速器在业界来说尚属新生事物,尚未形成标准的数据交互格式,为了尽可能优化CPU与数据库专用处理器之间数据交互性能,降低CPU端和加速器端数据转换延时,需要探寻一种高效的数据交互格式。
技术实现思路
有鉴于此,本专利技术实施例提供了一种数据库交互数据编码实现方法和装置,通过一种新的数据结构及其数据编码方式和实现装置,来进一步提升CPU与数据库专用处理器之间数据交互性能。本专利技术的一个方面,提供了一种数据库交互数据编码实现方法,该方法包括以下步骤:设定存储模块内存储编码数据的初始地址;接收输入数据,将接收的输入数据作为中包中小包的数据本体依次存放于所述存储模块内从所述初始地址起除包头存储位置之外的地址,并对数据本体进行统计;根据小包边界信息确定当前小包内数据本体的数量,并将确定的数量填充到当前小包的小包头中;根据中包边界信息确定当前中包内小包的数量和中包数据量,并将确定的数据填充到当前中包的中包头中的小包数量信息位和中包数据量信息位;根据大包边界信息确定大包内中包的数量和大包数据量,并将确定的数据填充到大包头中的中包数量信息位和大包数据量信息位,以生成具有如预定数据结构的大包;其中,所述预定数据结构的大包包括:大包头和至少一个中包,各中包包括中包头和至少一个小包,各小包包括小包头和至少一个数据本体;所述大包头包括中包数量信息位和大包数据量信息位,所述中包头包括小包数量信息位和中包数据量信息位,所述小包头包括数据本体数信息位。可选的,所述小包边界信息、中包边界信息和大包边界信息分别为小包末尾数据标志、中包末尾数据标志和大包末尾数据标志。可选地,所述大包头信息位还包括:第三信息位和第四信息位;所述大包头、中包头和小包头中的各个信息位的长度相同或不同。可选地,所述中包头还包括:中包类型信息位和中包ID信息位;所述方法还包括:接收中包ID信息和中包类型信息,分别将所述中包ID信息和中包类型信息存入所述ID信息位和中包类型信息位。可选地,所述方法还包括:在所述大包尾部形成列偏移信息位。本专利技术的另一方面,提供了一种数据库交互数据编码实现装置,该装置包括:初始地址设定模块,其用于设定存储模块内存储的初始地址;编码模块,用于执行如下步骤:接收输入数据,将接收的输入数据作为中包中小包的数据本体依次存放于所述存储模块内从所述初始地址起除包头存储位置之外的地址,并对数据本体进行统计;根据小包边界信息确定当前小包内数据本体的数量,并将确定的数量填充到当前小包的小包头中;根据中包边界信息确定当前中包内小包的数量和中包数据量,并将确定的数据填充到当前中包的中包头中的小包数量信息位和中包数据量信息位;根据大包边界信息确定大包内中包的数量和大包数据量,并将确定的数据填充到大包头中的中包数量信息位和大包数据量信息位,以生成具有如预定数据结构的大包;其中,所述预定数据结构的大包包括:大包头和至少一个中包,各中包包括中包头和至少一个小包,各小包包括小包头和至少一个数据本体;所述大包头包括中包数量信息位和大包数据量信息位,所述中包头包括小包数量信息位和中包数据量信息位,所述小包头包括数据本体数信息位。本专利技术的另一方面,提供的一种数据库交互数据编码实现方法包括以下步骤:设定存储模块内存储的初始地址,其中所述初始地址起的预定长度的存储位置用于作为大包的大包头、大包中第一个中包的中包头和所述第一个中包中第一个小包的小包头的信息位;基于与预定的数据结构对应的编码逻辑相匹配的数据输入要求向编码模块输入数据,其中,所述预定的数据结构包括:大包数据,该大包数据包括:大包头和至少一个中包,各中包包括中包头和至少一个小包,各小包包括小包头和至少一个数据本体;所述大包头包括中包数量信息位和大包数据量信息位,所述中包头包括小包数量信息位和中包数据量信息位,所述小包头包括数据本体数信息位;所述编码逻辑包括:预留包头信息位,接收小包数据,基于小包数据填充小包头和中包头,基于中包数据填充大包头;接收基于所述数据输入要求输入的数据并基于接收的数据编码成具有预定数据结构的大包数据。本专利技术的另一方面提供的一种数据库交互数据编码实现装置包括:初始地址设定模块,其用于设定存储模块内存储的初始地址,其中所述初始地址起的预定长度的存储位置用于作为大包的大包头、大包中第一个中包的中包头和所述第一个中包中第一个小包的小包头的信息位;数据输入模块,用于基于与预定的数据结构对应的编码逻辑相匹配的数据输入要求向编码模块输入数据,其中,所述预定的数据结构包括:大包数据,该大包数据包括:大包头和至少一个中包,各中包包括中包头和至少一个小包,各小包包括小包头和至少一个数据本体;所述大包头包括中包数量信息位和大包数据量信息位,所述中包头包括小包数量信息位和中包数据量信息位,所述小包头包括数据本体数信息位;所述编码逻辑包括:预留包头信息位,接收小包数据,基于小包数据填充小包头和中包头,基于中包数据填充大包头;编码模块,用于接收基于所述数据输入要求输入的数据并基于接收的数据编码成具有预定数据结构的大包数据。本专利技术实施例提供的数据库交互数据编码实现方法和装置,能够优化CPU与数据库专用处理器之间数据交互性能,降低数据传输延时。本专利技术的附加优点、目的,以及特征将在下面的描述中将部分地加以阐述,且将对于本领域普通技术人员在研究下文后部分地变得明显,或者可以根据本专利技术的实践而获知。本专利技术的目的和其它优点可以通过在书面说明及其权利要求书以及附图中具体指出的结构实现到并获本文档来自技高网
...

【技术保护点】
1.一种数据库交互数据编码实现方法,其特征在于,该方法包括以下步骤:/n接收输入数据,将接收的输入数据作为中包中小包的数据本体依次存放于存储模块内从初始存储地址起除包头存储位置之外的地址,并对数据本体进行统计;/n根据小包边界信息确定当前小包内数据本体的数量,并将确定的数量填充到当前小包的小包头中;/n根据中包边界信息确定当前中包内小包的数量和中包数据量,并将确定的数据填充到当前中包的中包头中的小包数量信息位和中包数据量信息位;/n根据大包边界信息确定大包内中包的数量和大包数据量,并将确定的数据填充到大包头中的中包数量信息位和大包数据量信息位,以生成具有如预定数据结构的大包;/n其中,所述预定数据结构的大包包括:大包头和至少一个中包,各中包包括中包头和至少一个小包,各小包包括小包头和至少一个数据本体;所述大包头包括中包数量信息位和大包数据量信息位,所述中包头包括小包数量信息位和中包数据量信息位,所述小包头包括数据本体数信息位。/n

【技术特征摘要】
1.一种数据库交互数据编码实现方法,其特征在于,该方法包括以下步骤:
接收输入数据,将接收的输入数据作为中包中小包的数据本体依次存放于存储模块内从初始存储地址起除包头存储位置之外的地址,并对数据本体进行统计;
根据小包边界信息确定当前小包内数据本体的数量,并将确定的数量填充到当前小包的小包头中;
根据中包边界信息确定当前中包内小包的数量和中包数据量,并将确定的数据填充到当前中包的中包头中的小包数量信息位和中包数据量信息位;
根据大包边界信息确定大包内中包的数量和大包数据量,并将确定的数据填充到大包头中的中包数量信息位和大包数据量信息位,以生成具有如预定数据结构的大包;
其中,所述预定数据结构的大包包括:大包头和至少一个中包,各中包包括中包头和至少一个小包,各小包包括小包头和至少一个数据本体;所述大包头包括中包数量信息位和大包数据量信息位,所述中包头包括小包数量信息位和中包数据量信息位,所述小包头包括数据本体数信息位。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收输入数据之前,设定存储模块内存储编码数据的初始地址。


3.根据权利要求1所述的方法,其特征在于,
所述小包边界信息、中包边界信息和大包边界信息分别为小包末尾数据标志、中包末尾数据标志和大包末尾数据标志。


4.根据权利要求1所述的方法,其特征在于,所述大包头信息位还包括:第三信息位和第四信息位;
所述大包头、中包头和小包头中的各个信息位的长度相同或不同。


5.根据权利要求1所述的方法,其特征在于,所述中包头还包括:中包类型信息位和中包ID信息位;
所述方法还包括:接收中包ID信息和中包类型信息,分别将所述中包ID信息和中包类型信息存入所述ID信息位和中包类型信息位。


6.根据权利要求1所述的方法,其特征在于,所述大包还包括在尾部的列偏移信息位;
所述方法还包括:在所述大包的尾部形成所述列偏移信息位。


7.一种数据库交互数据编码实现装置,其特征在于,该装置包括:
编码模块,用于执行如下步骤:
接收输入数据,将接收的输入数据作为中包中小包的数据本体依次存放于所述存储模块内从所述初始地址起除包头存储位置之外的地址,并对数据本体进行统计;
根据小包边界信息确定当前小包内数据本体的数量,并将确定的数量填充到当前小包的小包头中;
根据中包边界信息确定当前中包内小包的数量和中包数据量,并将确定的数据填充到当前中包的中包头中的小包数量信息位和中包数据量信息位;
根据大包边界信息确定大包内中包的数量和大包数据量,并将确定的数据填充到大包头中的中包数量信息位和大包数据量信息位,以生成具有如预定数据结构的大包;
其中,所述预定数据结构的大包包括:大包头和至少一个中包,各中包包括中包头和至少一个小包,各小包包括小包头和至少一个数据本体;所述大包头包括中包数量信息位和大包数据量信息位,所述中包头包括小包数量信息位和中包数据量信息位,所述小包头包括数据本体数信息位。


8.根据权利要求7所述的装置,其特征在于,该装置还包括:
初始地址设定模块,其用于设定存储模块内存储的初始地址。<...

【专利技术属性】
技术研发人员:鄢贵海卢文岩
申请(专利权)人:中科驭数北京科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1