用于对内存进行分区的方法、电子设备及存储介质技术

技术编号:38497915 阅读:14 留言:0更新日期:2023-08-15 17:07
本公开的实施例提供了一种用于内存的分区方法、电子设备和计算机程序介质。该方法包括将接收到的数据以文件的形式存储在内存的文件层上。该方法还可以包括确定文件层上的数据的数据量超过数据量阈值。该方法还可以包括从与所述文件相对应的多个键值对中选择至少一个键,作为至少一个分区键,并且基于至少一个分区键,针对内存的文件层进行分区,以获得多个虚拟分区。通过采用根据本公开实施例的方法,能够有效地缩小应用调整合并策略的区域,从而可以更加容易地实现针对特定数据调整合并策略,极大地节省查询操作的读写开销,并且提高硬盘宽带利用率,提升日志结构合并树的整体吞吐量。体吞吐量。体吞吐量。

【技术实现步骤摘要】
用于对内存进行分区的方法、电子设备及存储介质


[0001]本公开总体上涉及计算机领域,并且更具体地涉及用于对内存进行分区的操作方法、电子设备以及计算机存储介质。

技术介绍

[0002]日志结构合并树(LSM

Tree)是一种面向写入优化的数据结构,并被广泛应用于数据库存储引擎中。日志结构合并树提供键值对(key

value)的写入、删除、修改和查询功能。日志结构合并树在写数据的时候,先将数据写入到内存中,当数据量达到预定的量之后,再以有序文件的形式被持久化存储到硬盘中。日志结构合并树将硬盘上的数据分层存储,数据每合并一次之后就被写入到下一层。在对硬盘上的数据进行查询的时候,通常会采用二分查找法来对数据进行搜索,直到查询到所需的数据。

技术实现思路

[0003]根据本公开的示例实施例,提供了一种用于对内存进行分区的方法、电子设备以及计算机存储介质。
[0004]在本公开的第一方面,提供了一种用于对内存进行分区的方法,包括将接收到的数据以文件的形式存储在内存的文件层上。该方法还可以包括确定文件层上的数据的数据量超过数据量阈值。该方法还可以包括从与所述文件相对应的多个键值对中选择至少一个键,作为至少一个分区键,并且基于至少一个分区键,针对内存的文件层进行分区,以获得多个虚拟分区。
[0005]在本公开的第二方面,提供了一种电子设备,包括:至少一个处理单元;至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令,该指令当由至少一个处理单元执行时使得电子设备执行根据本公开的第一方面所描述的方法。
[0006]在本公开的第三方面,提供了一种计算机可读存储介质,该计算机可读存储介质具有在其上存储的机器可执行指令,该机器可执行指令在由设备执行时使该设备执行根据本公开的第一方面所描述的方法。
[0007]本公开的第四方面,提供了一种计算机程序产品,包括计算机可执行指令,其中计算机可执行指令在被处理器执行时实现根据本公开的第一方面所描述的方法。
[0008]提供
技术实现思路
部分是为了以简化的形式来介绍一系列概念,它们在下文的具体实施方式中将被进一步描述。
技术实现思路
部分不旨在标识本公开的关键特征或必要特征,也不旨在限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
[0009]结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:
[0010]图1示出了本公开的实施例能够在其中被实现的示例系统的示意图;
[0011]图2示出根据本公开实施例的对内存进行分区的方法的流程图;
[0012]图3示出根据本公开实施例的用于触发对硬盘进行物理分区的示例性方法流程图;
[0013]图4示意出根据本公开实施例的用于对硬盘进行物理分区划分的示意性过程;
[0014]图5A

图5C示意出根据本公开实施例的在执行合并操作之前的文件序列以及执行合并操作并完成物理分区划分之后的文件序列的对比图;
[0015]图6示出了根据本公开的一些实施例的示例装置的示意框图;以及
[0016]图7示出了可以用来实施本公开的实施例的示例设备的框图。
具体实施方式
[0017]下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
[0018]按照日志结构合并树LSM

Tree存储的数据在内存和硬盘上是分层存储的,并且数据每次合并之后就被写入下一层。例如,以被写入到硬盘的数据在L0层为例,该数据被合并一次之后被写入L1层,合并两次之后被写入L2层,以此类推。在对根据LSM

Tree存储的数据进行查询的时候,计算设备160会按照层的顺序依次进行查询,例如,先查询L0层,再查询L1层、L2层,直到查询到所需的目标数据。
[0019]LSM

Tree的一个核心是合并(compaction)操作。当内存中的数据达到阈值时,可以通过合并操作将数据从内存写入到硬盘中。另外,还需要对硬盘上的文件进行合并,并将合并后的文件写入下一层。合并操作与查询负载是高度相关的。适当的合并策略可以节省查询过程中的读写IO开销。因此,为按照LSM

