一种数据存储方法、系统、存储介质及电子设备与流程

文档序号:19680444发布日期:2020-01-14 17:16阅读:127来源:国知局
一种数据存储方法、系统、存储介质及电子设备与流程

本申请涉及计算机技术领域,特别涉及一种数据存储方法、系统、一种存储介质及一种电子设备。



背景技术:

随着分布式共享存储系统的快速发展,分布式共享存储系统的性能和安全性越来越关注。

相关技术中,分布式存储系统采用自管理裸盘的方式提升本地存储引擎的性能,对分布式存储系统进行优化,剔除xfs(日志文件系统)中大部分通用的功能,弥补对ssd支持的不足。但是,在上述相关技术中本地存储系统的cache容器最大缓存数量为固定值,这使得cache容器的访问量增加时会出现激烈的锁竞争,出现等待获取缓存锁的延时,从而影响本地存储系统的执行效率。

因此,如何降低获取缓存锁的延时,提高存储系统的数据存储效率是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本申请的目的是提供一种数据存储方法、系统、一种存储介质及一种电子设备,能够降低获取缓存锁的延时,提高存储系统的数据存储效率。

为解决上述技术问题,本申请提供一种数据存储方法,该数据存储方法包括:

记录存储引擎的任务处理数量和缓存锁延时的总时长;其中,所述缓存锁延时为获取缓存锁过程的时长,所述缓存锁为所述存储引擎的缓存容器的锁;

当所述任务处理数量大于预设处理数量时,根据所述预设处理数量和所述缓存锁延时的总时长计算缓存锁平均延时时长;

将所述缓存锁平均延时时长与标准时长区间进行比对,并根据比对结果调整所述缓存容器的容器空间,以便利用调整容器空间后的存储引擎执行数据存储任务。

可选的,根据比对结果调整所述缓存容器的容器空间包括:

当所述比对结果为所述缓存锁平均延时时长大于标准时长区间的最大值时,增加所述缓存容器的容器空间;

当所述比对结果为所述缓存锁平均延时时长小于标准时长区间的最小值时,减小所述缓存容器的容器空间。

可选的,增加所述缓存容器的容器空间包括:

根据第一时长差将所述缓存容器的容器空间增加第一预设值;其中,所述第一时长差为所述缓存锁平均延时时长与所述标准时长区间的最大值的差,所述第一时长差与所述第一预设值正相关;

相应的,减小所述缓存容器的容器空间包括:

根据第二时长差将所述缓存容器的容器空间减小第二预设值;其中,所述第二时长差为所述缓存锁平均延时时长与所述标准时长区间的最小值的差,所述第二时长差与所述第二预设值正相关。

可选的,所述根据比对结果调整所述缓存容器的容器空间包括:

根据所述比对结果确定目标容器空间大小,并根据所述目标容器空间大小执行缓存容器刷新操作。

可选的,所述根据比对结果确定目标容器空间大小包括:

查询当前时刻所述缓存容器的原始容器空间大小;

根据所述比对结果确定空间变化量;

根据所述原始容器空间大小和所述空间变化量确定所述目标容器空间大小。

可选的,还包括:

接收主机端发送的上层任务,将所述上层任务转化为所述存储引擎的本地任务。

可选的,在根据比对结果调整所述缓存容器的容器空间之后,还包括:

将所述任务处理数量和所述缓存锁延时的总时长重置为0。

本申请还提供了一种数据存储系统,该数据存储系统包括:

信息记录模块,用于记录存储引擎的任务处理数量和缓存锁延时的总时长;其中,所述缓存锁延时为获取缓存锁过程的时长,所述缓存锁为所述存储引擎的缓存容器的锁;

平均延时计算模块,用于当所述任务处理数量大于预设处理数量时,根据所述预设处理数量和所述缓存锁延时的总时长计算缓存锁平均延时时长;

空间调整模块,用于将所述缓存锁平均延时时长与标准时长区间进行比对,并根据比对结果调整所述缓存容器的容器空间,以便利用调整容器空间后的存储引擎执行数据存储任务。

本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述数据存储方法执行的步骤。

本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述数据存储方法执行的步骤。

本申请提供了一种数据存储方法,包括记录存储引擎的任务处理数量和缓存锁延时的总时长;其中,所述缓存锁延时为获取缓存锁过程的时长,所述缓存锁为所述存储引擎的缓存容器的锁;当所述任务处理数量大于预设处理数量时,根据所述预设处理数量和所述缓存锁延时的总时长计算缓存锁平均延时时长;将所述缓存锁平均延时时长与标准时长区间进行比对,并根据比对结果调整所述缓存容器的容器空间,以便利用调整容器空间后的存储引擎执行数据存储任务。

