当前位置: 首页 > 专利查询>SAP欧洲公司专利>正文

高级数据库解压缩制造技术

技术编号:26792058 阅读:23 留言:0更新日期:2020-12-22 17:07
用于解压缩数据的方法、系统和计算机程序产品。响应于访问存储压缩块集合中的数据的请求,识别存储压缩块集合中的一个或多个压缩块。使用前端编码对识别的压缩块内的字符串前缀进行解压缩。使用重新配对解压缩对识别的压缩块内的字符串后缀进行解压缩。生成未压缩数据。

【技术实现步骤摘要】
高级数据库解压缩对相关申请的交叉引用本申请要求Lasch等人于2019年6月21日提交的名称为“AdvancedDatabaseCompressionOnModernHardware”的美国临时专利申请No.62/864,782的优先权,通过引用将其全部公开内容合并于此。
本公开通常涉及数据处理,更具体地,涉及数据库压缩和解压缩。
技术介绍
在数据库中,域编码是一种广泛用于列存储以压缩和查询加速的技术。它用唯一的整数值标识符来替换列中的值。从标识符回到实际值的映射被存储在附加数据结构(字典)中。这意味着使用域编码表示列需要两个数据结构:字典和值标识符数组。字典将不同的值存储在列中,并提供从唯一标识符到值的映射。值标识符数组充当字典的索引。这也称为索引向量。在列中多次出现的值仅在字典中存储一次。这意味着通过此方法,显著地压缩了仅包含在列中多次出现的几个不同值的列。这是因为用于替换值的值标识符通常显著小于实际值。通过用值标识符替换值,域编码还可以提高性能,因为某些可以在不进行域编码的情况下对值本身执行的操作也可以直接在值标识符上执行。对于存储字符串的列,用于域编码的字典是字符串字典。字符串字典是一种数据结构,实现从字符串集合X到唯一整数标识符的字符串双射映射。对于字符串字典,实现压缩的最简单方法之一是按字典顺序对字典中的字符串进行排序,然后应用前端编码,将每个字符串与其前任进行比较(即,(块的)第一个字符串被完全存储。后续字符串存储与前任共享的前缀和压缩后缀的长度)。前端编码通常被应用于固定大小的字符串存储桶。
技术实现思路
在一些实现方式中,当前主题涉及用于执行数据解压缩的计算机实现的方法。所述方法可以包括:响应于访问存储压缩块集合中的数据的请求,识别存储压缩块集合中的一个或多个压缩块;使用前端编码对识别的压缩块内的字符串前缀进行解压缩;使用重新配对解压缩对识别的压缩块内的字符串后缀进行解压缩;以及生成未压缩数据。在一些实现方式中,当前主题可以包括以下可选特征中的一个或多个。在一些实现方式中,重新配对解压缩可以包括迭代扩展符号树中与存储在识别的压缩块中的数据相对应的每个符号。符号树可以包括多个节点。压缩块可以是从字典中的字符串的一个或多个前端编码存储桶生成的。前端编码存储桶被配置为被采样以形成一个或多个超级块。超级块的每一个可以被配置为被压缩以生成用于压缩压缩块的共享语法。多个节点可以包括以下至少之一:末端字符、非末端字符及其任意组合。在一些实现方式中,所述方法还可以包括并行执行多个重新配对解压缩。末端字符的数量可以被限制为预定数量。此外,每个符号的迭代扩展次数可以基于预定数量来确定。在一些实现方式中,重新配对解压缩可以包括:初始化与符号树中的每个符号相对应的存储器中的堆栈位置;使用向量化重新配对扩展将符号树中的每个符号从存储装置同时加载到存储器中;通过评估与符号相关联的一个或多个谓词,将加载的符号合并到未压缩数据中;以及使用预定数量重复同时加载和合并。在一些实现方式中,压缩块集合中的每个块可以包括存储桶头和压缩存储桶的序列。块大小可以至少为以下之一:固定大小和可变大小。此外,可以使用重新配对压缩对压缩块进行压缩。在一些实现方式中,当前主题涉及用于执行数据库压缩的计算机实现的方法。所述方法可以包括:从数据集生成具有块大小和前端编码存储桶大小的压缩字符串字典;将前端编码应用于具有前端编码存储桶大小的字典中的字符串的一个或多个存储桶,以生成字符串的一个或多个前端编码存储桶;将生成的字符串的前端编码存储桶的一个或多个部分级联,以形成具有块大小的一个或多个块;压缩一个或多个块中的每一个;以及存储一个或多个压缩块集合,其中,压缩块集合存储数据集中的所有字符串。在一些实现方式中,当前主题可以包括以下可选特征中的一个或多个。在一些实现方式中,压缩块集合中的每个块可以包括存储桶头和压缩存储桶的序列。在一些实现方式中,该方法还可以包括在字符串的多个前端编码存储桶中的字符串的存储桶之间插入终止符。终止符可以未压缩。在一些实现方式中,每个字符串可以包括字符串终止符,其中每个字符串终止符被压缩。在一些可选实现方式中,每个字符串的长度可以被存储并与该字符串一起压缩。在一些实现方式中,块大小可以是以下至少之一:固定大小和可变大小。在一些实现方式中,压缩可以包括独立地并行执行多个存储桶中的每个前端编码存储桶的压缩。在一些实现方式中,一个或多个前端编码存储桶可以被配置为被采样以形成一个或多个超级块。每个超级块可以被配置为随后被压缩以生成用于压缩块的共享语法。例如,共享语法可以用于执行块的加速压缩。在一些实现方式中,块的压缩可以包括重新配对压缩。在一些实现方式中,该方法还可以包括:接收访问存储压缩块集合中的数据的请求;响应于接收的请求,识别存储压缩块集合中的一个或多个压缩块;以及至少部分地解压缩识别的压缩块以生成未压缩数据。解压缩可以包括:使用前端编码对识别的压缩块内的字符串前缀和后缀进行解压缩;以及使用重新配对解压缩对识别的压缩块内的字符串后缀进行解压缩。此外,重新配对解压缩可以包括迭代扩展符号树中与存储在识别的压缩块中的数据相对应的每个符号。还描述了存储指令的非暂时性计算机程序产品(即,物理体现的计算机程序产品),当指令由一个或多个计算系统的一个或多个数据处理器执行时,使至少一个数据处理器执行本文中的操作。类似地,还描述了计算机系统,可以包括一个或多个数据处理器和耦合到一个或多个数据处理器的存储器。存储器可以临时或永久地存储使至少一个处理器执行本文描述的一个或多个操作的指令。另外,方法可以由单个计算系统内的一个或多个数据处理器或分布在两个或多个计算系统之间的一个或多个数据处理器来实现。这样的计算系统可以被连接并且可以经由一个或多个连接来交换数据和/或命令或其他指令等,这些连接包括但不限于通过网络(例如,互联网、无线广域网、局域网、广域网、有线网络等),通过多个计算系统中的一个或多个之间的直接连接等。在附图和以下描述中阐述了本文描述的主题的一个或多个变型的细节。从说明书和附图以及从权利要求书中,本文描述的主题的其他特征和优点将是显而易见的。附图说明结合在本说明书中并构成本说明书的一部分的附图示出了本文所公开的主题的某些方面,并且与说明书一起帮助解释了与所公开的实现方式相关联的一些原理。在附图中:图1示出示例性的普通前端编码压缩方法;图2a示出根据当前主题的一些实现方式的用于执行字典压缩的示例性系统;图2b示出根据当前主题的一些实现方式的用于执行图2a所示的字典压缩的示例性系统的更多细节;图3示出根据当前主题的一些实现方式的示例性实验数据集;图4示出根据当前主题的一些实现方式的示例性实验测量压缩次数;图5示出根据当前主题的一些实现方式的用于执行字典数据压缩的示例性处理;图6示出根据当前主题的一些实现方式的字典/字符串压缩处理的替代实现方本文档来自技高网
...

