数据压缩方法和装置制造方法及图纸

技术编号:39300769 阅读:14 留言:0更新日期:2023-11-12 15:52
提供了一种数据压缩(Compaction)方法和装置,所述方法包括:确定与所述电子装置连接的存储装置中存储的排序字符串表SSTable文件中的将被执行压缩操作的多个SSTable文件;基于从所述存储装置接收的所述多个SSTable文件的数据块中的数据的索引对所述多个SSTable文件的数据块中的数据进行归并排序以获得重建的数据块;将重建的数据块发送到所述存储装置,其中,重建的数据块被所述存储装置用于重建新的SSTable文件,其中,每个SSTable文件包括数据块和索引块,其中,每个索引块中的索引与所述每个索引块对应的数据块块中的数据相应。应。应。

【技术实现步骤摘要】
数据压缩方法和装置


[0001]本申请涉及数据处理
,更具体地,涉及一种数据压缩(Compaction)方法和装置。

技术介绍

[0002]日志结构合并树(Log Structured Merge Tree,LSM

Tree)是一种被广泛采用的数据存储结构。如图1所示,通过对排序字符串表(Sorted Strings Table,SSTable)文件中的数据执行多级压缩(Compaction),可将随机写入转换为顺序写入,从而实现较高的读写性能。然而,在数据的生命周期内,Compaction操作对所述数据的多次读写导致很大的读写放大,这使得主机端的应用性能降低,并且会缩短存储装置(例如,固态驱动器(Solid State Drive,SSD))的寿命。此外,多个Compaction进程执行的频繁索引处理与数据合并会引发CPU竞争,并且频繁在CPU上执行Compaction操作会消耗大量的传输资源,从而可能导致数据传输延迟。
[0003]因此,在执行Compaction期间如何保证主机端的性能并降低数据传输延迟是亟需解决的问题。

技术实现思路

[0004]本专利技术的目的在于提供一种数据压缩(Compaction)方法和装置,所述方法和装置在针对基于LSM存储的数据执行Compaction操作时,能够降低对主机端资源的占用并减小数据处理延迟。
[0005]根据本公开的示例性实施例的一方面,提供了一种数据压缩方法,所述方法由电子装置执行,其中,所述方法可包括:确定与所述电子装置连接的存储装置中存储的排序字符串表SSTable文件中的将被执行压缩操作的多个SSTable文件,其中,所述存储装置中存储的SSTable文件中的数据基于日志结构合并树(LSM

Tree)机制被存储在所述存储装置中;基于从所述存储装置接收的所述多个SSTable文件的数据块中的数据的索引对所述多个SSTable文件的数据块中的数据执行归并排序以获得重建的数据块;将重建的数据块发送到所述存储装置,其中,重建的数据块被所述存储装置用于重建新的SSTable文件,其中,每个SSTable文件包括数据块和索引块,其中,每个索引块中的索引与所述每个索引块对应的数据块块中的数据相应。
[0006]根据本公开的实施例,将Compaction操作的一部分卸载到存储装置(例如,SmartSSD),利用存储装置的计算能力执行所述一部分操作,可缓解电子装置侧(例如,主机侧CPU)的计算压力。
[0007]可选地,基于从所述存储装置接收的所述多个SSTable文件的数据块中的数据的索引对所述多个SSTable文件的数据块中的数据执行归并排序以获得重建的数据块的步骤可包括:对所述多个SSTable文件的数据块进行解析以获得所述多个SSTable文件的数据块中的数据;基于所述多个SSTable文件的数据块中的数据的索引对所述多个SSTable的数据
块中的数据执行归并排序,并根据数据块的格式将通过归并排序获得的数据重建为数据块。
[0008]根据本公开的实施例,电子装置仅对数据块执行解析,而无需对索引块进行解析,因此,可缓解电子装置(例如,主机CPU)的计算压力。
[0009]可选地,所述多个SSTable文件的数据块中的数据的索引可以是由所述存储装置通过对所述多个SSTable文件的索引块进行解析获得的。
[0010]根据本公开的实施例,将Compaction操作中占用CPU时间较少的索引解析与索引重建操作卸载到存储装置,可以充分利用存储装置内计算芯片的资源,避免Compaction所有操作卸载到存储装置时由于资源不足导致Compaction操作的延迟。
[0011]可选地,所述存储装置可以为SmartSSD,所述SmartSSD可包括存储单元和计算单元,所述存储装置中存储的SSTable文件被存储在所述存储单元中,所述多个SSTable文件的数据块中的数据的索引可以是由所述计算单元通过对所述多个SSTable文件的索引块进行解析获得的。
[0012]可选地,所述方法还可包括:响应于接收到键值对,将所述键值对中的值根据所述键值对中的键的大小存储在所述存储装置的存储单元中,并基于LSM