本申请首先确定存储引擎的任务处理数量和缓存锁延时的总时长,通过计算缓存锁平均延时时长确定缓存锁竞争的激烈程度。缓存锁平均延时时长越大缓存锁的需求量与供给量之差越大,即获取缓存锁的竞争越激烈;缓存锁平均延时时长越小缓存锁的需求量与供给量之差越小,即获取缓存锁的竞争越平和。根据缓存锁平均延时时长与标准时长区间的比对结果调整缓存容器的空间大小,能够降低获取缓存锁的延时,提高存储系统的数据存储效率。本申请同时还提供了一种数据存储系统、一种存储介质和一种电子设备,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例所提供的一种数据存储方法的流程图;

图2为本申请实施例所提供的一种本地存储引擎的数据处理方法的流程图;

图3为本申请实施例所提供的调整最大缓存数量的方法流程图;

图4为本申请实施例所提供的一种数据存储系统的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

下面请参见图1,图1为本申请实施例所提供的一种数据存储方法的流程图。

具体步骤可以包括:

s101:记录存储引擎的任务处理数量和缓存锁延时的总时长;

其中,本实施例可以应用于自管理裸设备的本地存储引擎系统,当接收到接收主机端发送的上层任务时,本实施例可以将所述上层任务转化为所述存储引擎的本地任务。本步骤中提到的任务处理数量可以为当前周期内存储引擎处理的本地任务的数量。本实施例中缓存锁延时为获取缓存锁过程的时长,缓存锁为所述存储引擎的缓存容器的锁;在执行数据存储任务时,存储引擎需要获取缓存容器的锁,缓存容器的容器空间越大,获取缓存锁的延时越低。缓存容器可以为存储系统的对象元数据缓存cache容器。

可以理解的是,在执行数据存储任务时获取一次缓存锁即可更新一次缓存锁延时的总时长,缓存锁延时的总时长为一种用于描述缓存锁竞争激烈程度的信息。

s102:当所述任务处理数量大于预设处理数量时,根据所述预设处理数量和所述缓存锁延时的总时长计算缓存锁平均延时时长;

其中,缓存锁延时的总时长可以反映缓存锁竞争激烈程度,本实施例可以预先设置任务处理数量的参考标准预设处理数量,以及该预设存储数量对应的标准时长区间。

本实施例不限定预设处理数量的具体取值,当预设处理数量取值很小时,本实施例可以根据任务处理数量和所述缓存锁延时的总时长计算缓存锁的实时延时时长,作为一种可行的实施方式,本实施例可以设置预设处理数量为10000,当任务处理数量大于10000时计算一次缓存锁平均延时时长。

具体的,本实施例可以将缓存锁延时的总时长除以预设处理数量得到缓存锁平均延时时长,缓存锁平均延时时长为描述处理引擎执行预设处理数量个数据存储任务时平均每一数据处理任务获取缓存锁所需的时长。缓存锁平均延时时长越大缓存锁的需求量与供给量之差越大,即获取缓存锁的竞争越激烈;缓存锁平均延时时长越小缓存锁的需求量与供给量之差越小,即获取缓存锁的竞争越平缓。

s103:将所述缓存锁平均延时时长与标准时长区间进行比对,并根据比对结果调整所述缓存容器的容器空间,以便利用调整容器空间后的存储引擎执行数据存储任务。

其中,本步骤建立在已经计算得到存储引擎处理预设处理数量个数据存储任务时的缓存所平均延时时长,进一步将缓存锁平均延时时长与标准时长区间进行比对。标准时长区间为预先设置的标准的缓存锁获取时间区间,当缓存锁平均延时时长在标准时长区间内时说明缓存锁竞争程度适中可以不改变最大缓存数量,当缓存锁平均延时时长大于标准时长区间的最大值时说明缓存锁竞争程度激烈可以增加最大缓存数量,当缓存锁平均延时时长小于标准时长区间的最小值时说明缓存锁竞争程度缓和可以减小最大缓存数量。在s103之前可以存在根据预设处理数量确定标准时长区间的操作。上述实施例中的缓存锁竞争程度可以用于描述缓存锁需求数量和缓存锁供给数量的相差程度。

进一步的,在根据比对结果调整所述缓存容器的容器空间之后,还可以将所述任务处理数量和所述缓存锁延时的总时长重置为0,以便当重新记录的任务处理数量达到10000时再次计算缓存锁平均延时时长。

本实施例首先确定存储引擎的任务处理数量和缓存锁延时的总时长,通过计算缓存锁平均延时时长确定缓存锁竞争的激烈程度。缓存锁平均延时时长越大缓存锁的需求量与供给量之差越大,即获取缓存锁的竞争越激烈;缓存锁平均延时时长越小缓存锁的需求量与供给量之差越小,即获取缓存锁的竞争越平和。根据缓存锁平均延时时长与标准时长区间的比对结果调整缓存容器的空间大小,能够降低获取缓存锁的延时,提高存储系统的数据存储效率。

进一步的,对于图1对应实施例的进一步补充说明,s103中根据比对结果调整所述缓存容器的容器空间的过程包括以下三种情况:

情况一:当所述比对结果为所述缓存锁平均延时时长大于标准时长区间的最大值时,根据第一时长差将所述缓存容器的容器空间增加第一预设值;其中,所述第一时长差为所述缓存锁平均延时时长与所述标准时长区间的最大值的差,所述第一时长差与所述第一预设值正相关。

情况二:当所述比对结果为所述缓存锁平均延时时长小于标准时长区间的最小值时,根据第二时长差将所述缓存容器的容器空间减小第二预设值;其中,所述第二时长差为所述缓存锁平均延时时长与所述标准时长区间的最小值的差,所述第二时长差与所述第二预设值正相关。

情况三:当所述比对结果为所述缓存锁平均延时时长在所述标准时长区间内时,不调整最大缓存数量,并将所述任务处理数量和所述缓存锁延时的总时长重置为0。

进一步的,对于图1对应实施例的进一步补充说明,s103中根据比对结果调整所述缓存容器的容器空间的操作可以为:根据所述比对结果确定目标容器空间大小,并根据所述目标容器空间大小执行缓存容器刷新操作。其中,根据所述比对结果确定目标容器空间大小的操作可以包括:查询当前时刻所述缓存容器的原始容器空间大小;根据所述比对结果确定空间变化量;根据所述原始容器空间大小和所述空间变化量确定所述目标容器空间大小。上述空间变化量可以为正值,也可以为负值;可以将原始空间大小加上空间变化量得到目标容器空间大小。

上述实施方式在确定目标容器空间大小之后,根据目标容器空间大小执行缓存容器刷新操作,以便根据目标容器空间大小增加或减小缓存容器的原空间大小,进而利用调整容器空间后的存储引擎执行数据存储任务。

下面通过在实际应用中的实施例说明上述实施例描述的流程。

请参见图2,图2为本申请实施例所提供的一种本地存储引擎的数据处理方法的流程图。本实施例所提供的本地存储引擎的数据处理方法,是基于自管理裸设备的本地存储引擎系统进行的优化。本实施例中cache锁即缓存锁,上限值valmax为上述实施例中标准时长区间的最大值,下限值valmin为上述实施中标准时长区间的最小值。

首先,本实施例可以从host主机端接收到待处理的事务,将上层事务转化成本地存储引擎本地的事务,然后累加计算任务处理数量,统计获取缓存锁延时的总时长sumdelay+=(end-start);判断任务处理数量cnt是否大于10000,大于则计算平均获取缓存锁(cache锁)的延时delay,判断延时delay的情况,如果延时delay大于上限值valmax,说明访问该缓存容器存在缓存锁的争抢需要增加缓存空间,可以调用设置缓存容器的接口,并将目标字段add_cache设置为true;如果延时delay小于下限值valmin,说明访问缓存容器的竞争很小,可以考虑不需要多余的缓存空间,可以减少缓存容器的空间大小,可以通过调用设置缓存容器的接口,将目标字段add_cach设置为false。

请参见图3,图3为本申请实施例所提供的调整最大缓存数量的方法流程图,可以先获取cache容器的原始容器空间大小old_num,然后根据目标字段add_cache判断是需要增加缓存容器的缓存空间还是减少缓存容器的缓存空间;最后进行缓存容器的缓存空间的刷新操作。在调整缓存容器的缓存空间之后,可以继续执行原有的处理流程,即处理数据存储任务的操作。

结合图2和图3,基于优化本地存储引擎写流程方法的具体步骤如下:

步骤a:在获取缓存锁之前记录初始时间点start,在获取缓存锁后记录结束时间点end;

步骤b:记录任务处理数量cnt,根据结束时间点end和初始时间点start更新延时统计的总时长sumdelay;

步骤c:判断任务处理数量cnt是否大于0,若否,则跳转到步骤j的操作;若是,则计算平均延时delay=sumdelay/cnt,并将任务处理数量cnt赋值为0,进入步骤d;

步骤d:判断平均延时delay是否大于上限值valmax;若否,则跳转到步骤e的操作;若是,则将目标字段add_cache设置为true,并跳转到步骤f的操作;

步骤e:判断平均延时delay是否小于下限值valmin;若否,则跳转到步骤j的操作,若是,则将目标字段add_cache设置为false;

步骤f:获取缓存容器的原始容器空间大小old_num,并判断目标字段add_cache是否为true;若是,则进入步骤g;若否,则进入步骤h;

步骤g:将缓存容器的大小更新为old_num+2,并创建两个缓存对象添加到缓存容器中,跳转到步骤i的操作;

其中,本实施例可以将缓存对象的数量作为缓存容器空间大小的评价参数,当缓存对象增多时能够缓解缓存锁的竞争。

步骤h:将缓存容器的大小更新为old_num-2,并删除两个原缓存对象;

步骤i:对缓存容器中的缓存空间大小进行刷新,并将平均延时delay和总时长sumdelay设置为0。

步骤j:执行下一数据处理任务。

本实施例根据上层数据压力的大小增加或减少缓存容器的空间大小,提升本地存储引擎处理的效率和抗压的灵活性,可以在原有功能的基础上进行设计,保持了向下的兼容性。本实施例通过阈值的设定优化对象元数据缓存访问的竞争,以提升本地存储引擎处理上层压力的能力,优化本地存储引擎能并行的访问对象缓存的能力,提高本地存储引擎的性能。本实施例动态的改变缓存容器中缓存对象的数目,优化缓存锁的竞争,提升本地存储引擎写的性能。

请参见图4,图4为本申请实施例所提供的一种数据存储系统的结构示意图;

该系统可以包括:

信息记录模块100,用于记录存储引擎的任务处理数量和缓存锁延时的总时长;其中,所述缓存锁延时为获取缓存锁过程的时长,所述缓存锁为所述存储引擎的缓存容器的锁;

平均延时计算模块200,用于当所述任务处理数量大于预设处理数量时,根据所述预设处理数量和所述缓存锁延时的总时长计算缓存锁平均延时时长;

空间调整模块300,用于将所述缓存锁平均延时时长与标准时长区间进行比对,并根据比对结果调整所述缓存容器的容器空间,以便利用调整容器空间后的存储引擎执行数据存储任务。

本实施例首先确定存储引擎的任务处理数量和缓存锁延时的总时长,通过计算缓存锁平均延时时长确定缓存锁竞争的激烈程度。缓存锁平均延时时长越大缓存锁的需求量与供给量之差越大,即获取缓存锁的竞争越激烈;缓存锁平均延时时长越小缓存锁的需求量与供给量之差越小,即获取缓存锁的竞争越平和。根据缓存锁平均延时时长与标准时长区间的比对结果调整缓存容器的空间大小,能够降低获取缓存锁的延时,提高存储系统的数据存储效率。

进一步的,空间调整模块300包括:

第一调整单元,用于当所述比对结果为所述缓存锁平均延时时长大于标准时长区间的最大值时,增加所述缓存容器的容器空间;

第二调整单元,用于当所述比对结果为所述缓存锁平均延时时长小于标准时长区间的最小值时,减小所述缓存容器的容器空间。

进一步的,第一调整单元具体为用于根据第一时长差将所述缓存容器的容器空间增加第一预设值的单元;其中,所述第一时长差为所述缓存锁平均延时时长与所述标准时长区间的最大值的差,所述第一时长差与所述第一预设值正相关;

进一步的,第二调整单元具体为用于根据第二时长差将所述缓存容器的容器空间减小第二预设值的单元;其中,所述第二时长差为所述缓存锁平均延时时长与所述标准时长区间的最小值的差,所述第二时长差与所述第二预设值正相关。

进一步的,空间调整模块300具体为用于根据所述比对结果确定目标容器空间大小,并根据所述目标容器空间大小执行缓存容器刷新操作的模块。

进一步的,所述空间调整模块300包括:

查询单元,用于查询当前时刻所述缓存容器的原始容器空间大小;还用于根据所述比对结果确定空间变化量;

目标空间大小确定单元,用于根据所述原始容器空间大小和所述空间变化量确定所述目标容器空间大小;

刷新单元,用于根据所述目标容器空间大小执行缓存容器刷新操作的模块。

进一步的,还包括:

任务转化模块,用于接收主机端发送的上层任务,将所述上层任务转化为所述存储引擎的本地任务。

进一步的,还包括:

第二重置模块,用于在根据比对结果调整所述缓存容器的容器空间之后,将所述任务处理数量和所述缓存锁延时的总时长重置为0。

由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

本申请还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1