全闪存储中数据的分级聚合方法和装置制造方法及图纸

技术编号:31622277 阅读:12 留言:0更新日期:2021-12-29 18:57
本申请涉及一种全闪存储中数据的分级聚合方法和装置;所述方法包括:将同一个卷内的原始数据进行第一级聚合,获得第一聚合数据块;将同一个线程内的多个所述第一聚合数据块进行第二级聚合,获得第二聚合数据块;判断所述第二聚合数据块是否满足预设的落盘条件;如果满足则直接将所述第二聚合数据块落盘;如果不满足则进行第三级聚合后再落盘。本申请的方案采用分级聚合的方式,尽量减少跨卷聚合和跨线程聚合的影响,降低数据聚合导致的系统开销和性能损耗;实现数据聚合过程中兼顾数据连续性、聚合性能和数据大小等要求,提高数据整体的聚合效果,降低数据聚合导致的系统性能损耗。耗。耗。

【技术实现步骤摘要】
全闪存储中数据的分级聚合方法和装置


[0001]本申请涉及计算机存储
,具体涉及一种全闪存储中数据的分级聚合方法和装置。

技术介绍

[0002]全闪系统是存储领域演进的一个重要方向,在全闪存储中采用的是全SSD的架构设计,为了适应SSD的工作方式,一般需要采用数据聚合的设计,即将主机下发的大量随机小块数据先合并成一个大块的连续数据,而后再将这一连续大块数据一次写入后端SSD中,从而获得更好的写盘性能和更低的写放大。SSD(Solid State Drives)即固态硬盘,固态硬盘是使用固态电子芯片阵列制成的硬盘,一般来说是由控制单元和存储单元(FLASH芯片)组成;SSD不用探头读取数据,而是逻辑电路读取数据,寻道时间接近于0,因此SSD的持续读写速度非常快。
[0003]相关技术中,在进行数据聚合的过程中,也会带来一定的问题。由于随机小块数据来自于各个卷,通常每个卷会工作在不同的线程上;因此如果只是简单地将所有卷的小块数据聚合在一块,则所有卷的数据在盘上将是完全打散的;这时如果某些卷中的数据在下发时是相对连续的,则无法将这些相对连续的数据整合在一起,也就无法在读取时实现大块读取,导致一定程度上影响到读性能。另一方面,由于不同的卷工作在不同的线程上,因此不同卷的数据在聚合过程中会不可避免地频繁出现跨线程工作的情况,这会导致额外的性能损耗,最终影响系统的性能表现。

技术实现思路

[0004]为至少在一定程度上克服相关技术中存在的问题,本申请提供一种全闪存储中数据的分级聚合方法和装置。/>[0005]根据本申请实施例的第一方面,提供一种全闪存储中数据的分级聚合方法,包括:
[0006]将同一个卷内的原始数据进行第一级聚合,获得第一聚合数据块;
[0007]将同一个线程内的多个所述第一聚合数据块进行第二级聚合,获得第二聚合数据块;
[0008]判断所述第二聚合数据块是否满足预设的落盘条件;
[0009]如果满足则直接将所述第二聚合数据块落盘;如果不满足则进行第三级聚合后再落盘。
[0010]进一步地,所述将同一个卷内的原始数据进行第一级聚合,包括:
[0011]执行聚合操作,将同一个卷内的虚拟地址相邻的数据聚合在一起;
[0012]当执行聚合操作的时间达到预设的聚合周期时,停止聚合操作,聚合完成的数据块为第一聚合数据块;
[0013]执行下一次聚合操作。
[0014]进一步地,所述预设的聚合周期为50毫秒。
[0015]进一步地,所述将同一个线程内的多个所述第一聚合数据块进行第二级聚合,包括:
[0016]为每个线程配置一个独立的任务队列;
[0017]将同一个线程内的多个卷中已聚合好的第一聚合数据块放入所述任务队列;
[0018]从所述任务队列中取出若干第一聚合数据块进行聚合操作,获得第二聚合数据块;
[0019]进行下一次聚合操作。
[0020]进一步地,判断所述第二聚合数据块是否满足预设的落盘条件,包括:
[0021]根据所述第二聚合数据块的数据量大小,判断是否满足预设的落盘条件。
[0022]进一步地,所述预设的落盘条件为:
[0023]当所述第二聚合数据块大于预设的数据量阈值时,满足落盘条件;否则不满足。
[0024]进一步地,所述进行第三级聚合后再落盘,包括:
[0025]获取一个池内的不满足落盘条件的第二聚合数据块;
[0026]将获取的第二聚合数据块聚合在一起,获得第三聚合数据块;
[0027]将所述第三聚合数据块落盘。
[0028]根据本申请实施例的第二方面,提供一种全闪存储中数据的分级聚合装置,包括:
[0029]第一聚合模块,用于将同一个卷内的原始数据进行第一级聚合,获得第一聚合数据块;
[0030]第二聚合模块,用于将同一个线程内的多个所述第一聚合数据块进行第二级聚合,获得第二聚合数据块;
[0031]判断模块,用于判断所述第二聚合数据块是否满足预设的落盘条件;
[0032]第三聚合模块,用于在不满足落盘条件时进行第三级聚合;
[0033]落盘模块,用于将满足落盘条件的所述第二聚合数据块和进行第三级聚合后的数据块进行落盘。
[0034]根据本申请实施例的第三方面,提供一种计算机设备,包括:
[0035]存储器,用于存储计算机程序;
[0036]处理器,用于执行所述存储器中的计算机程序,以实现如上任意一种实施例所述方法的操作步骤。
[0037]根据本申请实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上任意一种实施例所述方法的操作步骤。
[0038]本申请的实施例提供的技术方案具备以下有益效果:
[0039]本申请的方案在聚合过程中依次进行卷内数据聚合、线程内数据聚合,经过前两级的聚合操作之后,再判断是否进行跨线程的数据聚合;采用分级聚合的方式,尽量减少跨卷聚合和跨线程聚合的影响,降低数据聚合导致的系统开销和性能损耗;实现数据聚合过程中兼顾数据连续性、聚合性能和数据大小等要求,提高数据整体的聚合效果,降低数据聚合导致的系统性能损耗。
[0040]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
[0041]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
[0042]图1是根据一示例性实施例示出的一种全闪存储中数据的分级聚合方法的流程图。
[0043]图2是根据一示例性实施例示出的一种卷内聚合模型示意图。
[0044]图3是根据一示例性实施例示出的一种线程内聚合模型示意图。
[0045]图4是根据一示例性实施例示出的一种池内聚合模型示意图。
[0046]图5是根据一示例性实施例示出的一种全闪存储中数据的分级聚合装置的结构框图。
具体实施方式
[0047]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的方法和装置的例子。
[0048]图1是根据一示例性实施例示出的一种全闪存储中数据的分级聚合方法的流程图。该方法可以包括以下步骤:
[0049]步骤S1:将同一个卷内的原始数据进行第一级聚合,获得第一聚合数据块;
[0050]步骤S2:将同一个线程内的多个所述第一聚合数据块进行第二级聚合,获得第二聚合数据块;
[0051]步骤S3:判断所述第二聚合数据块是否满足预设的落盘条件;
[0052]步骤S4:如果满足则直接将所述第二聚合数据块落盘本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种全闪存储中数据的分级聚合方法,其特征在于,包括:将同一个卷内的原始数据进行第一级聚合,获得第一聚合数据块;将同一个线程内的多个所述第一聚合数据块进行第二级聚合,获得第二聚合数据块;判断所述第二聚合数据块是否满足预设的落盘条件;如果满足则直接将所述第二聚合数据块落盘;如果不满足则进行第三级聚合后再落盘。2.根据权利要求1所述的方法,其特征在于,所述将同一个卷内的原始数据进行第一级聚合,包括:执行聚合操作,将同一个卷内的虚拟地址相邻的数据聚合在一起;当执行聚合操作的时间达到预设的聚合周期时,停止聚合操作,聚合完成的数据块为第一聚合数据块;执行下一次聚合操作。3.根据权利要求2所述的方法,其特征在于,所述预设的聚合周期为50毫秒。4.根据权利要求1

3任一项所述的方法,其特征在于,所述将同一个线程内的多个所述第一聚合数据块进行第二级聚合,包括:为每个线程配置一个独立的任务队列;将同一个线程内的多个卷中已聚合好的第一聚合数据块放入所述任务队列;从所述任务队列中取出若干第一聚合数据块进行聚合操作,获得第二聚合数据块;进行下一次聚合操作。5.根据权利要求4所述的方法,其特征在于,判断所述第二聚合数据块是否满足预设的落盘条件,包括:根据所述第二聚合数据块的数据量大小,判断是否满足预设的...

【专利技术属性】
技术研发人员:刘志勇
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1