Tree存储的数据选择适当的合并策略是非常有必要的。通常,计算设备对硬盘中的全局数据应用单一的合并策略。然而,由于硬盘的数据量非常大,因此,计算设备要调整合并策略的范围相对很大,这就导致难以针对特定数据(例如,查询操作中被查询次数相对比较多的数据)调整合并策略。因此,通过合并操作为查询操作节约的IO开销有限,即,查询操作的IO开销仍然很高。虽然在一些研究工作中出现了针对硬盘中的单个层应用合并策略的选择和调整的技术方案,但这样的技术方案的粒度仍然很大,查询操作的IO开销并没有得到很大的节约和改善。
[0020]有鉴于此,本公开的实施例提供了一种用于对内存进行分区的方法,包括:将接收到的数据以文件的形式存储在内存的文件层上;确定文件层上的数据的数据量超过数据量阈值;从与所述文件相对应的多个键值对中选择至少一个键,作为至少一个分区键;以及基于至少一个分区键,针对内存的文件层进行分区,以获得多个虚拟分区。通过采用根据本公开实施例的方法,能够有效地缩小应用调整合并策略的区域,从而可以更加容易地实现针对特定数据调整合并策略,极大地节省查询操作的读写开销,并且提高硬盘宽带利用率,提升日志结构合并树的整体吞吐量。
[0021]图1示出了本公开的实施例能够在其中被实现的示例系统100的示意图。系统100中可以包括计算设备160。计算设备160中可以包括内存162以及硬盘164。此外,尽管没有示
出,但本领域技术人员可理解的是,计算设备160还可以包括诸如处理器、输入输出设备等其他设备。
[0022]在一些实施例中,计算设备160可以采用日志结构合并树(LSM

tree)的数据结构将数据存储在内存162和硬盘164中。在采用日志结构合并树时,计算设备160可以首先将数据写入并存储在内存162中。如图1所示,数据以文件的格式被写入并存储在内存162中。当数据量达到阈值(例如,由用户设定的阈值)后,计算设备160可以以有序文件序列的形式顺序地将数据持久化到硬盘164中。根据日志结构合并树,计算设备160可以将硬盘164上的数据分层存储,如图1中的L0层、L1层以及L2层所示。并且数据每合并一次后就被写入下一层。例如,刚刚写入硬盘164的数据可以被存储在L0层,合并一次后则被写入L1层,合并两本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于对内存进行分区的方法,所述方法包括:将接收到的数据以文件的形式存储在所述内存的文件层上;确定所述文件层上的所述数据的数据量超过数据量阈值;从与所述文件相对应的多个键值对中选择至少一个键,作为至少一个分区键;以及基于所述至少一个分区键,针对所述内存的所述文件层进行分区,以获得多个虚拟分区。2.根据权利要求1所述的方法,其中从与所述文件相对应的多个键值对中选择至少一个键,作为至少一个分区键包括:对与所述文件相对应的所述多个键值对进行采样,以获得多个采样的键值对;对通过采样获得的所述多个采样的键值对进行排序;从经排序的所述多个采样的键值对中选择所述至少一个键作为所述至少一个分区键。3.根据权利要求1所述的方法,还包括:对所述文件层进行标记,所述标记表示所述文件层具有所述多个虚拟分区;以及记录所述至少一个分区键。4.根据权利要求1所述的方法,还包括:接收执行合并操作的合并请求;确定执行所述合并操作的操作层已经具有所述多个虚拟分区;以及对所述操作层上的待合并文件执行所述合并操作。5.根据权利要求4所述的方法,其中对所述操作层上的文件执行所述合并操作包括:获取与所述操作层上的所述待合并文件相对应的多个键值对;根据获取到的所述多个键值对中的键的值的大小,对所述待合并文件进行排序,以获得经排序的文件序列;依次读取所述经排序的文件序列所对应的所述多个键值对中的键;当读取到的第一键的值等于所述至少一个分区键中的第一分区键的值时,执行第一中止操作;以及将与在所述第一中止操作之前读取到的键相对应的文件存储到第一物理分区中,其中所述第一物理分区与基于所述第一分区键划分得到的第一虚拟分区相对应。6.根据权利要求5所述的方法,其中对所述操作层上的文件执行所述合并操作还包括:继续依次读取所述经排序的文件序列所对应的多个键值对中的剩余键;以及当读取到的第二键的值等于所述至少一个分区键中的第二分区键的值时,执行第二中止操作;以及将与在所述第一中止操作与所述第二中止操作之间读取到的键相对应的文件存储到第二物理分区中,其中所述第二物理分区与基于所述第二分区键划分得到的第二虚拟分区相对应。7.根据权利要求5所述的方法,还包括:响应于接收到请求,对所述第一物理分区中的待操作的文件执行合并相关的操作。8.根据权利要求7所述的方法,对所述第一物理分区...

【专利技术属性】
技术研发人员:韩煜星陈立翔杨程程罗旋
申请(专利权)人:华东师范大学
类型:发明
国别省市:

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

1