CN116756106A - 有序字符串表文件的压缩方法和装置 - Google Patents

有序字符串表文件的压缩方法和装置 Download PDF

Info

Publication number
CN116756106A
CN116756106A CN202310526530.9A CN202310526530A CN116756106A CN 116756106 A CN116756106 A CN 116756106A CN 202310526530 A CN202310526530 A CN 202310526530A CN 116756106 A CN116756106 A CN 116756106A
Authority
CN
China
Prior art keywords
file
sst
files
layer
compression
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310526530.9A
Other languages
English (en)
Inventor
张怡雯
杨延龙
张宇奇
贺杏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung China Semiconductor Co Ltd
Samsung Electronics Co Ltd
Original Assignee
Samsung China Semiconductor Co Ltd
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung China Semiconductor Co Ltd, Samsung Electronics Co Ltd filed Critical Samsung China Semiconductor Co Ltd
Priority to CN202310526530.9A priority Critical patent/CN116756106A/zh
Publication of CN116756106A publication Critical patent/CN116756106A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供了一种SST文件的压缩方法和装置,所述方法包括:响应于确定需要对日志结构合并树LSM‑Tree的第一层执行压缩操作,基于第一层中第一多个SST文件以及第二层中的第二多个SST文件对应的第一多个分区的属性信息确定第一多个SST文件的压缩优先级,其中,第一多个SST文件中的每个SST文件的键范围与第二层中的SST文件的键范围至少部分重叠,第二多个SST文件中的每个SST文件的键范围与第一多个SST文件的键范围至少部分重叠;以及优先对第一多个SST文件中的具有较高压缩优先级的SST文件执行压缩操作。

Description

