一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据存储方法、装置及电子设备

2022-05-21 04:16:22 来源:中国专利 TAG:


1.本发明涉及数据处理技术领域,具体涉及一种数据存储方法、装置及电子设备。


背景技术:

2.在互联网的产业高速发展的今天,随着用户数量和互联网应用的快速增长,互联网内所产生的音视频等多媒体数据以及商业领域的大量电子数据呈指数级增长,导致了行业内对存储性能的要求也越来越高。
3.目前,现有技术中采用日志结构化合并树结构和提取数据特征值表示数据编号两种形式作为存储系统的数据结构,但这两种方法存在着降低空间利用率、过期数据清理不及时等问题,进而降低了系统的读取速度,增加了系统读写负担。


技术实现要素:

4.有鉴于此,本发明实施例提供了一种数据存储方法,以解决现有技术中空间利用率低、读写性能差的问题。
5.为达到上述目的,本发明提供如下技术方案:
6.本发明实施例提供了一种数据存储方法,包括:
7.在检测到当前层数据块有新的数据存入时,判断所述当前层数据块的数据存储量是否达到预设存储阈值;
8.若所述当前层数据块的数据存储量达到预设存储阈值,则将当前层数据块存储的第一数据发送至上一层数据块进行存储。
9.可选的,所述将当前层数据块存储的第一数据发送至上一层数据块进行存储,包括:
10.获取上一层数据块存储的第二数据;
11.将所述第二数据与所述第一数据进行合并压缩后生成第三数据;
12.将所述第三数据存储至所述上一层数据块,并删除所述上一层数据块中存储的所述第二数据。
13.可选的,所述方法还包括:
14.删除当前层数据块中存储的第一数据。
15.可选的,所述数据存储方法还包括:将所述上一层数据块更新为当前层数据块,并返回所述判断当前层数据块的数据存储量是否达到预设存储阈值的步骤,直至所述当前层数据块为最高层数据块。
16.可选的,所述数据存储方法,还包括:
17.对当前存储有数据的数据块的当前总存储层数进行监测;
18.将监测到的当前总存储层数与预设层数进行对比;
19.若所述当前存储总层数超出预设数值,则对当前层数据块中数据的存储位置进行调整。
20.可选的,所述对当前层数据块中数据的存储位置进行调整,包括:
21.获取当前时间段的读写记录;
22.将当前时间段的读写记录输入预设的读写预测模型,得到读写预测结果;
23.根据所述读写预测结果对当前层数据块中数据的存储位置进行调整。
24.可选的,所述根据所述读写预测结果对当前层数据块中数据的存储位置进行调整,包括:
25.基于所述读写预测结果确定当前层数据块中存储的各数据文件执行调整动作的概率,所述调整动作包括上调、维持或下调;
26.将所述执行调整动作的概率与预设数值范围进行比对,根据比对结果对各数据文件执行相应的调整。
27.本发明实施例还提供了一种数据存储装置,包括:
28.检测模块,用于在检测到当前层数据块有新的数据存入时,判断所述当前层数据块的数据存储量是否达到预设存储阈值;
29.存储模块,用于若所述当前层数据块的数据存储量达到预设存储阈值,则将当前层数据块存储的第一数据发送至上一层数据块进行存储。
30.本发明实施例还提供了一种电子设备,包括:
31.存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行本发明实施例提供的数据存储方法。
32.本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行本发明实施例提供的数据存储方法。
33.本发明技术方案,具有如下优点:
34.本发明提供了一种数据存储方法,通过在检测到当前层数据块有新的数据存入时,判断当前层数据块的数据存储量是否达到预设存储阈值;若当前层数据块的数据存储量达到预设存储阈值,则将当前层数据块存储的第一数据发送至上一层数据块进行存储。本发明通过调整存储系统的数据结构,提高了数据存储时的空间利用率,同时通过塔式结构提高了存储系统的读写性能,加快了系统的读写速度。
附图说明
35.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
36.图1为本发明实施例中的数据存储方法的流程图;
37.图2为根据本发明实施例中将当前层数据块存储的第一数据发送至上一层数据块进行存储的流程图;
38.图3为根据本发明实施例中根据存储层数对数据的存储位置进行调整的流程图;
39.图4为根据本发明实施例中对当前层数据块中数据的存储位置进行调整的流程图;
40.图5为根据本发明实施例中根据读写预测结果对当前层数据块中数据的存储位置进行调整的流程图;
41.图6为本发明实施例中的数据存储装置的结构示意图;
42.图7为本发明实施例中的电子设备的结构示意图。
具体实施方式
43.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
44.根据本发明实施例,提供了一种数据存储方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
45.在本实施例中提供了一种数据存储方法,可用于需要对文件进行存储的场景,如图1所示,该数据存储方法包括如下步骤:
46.步骤s1:在检测到当前层数据块有新的数据存入时,判断当前层数据块的数据存储量是否达到预设存储阈值。
47.步骤s2:若当前层数据块的数据存储量达到预设存储阈值,则将当前层数据块存储的第一数据发送至上一层数据块进行存储。具体的,在将当前层数据块存储的第一数据发送至上一层数据块进行存储之前,还会对数据块内存储的数据文件进行整理排序,从而在后续需要对数据文件进行的读取时提高效率。
48.具体的,在有新的数据文件存入时,先存入最底层的数据块,在数据块存储量达到预设存储阈值时,将数据块内的文件进行合并压缩,然后发送至上一层数据块进行存储,每一层的数据块在检测到有新的数据存入时,都会判断当前层数据块的数据存储量是否达到预设存储阈值,从而一层一层的向上递进,呈塔式结构存储。
49.通过上述步骤s1至步骤s4,本发明实施例提供的数据存储方法,通过调整存储系统的数据结构,提高了数据存储时的空间利用率,同时通过塔式结构提高了存储系统的读写性能,加快了系统的读写速度。
50.具体地,在一实施例中,上述的步骤s2,如图2所示,具体包括如下步骤:
51.步骤s21:获取上一层数据块存储的第二数据。具体的,由于将当前层数据块存储的第一数据发送至上一层数据块进行存储时,需要将第一数据和第二数据进行合并,因此需要获取第二数据。
52.步骤s22:将第二数据与第一数据进行合并压缩后生成第三数据。具体的,存入上一层数据块的数据是第二数据与第一数据进行合并压缩后生成第三数据。
53.步骤s23:将第三数据存储至上一层数据块,并删除上一层数据块中存储的第二数据。具体的,通过删除第二数据,将第三数据存入,有效且及时的清理了原有数据,完成了数据的增加替换,效率高速度快,同时避免了重复内容出现,节省了空间使空间利用率得到了提高。
54.具体地,在一实施例中,上述的数据存储方法还包括:删除当前层数据块中存储的第一数据。具体的,通过删除当前层存储的第一数据,及时的对存储的内容进行清理,及时清理出空间供新的数据存储,有效提高了空间利用率,提升了系统的读写速度,减轻了系统的读写负担。
55.具体的,在一实施例中,上述的数据存储方法还包括:将上一层数据块更新为当前层数据块,并返回判断当前层数据块的数据存储量是否达到预设存储阈值的步骤,直至当前层数据块为最高层数据块。具体的,通过更新操作,使系统对出现新增数据的每层数据块进行检测,每当出现数据块超出预设存储阈值,就执行向上层存储的操作,直至当前层数据块为最高层数据块。
56.具体地,在一实施例中,上述数据存储方法,如图3所示,还包括如下步骤:
57.步骤s41:对当前存储有数据的数据块的当前总存储层数进行监测。具体的,在存储量较小时,可以以较高的效率进行数据的读写操作。
58.步骤s42:将监测到的当前总存储层数与预设层数进行对比。
59.步骤s43:若当前存储总层数超出预设数值,则对当前层数据块中数据的存储位置进行调整。具体的,当存储层数超出预设数值时,为了避免存储深度影响读写效率,会对存储系统内的数据进行预测调整,便于用户的读写操作。
60.具体的,存储系统的多层级存储结构决定了此类存储系统在浅层的数据的变化较为频繁,经常参与存储系统的有序数据块合并与垃圾回收,而深层的有序数据块的内容与物理位置较为稳定,所以,读写预报模型在存储系统中的浅层应用将会因为数据文件的频繁改动而准确性不佳,而在存储系统的深层中可以产生较为准确的预报,因此,根据当前存储系统的绝对深度(当前总存储层数),将当前存储系统的深度的四分之一减一纳入计算最小执行深度的考量范围,还可以根据需求对最小执行深度进行调整,在此仅以上述数值为例,不对此做具体限制,最小执行深度mindepth的公式如下:
[0061][0062]
其中:mindepth为存储系统的最小执行深度,currentdepth为当前存储系统的最大深度。此过程不会作用于任何在存储系统中深度小于mindepth的数据文件,并且若当前存储系统的层数小于预设数值例如3层时,不启动读写预测调整。
[0063]
具体地,在一实施例中,上述的步骤s43,如图4所示,具体包括如下步骤:
[0064]
步骤s431:获取当前时间段的读写记录。
[0065]
步骤s432:将当前时间段的读写记录输入预设的读写预测模型,得到读写预测结果。具体的,训练读写预测模型的过程包括:获取历史读写记录;将历史读写记录按照预设的比例划分为数据训练集和数据验证集;通过预设算法对数据训练集进行特征提取生成特征数据;基于特征数据训练预测模型;通过数据验证集对预测模型进行验证优化。
[0066]
具体的,例如:将历史读写记录分为前75%的训练数据和后25%的验证数据两个部分,前75%的部分生成特征数据,后25%的部分生成确认集,将两部分数据重合后用以读写预测模型。此后,系统将使用完整的读写记录生成特征数据,导入产生第一份浮动决策。此后,随着存储系统的运行时间增长,读写记录的数量增长,更新读写预测模型所使用的后25%读写记录所包含的时间跨度将越来越大,也能够包含更多数据读写的时间特征,行为
预报模型随着时间的推移,不断地进行更新迭代、针对应用场景进行动态改变。
[0067]
具体的,当用户在存储系统中访问某数据后,很可能马上访问其邻近数据,同时,当用户在存储系统中写入某数据后,很可能一段时间内不会访问这一数据,可以利用此特性对存储进行结构调整。此外,数据的访问规律还有可能取决于每天的不同时段,例如,在特定的使用场景下,早晨和晚间的读操作远远大于写操作,而工作时段对数据主要以写操作为主。因此,通过用户访问数据的空间特征与时间特征,将读写记录的各个值通过数学公式进行组合排列,以从中分离出可以供读写行为预报模型进行预报的数据集。
[0068]
首先获取历史读写记录,统计历史读写记录中部分时间内每个键值key对应的数据的读、写操作次数,然后将统计的读、写次数除以总的操作数,得到此key对应数据的验证数据,将所有key对应的验证数据汇总得到数据验证集。
[0069]
其中,key为读写记录中的文件键值。确认集validationdata的数据有且仅有3个值:1,0,-1,代表key值所指向的数据在塔形结构存储系统中应该上浮、不动或下沉,规定1表示数据在塔形结构存储系统中应该上浮,0表示数据在塔形结构存储系统中应该不动,-1表示数据在塔形结构存储系统中应该下沉。validationdata的三个值由以下公式得出:
[0070][0071][0072]
其中,ioratio[key]为key值对应的数据的读、写操作和与总操作次数的比率;logfile[key].operation代表读写记录中key值对应的数据的operation项,值为1、0,分别代表读、写操作。
[0073]
具体的,对于进行存储的每一条数据,都可以独一无二映射出一个一维向量组τ=[key,δ
p
,δ
t
,δ
ad
,δ
rd
,δ
as
,θ],这个一维向量组τ包含如下几个分量:
[0074]
空间变化量:

p
=previousposition-currentposition。其中,currentposition为本次读写操作的数据物理位置,previousposition为上一次读写操作的数据的物理位置,空间变化量反应了塔形结构中同一数据的空间变化。
[0075]
时间变化量:

t
=endtime-starttime 5。starttime为本次读写操作的开始时间,endtime为本次读写操作的结束时间,时间变化量反应了塔形结构中单条读写数据的时间变化。
[0076]
时空相对变化量:
[0077]

ad
=previousposition
×
starttime-currentposition
×
endtime。时空相对变化量是对塔形结构初末时空状态的变化量的衡量,是末时空状态相对于初时空状态的变化量。在此,通过物理位置与时间的乘积来表示一条数据的初时空状态和末时空状态。
[0078]
时空绝对变化量:
[0079]

rd


p
×△
t
=(previousposition
‑‑
currentposition)
×
(starttime-endtime)
[0080]
时空绝对变化量是时间变化量与空间变化量的乘积,它表示数据的时空绝对变化大小。
[0081]
数据绝对大小:datasize为本次读写操作的数据大小,n为datatype中单个最小元素的大小数据绝对大小表示数据中原子结构的数量,因此它被表示为数据总大小与数据中最小原子元素大小的比值。
[0082]
数据位置模量:operation为本次读写操作的区分符,值为1、0,分别代表读、写操作,数据位置模量表示该条数据对塔形结构上浮下沉的影响因子。越趋近于0,对上浮影响越大;越趋近于1,对下沉影响越大。
[0083]
通过对数据文件的空间和时间进行特征推导,能够更好地分离出读写预测模型的特征数据和确认数据集,帮助预报模型更快、更准确地对未来的数据访问进行预报。
[0084]
步骤s433:根据读写预测结果对当前层数据块中数据的存储位置进行调整。
[0085]
具体地,在一实施例中,上述的步骤s433,如图5所示,具体包括如下步骤:
[0086]
步骤s4331:基于读写预测结果确定当前层数据块中存储的各数据文件执行调整动作的概率,调整动作包括上调、维持或下调。
[0087]
步骤s4332:将执行调整动作的概率与预设数值范围进行比对,根据比对结果对各数据文件执行相应的调整。
[0088]
具体的,读写预测模型可以通过数据确认集提取以及特征工程部分的数据,获得到三种行为(下沉、上浮、保持)的最优概率ρi。
[0089]
将τ[eey]输入读写预测模型,读写预测模型会输出计算出的结果validationdata[key]=[ρ1,ρ2,ρ3]。然后通过以下归一函数对于最优概率进行归一化。
[0090][0091]
其中:ρi表示对于选择第i种行为的概率预报;θi表示归一化后,对于选择第i种行为的概率预报(第一种行为:上浮;第二种行为:保持;第三种行为:下沉)。其中最后获得三种行为(上浮、保持、下沉)的最优概率。
[0092]
该行为预报模型可以通过计算出的最优概率ρi,自动对于每一次的动态读写行为进行选择。其选择规则与实施过程如下所示:
[0093]
选择规则:p1%的情况下执行最优概率、即优先级最高行为;p2%的情况下执行第二优先级的行为,p3%的情况下执行第三优先级的行为。经过如上选择策略之后,可以极大程度上减轻特殊情况对于模型的影响。
[0094]
fun random(a,b)≥获得区间[a,b)之间的随机数;
[0095]
p1=random(83,92);
[0096]
p2=random(random(0.6,0.8)*(100-p1),100-p1);
[0097]
p3=100-p
1-p2;
[0098]
实施过程如下:
[0099]
根据上述公式计算出随机概率p1、p2、p3。取任意随机数p∈[0,100]。对于三种行为(上浮、保持、下沉)进行选择:
[0100]
根据θi对于行为优先级进行排序,θ最大的行为优先级最高,以此类推。
[0101]
当0≤p<p1,选择执行优先级最高的行为;
[0102]
当p1≤p<p1 p2,选择执行第二优先级的行为;
[0103]
当p1 p2≤p<100,选择执行第三优先级的行为。
[0104]
具体的,通过上述计算θ,可以求出上浮,保持,下沉的行为预报概率(上浮行为概率θ1保持行为概率θ2下沉行为概率θ3)。对于三种行为,依据每种行为的θ的大小进行降序排列。在后续执行过程中,借助函数random,对0-100的区间中分为三段(即p1,p2,p3)。对于随机数p而言,若p落在0到p1的左闭右开区间,则执行θ最大的行为;若p落在p1到p2的左闭右开区间,则执行θ居中的行为;若p落在p2到100的左闭右开区间,则执行θ最小的行为。通过模型预测与概率结合的方式完成对数据文件进行上浮,保持,下沉的行为调整。通过读写预测模型对对用户未来数据访问的预报,并且可以针对预报的结果,提前调整相关数据文件的位置,起到加速访问的效果。
[0105]
在本实施例中还提供了一种数据存储装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0106]
本实施例提供一种数据存储装置,如图6所示,包括:
[0107]
检测模块101:在检测到当前层数据块有新的数据存入时,判断当前层数据块的数据存储量是否达到预设存储阈值,详细内容参见上述方法实施例中步骤s1的相关描述,在此不再进行赘述。
[0108]
存储模块102:若当前层数据块的数据存储量达到预设存储阈值,则将当前层数据块存储的第一数据发送至上一层数据块进行存储,详细内容参见上述方法实施例中步骤s2的相关描述,在此不再进行赘述。
[0109]
本实施例中的数据存储装置是以功能单元的形式来呈现,这里的单元是指asic电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
[0110]
上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
[0111]
根据本发明实施例还提供了一种电子设备,如图7所示,该电子设备可以包括处理器901和存储器902,其中处理器901和存储器902可以通过总线或者其他方式连接,图7中以通过总线连接为例。
[0112]
处理器901可以为中央处理器(central processing unit,cpu)。处理器901还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
[0113]
存储器902作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明方法实施例中的方法所对应的程序指令/模块。处理器901通过运行存储在存储器902中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的方法。
[0114]
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器901所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至处理器901。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0115]
一个或者多个模块存储在存储器902中,当被处理器901执行时,执行上述方法实施例中的方法。
[0116]
上述电子设备具体细节可以对应参阅上述方法实施例中对应的相关描述和效果进行理解,此处不再赘述。
[0117]
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;存储介质还可以包括上述种类的存储器的组合。
[0118]
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献