【技术保护点】
1.一种计算机实现的方法,包括:/n响应于访问存储压缩块集合中的数据的请求,识别存储压缩块集合中的一个或多个压缩块;以及/n使用前端编码对识别的压缩块内的字符串前缀进行解压缩;/n使用重新配对解压缩对识别的压缩块内的字符串后缀进行解压缩;以及/n生成未压缩数据。/n

【技术特征摘要】
20190621 US 62/864,782;20200330 US 16/834,8391.一种计算机实现的方法,包括:
响应于访问存储压缩块集合中的数据的请求,识别存储压缩块集合中的一个或多个压缩块;以及
使用前端编码对识别的压缩块内的字符串前缀进行解压缩;
使用重新配对解压缩对识别的压缩块内的字符串后缀进行解压缩;以及
生成未压缩数据。


2.根据权利要求1所述的方法,其中,重新配对解压缩包括迭代扩展符号树中与存储在识别的压缩块中的数据相对应的每个符号;
一个或多个压缩块是从字典中的字符串的一个或多个前端编码存储桶生成的,一个或多个前端编码存储桶被配置为被采样以形成一个或多个超级块,其中,一个或多个超级块的每一个被配置为被压缩以生成用于压缩一个或多个压缩块的共享语法。


3.根据权利要求2所述的方法,其中,符号树包括多个节点,其中,多个节点包括以下至少之一:末端字符、非末端字符及其任意组合。


4.根据权利要求3所述的方法,还包括:并行执行多个重新配对解压缩。


5.根据权利要求4所述的方法,其中,末端字符的数量被限制为预定数量,其中,每个符号的迭代扩展次数基于所述预定数量来确定。


6.根据权利要求5所述的方法,其中,重新配对解压缩包括:
初始化与符号树中的每个符号相对应的存储器中的堆栈位置;
使用向量指令将符号树中的每个符号从存储装置同时加载到存储器中;
通过评估与符号相关联的一个或多个谓词,将加载的符号合并到未压缩数据中;以及
使用所述预定数量重复同时加载和合并。


7.根据权利要求1所述的方法,其中,压缩块集合中的每个块包括存储桶头和压缩存储桶的序列。


8.根据权利要求1所述的方法,其中,块大小为以下至少之一:固定大小和可变大小。


9.根据权利要求1所述的方法,其中,使用重新配对压缩对一个或多个压缩块进行压缩。


10.一种系统,包括:
至少一个可编程处理器;以及
非暂时性机器可读介质,存储指令,当指令由至少一个可编程处理器执行时,使至少一个可编程处理器执行以下操作:
响应于访问存储压缩块集合中的数据的请求,识别存储压缩块集合中的一个或多个压缩块;以及
使用前端编码对识别的压缩块内的字符串前缀进行解压缩;
使用重新配对解压缩对识别的压缩块内的字符串后缀进行...

【专利技术属性】
技术研发人员:R拉什I奥基德N梅
申请(专利权)人:SAP欧洲公司
类型:发明
国别省市:德国;DE

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

1