有序字符串表文件的压缩方法和装置
技术领域
本申请涉及数据存储技术领域,更具体地,涉及一种有序字符串表(SortedString Table,SST)文件的压缩方法和装置。
背景技术
基于日志结构合并树(Log-Structured Merge-Tree,LSM-Tree)存储结构(例如,RocksDB或LevelDB)存储的数据可被存储到分区命名空间(Zoned Namespaces,ZNS)固态驱动器(Solid State Drive,SSD)中。可对LSM-Tree的层(level)中的存储在分区中的多个SST文件执行压缩,在压缩操作后,所述多个SST文件变为所述分区中的无效文件,通过压缩操作获得的新SST文件被存储在ZNS SSD的具有空闲空间的分区中。根据ZNS SSD的存储机制,仅当分区中文件全部为无效文件时(即不存在有效数据碎片时),该分区才能被回收。现有的压缩策略根据参与压缩操作的开始层中的SST文件与输出层中的SST文件的键重叠率来确定开始层中的SST文件的压缩顺序,这样的压缩机制无法保证优先压缩能够尽快被回收的分区对应的SST文件,导致分区无法被及时回收,从而降低了ZNS SSD存储空间的利用率。
因此,亟需一种能够提高ZNS SSD空间利用率的数据压缩机制。
发明内容
本公开的目的在于提供一种SST文件的压缩方法和装置,其可根据SST文件所在的ZNS SSD的分区的空间利用信息确定SST文件的压缩优先级,根据确定的压缩优先级对SST文件执行压缩,可以使得空间利用率较低的分区被及时收回,从而提高ZNS SSD的存储空间利用率。
根据本公开的示例性实施例的一方面,提供了一种有序字符串表SST文件的压缩方法,其中,所述SST文件存储在分区命名空间ZNS固态驱动器SSD的分区中,所述方法可包括:响应于确定需要对日志结构合并树LSM-Tree的第一层执行压缩操作,基于第一层中第一多个SST文件以及第二层中的第二多个SST文件对应的第一多个分区的属性信息确定第一多个SST文件的压缩优先级,其中,第一多个SST文件中的每个SST文件的键范围与第二层中的SST文件的键范围至少部分重叠,第二多个SST文件中的每个SST文件的键范围与第一多个SST文件的键范围至少部分重叠;以及优先对第一多个SST文件中的具有较高压缩优先级的SST文件执行压缩操作,其中,第二层指示LSM-Tree的与第一层相邻并且第二层比第一层高的层。
根据本公开的示例性实施例,通过基于SST文件所在的ZNS SSD的分区的属性信息来确定SST文件的压缩优先级,并根据所述压缩优先级优先压缩具有较高压缩优先级的SST文件,可尽快回收存储空间利用率较低的分区,从而提高ZNS SSD的存储空间利用率。
可选地,优先对第一多个SST文件中的具有较高压缩优先级的SST文件执行压缩操作的步骤可包括:从第一多个SST文件中选择具有较高压缩优先级的SST文件;以及对所述选择的SST文件和第二层中的第三多个SST文件执行压缩操作,其中,第三多个SST文件中的每个SST文件的键范围与所述选择的SST文件的键范围至少部分重叠。
可选地,第一多个分区的属性信息包括以下项中的至少一个:第一多个分区中的每个分区中有效文件的大小、第一多个分区中的每个分区中无效文件的大小、第一多个分区中的每个分区中无效文件的数量、第一多个分区中的每个分区中有效文件的预期失效时间。
根据本公开的实施例,由于Zone中有效文件的大小、Zone中无效文件的大小、Zone中无效文件的数量、Zone中有效文件的预期失效时间均可反映分区的空间利用信息,因此,基于这些信息确定SST文件的压缩优先级可被用于提高ZNS SSD的存储空间利用率。
可选地,确定第一多个SST文件的压缩优先级的步骤可包括:基于第一多个SST文件中的每个SST文件以及所述每个SST文件对应的第二层中的第三多个SST文件对应的第二多个分区的属性信息确定所述多个SST文件的压缩优先级,其中,第三多个SST文件中的每个SST文件的键范围与所述每个SST文件的键范围至少部分重叠,其中,所述每个SST文件以及所述每个SST文件对应的第二多个分区的属性信息包括:第二多个分区中的每个分区中的有效文件的大小与所述每个分区的存储容量的比值、所述每个分区中无效文件的大小与所述每个分区的存储容量的比值、所述每个分区中无效文件的数量与所述每个分区中所有文件的数量的比值以及所述每个分区中有效文件的剩余寿命的平均值。
可选地,基于第一多个SST文件中的每个SST文件以及所述每个SST文件对应的第二层中的第三多个SST文件对应的第二多个分区的属性信息确定所述多个SST文件的压缩优先级的步骤可包括:对第二多个分区中的每个分区中有效文件的大小与所述每个分区的存储容量的比值、第二多个分区中的每个分区中无效文件的大小与所述每个分区的存储容量的比值、第二多个分区中的每个分区中无效文件的数量与第二多个分区中的每个分区中所有文件的数量的比值以及第二多个分区中的每个分区中有效文件的剩余寿命的平均值的归一化值进行加权求和;以及确定通过加权求和获得的与第二多个分区对应的多个和中的最大值作为所述每个SST文件的压缩优先级值,基于第一多个SST文件对应的压缩优先级值确定所述压缩优先级,其中,所述多个SST文件中的具有较大压缩优先级值的SST文件被确定为具有较高压缩优先级。
根据本公开的实施例,由于分区中有效文件的大小与所述分区的存储容量的比值、所述分区中无效文件的大小与所述分区的存储容量的比值、所述分区中无效文件的数量与所述分区中所有文件的数量的比值以及所述分区中有效文件的剩余寿命的平均值均可反映分区的空间利用信息,因此,基于这些信息确定de SST文件的压缩优先级可被用于提高ZNS SSD的存储空间利用率。
可选地,第二多个分区中处于参与压缩操作的层的文件可被视作无效文件。
根据本公开的实施例,如果SST文件为将被压缩的文件,说明该SST文件很快将变为无效文件,因此,将这样的SST文件视作无效文件可以更好的反映分区的存储空间利用率。
可选地,LSM-Tree可基于LevelDB或基于RocksDB。
可选地,有效文件的剩余寿命指示所述有效文件的预期失效时间与当前时间的差值,所述有效文件的预期失效时间为所述有效文件的创建时间(created_time)加上所述有效文件的寿命,其中,所述有效文件的寿命可通过以下方式获得:当所述有效文件被创建时,基于所述有效文件所在层、与所述有效文件所在层相邻的较高层以及与所述有效文件所在层相邻的较低层的属性信息,利用第一已训练的机器学习模型预测所述有效文件在将来参与主动压缩操作的概率是否高于在将来参与被动压缩操作的概率,其中,主动压缩操作指示所述有效文件与所述较高层的SST文件的压缩操作,被动压缩操作指示所述有效文件与所述较低层的SST文件的压缩操作,当参加主动压缩操作的概率高于参加被动压缩操作的概率时,基于针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件、利用第二已训练的机器学习模型预测所述有效文件的寿命,当参加被动压缩操作的概率不高于参加被动压缩操作的概率时,基于针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件、利用第三已训练的机器学习模型预测所述有效文件的寿命,其中,针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件以及针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件中的每个历史记录文件记录了因所述每个历史记录文件对应的压缩操作而被删除的SST文件的第一键范围和寿命,其中,第一键范围基于因压缩操作而被删除的SST文件的最小键值和最大键值确定。
根据本公开的实施例,由于参与被动压缩的文件的寿命相似、参与主动压缩的文件寿命相似,因此,当有效文件参与主动压缩的概率高时,通过基于针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件预测所述有效文件的寿命,当有效文件参与被动压缩的概率高时,通过基于针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件预测所述有效文件的寿命,可更准确地预测所述有效文件的寿命。
可选地,所述有效文件所在层、与所述有效文件所在层相邻的较高层以及与所述有效文件所在层相邻的较低层的属性信息包括:所述较低层中的所有SST文件的大小与所述较低层的容量之比减去所述有效文件所在层的所有SST文件的大小与所述有效文件所在层的容量之比、所述有效文件所在层的除所述有效文件之外的各SST文件与所述较高层文件的键重叠率中的最小键重叠率减去所述有效文件与所述较高层中的文件的键重叠率、由生成所述有效文件的压缩操作生成的所有SST文件的大小与所述有效文件所在层的容量之比、由生成所述有效文件的压缩操作生成的所有SST文件的数量减去所述有效文件所在层中的因生成所述有效文件的压缩操作而被删除的SST文件的数量,其中,基于针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件,利用已训练的第二机器学习模型预测所述有效文件的寿命的步骤包括:确定所述有效文件以及所述较高层中的键范围与所述有效文件的键范围至少部分重叠的文件的第二键范围,按照第一预设规则从针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件中选择第一键范围与所述第二键范围接近的历史记录文件,将所选择的历史记录文件记载的由于所选择的历史记录文件对应的压缩操作删除的SST文件最大键值、最小键值以及寿命输入第二已训练的机器学习模型来预测所述有效文件的寿命,其中,基于针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件、利用已训练的第三机器学习模型预测所述有效文件的寿命的步骤包括:确定所述较低层中的键范围与所述有效文件的键范围重叠最大的SST文件,确定所述重叠最大的文件以及所述有效文件所在层中的键范围与所述重叠最大的文件的键范围至少部分重叠的文件的第三键范围,按照第二预设规则从针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件中选择第一键范围与所述第三键范围接近的历史记录文件,将所选择的历史记录文件记载的由于所选择的历史记录文件对应的压缩操作删除的SST文件的最大键值、最小键值以及寿命输入第三机器学习模型来预测所述有效文件的寿命。
可选地,第一预设规则包括:从针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件中选择第一预定数量的历史记录文件或选择第一键范围与所述第二键范围的重叠率大于第一预定值的历史记录文件;以及第二预设规则包括:从针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件中选择第二预定数量的历史记录文件或选择第一键范围与所述第三键范围的重叠率大于第二预定值的历史记录文件。
根据本公开的示例性实施例,由于关于文件所处的层的压缩信息,显著影响文件的寿命,因此,根据文件创建时文件所处的层的压缩信息来选择不同的文件寿命预测模型预测文件的寿命,可以提高文件寿命的预测准确性。
根据本公开的示例性实施例的另一方面,提供了一种有序字符串表SST文件的压缩装置,其中,所述SST文件存储在分区命名空间ZNS固态驱动器SSD的分区(Zone)中,所述装置可包括:确定单元,被配置为:响应于确定需要对日志结构合并树LSM-Tree的第一层执行压缩操作,基于第一层中第一多个SST文件以及第二层中的第二多个SST文件对应的第一多个分区的属性信息确定第一多个SST文件的压缩优先级,其中,第一多个SST文件中的每个SST文件的键范围与第二层中的SST文件的键范围至少部分重叠,第二多个SST文件中的每个SST文件的键范围与第一多个SST文件的键范围至少部分重叠;以及压缩单元,被配置为:优先对第一多个SST文件中的具有较高压缩优先级的SST文件执行压缩操作,其中,第二层指示LSM-Tree的与第一层相邻并且第二层比第一层高的层。
可选地,所述压缩单元可被配置为:从第一多个SST文件中选择具有较高压缩优先级的SST文件;以及对所述选择的SST文件和第二层中的第三多个SST文件执行压缩操作,其中,第三多个SST文件中的每个SST文件的键范围与所述选择的SST文件的键范围至少部分重叠。
可选地,第一多个分区的属性信息包括以下项中的至少一个:第一多个分区中的每个分区中有效文件的大小、第一多个分区中的每个分区中无效文件的大小、第一多个分区中的每个分区中无效文件的数量、第一多个分区中的每个分区中有效文件的预期失效时间。
可选地,所述确定单元可被配置为:
基于第一多个SST文件中的每个SST文件以及所述每个SST文件对应的第二层中的第三多个SST文件对应的第二多个分区的属性信息确定所述多个SST文件的压缩优先级,
其中,第三多个SST文件中的每个SST文件的键范围与所述每个SST文件的键范围至少部分重叠其中,以及
其中,所述每个SST文件以及所述每个SST文件对应的第二多个分区的属性信息包括:第二多个分区中的每个分区中的有效文件的大小与所述每个分区的存储容量的比值、所述每个分区中无效文件的大小与所述每个分区的存储容量的比值、所述每个分区中无效文件的数量与所述每个分区中所有文件的数量的比值以及所述每个分区中有效文件的剩余寿命的平均值。
可选地,所述确定单元可被配置为:对第二多个分区中的每个分区中有效文件的大小与所述每个分区的存储容量的比值、第二多个分区中的每个分区中无效文件的大小与所述每个分区的存储容量的比值、第二多个分区中的每个分区中无效文件的数量与第二多个分区中的每个分区中所有文件的数量的比值以及第二多个分区中的每个分区中有效文件的剩余寿命的平均值的归一化值进行加权求和;以及确定通过加权求和获得的与第二多个分区对应的多个和中的最大值作为所述每个SST文件的压缩优先级值,基于第一多个SST文件对应的压缩优先级值确定所述压缩优先级,其中,所述多个SST文件中的具有较大压缩优先级值的SST文件被确定为具有较高压缩优先级。
可选地,所述第二多个分区中处于参与压缩操作的层的文件被视作无效文件。
可选地,LSM-Tree基于LevelDB或基于RocksDB。
可选地,有效文件的剩余寿命指示所述有效文件的预期失效时间与当前时间的差值,所述有效文件的预期失效时间为所述有效文件的创建时间加上所述有效文件的寿命,其中,所述有效文件的寿命可通过以下方式获得:当所述有效文件被创建时,基于所述有效文件所在层、与所述有效文件所在层相邻的较高层以及与所述有效文件所在层相邻的较低层的属性信息,利用第一已训练的机器学习模型预测所述有效文件在将来参与主动压缩操作的概率是否高于在将来参与被动压缩操作的概率,其中,主动压缩操作指示所述有效文件与所述较高层的SST文件的压缩操作,被动压缩操作指示所述有效文件与所述较低层的SST文件的压缩操作,当参加主动压缩操作的概率高于参加被动压缩操作的概率时,基于针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件、利用第二已训练的机器学习模型预测所述有效文件的寿命,当参加被动压缩操作的概率不高于参加被动压缩操作的概率时,基于针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件、利用第三已训练的机器学习模型预测所述有效文件的寿命,其中,针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件以及针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件中的每个历史记录文件记录了因所述每个历史记录文件对应的压缩操作而被删除的SST文件的第一键范围和寿命,其中,第一键范围基于因压缩操作而被删除的SST文件的最小键值和最大键值确定。
可选地,所述有效文件所在层、与所述有效文件所在层相邻的较高层以及与所述有效文件所在层相邻的较低层的属性信息包括:所述较低层中的所有SST文件的大小与所述较低层的容量之比减去所述有效文件所在层的所有SST文件的大小与所述有效文件所在层的容量之比、所述有效文件所在层的除所述有效文件之外的各SST文件与所述较高层文件的键重叠率中的最小键重叠率减去所述有效文件与所述较高层中的文件的键重叠率、由生成所述有效文件的压缩操作生成的所有SST文件的大小与所述有效文件所在层的容量之比、由生成所述有效文件的压缩操作生成的所有SST文件的数量减去所述有效文件所在层中的因生成所述有效文件的压缩操作而被删除的SST文件的数量,其中,基于针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件,利用已训练的第二机器学习模型预测所述有效文件的寿命的步骤包括:确定所述有效文件以及所述较高层中的键范围与所述有效文件的键范围至少部分重叠的文件的第二键范围,按照第一预设规则从针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件中选择第一键范围与所述第二键范围接近的历史记录文件,将所选择的历史记录文件记载的由于所选择的历史记录文件对应的压缩操作删除的SST文件最大键值、最小键值以及寿命输入第二已训练的机器学习模型来预测所述有效文件的寿命,其中,基于针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件、利用已训练的第三机器学习模型预测所述有效文件的寿命的步骤包括:确定所述较低层中的键范围与所述有效文件的键范围重叠最大的SST文件,确定所述重叠最大的文件以及所述有效文件所在层中的键范围与所述重叠最大的文件的键范围至少部分重叠的文件的第三键范围,按照第二预设规则从针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件中选择第一键范围与所述第三键范围接近的历史记录文件,将所选择的历史记录文件记载的由于所选择的历史记录文件对应的压缩操作删除的SST文件的最大键值、最小键值以及寿命输入第三机器学习模型来预测所述有效文件的寿命。
可选地,第一预设规则包括:从针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件中选择第一预定数量的历史记录文件或选择第一键范围与所述第二键范围的重叠率大于第一预定值的历史记录文件;以及第二预设规则包括:从针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件中选择第二预定数量的历史记录文件或选择第一键范围与所述第三键范围的重叠率大于第二预定值的历史记录文件。
根据本公开的示例性实施例的另一方面,提供了一种电子装置,包括:存储器,被配置为存储一个或更多个指令;多个存储装置;以及主处理器,被配置为执行所述一个或更多个指令以使得所述主处理器执行如本文所述的压缩方法。
根据本公开的示例性实施例的另一方面,提供了一种主机存储系统,包括:主机,包括主机存储器和主机控制器;以及存储装置,其中,所述主机存储器存储有当由主机控制器执行时使得所述主机控制器执行如本文所述的压缩方法的指令。
根据本公开的示例性实施例的另一方面,提供了一种通用闪存存储(UFS)系统,包括:UFS主机,被配置为执行如本文所述的压缩方法;UFS装置;以及UFS接口,用于UFS装置和UFS主机之间的通信。
根据本公开的示例性实施例的另一方面,提供了一种存储系统,包括:存储装置;以及存储器控制器,被配置为执行如本文所述的压缩方法。
根据本公开的示例性实施例的另一方面,提供了一种数据中心系统,包括:多个应用服务器;以及多个存储服务器,其中,所述多个应用服务器中的每一个和/或所述多个存储服务器中的每一个被配置为执行如本文所述的压缩方法。
根据本公开的示例性实施例的另一方面,提供了一种存储有计算机程序的计算机可读存储介质,其中,当所述计算机程序被处理器执行时使得所述处理器实现如本文所述的压缩方法。
附图说明
通过下面结合附图对示例实施例进行的描述,上述和其它目方面将会更加清楚,其中:
图1是示出相关技术中的压缩过程的示例的示图;
图2是示出相关技术中的压缩过程的示例的示图;
图3是示出根据本公开的实施例的SST文件的压缩方法的流程图;
图4是示出根据本公开的实施例的SST文件示例的示图;
图5是示出根据本公开的实施例的压缩过程的示例的示图;
图6是示出根据本公开的实施例的示例压缩策略的示意图;
图7是示出根据本公开的实施例的预测新生成文件的寿命(lifetime)的示例的示意图;
图8是示出相关技术中的压缩策略的示例和根据本公开实施例的压缩策略的示图;
图9示出了根据本公开的实施例的SST文件的压缩装置的结构的框图;
图10为根据本公开的实施例的电子装置的示意图;
图11是根据本公开实施例的主机存储系统的框图;
图12为根据本公开的实施例的UFS系统的框图;
图13为根据本公开的实施例的存储系统的框图;
图14为根据本公开的实施例的应用了存储装置的数据中心的示图。
具体实施方式
在下文中,参照附图对本公开的各种实施例进行描述,其中,相同的标号用于表示相同或相似的元件、特征和结构。然而,不旨在由本文所述的各种实施例将本公开限制于具体实施例,并且旨在于:本公开覆盖本公开的所有修改、等同物和/或替代物,只要它们在所附权利要求及其等同物的范围内。在以下说明书和权利要求书中使用的术语和词语不限于它们的词典含义,而是仅被用于使得能够清楚和一致地理解本公开。因此,对于本领域技术人员应显而易见的是:提供本公开的各种实施例的以下描述仅用于说明的目的,而不是为了限制由所附权利要求和它们的等同物限定的本公开的目的。
应理解,除非上下文另外明确指出,否则单数形式包括复数形式。本文使用的术语“包括”、“包含”和“具有”指示公开的功能、操作或元件的存在,但不排除其它功能、操作或元件。
例如,表述“A或B”、或“A和/或B中的至少一个”可指示A和B、A或者B。例如,表述“A或B”或“A和/或B中的至少一个”可指示(1)A、(2)B或(3)A和B两者。
在本公开的各种实施例中,意图是:当组件(例如,第一组件)被称为与另一组件(例如,第二组件)“耦接”或“连接”或者被“耦接”或者“连接”到另一组件(例如,第二组件)时,所述组件可被直接连接到所述另一组件,或者可通过另一组件(例如,第三组件)被连接。相比之下,当组件(例如,第一组件)被称为与另一组件(例如,第二组件)“直接耦接”或“直接连接”或者被直接耦接到或直接连接到另一组件(例如,第二组件)时,在所述组件和所述另一组件之间不存在另一组件(例如,第三组件)。
在描述本公开的各种实施例中使用的表述“被配置为”可以例如根据情况与诸如“适用于”、“具有…的能力”、“被设计为”、“适合于”、“被制造为”和“能够”的表述互换使用。术语“被配置为”可不一定指示按照硬件“被专门设计为”。相反,在一些情况下的表述“被配置为...的装置”可指示所述装置和另一装置或者部分“能够…”。例如,表述“被配置为执行A、B和C的处理器”可指示用于执行相应操作的专用处理器(例如,嵌入式处理器)或用于通过执行存储在存储器装置中的至少一个软件程序来执行相应的操作的通用处理器(例如,中央处理单元CPU或应用处理器(AP))。
本文使用的术语在于描述本公开的某些实施例,但并不旨在限制其它实施例的范围。除非本文另外指出,否则本文使用的所有术语(包括技术或科学术语)可具有与本领域技术人员通常理解的含义相同含义。通常,词典中定义的术语应被视为具有与相关领域中的上下文含义相同的含义,并且,除非本文明确地定义,否则不应被不同地理解或被理解为具有过于正式的含义。在任何情况下,本公开中定义的术语也不旨在被解释为排除本公开的实施例。
为了便于理解本公开,首先对相关技术进行说明。
相关技术中,LSM-Tree数据库引擎基于键(key)最小重叠率(kMinOverlappingRatio)来选择优先参与压缩的层中的SST文件。具体地,当对某个层以及与所述某个层相邻的较高层执行压缩操作时,优先选择键范围与较高层文件的键重叠最小的SST文件执行压缩(compaction)操作。
图1是示出相关技术中的压缩过程的示例的示图。
参照图1,当确定针对层2和层3执行压缩时,针对层2中的键范围与层3中的文件的键范围至少部分重叠的每个文件(例如,文件A和B),确定所述每个文件与层3中的键范围与所述每个文件的键范围至少部分重叠的文件的重叠字节数(overlapping_bytes),然后计算所述每个文件对应的比值ratio(ratio=overlapping_bytes*1024/补偿文件大小(compensed_file_size)),将层2中的文件对应的比值按升序排列,层2中的具有最小比值的文件被首先进行压缩。
例如,根据获得的比值,确定文件A具有最小比值,因此,首先对文件A执行压缩操作,即首先对文件A以及键范围与文件A的键范围至少部分重叠的文件C、D、E执行压缩操作。
通过压缩操作获得的新的文件为层3中的文件F、G和H,然后将文件F、G、H存储到ZNS SSD的分区的空闲空间中。由于在存储文件F后,没有空闲空间存储文件G和H,因此,导致写入失败。另外,参照图1,分区1和分区2中存在无效文件碎片。然而由于两个分区中都存在有效数据碎片,因此,分区1和分区2无法被回收以用于存储文件G和H。
根据现有的压缩机制,如果层2中的某个文件的压缩优先级较低,且该文件对应的分区(即该文件所在的分区)中存在大量无效文件,则该文件长时间无法通过压缩操作被删除,因此其占用的分区无法被及时回收,从而降低了ZNS SSD的空间利用率。
图2是示出相关技术中的压缩过程的示例的示图。
例如,参照图2,对于具有最低压缩优先级的文件,在经过多次压缩操作后,虽然该文件对应的分区具有大量的无效数据碎片,但是该文件对应的分区无法被及时回收,因为该文件由于最低的压缩优先级未参加压缩操作,因此无法变为无效文件,从而导致ZNS SSD的空间利用率低。
图3是示出根据本公开的实施例的SST文件的压缩方法的流程图。
参照图3,在步骤S301,响应于确定需要对日志结构合并树LSM-Tree的第一层执行压缩操作,基于第一层中第一多个SST文件以及第二层中的第二多个SST文件对应的第一多个分区(Zone)的属性信息确定第一多个SST文件的压缩优先级,其中,第一多个SST文件中的每个SST文件的键范围与第二层中的SST文件的键范围至少部分重叠,第二多个SST文件中的每个SST文件的键范围与第一多个SST文件的键范围至少部分重叠,其中,第二层指示LSM-Tree的与第一层相邻并且第二层比第一层高的层。
作为示例,可当第一层中的SST文件的数量超过设定值或者第一层中的SST文件的大小超过预定容量(例如,第一层的容量或更小的容量)时,确定需要对第一层执行压缩操作。
作为示例,所述属性信息可以为关于第一多个Zone的空间利用率的信息。
本领域技术人员应当理解,第一层即为参与压缩操作的开始层,第二层为参与压缩操作的输出层。
例如,层1的层容量(level capacity),即层1中的文件的大小,超过了层1的目标大小(target size),则确定对层1执行压缩操作,其中,层1为参与压缩操作的开始层,层2为参与压缩存操作的输出层。
图4是示出根据本公开的实施例的SST文件示例的示图。
参照图4,当确定对层1执行压缩操作时,层1为第一层,层2为第二层。可以看出,层1中的键范围为3-16的文件、键范围为52-67的文件与层2中的文件的键范围至少部分重叠。
作为示例,第一多个Zone的属性信息包括以下项中的至少一个:第一多个Zone中的每个Zone中有效文件的大小、第一多个Zone中的每个Zone中无效文件的大小、第一多个Zone中的每个Zone中无效文件的数量、第一多个Zone中的每个Zone中有效文件的预期失效时间(expect_expired_time)。
作为示例,确定第一多个SST文件的压缩优先级的步骤包括:基于第一多个SST文件中的每个SST文件以及所述每个SST文件对应的第二层中的第三多个SST文件对应的第二多个分区的属性信息确定所述多个SST文件的压缩优先级,其中,第三多个SST文件中的每个SST文件的键范围与所述每个SST文件的键范围至少部分重叠,其中,所述每个SST文件以及所述每个SST文件对应的第二多个分区的属性信息包括:第二多个分区中的每个分区中的有效文件的大小与所述每个分区的存储容量的比值、所述每个分区中无效文件的大小与所述每个分区的存储容量的比值、所述每个分区中无效文件的数量与所述每个分区中所有文件的数量的比值以及所述每个分区中有效文件的剩余寿命的平均值。
图5是示出根据本公开的实施例的压缩过程的示例的示图。
参照图5,开始层中SST文件SST2和SST4的每个的键范围与输出层中的文件的键范围至少部分重叠,SST7和SST8为输出层中的键范围与SST2的键范围至少部分重叠的SST文件,SST9、SST10和SST11为输出层中的键范围与SST4的键范围至少部分重叠的SST文件。
例如,可针对SST2、SST4、SST7、SST8、SST9、SST10和SST11中的每一个SST文件,计算所述每一个SST文件对应的分区中有效文件的大小与所述每一个SST文件对应的分区的存储容量的比值、所述每一个SST文件对应的分区中无效文件的大小与所述每一个SST文件对应的分区的存储容量的比值、所述每一个SST文件对应的分区中无效文件的数量与所述每一个SST文件对应的分区中所有文件的数量的比值以及所述每一个SST文件对应的分区中有效文件的剩余寿命的平均值。
图6是示出根据本公开的实施例的压缩策略的示意图。
参照图6,SST1和SST2是开始层中的需要被压缩的SST文件,SST1和SST2分别对应分区1和分区2。
对于情况a,分区1中无效文件的大小与分区1的存储容量的比值较大,如果优先对SST1执行压缩操作以删除分区1中的SST1,则分区1可具有较大的被回收概率,因此,应当优先对SST1执行压缩操作。例如,在对SST1执行压缩操作后,SST1在分区1中变为无效数据碎片,因此分区1可被回收。
对于情况b,分区1中有效文件的大小与分区1的存储容量的比值较小,如果优先对SST1执行压缩操作,可使得分区1无效文件更多从而可加快分区1的回收,因此,SST1应该被优先压缩。
对于情况c,分区1中无效文件的数量与分区1中所有文件的数量的比值较大,说明分区1中无效文件越多。如果优先对SST1执行压缩操作,则可增加分区1中的无效文件的数量,从而可加快分区1的回收,因此,SST1应该被优先压缩。
对于情况d,分区1中有效文件的剩余寿命的平均值较小,说明分区1中无效文件的数量会较快增加,如果优先压缩SST1,则可加速分区1的回收,因此,SST1应该被优先压缩。
作为示例,基于第一多个SST文件中的每个SST文件以及所述每个SST文件对应的第二层中的第三多个SST文件对应的第二多个Zone的属性信息确定所述多个SST文件的压缩优先级的步骤包括:对第二多个Zone中的每个Zone中有效文件的大小与所述每个Zone的存储容量的比值(以下称参考因子1)、第二多个Zone中的每个Zone中无效文件的大小与所述每个Zone的存储容量的比值(以下称参考因子2)、第二多个Zone中的每个Zone中无效文件的数量与第二多个Zone中的每个Zone中所有文件的数量的比值(以下称参考因子3)以及第二多个Zone中的每个Zone中有效文件的剩余寿命的平均值的归一化值(以下称参考因子4)进行加权求和;以及确定通过加权求和获得的与第二多个Zone对应的多个和中的最大值作为所述每个SST文件的压缩优先级值,基于第一多个SST文件对应的压缩优先级值确定所述压缩优先级,其中,所述多个SST文件中的具有较大压缩优先级值的SST文件被确定为具有较高压缩优先级。
作为示例,Zone中有效文件的剩余寿命的平均值的归一化值可基于Zone中有效文件的剩余寿命的平均值利用预设规则获得。
例如,可对Zone中有效文件的剩余寿命的平均值执行对数运算(对数运算的底可为被预先设定),如果对数运算的结果值在(0,1)范围内,则将结果值作为归一化值,如果结果值大于1,则将1作为归一化值。本领域技术人员应当理解,可利用其它归一化方法对Zone中有效文件的剩余寿命的平均值执行归一化。
作为示例,参考因子1-4的权重可为预设值,例如参考因子1-4的权重可分别为:0.1、0.4、0.15和0.35.
例如,对于SST2,参照图5计算获得的参考因子1-3可分别为0.5、0.25和0.33,而参考因子4的值可根据SST2对应的分区3中的有效文件的剩余寿命的平均值利用预设归一方法获得。
例如,如果分区3中的有效文件的剩余寿命的平均值的归一化值为0.5,则基于参考因子(Factor)以及权重可获得SST2对应的和为:0.1*Factor1+0.4*Factor2+0.15*Factor3+0.35*Factor4=0.1*0.5+0.4*0.25+0.15*0.33+0.35*0.5=0.3745。
类似地,可获得SST4、SST7、SST8、SST9、SST10和SST11中的每一个对应的和。
然后,将SST2、SST7和SST8对应的和中的最大值确定为SST2的压缩优先级值,将SST4、SST9、SST10和SST11对应的和中的最大值作为SST4的压缩优先级值。
作为示例,对获取的SST2和SST4的压缩优先级值进行降序排列得到SST2和SST4的压缩优先级。
返回参照图3,在步骤S302,优先对第一多个SST文件中的具有较高压缩优先级的SST文件执行压缩操作。
作为示例,优先对第一多个SST文件中的具有较高压缩优先级的SST文件执行压缩操作的步骤包括:从第一多个SST文件中选择具有较高压缩优先级的SST文件;以及对所述选择的SST文件和第二层中的第三多个SST文件执行compaction操作,其中,第三多个SST文件中的每个SST文件的键范围与所述选择的SST文件的键范围至少部分重叠。
例如,如果SST2的压缩优先级高于SST4的压缩优先级,则首先对SST2、SST7和SST8执行压缩操作。
作为示例,第二多个Zone中处于参与压缩操作的层的文件被视作无效文件,这是因为处于参与压缩操作的层的文件即将被压缩,因此会被从其所在的层删除。
例如,如果SST文件处于参与压缩操作的层,说明该SST文件很快将变为无效文件,因此,将这样的SST文件视作无效文件可以更好的反映分区的存储空间利用率。
例如,在计算SST2对应的参考因子时,SST2被视作无效文件。
作为示例,有效文件的剩余寿命指示所述有效文件的预期失效时间与当前时间的差值,所述有效文件的预期失效时间为所述有效文件的创建时间加上所述有效文件的寿命,其中,所述有效文件的寿命通过以下方式获得:当所述有效文件被创建时,基于所述有效文件所在层、与所述有效文件所在层相邻的较高层以及与所述有效文件所在层相邻的较低层的属性信息,利用第一已训练的机器学习模型预测所述有效文件在将来参与主动压缩操作的概率是否高于将来参与被动压缩操作的概率,其中,主动压缩操作指示所述有效文件与所述较高层的SST文件的压缩操作,被动压缩操作指示所述有效文件与所述较低层的SST文件的压缩操作,当参加主动压缩操作的概率高于参与被动压缩操作的概率时,基于针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件、利用第二已训练的机器学习模型预测所述有效文件的寿命,当参加主动压缩操作的概率不高于参与被动压缩操作的概率时,基于针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件,利用第三已训练的机器学习模型预测所述有效文件的寿命,其中,针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件,以及针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件中的每个历史记录文件记录了因所述每个历史记录文件对应的压缩操作而被删除的SST文件的第一键范围和寿命,其中,第一键范围基于因压缩操作而被删除的SST文件的最小键值(minkey)和最大键值(maxkey)确定。
作为示例,所述有效文件所在层、与所述有效文件所在层相邻的较高层以及与所述有效文件所在层相邻的较低层的属性信息包括:所述较低层中的所有SST文件的大小与所述较低层的容量之比减去所述有效文件所在层的所有SST文件的大小与所述有效文件所在层的容量之比(以下称为第一差值)、所述有效文件所在层的除所述有效文件之外的各SST文件与所述较高层文件的键重叠率中的最小键重叠率减去所述有效文件与所述较高层中的文件的键重叠率(以下称为第二差值)、由生成所述有效文件的压缩操作生成的所有SST文件的大小与所述有效文件所在层的容量之比(第一比值)、由生成所述有效文件的压缩操作生成的所有SST文件的数量减去所述有效文件所在层中的因生成所述有效文件的压缩操作而被删除的SST文件的数量(第三差值),其中,基于针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件、利用第二已训练的机器学习模型预测所述有效文件的寿命的步骤包括:确定所述有效文件以及所述较高层中的键范围与所述有效文件的键范围至少部分重叠的文件的第二键范围,按照第一预设规则从针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件中选择第一键范围与所述第二键范围接近的历史记录文件,将所选择的历史记录文件记载的由于所选择的历史记录文件对应的压缩操作删除的SST文件最大键值、最小键值以及寿命输入第二已训练的机器学习模型来预测所述有效文件的寿命,其中,基于针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件、利用第三已训练的机器学习模型预测所述有效文件的寿命的步骤包括:确定所述较低层中的键范围与所述有效文件的键范围重叠最大的SST文件,确定所述重叠最大的文件以及所述有效文件所在层中的键范围与所述重叠最大的文件的键范围至少部分重叠的文件的第三键范围,按照第二预设规则从针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件中选择第一键范围与所述第三键范围接近的历史记录文件,将所选择的历史记录文件记载的由于所选择的历史记录文件对应的压缩操作删除的SST文件的最大键值、最小键值以及寿命输入第三已训练的机器学习模型来预测所述有效文件的寿命。
作为示例,第一预设规则包括:从针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件中选择第一预定数量的历史记录文件或选择第一键范围与所述第二键范围的重叠率大于第一预定值的历史记录文件。第二预设规则包括:从针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件中选择第二预定数量的历史记录文件或选择第一键范围与所述第三键范围的重叠率大于第二预定值的历史记录文件。
图7示出了根据本公开的实施例的预测新生成文件的寿命的示例的示意图。
参照图7,层i+1中的SST4为通过压缩操作新生成的文件,此时需要预测SST4的寿命。
可首先确定SST4在将来参加主动压缩的概率是否高于将来参加被动压缩的概率。具体地,计算层i中所有文件的大小与层i容量之比,计算层i+1中文件的大小与层i+1容量之比,计算层i中文件的大小与层i容量之比和层i+1中文件的大小与层i+1容量之比二者的差值,即第一差值。计算层i+1中的除了SST4之外的每个SST文件与层i+2中的文件的键重叠率(例如,SST5与层i+1中的文件的键重叠率为(30-20)/(40-15)=0.4,SST6与层i+1中的文件的键重叠率为(40-32)/(40-30)=0.8),确定计算的键重叠率中的最小值(例如,0.4)。计算SST4与层i+2的文件的键重叠率(即(18-10)/(25-5)=0.4),并将所述最小值与SST4与层i+2的文件的键重叠率的差值作为第二差值。由生成SST4的压缩操作可能仅生成SST4或者生成SST4以及其它SST文件,则由生成SST4的压缩操作生成的所有文件的数量与层i+1中的所有文件的数量的比值为第一比值。由生成SST4的压缩操作生成的新的SST文件的数量与因生成SST4的压缩操作而被删除的文件的数量之差为第三差值。
将第一差值、第二差值、第一比值以及第三差值输入第一已训练的机器学习模型即可确定SST4文件在将来参与主动压缩操作的概率是否高于将来参加被动压缩操作的概率。例如,如果第一机器学习模型的输出为1,则说明SST4参加主动压缩操作的概率高于SST4参加被动压缩操作的概率,如果第一机器学习模型的输出为2,则说明SST4参加主动压缩操作的概率不高于参加被动压缩操作的概率。
例如,如果通过第一机器学习模型确定SST4在将来参与被动压缩的概率高于参与主动压缩操作的概率,则在层i中确定键范围与SST4的键范围最大重叠的SST文件SST2;确定层i+1中的键范围与SST2的键范围至少部分重叠的SST文件SST4和SST5。可以看出,SST2、SST4和SST5的最大键值和最小键值分别为10和30,因此,SST2、SST4和SST5的键范围为10-30。可在针对从层i到层i+1层的压缩操作的历史记录文件中查找到第二键范围与SST2、SST4和SST5的键范围(即10-30)重叠率较高的记录文件Record_2、Record_5,然后可以得到由记录文件Record_2对应的压缩操作删除的文件的最大键值、最小键值和寿命以及由记录文件Record_5对应的压缩操作删除的文件的最大键值、最小键值和寿命,然后可将Record_2记录的最大键值、最小键值和寿命以及Record_5记录的最大键值、最小键值和寿命输入第三已训练的机器学习模型来预测SST4的寿命。本领域技术人员应当理解,可以选取更多的键范围与SST2、SST4和SST5的键范围(即10-30)重叠率较高的历史记录文件来预测SST4的寿命。作为示例,可选择键范围与SST2、SST4和SST5的键范围的重叠率高于设定值的历史记录文件来预测SST4的寿命。
例如,如果通过第一机器学习模型确定SST4在将来参与主动压缩的概率不高于参加被动压缩操作的概率,则在层i+2中确定键范围与SST4的键范围至少部分重叠的SST文件SST7和SST8。可以看出,SST4、SST7和SST8的最大键值和最小键值分别为25和5,因此,SST4、SST7和SST8的键范围为5-25。可在针对从层i+1到层i+2层的压缩操作的历史记录文件中查找到第二键范围与SST4、SST7和SST8的键范围(即5-25)重叠率较高的记录文件Record_6,然后可以得到由记录文件对应的压缩操作删除的文件的最大键值、最小键值和寿命,然后可将Record_6记录的最大键值、最小键值和寿命输入第二已训练的机器学习模型来预测SST4的寿命。本领域技术人员应当理解,可以选取更多的键范围与SST4、SST7和SST8的键范围(即5-25)重叠率较高的历史记录文件来预测SST4的寿命。作为示例,可选择键范围与作为示例,可选择键范围与SST2、SST4和SST5的键范围的重叠率高于设定值的历史记录文件来预测SST4文件的寿命。
本领域技术人员应当理解,训练上述机器模型所使用的数据类型与使用已训练的机器学习模型进行预测时所使用的数据类型一致。
图8是示出相关技术中的压缩策略的示例和根据本公开实施例的压缩策略的示图。
参照图8,文件A和B均是层2中需要被压缩的文件,其中,文件C和D的键范围与文件A的键范围至少部分重叠,文件E和F的键范围与文件B的键范围至少部分重叠。
根据相关技术中的压缩策略,首先对文件A执行压缩,即对文件A、C、D执行压缩。压缩操作后,层2中的文件A以及层3中的文件C、D被删除,新文件G和H被生成。另外,分区1中的文件A、分区3中的文件C、D变为无效文件,并且文件G和H被存储到ZNS SSD的分区的空闲空间中。然而,在将G存储到空闲空间中后,没有用于存储H的空闲空间,因此,文件H的写入失败。此外,参照图8,可看出,分区1和分区2中存在较多无效文件。然而,由于分区1和分区2中存在少量有效文件,因此,分区1和分区2无法被回收来为文件H提供空闲空间。
根据本公开的压缩策略,优先压缩文件B、E和F,压缩后,层2中的文件B、层3中的文件E和F被删除,并且生成层3中的文件M和N。相应地,分区2中的文件B和分区3中的文件E和F变为无效文件,文件M和N需要存储到ZNS SSD的空闲空间中。
由于压缩操作后,分区2中全部为无效文件,因此,分区2可被回收,然后文件E和F被存储到分区2中。当对文件A执行压缩时,新生成的文件可被存储到分区2的空闲空间以及分区4的空闲空间中。
如上所述,根据本公开的压缩策略提高了ZNS SSD的存储空间利用率。
以上参照图1至图8对根据本公开的实施例的SST文件的压缩方法数据压缩方进行了描述,下面参照图9至图14对根据本公开的实施例的SST文件的压缩装置、电子装置、存储装置以及系统进行描述。
图9示出了根据本公开的实施例的SST文件的压缩装置的结构的框图。
参照图9,压缩装置900可包括确定单元901和压缩单元902。本领域技术人员应当理解,压缩装置900可另外包括其它组件,并且压缩装置900包括的组件中的至少一个可被组合或者拆分。
作为示例,本文所述的SST文件可被存储在ZNS SSD的分区Zone中。
作为示例,确定单元901可被配置为:响应于确定需要对日志结构合并树LSM-Tree的第一层执行压缩操作,基于第一层中第一多个SST文件以及第二层中的第二多个SST文件对应的第一多个Zone的属性信息确定第一多个SST文件的压缩优先级,其中,第一多个SST文件中的每个SST文件的键范围与第二层中的SST文件的键范围至少部分重叠,第二多个SST文件中的每个SST文件的键范围与第一多个SST文件的键范围至少部分重叠,其中,第二层指示LSM-Tree的与第一层相邻并且第二层比第一层高的层。
作为示例,第一多个Zone的属性信息包括以下项中的至少一个:第一多个Zone中的每个Zone中有效文件的大小、第一多个Zone中的每个Zone中无效文件的大小、第一多个Zone中的每个Zone中无效文件的数量、第一多个Zone中的每个Zone中有效文件的预期失效时间。
作为示例,确定单元901可被配置为:基于第一多个SST文件中的每个SST文件以及所述每个SST文件对应的第二层中的第三多个SST文件对应的第二多个Zone的属性信息确定所述多个SST文件的压缩优先级,其中,第三多个SST文件中的每个SST文件的键范围与所述每个SST文件的键范围至少部分重叠其中,以及其中,所述每个SST文件以及所述每个SST文件对应的第二多个Zone的属性信息包括:第二多个Zone中的每个Zone中的有效文件的大小与所述每个Zone的存储容量的比值、所述每个Zone中无效文件的大小与所述每个Zone的存储容量的比值、所述每个Zone中无效文件的数量与所述每个Zone中所有文件的数量的比值以及所述每个Zone中有效文件的剩余寿命的平均值,确定第一多个SST文件的压缩优先级。
作为示例,所述确定单元可被配置为:对第二多个Zone中的每个Zone中有效文件的大小与所述每个Zone的存储容量的比值、第二多个Zone中的每个Zone中无效文件的大小与所述每个Zone的存储容量的比值、第二多个Zone中的每个Zone中无效文件的数量与第二多个Zone中的每个Zone中所有文件的数量的比值以及第二多个Zone中的每个Zone中有效文件的剩余寿命的平均值的归一化值进行加权求和;以及确定通过加权求和获得的与第二多个Zone对应的多个和中的最大值作为所述每个SST文件的压缩优先级值,基于第一多个SST文件对应的压缩优先级值确定所述压缩优先级,其中,所述多个SST文件中的具有较大压缩优先级值的SST文件被确定为具有较高压缩优先级。
作为示例,压缩单元902可被配置为:优先对第一多个SST文件中的具有较高压缩优先级的SST文件执行压缩操作。
作为示例,压缩单元902可被配置为:从第一多个SST文件中选择具有较高压缩优先级的SST文件;以及对所述选择的SST文件和第二层中的第三多个SST文件执行压缩操作,其中,第三多个SST文件中的每个SST文件的键范围与所述选择的SST文件的键范围至少部分重叠。
作为示例,第二多个Zone中处于参与压缩操作的层的文件被视作无效文件。
作为示例,LSM-Tree基于LevelDB或基于RocksDB。
作为示例,有效文件的剩余寿命指示所述有效文件的预期失效时间与当前时间的差值,所述有效文件的预期失效时间为所述有效文件的创建时间加上所述有效文件的寿命,其中,所述有效文件的寿命通过以下方式获得:当所述有效文件被创建时,基于所述有效文件所在层、与所述有效文件所在层相邻的较高层以及与所述有效文件所在层相邻的较低层的属性信息,利用第一已训练的机器学习模型预测所述有效文件在将来参与主动压缩操作的概率是否高于参与被动压缩操作的概率,其中,主动压缩操作指示所述有效文件与所述较高层的SST文件的压缩操作,被动压缩操作指示所述有效文件与所述较低层的SST文件的压缩操作,当参加主动压缩操作的概率高于参与被动压缩操作的概率时时,基于针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件、利用第二已训练的机器学习模型预测所述有效文件的寿命,当参加主动压缩操作的概率不高于参加被动压缩操作的概率时,基于针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件、利用第三已训练的机器学习模型预测所述有效文件的寿命,其中,针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件以及针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件中的每个历史记录文件记录了因所述每个历史记录文件对应的压缩操作而被删除的SST文件的第一键范围和寿命,其中,第一键范围基于因压缩操作而被删除的SST文件的最小键值和最大键值确定。
作为示例,所述有效文件所在层、与所述有效文件所在层相邻的较高层以及与所述有效文件所在层相邻的较低层的属性信息包括:所述较低层中的所有SST文件的大小与所述较低层的容量之比减去所述有效文件所在层的所有SST文件的大小与所述有效文件所在层的容量之比、所述有效文件所在层的除所述有效文件之外的各SST文件与所述较高层文件的键重叠率中的最小键重叠率减去所述有效文件与所述较高层中的文件的键重叠率、由生成所述有效文件的压缩操作生成的所有SST文件的大小与所述有效文件所在层的容量之比、由生成所述有效文件的压缩操作生成的所有SST文件的数量减去所述有效文件所在层中的因生成所述有效文件的压缩操作而被删除的SST文件的数量,其中,基于针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件,利用已训练的第二机器学习模型预测所述有效文件的寿命的步骤包括:确定所述有效文件以及所述较高层中的键范围与所述有效文件的键范围至少部分重叠的文件的第二键范围,按照第一预设规则从针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件中选择第一键范围与所述第二键范围接近的历史记录文件,将所选择的历史记录文件记载的由于所选择的历史记录文件对应的压缩操作删除的SST文件最大键值、最小键值以及寿命输入第二已训练的机器学习模型来预测所述有效文件的寿命,其中,基于针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件,利用第三已训练的机器学习模型预测所述有效文件的寿命的步骤包括:确定所述较低层中的键范围与所述有效文件的键范围重叠最大的SST文件,确定所述重叠最大的文件以及所述有效文件所在层中的键范围与所述重叠最大的文件的键范围至少部分重叠的文件的第三键范围,按照第二预设规则从针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件中选择第一键范围与所述第三键范围接近的历史记录文件,将所选择的历史记录文件记载的由于所选择的历史记录文件对应的压缩操作删除的SST文件的最大键值、最小键值以及寿命输入第三已训练的机器学习模型来预测所述有效文件的寿命。
作为示例,第一预设规则包括:从针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件中选择第一预定数量的历史记录文件或选择第一键范围与所述第二键范围的重叠率大于第一预定值的历史记录文件,以及第二预设规则包括:从针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件中选择第二预定数量的历史记录文件或选择第一键范围与所述第三键范围的重叠率大于第二预定值的历史记录文件。
根据本公开的实施例的另一方面,提供了一种存储有计算机程序的计算机可读存储介质,其中,当所述计算机程序被处理器执行时使得所述处理器实现如本文所述的SST文件的压缩方法。
图10为根据本公开的实施例的电子装置1000的示意图。
图10的电子装置1000基本上可以是移动系统,例如便携式通信终端(例如,移动电话)、智能手机、平板个人计算机(PC)、可穿戴装置、医疗保健装置或物联网(IOT)装置。但是,图10的电子装置1000不必限于移动系统,其可以是PC、膝上型计算机、服务器、媒体播放器或汽车装置(例如,导航装置)。
参照图10,电子装置1000可以包括主处理器1100、存储器(例如,1200a和1200b)以及存储装置(例如,1300a和1300b)。并且,电子装置1000可以包括图像捕获装置1410、用户输入装置1420、传感器1430、通信装置1440、显示器1450、扬声器1460、供电装置1470以及连接接口1480中的至少一个。
主处理器1100可以控制电子装置1000的所有操作,更具体地,可以控制电子装置1000中包括的其他组件的操作。主处理器1100可以被实现为通用处理器、专用处理器或应用程序处理器等。
主处理器1100可以包括至少一个中央处理器(CPU)核1110,并且还包括控制器1120,其用于控制存储器1200a和1200b和/或存储装置1300a和1300b。在一些实施例中,主处理器1100可以进一步包括加速器1130,其是用于诸如人工智能(AI)数据操作等的高速数据操作的专用电路。加速器1130可以包括图形处理单元(GPU)、神经处理单元(NPU)和/或数据处理单元(DPU)等,并且被实现为与主处理器1100的其他组件物理上分离的芯片。
存储器1200a和1200b可以用作电子装置1000的主存储装置。尽管存储器1200a和1200b可以分别包括易失性存储器,例如静态随机存取存储器(SRAM)和/或动态随机存取存储器(DRAM)等,但是存储器1200a和1200b可以分别包括非易失性存储器,例如闪存、相变随机存取存储器(PRAM)和/或电阻式随机存取存储器(RRAM)等。存储器1200a和1200b可以在与主处理器1100相同的封装中实现。
存储装置1300a和1300b可以用作非易失性存储装置,其被配置为不管是否被供电都存储数据,并且具有比存储器1200a和1200b更大的存储容量。存储装置1300a和1300b可以分别包括存储器控制器(STRG CTRL)1310a和1310b以及非易失性存储器(NVM)1320a和1320b,其被配置为经由存储器控制器1310a和1310b的控制来存储数据。尽管NVM 1320a和1320b可以包括具有二维(2D)或三维(3D)结构的V-NAND闪存,但是NVM 1320a和1320b可以包括其他类型的NVM,例如PRAM和/或RRAM等。
存储装置1300a和1300b可以与主处理器1100物理上分离并且包括在电子装置1000中,或者可以在与主处理器1100相同的封装中实现。另外,存储装置1300a和1300b可以具有固态装置(SSDs)或存储卡的类型,并且可以通过诸如稍后将描述的连接接口1480之类的接口与系统100的其他组件可移除地结合。存储装置1300a和1300b可以是应用了诸如通用闪存(UFS)、嵌入式多媒体卡(eMMC)或NVMe之类的标准协议的装置,但不限于此。
图像捕获装置1410可以拍摄静止图像或运动图像。图像捕获装置1410可以包括照相机、便携式摄像机和/或网络摄像头等。
用户输入装置1420可以接收由电子装置1000的用户输入的各种类型的数据,并且包括触摸板、键区、键盘、鼠标和麦克风等。
传感器1430可以检测可以从电子装置1000的外部获得的各种类型的物理量,并将所检测的物理量转换成电信号。传感器1430可以包括温度传感器、压力传感器、照度传感器、位置传感器、加速度传感器、生物传感器和/或陀螺仪传感器等。
通信装置1440可以根据各种通信协议在电子装置1000外部的其他装置之间发送和接收信号。通信装置1440可以包括天线、收发器或调制解调器等。
显示器1450和扬声器1460可以用作输出装置,其被配置为分别向电子装置1000的用户输出视觉信息和听觉信息。
供电装置1470可以适当地转换从嵌入在电子装置1000中的电池(未示出)和/或外部电源供应的电力,并且将所转换的电力供应给电子装置1000的每个组件。
连接接口1480可以提供电子装置1000和外部装置之间的连接,该外部装置连接到电子装置1000并且能够向电子装置1000发送数据和从电子装置1000接收数据。连接接口1480可以通过使用各种接口方案来实现,例如,高级技术附件(ATA)、串行ATA(SATA)、外部串行ATA(e-SATA)、小型计算机系统接口(SCSI)、串行SCSI(SAS)、外部设备互连(PCI)、PCIexpress(PCIe)、NVMe、IEEE 1394、通用串行总线(USB)接口、安全数码(SD)卡接口、多媒体卡(MMC)接口、嵌入式多媒体卡(eMMC)接口、UFS接口、嵌入式UFS(eUFS)接口和紧凑式闪存(CF)卡接口等。
根据本公开的实施例,提供了一种电子装置,包括:存储器(例如,图10中的1200a和1200b),存储一个或更多个指令;多个存储装置(例如,图10中的1300a和1300b);以及主处理器(例如,图10中的1100),被配置为执行所述一个或更多个指令以使得所述主处理执行如本文所述的SST文件的压缩方法。
图11是根据本公开实施例的主机存储系统10的框图。
主机存储系统10可以包括主机100和存储装置200。此外,存储装置200可以包括存储器控制器210和NVM 220。根据本发明的示例性实施例,主机100可以包括主机控制器110和主机存储器120。主机存储器120可以用作缓冲存储器,其被配置为临时存储要发送到存储装置200的数据或从存储装置200接收的数据。
存储装置200可以包括存储介质,其被配置为响应于来自主机100的请求而存储数据。作为示例,存储装置200可以包括SSD、嵌入式存储器和可装卸的外部存储器中的至少一个。当存储装置200是SSD时,存储装置200可以是符合NVMe标准的装置。当存储装置200是嵌入式存储器或外部存储器时,存储装置200可以是符合UFS标准或eMMC标准的装置。主机100和存储装置200均可以根据采用的标准协议来生成包(packet)并发送该包。
当存储装置200的NVM 220包括闪存时,所述闪存可以包括2D NAND存储阵列或3D(或垂直)NAND(VNAND)存储阵列。作为另一示例,存储装置200可以包括各种其他种类的NVM。例如,存储装置200可以包括磁性随机存取存储器(MRAM)、自旋转移扭矩MRAM、导电桥式RAM(CBRAM)、铁电RAM(FRAM)、PRAM、RRAM以及各种其他类型的存储器。
根据一实施例,主机控制器110和主机存储器120可以实现为单独的半导体芯片。或者,在一些实施例中,主机控制器110和主机存储器120可以集成在同一半导体芯片中。作为示例,主机控制器110可以是包括在应用处理器(AP)中的多个模块中的任何一个。所述AP可以实现为片上系统(SoC)。此外,主机存储器120可以是所述AP中包括的嵌入式存储器或所述AP外部的存储器模块。
主机控制器110可以管理将主机存储器120的缓冲区域的数据(例如,写入数据)存储在NVM 220中的操作或将NVM 220的数据(例如,读取数据)存储在缓冲区域中的操作。
存储器控制器210可以包括主机接口211、存储器接口212和CPU 213。另外,存储器控制器210还可以包括闪存转换层(FTL)、包管理器215、缓冲存储器216、纠错码(ECC)引擎217和高级加密标准(AES)引擎218。存储器控制器210可以进一步包括其中装载有FTL 214的工作存储器(未示出)。CPU 213可以执行FTL 214来控制NVM 220上的数据写入和读取操作。
主机接口211可以向主机100发送包和从主机100接收包。从主机100发送到主机接口211的包可以包括命令或要被写入NVM 220的数据等。从主机接口211发送到主机100的包可以包括对命令的响应或从NVM 220读取的数据等。存储器接口212可以将要被写入NVM220的数据发送到NVM 220或接收从NVM 220读取的数据。存储器接口212可以被配置为符合诸如切换(Toggle)或开放NAND闪存接口(ONFI)的标准协议。
FTL 214可以执行各种功能,例如地址映射操作、磨损均衡操作以及垃圾收集操作。地址映射操作可以是将从主机100接收的逻辑地址转换为用于在NVM 220中实际存储数据的物理地址的操作。磨损均衡操作可以是通过允许均匀地使用NVM 220的块来防止特定块的过度退化的技术。作为示例,磨损均衡操作可以通过使用平衡物理块的擦写计数的固件技术来实现。垃圾收集操作可以是通过在将现有块的有效数据复制到新块之后擦除现有块来确保NVM 220中的可用容量的技术。
包管理器215可以根据同意主机100的接口的协议生成包,或者从从主机100接收到的包中解析各种类型的信息。另外,缓冲存储器216可以临时存储要写入NVM 220的数据或要从NVM 220读取的数据。尽管缓冲存储器216可以是包括在存储器控制器210中的组件,但是缓冲存储器216可以在存储器控制器210的外部。
ECC引擎217可以对从NVM 220读取的读取数据执行错误检测和校正操作。更具体地,ECC引擎217可以生成用于要写入到NVM 220的写入数据的奇偶校验位,并且所生成的奇偶校验位可以与写入数据一起存储在NVM 220中。在从NVM 220读取数据期间,ECC引擎217可以通过使用读取数据以及从NVM 220读取的奇偶校验位来校正读取数据中的错误,并输出错误校正后的读取数据。
AES引擎218可以通过使用对称密钥算法对输入到存储器控制器210的数据执行加密操作和解密操作中的至少一个。
根据本公开的实施例,提供了一种主机存储系统,包括:主机(例如图11中的100),包括主机存储器(例如,图11中的110)和主机控制器(例如,图11中的120);以及存储装置(例如,图11中的200),其中,所述主机存储器存储有当由主机控制器执行时使得所述主机控制器执行如本文所述的SST文件的压缩方法的指令。
图12为根据本公开的实施例的UFS系统2000的框图。
UFS系统2000可以是符合电子工程设计发展联合协会(JEDEC)所宣布的UFS标准的系统,并且包括UFS主机2100、UFS装置2200以及UFS接口2300。在不与图12的描述冲突的范围内,对于图10的电子装置1000的以上描述也可以应用于图12的UFS系统2000。
参照图12,UFS主机2100可以通过UFS接口2300连接到UFS装置2200。当图10的主处理器1100为应用处理器时,UFS主机2100可以实现为应用处理器的一部分。UFS主机控制器2110和主机存储器2140可以分别对应于图10的主处理器1100的和控制器1120以及存储器1200a和1200b。UFS装置2200可以对应于图10的存储装置1300a和1300b,并且UFS装置控制器2210和NVM 2220可以分别对应于图10的存储器控制器1310a和1310b以及NVM 1320a和1320b。
UFS主机2100可以包括UFS主机控制器2110、应用程序2120、UFS驱动器2130,主机存储器2140和UFS互连(UIC)层2150。UFS装置2200可以包括UFS装置控制器2210、NVM 2220、存储接口2230、装置存储器2240、UIC层2250以及调节器2260。NVM 2220可以包括多个存储元件2221。尽管每个存储元件2221可以包括具有2D结构或3D结构的V-NAND闪存,但是每个存储元件2221可以包括另一种NVM,例如PRAM和/或RRAM等。UFS装置控制器2210可以通过存储接口2230连接到NVM 2220。存储接口2230可以设置为符合诸如Toggle或ONFI的标准协议。
应用程序2120可以指想要与UFS装置2200进行通信以使用UFS装置2200的功能的程序。应用程序2120可以发送输入-输出请求(IOR)到UFS驱动器2130,以用于UFS装置2200上的输入/输出(I/O)操作。IOR可以指数据读取请求、数据存储(或写入)请求和/或数据擦除(或丢弃)请求,但不限于此。
UFS驱动器2130可以通过UFS-主机控制器接口(UFS-HCI)来管理UFS主机控制器2110。UFS驱动器2130可以将由应用程序2120生成的IOR转换为由UFS标准定义的UFS命令,并且将UFS命令发送到UFS主机控制器2110。一个IOR可以被转换成多个UFS命令。尽管UFS命令基本上可以由SCSI标准定义,但是UFS命令可以是专用于UFS标准的命令。
UFS主机控制器2110可以通过UIC层2150和UFS接口2300将由UFS驱动器2130转换的UFS命令发送到UFS装置2200的UIC层2250。在UFS命令的发送期间,UFS主机控制器2110的UFS主机寄存器2111可以用作命令队列(CQ)。
在UFS主机2100一侧上的UIC层2150可以包括移动产业处理器接口(MIPI)M-PHY2151和MIPI UniPro 2152,并且在UFS装置2200一侧上的UIC层2150也可以包括MIPI M-PHY2251和MIPI UniPro 2252。
UFS接口2300可以包括配置为发送参考时钟信号REF_CLK的线、配置为发送UFS装置2200的硬件重置信号RESET_n的线、配置为发送一对差分输入信号DIN_t和DIN_c的一对线以及配置为发送一对差分输出信号DOUT_t和DOUT_c的一对线。
从UFS主机2100提供给UFS装置2200的参考时钟信号REF_CLK的频率可以是19.2MHz、26MHz、38.4MHz和52MHz中的一个,但不限于此。UFS主机2100可以在操作期间,即,在UFS主机2100和UFS装置2200之间的数据发送/接收操作期间,改变参考时钟信号REF_CLK的频率。UFS装置2200可以通过使用锁相环(PLL)从由UFS主机2100提供的参考时钟信号REF_CLK生成具有各种频率的时钟信号。并且,UFS主机2100可以通过使用参考时钟信号REF_CLK的频率来设置UFS主机2100和UFS装置2200之间的数据速率。即,可以根据参考时钟信号REF_CLK的频率来确定数据速率。
UFS接口2300可以支持多个通道,每个通道可以实现为一对差分线。例如,UFS接口2300可以包括至少一个接收通道和至少一个发送通道。在图12中,配置为发送一对差分输入信号DIN_T和DIN_C的一对线可以构成接收通道,并且配置为发送一对差分输出信号DOUT_T和DOUT_C的一对线可以构成发送通道。尽管在图12中示出了一个发送通道和一个接收通道,但是可以改变发送通道的数量和接收通道的数量。
接收通道和发送通道可以基于串行通信方案来发送数据。由于接收通道与发送通道分开的结构,因此可以启用UFS主机2100与UFS装置2200之间的全双工通信。即,在通过接收通道从UFS主机2100接收数据的同时,UFS装置2200可以通过发送通道向UFS主机2100发送数据。此外从UFS主机2100到UFS装置2200的控制数据(例如,命令)和要由UFS主机2100存储在UFS装置2200的NVM 2220中或从NVM 2220中读取的用户数据可以通过同一通道发送。因此,在UFS主机2100和UFS装置2200之间,除了一对接收通道和一对发送通道之外,不需要进一步提供用于数据发送的单独通道。
UFS装置2200的UFS装置控制器2210可以控制UFS装置2200的所有操作。UFS装置控制器2210可以通过使用逻辑单元(LU)2211来管理NVM 2220,该LU 2211是逻辑数据存储单元。LU 2211的数量可以是8,但不限于此。UFS装置控制器2210可以包括FTL,并且通过使用FTL的地址映射信息将从UFS主机2100接收到的逻辑数据地址(例如,逻辑块地址(LBA)转换为物理数据地址(例如,物理块地址(PBA))。配置为在UFS系统2000中存储用户数据的逻辑块可以具有预定范围内的尺寸。例如,可以设置逻辑块的最小尺寸为4Kbyte。
当通过UIC层2250将来自UFS主机2100的命令施加到UFS装置2200时,UFS装置控制器2210可以响应于该命令而执行操作,并且当操作完成时将完成响应发送给UFS主机2100。
作为示例,当UFS主机2100意在将用户数据存储在UFS装置2200中时,UFS主机2100可以向UFS装置2200发送数据存储命令。当从UFS装置2200接收到指示UFS主机2100准备好接收用户数据(就绪传输)的响应(“就绪传输”响应)时,UFS主机2100可以将用户数据发送到UFS装置2200。UFS装置控制器2210可以将接收到的用户数据临时存储在装置存储器2240中,并且基于FTL的地址映射信息,将临时存储在装置存储器2240中的用户数据存储在NVM2220的选定位置。
作为另一示例,当UFS主机2100意在读取存储在UFS装置2200中的用户数据时,UFS主机2100可以向UFS装置2200发送数据读取命令。已经接收到该命令的UFS装置控制器2210可以基于数据读取命令从NVM 2220读取用户数据,并将读取的用户数据临时存储装置存储器2240中。在读取操作期间,UFS装置控制器2210可以通过使用嵌入在其中的ECC引擎(未示出)来检测并校正读取的用户数据中的错误。更具体地,ECC引擎可以生成用于要写入NVM2220的写入数据的奇偶校验位,并且所生成的奇偶校验位可以与写入数据一起存储在NVM2220中。在从NVM 2220读取数据期间,ECC引擎可以通过使用读取数据以及从NVM 2220读取的奇偶校验位来校正读取数据中的错误,并输出错误校正后的读取数据。
另外,UFS装置控制器2210可以将临时存储在装置存储器2240中的用户数据发送到UFS主机2100。并且,UFS装置控制器2210还可以包括AES引擎(未示出)。AES引擎可以通过使用对称密钥算法对发送到UFS装置控制器2210的数据执行加密操作和解密操作中的至少一个。
UFS主机2100可以将要发送到UFS装置2200的命令顺序存储在可以用作公共队列的UFS主机寄存器2111中,并且顺序地将命令发送给UFS装置2200。在这种情况下,即使当先前发送的命令仍由UFS装置2200处理时,即,即使在接收到先前发送的命令已经由UFS装置2200处理的通知之前,UFS主机2100也可以将在CQ中待命的下一命令发送到UFS装置2200。因此,在处理先前发送的命令期间,UFS装置2200还可以从UFS主机2100接收下一命令。可以在CQ中存储的命令的最大数量(或队列深度)可以是例如32。并且,可以将CQ实现为循环队列,其中通过头指针和尾指针指示存储在队列中的命令行的开始和结束。
多个存储元件2221中的每一个可以包括存储单元阵列(未示出)和配置为控制存储单元阵列的操作的控制电路(未示出)。存储单元阵列可以包括2D存储单元阵列或3D存储单元阵列。存储单元阵列可以包括多个存储单元。尽管每个存储单元都是设置为存储1位信息的单层单元(SLC),但是每个存储单元可以是设置为存储2位或更多位信息的单元,例如多层单元(MLC)、三层单元(TLC)和四层单元(QLC)。3D存储单元阵列可以包括垂直NAND串,其中至少一个存储单元垂直定向并位于另一存储单元上。
可以将电压VCC、VCCQ和VCCQ2等作为电源电压施加到UFS装置2200。电压VCC可以是用于UFS装置2200的主电源电压,并且可以在2.4V至3.6V的范围内。电压VCCQ可以是主要用于向UFS装置控制器2210供应低压的电源电压,并且可以在1.14V至1.26V的范围内。电压VCCQ2可以是用于主要向诸如MIPI M-PHY 2251之类的I/O接口供应低于电压VCC并且高于电压VCCQ的电压的电源电压,并且可以在1.7V至1.95V的范围内。可以通过调节器2260将电源电压提供给UFS装置2200的各个组件。调节器2260可以实现为一组单元调节器,其分别连接到上述电源电压中的不同电源电压。
根据本公开的实施例,提供了一种UFS系统,包括:UFS装置(图12中的2200);UFS主机(例如,图12中的2100),被配置为执行如本文所述的SST文件的压缩方法;以及UFS接口(图12中的2300),用于UFS装置和UFS主机之间的通信。
图13为根据本发明的一实施例的存储系统15的框图。
参照图13,存储系统15可以包括存储装置17和存储器控制器16。存储系统15可以支持多个通道CH1至CHm,并且存储装置17可以通过多个通道CH1至CHm连接到存储器控制器16。例如,存储系统15可以实现为诸如SSD的存储装置。
存储装置17可以包括多个NVM装置NVM11至NVMmn。NVM装置NVM11至NVMmn中的每一个可以通过与其相对应的路径(way)连接至多个通道CH1至CHm中的一个。例如,NVM装置NVM11至NVM1n可以通过路径W11至W1n连接到第一通道CH1,并且NVM装置NVM21至NVM2n可以通过路径W21至W2n连接到第二通道CH2。在示例性实施例中,NVM装置NVM11至NVM1n中的每一个可以实现为任意存储元件,其可以根据来自存储器控制器16的单独命令来操作。例如,NVM装置NVM11至NVM1n中的每一个可以实现为芯片(chip)或管芯(die),但是本发明不限于此。
存储器控制器16可以通过多个通道CH1至CHm向存储装置17发送信号和从存储装置17接收信号。例如,存储器控制器16可以通过通道CH1至CHm向存储装置17发送命令CMDa至CMDm、地址ADDRa至ADDRm以及数据DATAa至DATAm,或者从存储装置17接收数据DATAa至DATAm。
存储器控制器16可以从通过使用通道CH1至CHm中的相应的一个从连接到通道CH1至CHm中的每一个的NVM装置NVM11至NVMmn中选择一个,并且向所选择的NVM装置发送信号和从所选择的NVM装置接收信号。例如,存储器控制器16可以从连接到第一通道CH1的NVM装置NVM11至NVM1n中选择NVM装置NVM11。存储器控制器16可以通过第一通道CH1发送命令CMDa、地址ADDRa和数据DATAa到所选择的NVM装置NVM11,或者从所选择的NVM装置NVM11接收数据DATAa。
存储器控制器16可以通过彼此不同的通道并行地向存储装置17发送信号和从存储装置17接收信号。例如,存储器控制器16可以在通过第一通道CH1将命令CMDa发送到存储装置17的同时,通过第二通道CH2发送命令CMDb到存储装置17。例如,存储器控制器16可以在通过第一通道CH1从存储装置17接收数据DATAa的同时,通过第二通道CH2从存储装置17接收数据DATAb。
存储器控制器16可以控制存储装置17的所有操作。存储器控制器16可以将信号发送到通道CH1至CHm,并控制连接到通道CH1至CHm的NVM装置NVM11至NVMmn中的每一个。例如,存储器控制器16可以发送命令CMDa和地址ADDRa到第一通道CH1,并且控制选自NVM装置NVM11至NVM1n中的一个。
NVM装置NVM11至NVMmn中的每一个可以经由存储器控制器16的控制来操作。例如,NVM装置NVM11可以基于提供给第一通道CH1的命令CMDa、地址ADDRa和数据DATAa来对数据DATAa进行编程。例如,NVM装置NVM21可以基于提供给第二通道CH2的命令CMDb和地址ADDb读取数据DATAb,并将所读取的数据DATAb发送到存储器控制器16。
尽管图13示出了存储装置17通过m个通道与存储器控制器16进行通信并且包括与每个通道相对应的n个NVM装置的示例,但是可以改变通道的数量和连接到一个通道的NVM装置的数量。
根据本公开的实施例,提供了一种存储系统,包括:存储器装置(例如,存储装置17);以及存储器控制器(例如,存储器控制器16),被配置为执行如本文所述的SST文件的压缩方法。
图14为根据本公开的一实施例的应用了存储装置的数据中心3000的示图。
参照图14,数据中心3000可以是收集各种类型的数据并提供服务的设施,并且被称为数据存储中心。数据中心3000可以是用于操作搜索引擎和数据库的系统,并且可以是公司(诸如,银行)或政府机构所使用的计算系统。数据中心3000可以包括应用服务器3100至3100n和存储服务器3200至3200m。根据实施例,可以不同地选择应用3100至3100n的数量和存储服务器3200至3200m的数量。应用服务器3100至3100n的数量和存储服务器3200至3200m的数量可以彼此不同。
应用服务器3100或存储服务器3200可以包括处理器3110和3210以及存储器3120和3220中的至少一个。现在将以存储服务器3200为例进行描述。处理器3210可以控制存储服务器3200的所有操作,访问存储器3220,并且执行加载到存储器3220的指令和/或数据。存储器3220可以是双数据率同步DRAM(DDR SDRAM)、高带宽存储器(HBM)、混合内存立方体(HMC)、双列直插式内存模块(DIMM)、傲腾DIMM(Optane DIMM)或非易失性DIMM(NVMDIMM)。在一些实施例中,存储服务器3200中包括的处理器3210和存储器3220的数量可以被不同地选择。在一实施例中,处理器3210和存储器3220可以提供处理器-存储器对。在一实施例中,处理器3210的数量与存储器3220的数量可以彼此不同。处理器3210可以包括单核处理器或多核处理器。对于存储服务器3200的以上描述可以类似地应用于应用服务器3100。在一些实施例中,应用服务器3100可以不包括存储装置3150。存储服务器3200可以包括至少一个存储装置3250。根据实施例,存储服务器3200中包括的存储装置3250的数量可以被不同地选择。
应用程序服务器3100至3100n可以通过网络3300与存储服务器3200至3200m通信。网络3300可以通过使用光纤信道(FC)或以太网来实现。在这种情况下,FC可以是用于相对高速的数据传输的介质,并且可以使用具有高性能和高可用性的光开关。根据网络3300的访问方法,可以将存储服务器3200至3200m设置为文件存储、块存储或对象存储。
在一实施例中,网络3300可以是专用于存储的网络,例如存储区域网络(SAN)。例如,SAN可以是FC-SAN,其使用FC网络并且根据FC协议(FCP)实现。作为另一示例,SAN可以是因特网协议(IP)-SAN,其使用传输控制协议(TCP)/IP网络并且根据TCP/IP上的SCSI或因特网SCSI(iSCSI)协议来实现。在另一实施例中,网络3300可以是通用网络,例如TCP/IP网络。例如,可以根据诸如以太网上的FC(FCoE)、网络附加存储(NAS)和结构上的NVMe(N VMe-oF)之类的协议来实现网络3300。
在下文中,将主要描述应用服务器3100和存储服务器3200。应用服务器3100的描述可以应用于另一应用服务器3100n,并且存储服务器3200的描述可以应用于另一存储服务器3200m。
应用服务器3100可以通过网络3300将用户或客户端请求存储的数据存储在存储服务器3200至3200m中的一个。此外,应用服务器3100可以通过网络3300从存储服务器3200至3200m中的一个获得由用户或客户端请求读取的数据。例如,应用程序服务器3100可以被实现为网络服务器或数据库管理系统(DB MS)。
应用服务器3100可以通过网络3300访问包括在另一应用服务器3100n中的存储器3120n或存储装置3150n。或者,应用服务器3100可以通过网络3300访问包括在存储服务器3200至3200m中的存储器3220至3220m或存储装置3250至3250m。因此,应用服务器3100可以对存储在应用服务器3100至3100n和/或存储服务器3200至3200m中的数据执行各种操作。例如,应用服务器3100可以执行用于在应用服务器3100至3100n和/或存储服务器3200至3200m之间移动或复制数据的指令。在这种情况下,可以将数据从存储服务器3200至3200m的存储装置3250至3250m通过存储服务器3200至3200m的存储器3220至322 0m或直接移动到应用服务器3100至3100n的存储器3120至3120n。通过网络3300移动的数据可以是为了安全或隐私而加密的数据。
现在将以存储服务器3200为例进行描述。接口3254可以提供处理器3210和控制器3251之间的物理连接以及网络接口卡(NIC)3240和控制器3251之间的物理连接。例如,可以使用直接附加存储(DAS)方案来实现接口3254,其中存储装置3250直接与专用电缆连接。例如,接口3254可以通过使用各种接口方案来实现,例如ATA、SATA、e-SATA、SCSI、SAS、PCI、PCIe、NVMe、I EEE 1394、USB接口、SD卡接口、MMC接口、eMMC接口、UFS接口、eUFS接口和CF卡接口。
存储服务器3200可以进一步包括开关3230和网络互连(NIC)3240。开关3230可以经由处理器3210的控制来选择性地将处理器3210连接到存储装置3250,或者选择性地将NIC 3240连接到存储装置3250。
在一实施例中,NIC 3240可以包括网络接口卡和网络适配器。NIC 3240可以通过有线接口、无线接口、蓝牙接口或光接口连接到网络3300。NIC 3240可以包括内部存储器、数字信号处理器(DSP)和主机总线接口,并且通过主机总线接口连接到处理器3210和/或开关3230。主机总线接口可以被实现为接口3254的上述示例之一。在一实施例中,NIC 3240可以与处理器3210、开关3230和存储装置3250中的至少一个集成。
在存储服务器3200至3200m或应用服务器3100至3100n中,处理器可将命令发送到存储装置3150至3150n和3250至3250m或存储器3120至3120n和3220至3220m并编程或读取数据。在这种情况下,数据可以是通过ECC引擎校正了错误的数据。数据可以是对其执行数据总线倒置(DBI)操作或数据掩蔽(D M)操作的数据,并且可以包括循环冗余编码(CRC)信息。数据可以是为了安全或隐私而加密的数据。
存储装置3150至3150n和3250至3250m可以响应于从处理器接收到的读取命令向NAND闪存装置3252至3252m发送控制信号和命令/地址信号。因此,当从NAND闪存装置3252至3252m读取数据时,可以输入读取使能(RE)信号作为数据输出控制信号,因此,可以将数据输出至DQ总线。可以使用RE信号产生数据选通信号DQS。取决于写入使能(WE)信号的上升沿或下降沿,命令和地址信号可以锁存在页面缓冲器中。
控制器3251可以控制存储装置3250的所有操作。在一实施例中,控制器3251可以包括SRAM。控制器3251可以响应于写入命令将数据写入到NAND闪存装置3252,或者响应于读取命令从NAND闪存装置3252读取数据。例如,可以从存储服务器3200的处理器3210、另一存储服务器3200m的处理器3210m或应用服务器3100和3100n的处理器3110和3110n提供写入命令和/或读取命令。DRA M 3253可以临时存储(或缓冲)要写入到NAND闪存装置3252的数据或从NAND闪存装置3252读取的数据。并且,DRAM 3253可以存储元数据。这里,元数据可以是用户数据或由控制器3251生成的用于管理NAND闪存装置3252的数据。存储装置3250可以包括用于安全性或隐私性的安全元件(SE)。
根据本公开的实施例,提供了一种数据中心系统,包括:多个应用服务器(例如,应用服务器3100至3100n);以及多个存储服务器(例如,存储服务器3200至3200m),其中,多个应用服务器和/或所述多个存储服务器中的每一个被配置为执行如本文所述的SST文件的压缩方法。
根据本公开的实施例,还可提供一种存储指令的计算机可读存储介质,其中,当指令被至少一个处理器运行时,实现根据本公开的实施例的SST的压缩方法。这里的计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态硬盘(SSD)、卡式存储器(诸如,多媒体卡、安全数字(SD)卡或极速数字(XD)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。
根据本公开的实施例中,还可提供一种计算机程序产品,该计算机程序产品中的指令可由计算机设备的处理器执行以完成本文所述的SST文件的压缩方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

Claims (17)

1.一种有序字符串表SST文件的压缩方法,其中,所述SST文件存储在分区命名空间ZNS固态驱动器SSD的分区中,所述方法包括:
响应于确定需要对日志结构合并树LSM-Tree的第一层执行压缩操作,基于第一层中第一多个SST文件以及第二层中的第二多个SST文件对应的第一多个分区的属性信息确定第一多个SST文件的压缩优先级,其中,第一多个SST文件中的每个SST文件的键范围与第二层中的SST文件的键范围至少部分重叠,第二多个SST文件中的每个SST文件的键范围与第一多个SST文件的键范围至少部分重叠;以及
优先对第一多个SST文件中的具有较高压缩优先级的SST文件执行压缩操作,其中,第二层指示LSM-Tree的与第一层相邻并且第二层比第一层高的层。
2.如权利要求1所述的方法,优先对第一多个SST文件中的具有较高压缩优先级的SST文件执行压缩操作的步骤包括:
从第一多个SST文件中选择具有较高压缩优先级的SST文件;以及对所述选择的SST文件和第二层中的第三多个SST文件执行压缩操作,其中,第三多个SST文件中的每个SST文件的键范围与所述选择的SST文件的键范围至少部分重叠。
3.如权利要求1所述的方法,其中,第一多个分区的属性信息包括以下项中的至少一个:第一多个分区中的每个分区中有效文件的大小、第一多个分区中的每个分区中无效文件的大小、第一多个分区中的每个分区中无效文件的数量、第一多个分区中的每个分区中有效文件的预期失效时间。
4.如权利要求3所述的方法,其中,确定第一多个SST文件的压缩优先级的步骤包括:
基于第一多个SST文件中的每个SST文件以及所述每个SST文件对应的第二层中的第三多个SST文件对应的第二多个分区的属性信息确定所述多个SST文件的压缩优先级,
其中,第三多个SST文件中的每个SST文件的键范围与所述每个SST文件的键范围至少部分重叠,
其中,所述每个SST文件以及所述每个SST文件对应的第二多个分区的属性信息包括:第二多个分区中的每个分区中的有效文件的大小与所述每个分区的存储容量的比值、所述每个分区中无效文件的大小与所述每个分区的存储容量的比值、所述每个分区中无效文件的数量与所述每个分区中所有文件的数量的比值以及所述每个分区中有效文件的剩余寿命的平均值。
5.如权利要求4所述的方法,其中,基于第一多个SST文件中的每个SST文件以及所述每个SST文件对应的第二层中的第三多个SST文件对应的第二多个分区的属性信息确定所述多个SST文件的压缩优先级的步骤包括:
对第二多个分区中的每个分区中有效文件的大小与所述每个分区的存储容量的比值、第二多个分区中的每个分区中无效文件的大小与所述每个分区的存储容量的比值、第二多个分区中的每个分区中无效文件的数量与第二多个分区中的每个分区中所有文件的数量的比值以及第二多个分区中的每个分区中有效文件的剩余寿命的平均值的归一化值进行加权求和;以及
确定通过加权求和获得的与第二多个分区对应的多个和中的最大值作为所述每个SST文件的压缩优先级值,
基于第一多个SST文件对应的压缩优先级值确定所述压缩优先级,其中,所述多个SST文件中的具有较大压缩优先级值的SST文件被确定为具有较高压缩优先级。
6.如权利要求4所述的方法,其中,第二多个分区中处于参与压缩操作的层的文件被视作无效文件。
7.如权利要求1所述的方法,其中,LSM-Tree基于LevelDB或基于RocksDB。
8.如权利要求4所述的方法,其中,有效文件的剩余寿命指示所述有效文件的预期失效时间与当前时间的差值,所述有效文件的预期失效时间为所述有效文件的创建时间加上所述有效文件的寿命,
其中,所述有效文件的寿命通过以下方式获得:
当所述有效文件被创建时,基于所述有效文件所在层、与所述有效文件所在层相邻的较高层以及与所述有效文件所在层相邻的较低层的属性信息,利用第一已训练的机器学习模型预测所述有效文件在将来参与主动压缩操作的概率是否高于在将来参与被动压缩操作的概率,其中,主动压缩操作指示所述有效文件与所述较高层的SST文件的压缩操作,被动压缩操作指示所述有效文件与所述较低层的SST文件的压缩操作,
当参加主动压缩操作的概率高于参加被动压缩操作的概率时,基于针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件、利用第二已训练的机器学习模型预测所述有效文件的寿命,
当参加被动压缩操作的概率不高于参加被动压缩操作的概率时,基于针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件、利用第三已训练的机器学习模型预测所述有效文件的寿命,
其中,针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件以及针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件中的每个历史记录文件记录了因所述每个历史记录文件对应的压缩操作而被删除的SST文件的第一键范围和寿命,其中,第一键范围基于因压缩操作而被删除的SST文件的最小键值和最大键值确定。
9.如权利要求8所述的方法,其中,所述有效文件所在层、与所述有效文件所在层相邻的较高层以及与所述有效文件所在层相邻的较低层的属性信息包括:所述较低层中的所有SST文件的大小与所述较低层的容量之比减去所述有效文件所在层的所有SST文件的大小与所述有效文件所在层的容量之比、所述有效文件所在层的除所述有效文件之外的各SST文件与所述较高层文件的键重叠率中的最小键重叠率减去所述有效文件与所述较高层中的文件的键重叠率、由生成所述有效文件的压缩操作生成的所有SST文件的大小与所述有效文件所在层的容量之比、由生成所述有效文件的压缩操作生成的所有SST文件的数量减去所述有效文件所在层中的因生成所述有效文件的压缩操作而被删除的SST文件的数量,
其中,基于针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件,利用已训练的第二机器学习模型预测所述有效文件的寿命的步骤包括:
确定所述有效文件以及所述较高层中的键范围与所述有效文件的键范围至少部分重叠的文件的第二键范围,
按照第一预设规则从针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件中选择第一键范围与所述第二键范围接近的历史记录文件,
将所选择的历史记录文件记载的由于所选择的历史记录文件对应的压缩操作删除的SST文件最大键值、最小键值以及寿命输入第二已训练的机器学习模型来预测所述有效文件的寿命,
其中,基于针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件、利用已训练的第三机器学习模型预测所述有效文件的寿命的步骤包括:
确定所述较低层中的键范围与所述有效文件的键范围重叠最大的SST文件,
确定所述重叠最大的文件以及所述有效文件所在层中的键范围与所述重叠最大的文件的键范围至少部分重叠的文件的第三键范围,
按照第二预设规则从针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件中选择第一键范围与所述第三键范围接近的历史记录文件,
将所选择的历史记录文件记载的由于所选择的历史记录文件对应的压缩操作删除的SST文件的最大键值、最小键值以及寿命输入第三机器学习模型来预测所述有效文件的寿命。
10.如权利要求9所述的方法,其中,第一预设规则包括:从针对从所述有效文件所在层到所述较高层的压缩操作的历史记录文件中选择第一预定数量的历史记录文件或选择第一键范围与所述第二键范围的重叠率大于第一预定值的历史记录文件;以及
第二预设规则包括:从针对从所述较低层到所述有效文件所在层的压缩操作的历史记录文件中选择第二预定数量的历史记录文件或选择第一键范围与所述第三键范围的重叠率大于第二预定值的历史记录文件。
11.一种有序字符串表SST文件的压缩装置,其中,所述SST文件存储在分区命名空间ZNS固态驱动器SSD的分区中,所述装置包括:
确定单元,被配置为:响应于确定需要对日志结构合并树LSM-Tree的第一层执行压缩操作,基于第一层中第一多个SST文件以及第二层中的第二多个SST文件对应的第一多个分区的属性信息确定第一多个SST文件的压缩优先级,其中,第一多个SST文件中的每个SST文件的键范围与第二层中的SST文件的键范围至少部分重叠,第二多个SST文件中的每个SST文件的键范围与第一多个SST文件的键范围至少部分重叠;
压缩单元,被配置为:优先对第一多个SST文件中的具有较高压缩优先级的SST文件执行压缩操作,
其中,第二层指示LSM-Tree的与第一层相邻并且第二层比第一层高的层。
12.一种电子装置,包括:
存储器,被配置为存储一个或更多个指令;
多个存储装置;以及
主处理器,被配置为执行所述一个或更多个指令以使得所述主处理器执行如权利要求1-10中的任一项所述的压缩方法。
13.一种主机存储系统,包括:
主机,包括主机存储器和主机控制器;以及
存储装置,
其中,所述主机存储器存储有当由主机控制器执行时使得所述主机控制器执行如权利要求1-10中的任一项所述的压缩方法的指令。
14.一种通用闪存存储(UFS)系统,包括:
UFS主机,被配置为执行如权利要求1-10中的任一项所述的压缩方法;
UFS装置;以及
UFS接口,用于UFS装置和UFS主机之间的通信。
15.一种存储系统,包括:
存储装置;以及
存储器控制器,被配置为执行如权利要求1-10中的任一项所述的压缩方法。
16.一种数据中心系统,包括:
多个应用服务器;以及
多个存储服务器,
其中,所述多个应用服务器中的每一个和/或所述多个存储服务器中的每一个被配置为执行如权利要求1-10中的任一项所述的压缩方法。
17.一种存储有计算机程序的计算机可读存储介质,其中,当所述计算机程序被处理器执行时使得所述处理器实现如权利要求1-10中的任一项所述的压缩方法。
CN202310526530.9A 2023-05-10 2023-05-10 有序字符串表文件的压缩方法和装置 Pending CN116756106A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310526530.9A CN116756106A (zh) 2023-05-10 2023-05-10 有序字符串表文件的压缩方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310526530.9A CN116756106A (zh) 2023-05-10 2023-05-10 有序字符串表文件的压缩方法和装置

Publications (1)

Publication Number Publication Date
CN116756106A true CN116756106A (zh) 2023-09-15

Family

ID=87948569

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310526530.9A Pending CN116756106A (zh) 2023-05-10 2023-05-10 有序字符串表文件的压缩方法和装置

Country Status (1)

Country Link
CN (1) CN116756106A (zh)

Similar Documents

Publication Publication Date Title
KR101528714B1 (ko) 메모리 유닛 동작 방법 및 메모리 제어기
KR102580820B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
EP4345595A1 (en) Method and device for data storage
KR20240025451A (ko) 데이터 캐싱을 위한 방법 및 장치
CN117112219A (zh) 主机内存数据访问的方法和装置
CN116755620A (zh) 基于独立磁盘冗余阵列的数据存储的方法和装置
US20230153006A1 (en) Data processing method and data processing device
CN115291796A (zh) 存储数据的方法和装置
US20230141749A1 (en) Failure prediction method and device for a storage device
US20220179724A1 (en) Method for operating storage device and host device, and storage device
CN116756106A (zh) 有序字符串表文件的压缩方法和装置
US20240160511A1 (en) Failure prediction apparatus and method for storage devices
US20230409200A1 (en) Method and device for data storage
CN117149723A (zh) 有序字符串表文件的压缩方法和装置
CN117008826A (zh) 数据压缩方法和装置
KR20240070391A (ko) 스토리지 장치의 오류 예측 방법 및 장치
CN118113506A (zh) 存储装置的故障预测方法和装置
EP4177758A1 (en) A storage device and an operating method of a storage controller thereof
CN117055816A (zh) 配置zns ssd的区域的方法和装置
US20230393749A1 (en) Method and device of storage data
EP4332773A1 (en) Storage server and operation method of storage server
US20230092380A1 (en) Operation method of memory controller configured to control memory device
US20230073239A1 (en) Storage device and method of operating the same
EP4106135A1 (en) Method of controlling a charging voltage for extending the lifetime of a secondary power source and a storage device performing the same
CN117033320A (zh) 碎片整理方法、设备、电子设备和计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication