数据处理方法及装置制造方法及图纸

技术编号:38848218 阅读:21 留言:0更新日期:2023-09-17 09:57
提供一种数据处理方法及装置。该数据处理方法包括:获取预设时长内从日志结构合并LSM树中读取的热键;确定所述读取的热键的总大小;基于确定的所述读取的热键的总大小调整所述LSM树的多个层中的每个层的大小。述LSM树的多个层中的每个层的大小。述LSM树的多个层中的每个层的大小。

【技术实现步骤摘要】
数据处理方法及装置


[0001]本公开涉及数据处理。更具体地,本公开涉及一种数据处理方法和用于执行数据处理方法的装置。

技术介绍

[0002]目前,存储和访问数百拍字节(PB)的数据是一个非常大的挑战,开源的RocksDB是用来存储和访问数百拍字节(PB)的数据的一种数据库。RocksDB是Facebook的开放的存储数据库,其是用C++编写的嵌入式的键值(Key

Value,简称为KV)型数据库,且RocksDB使用日志结构合并树(Log Structured Merge,简称为LSM)存储引擎存储数据,数据在存储设备上以排序序列表(Sorted Sequence Table,简称为SST)文件的形式存在。
[0003]但是,相关技术中的RocksDB,在压缩(Compaction)过程中键被混合并保存在下层,读取的数据没有根据热度保持在不同的级别,这将导致高读取放大率和糟糕的读取性能,特别是在读取量大的工作负载下。

技术实现思路