Tree机制将所述键值对中的键和地址组成的键地址对以SStable文件的形式存储在所述存储装置中,其中,所述地址为所述值在所述存储装置中的存储地址,其中,所述多个SSTable文件的数据块中的每个数据块中的数据为键地址对。
[0013]根据本公开的实施例,通过键值分离技术减少了存储装置到主机的数据传输量,从而提高Compaction操作的效率。
[0014]根据本公开的示例性实施例的另一方面,提供一种数据压缩方法,所述方法由存储装置执行,其中,所述方法可包括:对所述存储装置中基于日志结构合并树(LSM

Tree)机制存储的将被执行压缩Compaction操作的多个排序字符串表SSTable文件的索引块进行解析以获得所述多个SSTable文件的数据块中的数据的索引;将所述多个SSTable文件的数据块中的数据的索引发送到电子装置,其中,所述多个SSTable文件的数据块中的数据的索引由所述电子装置用于对所述多个SSTable文件的数据块中的数据执行归并排序以获得重建的数据块;对所述重建的数据块中的数据执行索引重建以获得与所述重建的数据块相应的重建的索引块;将所述重建的数据块中的每个重建的数据块和所述重建的索引块中的与所述每个重建的数据块相应的重建的索引块拼接以重建新的SSTable文件。
[0015]根据本公开的实施例,将Compaction操作中占用CPU时间较少的索引解析与索引重建操作卸载到存储装置,可以充分利用存储装置内计算芯片的资源,避免Compaction所有操作卸载到存储装置时由于资源不足导致Compaction操作的延迟。
[0016]可选地,所述存储装置可以为SmartSSD,所述SmartSSD可包括计算单元和存储单元,所述解析步骤、所述索引重建步骤和所述拼接步骤可由所述计算单元执行。
[0017]根据本公开的示例性实施例的另一方面,提供了一种数据压缩Compaction方法,所述方法包括如上所述的由电子装置执行的方法的步骤以及如上所述的由存储装置执行的方法的步骤。
[0018]根据本公开的示例性实施例的另一方面,提供了一种数据压缩方法,所述方法可包括:由主机确定存储装置中存储的排序字符串表SSTable文件中的将被执行压缩
Compaction操作的多个SSTable文件,其中,存储装置中存储的SSTable文件中的数据基于日志结构合并树(LSM

Tree)机制被存储在所述存储装置中;由所述主机和所述存储装置对所述多个SSTable文件执行Compaction操作。
[0019]根据本公开的实施例,将Compaction操作的一部分卸载到存储装置(例本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据压缩Compaction方法,所述方法由电子装置执行,其中,所述方法包括:确定与所述电子装置连接的存储装置中存储的排序字符串表SSTable文件中的将被执行压缩操作的多个SSTable文件,其中,所述存储装置中存储的SSTable文件中的数据基于日志结构合并树LSM

Tree机制被存储在所述存储装置中;基于从所述存储装置接收的所述多个SSTable文件的数据块中的数据的索引对所述多个SSTable文件的数据块中的数据执行归并排序以获得重建的数据块;将重建的数据块发送到所述存储装置,其中,重建的数据块被所述存储装置用于重建新的SSTable文件,其中,每个SSTable文件包括数据块和索引块,其中,每个索引块中的索引与所述每个索引块对应的数据块中的数据相应。2.如权利要求1所述的方法,基于从所述存储装置接收的所述多个SSTable文件的数据块中的数据的索引对所述多个SSTable文件的数据块中的数据执行归并排序以获得重建的数据块的步骤包括:对所述多个SSTable文件的数据块进行解析以获得所述多个SSTable文件的数据块中的数据;基于所述多个SSTable文件的数据块中的数据的索引对所述多个SSTable的数据块中的数据执行归并排序,并根据数据块的格式将通过归并排序获得的数据重建为数据块。3.如权利要求2所述的方法,其中,所述多个SSTable文件的数据块中的数据的索引是由所述存储装置通过对所述多个SSTable文件的索引块进行解析获得的。4.如权利要求3所述的方法,其中,所述存储装置为SmartSSD,所述SmartSSD包括存储单元和计算单元,所述存储装置中存储的SSTable文件被存储在所述存储单元中,所述多个SSTable文件的数据块中的数据的索引是由所述计算单元通过对所述多个SSTable文件的索引块进行解析获得的。5.如权利要求2所述的方法,还包括:响应于接收到键值对,将所述键值对中的值根据所述键值对中的键的大小存储在所述存储装置的存储单元中,并基于LSM

Tree机制将所述键值对中的键和地址组成的键地址对以SStable文件的形式存储在所述存储装置中,其中,所述地址为所述值在所述存储装置中的存储地址,其中,所述多个SSTable文件的数据块中的每个数据块中的数据为键地址对。6.一种数据压缩Compaction方法,所述方法由存储装置执行,其中,所述方法包括:对所述存储装置中基于日志结构合并树LSM

Tree机制存储的将被执行压缩操作的多个排序字符串表SSTable文件的索引块进行解析以获得所述多个SSTable文件的数据块中的数据的索引;将所述多个SSTable文件的数据块中的数据的索引发送到电子装置,其中,所述多个SSTable文件的数据块中的数据的索引由所述电子装置用于对所述多个SSTable文件的数据块中的数据执行归并排序以获得重建的数据块;对所述重建的数据块中的数据执行索引重建以获得与所述重建的数据块相应的重建的索引块;将所述重建的数据块中的每个重建的数据块和所述重建的索引块中的与所述每个重建的数据块相应的重建的索引块拼接以重建新的SSTable文件。
7.如权利要求6所述的方法,其中,所述存储装置为SmartSSD,所述SmartSSD包括计算单元和存储单元,所述解析步骤、所述索引重建步骤以及所述拼接步骤由所述计算单元执行。8.一种数据压缩Compaction方法,所述方法包括如权利要求1

5中的任意一项所述的步骤以及如权利要求6

7中的任一项所述的步骤。9.一种电子装置,包括:确定单元,被配置为确定与所述电子装置连接的存储装置中存储的排序字符串表SSTable文件中的...

【专利技术属性】
技术研发人员:薛昆董飞周洋旭
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:

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

1