[0004]示例根据本公开的示例实施例,提供一种数据处理方法,包括:获取预设时长内从日志结构合并LSM树中读取的热键;确定所述读取的热键的总大小;基于确定的所述读取的热键的总大小调整所述LSM树的多个层中的每个层的大小。
[0005]可选地,所述获取预设时长内从日志结构合并LSM树中读取的热键的步骤可包括:确定读取热度阈值;获取基于所述读取热度阈值确定的热键。
[0006]可选地,所述基于所述读取的热键的总大小调整所述LSM树的多个层中的每个层的大小的步骤可包括:确定所述预设时长内所述多个层中的当前层的上层的总大小;基于所述读取的热键的总大小和所述当前层的上层的总大小调整所述多个层中的每个层的大小。
[0007]可选地,所述基于所述读取的热键的总大小和所述当前层的上层的总大小调整所述多个层中的每个层的大小的步骤可包括:将所述读取的热键的总大小和所述当前层的上层的总大小进行比较,得到比较结果;基于所述比较结果确定是否调整所述多个层中的每个层的大小;当确定调整所述多个层中的每个层的大小时,根据第一规则来调整所述多个层中的每个层的大小。
[0008]可选地,所述基于所述比较结果确定是否调整所述多个层中的每个层的大小的步骤可包括:当所述读取的热键的总大小位于所述当前层的上层的总大小的第一倍数范围时,确定调整所述多个层中的每个层的大小;当所述读取的热键的总大小位于所述当前层的上层的总大小的第二倍数范围时,确定不调整所述多个层中的每个层的大小;当所述读取的热键的总大小位于所述当前层的上层的总大小的第三倍数范围和第四倍数范围时,根据第二规则对读取热度阈值进行更新,并且跳转至获取所述预设时长内从所述LSM树中读取的键中基于所述读取热度阈值确定的全部热键的步骤。
[0009]可选地,所述根据第一规则来调整所述多个层中的每个层的大小的步骤可包括:将所述多个层中的从上到下的第一数量个层的大小分别减小第一数值的第一预设比例;将所述多个层中的从下到上的第二数量个层的大小分别增大第一数值的第二预设比例。
[0010]可选地,所述确定所述预设时长内所述多个层中的当前层的上层的总大小的步骤可包括:将所述预设时长内所述多个层中的位于所述当前层之上的全部层的数据文件中的键之和,确定为所述预设时长内所述当前层的上层的总大小。
[0011]可选地,所述方法还可包括:获取将所述多个层中的当前层中的当前数据文件和所述当前层的下一层中与所述当前数据文件重叠的数据文件进行合并得到的合并文件,其中,所述合并文件包括至少一个键;判断所述至少一个键中的每个键是热键还是冷键;将所述至少一个键中的热键分发到所述当前层,将所述至少一个键中的冷键分发到所述下一层。
[0012]可选地,所述判断所述至少一个键中的每个键是热键还是冷键的步骤可包括:基于键的访问次数判断所述至少一个键中的每个键是热键还是冷键。
[0013]可选地,所述基于键的访问次数判断所述至少一个键中的每个键是热键还是冷键的步骤可包括:确定所述当前数据文件中的键的总大小,作为第一数值;获取所述至少一个键的访问次数,确定所述至少一个键中访问次数处于预设范围内的键的总大小,作为第二数值;确定所述当前层中排列在所述当前数据文件之后的第一个数据文件中的第一个键的大小,作为第三数值;当第一数值小于第二数值时,根据访问次数从高到低的顺序从所述至少一个键中选择大小不超过第一数值的一半的键,并且当第二数值小于第一数值时,根据访问次数从高到低的顺序从所述至少一个键中选择大小不超过第二数值的键;将所述选择的键中小于第三数值的键确定为热键,并且将所述至少一个键中的除了所述热键之外的键确定为冷键。
[0014]根据本公开的示例实施例,提供一种数据处理装置,包括:读取热键获取单元,被配置为获取预设时长内从日志结构合并LSM树中读取的热键;读取大小确定单元,被配置为确定所述读取的热键的总大小;和层大小调整单元,被配置为基于确定的所述读取的热键的总大小调整所述LSM树的多个层中的每个层的大小。
[0015]可选地,所述读取热键获取单元可被配置为:确定读取热度阈值;获取基于所述读取热度阈值确定的热键。
[0016]可选地,所述层大小调整单元可被配置为:确定所述预设时长内所述多个层中的当前层的上层的总大小;基于所述读取的热键的总大小和所述当前层的上层的总大小调整所述多个层中的每个层的大小。
[0017]可选地,所述层大小调整单元可被配置为:将所述读取的热键的总大小和所述当前层的上层的总大小进行比较,得到比较结果;基于所述比较结果确定是否调整所述多个层中的每个层的大小;当确定调整所述多个层中的每个层的大小时,根据第一规则来调整所述多个层中的每个层的大小。
[0018]可选地,所述层大小调整单元可被配置为:当所述读取的热键的总大小位于所述当前层的上层的总大小的第一倍数范围时,确定调整所述多个层中的每个层的大小;当所述读取的热键的总大小位于所述当前层的上层的总大小的第二倍数范围时,确定不调整所述多个层中的每个层的大小;当所述读取的热键的总大小位于所述当前层的上层的总大小
的第三倍数范围和第四倍数范围时,根据第二规则对读取热度阈值进行更新,并且触发所述读取热键获取单元重新执行获取所述预设时长内从所述LSM树中读取的键中基于所述读取热度阈值确定的全部热键的操作,以使得所述读取大小确定单元重新执行确定所述读取的热键的总大小的操作,并且所述层大小调整单元重新执行基于所述读取的热键的总大小调整所述LSM树的多个层中的每个层的大小的操作。
[0019]可选地,所述层大小调整单元可被配置为:将所述多个层中的从上到下的第一数量个层的大小分别减小第一数值的第一预设比例;将所述多个层中的从下到上的第二数量个层的大小分别增大第一数值的第二预设比例。
[0020]可选地,所述层大小调整单元可被配置为:将所述预设时长内所述多个层中的位于所述当前层之上的全部层的数据文件中的键之和,确定为所述预设时长内所述当本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,包括:获取预设时长内从日志结构合并LSM树中读取的热键;确定所述读取的热键的总大小;基于确定的所述读取的热键的总大小调整所述LSM树的多个层中的每个层的大小。2.根据权利要求1所述的方法,其中,所述获取预设时长内从日志结构合并LSM树中读取的热键的步骤包括:确定读取热度阈值;获取基于所述读取热度阈值确定的热键。3.根据权利要求2所述的方法,其中,所述基于所述读取的热键的总大小调整所述LSM树的多个层中的每个层的大小的步骤包括:确定所述预设时长内所述多个层中的当前层的上层的总大小;基于所述读取的热键的总大小和所述当前层的上层的总大小调整所述多个层中的每个层的大小。4.根据权利要求3所述的方法,其中,所述基于所述读取的热键的总大小和所述当前层的上层的总大小调整所述多个层中的每个层的大小的步骤包括:将所述读取的热键的总大小和所述当前层的上层的总大小进行比较,得到比较结果;基于所述比较结果确定是否调整所述多个层中的每个层的大小;当确定调整所述多个层中的每个层的大小时,根据第一规则来调整所述多个层中的每个层的大小。5.根据权利要求4所述的方法,其中,所述基于所述比较结果确定是否调整所述多个层中的每个层的大小的步骤包括:当所述读取的热键的总大小位于所述当前层的上层的总大小的第一倍数范围时,确定调整所述多个层中的每个层的大小;当所述读取的热键的总大小位于所述当前层的上层的总大小的第二倍数范围时,确定不调整所述多个层中的每个层的大小;当所述读取的热键的总大小位于所述当前层的上层的总大小的第三倍数范围和第四倍数范围时,根据第二规则对读取热度阈值进行更新,并且跳转至获取所述预设时长内从所述LSM树中读取的键中基于所述读取热度阈值确定的全部热键的步骤。6.根据权利要求4所述的方法,其中,所述根据第一规则来调整所述多个层中的每个层的大小的步骤包括:将所述多个层中的从上到下的第一数量个层的大小分别减小第一数值的第一预设比例;将所述多个层中的从下到上的第二数量个层...

【专利技术属性】
技术研发人员:贺杏闫浩陈昭张怡雯杨延龙
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:

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

1