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

一种双存储池数据写入处理方法、装置、设备及介质与流程

2022-05-08 05:42:35 来源:中国专利 TAG:


1.本发明涉及计算机数据处理技术领域,特别涉及一种双存储池数据写入处理方法、装置、设备及介质。


背景技术:

2.在分布式存储系统中,可以使用副本和纠删这两种模式保存数据。其中副本模式可以应用在小块数据的存储,因为在副本模式下数据存储速度快,读取操作只需要选取一个副本同步读取,但这种存储模式的最大的缺点是:因为数据是复制保存的,所以造成了存储空间的浪费。纠删模式可以通过保存校验数据块同时可以节省更多的空间,但是纠删模式需要将待写入的数据按纠删条带切分并计算校验数据块,写入速度比副本模式慢,在读取时需要读取多个分片并合并计算,使用异步读取的方式,所以纠删模式读取速度慢于副本模式。


技术实现要素:

3.为了克服上述技术缺陷,同时为了充分利用副本和纠删这两种存储模式的优势并规避这两种存储模式的缺点,本发明的目的在于提供一种双存储池数据写入处理方法、装置、设备及介质,能够通过对所述待写入数据请求进行若干次判断,根据判断结果确定处理流程,同时缓存池接收到写入请求后对待写入数据请求进行正确处理,保证存储系统的数据一致性。
4.本发明实施例提供的具体技术方案如下:
5.第一方面,提供了一种双存储池数据写入处理方法,所述双存储池包括副本池和纠删池,所述方法包括:
6.将所述副本池设置为所述纠删池的缓存池;
7.所述缓存池接收数据写入请求;
8.第一次判断是否为首次收到所述数据写入请求;
9.若是,则对待写入数据进行拆分,并第二次判断是否为首次收到所述数据写入请求,并根据判断结果对拆分后的待写入数据进行写入操作。
10.进一步地,若非首次收到所述数据写入请求,则判断所述缓存池接收数据是否出现错误,若出现错误,将出错信息反馈给客户端。
11.进一步地,所述对待写入数据进行拆分包括:
12.根据使用场景可配置项将所述待写入数据拆分为小块数据和大块数据。
13.进一步地,所述第二次判断是否为首次收到所述数据写入请求,并根据判断结果对拆分后的待写入数据进行写入操作,包括:
14.第二次判断所述数据写入请求是否为首次收到;
15.若是,则第三次判断是否为首次收到所述数据写入请求,并根据判断结果对拆分后的待写入数据进行写入操作;
16.若否,则根据所述对所述待写入数据进行拆分的结果对拆分后的待写入数据进行写入操作。
17.进一步地,所述根据所述对所述待写入数据进行拆分的结果对拆分后的待写入数据进行写入操作,包括:
18.将小块数据写入缓存池,则数据写入结束后将写入结果反馈给客户端,并将所述数据的属性信息用备份文件记录的信息替换;
19.将大块数据写入纠删池。
20.进一步地,所述将大块数据写入纠删池,还包括:
21.增加布尔型变量值来标记是否有数据写入所述纠删池,若是,则将所述布尔型变量值设置为true,并将所述数据的属性信息用备份文件记录的信息替换。
22.进一步地,所述第三次判断是否为首次收到所述数据写入请求,并根据判断结果对拆分后的待写入数据进行写入操作,包括:
23.第三次判断所述数据写入请求是否为首次收到;
24.若是,则对所述待写入数据进行拆分,并将所述待写入数据的属性信息进行备份,记录到备份文件;
25.若否,则所述缓存池向纠删池转发所述待写入数据,将所述待写入数据写入所述纠删池。
26.第二方面,提供了一种双存储池数据写入处理装置,所述装置包括:
27.创建模块,用于将所述副本池设置为所述纠删池的缓存池;
28.接收模块,用于所述缓存池接收数据写入请求;
29.判断模块,用于第一次判断是否为首次收到所述数据写入请求;
30.处理模块,用于对待写入数据进行拆分,并第二次判断是否为首次收到所述数据写入请求,并根据判断结果对拆分后的待写入数据进行写入操作。
31.第三方面,提供了一种计算机设备,所述设备包括:
32.存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现如第一方面任一所述的双存储池数据写入处理方法的步骤。
33.第四方面,提供了一种计算机存储介质,所述介质包括:
34.其上存储有计算机程序,该计算机程序被存储器执行时实现第一方面任一所述的双存储池数据写入处理方法的步骤。
35.与现有技术相比,本发明实施例提供的技术方案通过将所述副本池设置为所述纠删池的缓存池;所述缓存池接收数据写入请求;第一次判断是否为首次收到所述数据写入请求;若是,则对待写入数据进行拆分,并第二次判断是否为首次收到所述数据写入请求,并根据判断结果对拆分后的待写入数据进行写入操作。本发明双存储池数据写入处理技术应用到重复请求场景,能够通过对所述待写入数据请求进行若干次判断,根据判断结果确定处理流程,同时缓存池接收到重复请求后对待写入数据请求进行正确处理,保证存储系统的数据一致性。
36.本发明实施例提供的技术方案提供了一种双存储池数据写入处理方法,可以保证所述数据写入的完整性和正确性,在未收到数据写入指令时或在存储系统发生异常时会重发写入指令,避免所述数据未写入存储池,造成数据不完整或数据重复写入存储池造成的
系统损耗。
附图说明
37.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
38.图1为本发明实施例一提供的双存储池数据写入处理方法的流程图;
39.图2为本发明实施例一提供的双存储池数据写入处理方法的逻辑图;
40.图3为本发明实施例二提供的双存储池数据写入处理装置结构图;
41.图4为本发明实施例四提供的可被用于实施本技术中所述的各个实施例的示例性系统。
具体实施方式
42.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
43.需要说明的是,除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
44.此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
45.实施例一
46.本发明实施例提供了一种双存储池数据写入处理方法,如图1所示,所述双存储池包括副本池和纠删池,该方法可以包括:
47.步骤s01,将所述副本池设置为所述纠删池的缓存池。
48.具体地,在分布式存储系统中,可以使用副本和纠删两种模式保存数据,在存储系统中创建一个副本池和一个纠删池,将所述副本池设置为所述纠删池的缓存池,所有数据写入操作之前全部先经过缓存池,存储系统为了保证数据写入的完整性和正确性,在未收到数据写入指令时或者在存储系统发生异常时会重发写入操作指令,为了避免数据未写入造成数据不完整或数据重复写入造成的系统损耗,根据开发测试环境,这里设计一种双存储池数据写入处理方法。
49.其中,所述副本模式存储数据需要选取一个副本同步读取,对数据复制保存;所述纠删模式通过保存校验数据块,将待写入的数据按纠删条带切分并计算校验数据块,在读取时读取多个分片并合并计算保存数据。
50.步骤s02,所述缓存池接收数据写入请求。
51.具体地,接收对所述数据进行写入存储池的指令,若在客户前端发起重复请求写入数据时,存储系统根据数据请求的上一次处理结果和重复写入请求数据内容对重复请求进行正确处理。
52.步骤s03,第一次判断是否为首次收到所述数据写入请求;
53.若是,则对待写入数据进行拆分,并第二次判断是否为首次收到所述数据写入请求,并根据判断结果对拆分后的待写入数据进行写入操作;
54.若非首次收到所述数据写入请求,则判断所述缓存池接收数据是否出现错误,若出现错误,将出错信息反馈给客户端。
55.具体地,对所述待写入数据进行第一次判断;
56.判断是否为首次接收到所述待写入数据;
57.若是,则对所述待写入数据进行拆分,并将所述待写入数据的属性信息进行备份,记录到备份文件;
58.若否,则判断所述缓存池接收数据是否出现错误,若出现错误,将出错信息反馈给客户端。
59.可以理解为,对所述待写入数据进行第一次判断;
60.判断缓存池是否为首次接收到所述待写入数据;
61.若缓存池没有接收过所述待写入数据,则按原流程进行数据写入存储池处理,对所述待写入数据进行拆分,小块数据写入缓存池,大块数据写入纠删池,并将所述待写入数据的属性信息进行备份,记录到备份文件;
62.若缓存池已经接收过所述待写入数据,则判断所述缓存池接收数据是否出现错误,若出现错误,将出错信息反馈给客户端,请求处理截止。
63.这里,通过对所述待写入数据进行若干次判断确定判断结果。这里存储系统接收到写数据请求后,对待写入数据进行三次判断,并根据每次的判断结果决定处理流程,从而保证存储系统的数据一致性。
64.如图2为双存储池数据写入处理方法的逻辑图,使用所述副本池作为所述纠删池的缓存池,所有的待写入数据请求都经过缓存池,这里设计一种双存储池数据写入处理方法,保证当存储池接收到重复请求写入数据指令后对请求的写入数据进行正确处理,保证存储系统的数据一致性。
65.步骤s03还包括:
66.步骤s031,根据使用场景可配置项将所述待写入数据拆分为小块数据和大块数据。
67.具体地,将待写入数据拆分成小块数据和大块数据,所述小块数据写入缓存池,所述大块数据写入纠删池。
68.对请求待写入的数据进行拆分,将待写入数据拆分成小块数据和大块数据,所述小块数据写入缓存池,所述大块数据写入纠删池(数据池),同时所述缓存池保存所有待写入数据的属性信息。
69.这里,所述使用场景可配置项为一个可以根据使用场景等信息设置的经验值;例如将使用场景可配置项值设置为128k,即将小于128k的数据拆分为小块数据,将大于128k的数据拆分为大块数据。
70.步骤s032,第二次判断是否为首次收到所述数据写入请求,并根据判断结果对拆分后的待写入数据进行写入操作,包括:
71.第二次判断所述数据写入请求是否为首次收到;
72.若是,则第三次判断是否为首次收到所述数据写入请求,并根据判断结果对拆分后的待写入数据进行写入操作;
73.若否,则根据所述对所述待写入数据进行拆分的结果对拆分后的待写入数据进行写入操作。
74.所述根据所述对所述待写入数据进行拆分的结果对拆分后的待写入数据进行写入操作,包括:
75.将小块数据写入缓存池,则数据写入结束后将写入结果反馈给客户端,并将所述数据的属性信息用备份文件记录的信息替换;
76.将大块数据写入纠删池。
77.所述将大块数据写入纠删池,还包括:
78.增加布尔型变量值来标记是否有数据写入所述纠删池,若是,则将所述布尔型变量值设置为true,并将所述数据的属性信息用备份文件记录的信息替换。
79.具体地,所述对所述待写入数据进行拆分之后,包括:
80.对所述待写入数据进行第二次判断;
81.判断是否为首次接收到所述待写入数据;
82.若是,则忽略第二次判断,将待写入数据拆分成小块数据和大块数据,所述小块数据写入缓存池,所述大块数据写入纠删池;
83.若否,则根据所述对所述待写入数据进行拆分的结果进行判断。
84.可以理解的是,对所述待写入数据进行第二次判断;
85.判断缓存池是否为首次接收到所述待写入数据;
86.若缓存池没有接收过所述待写入数据,则忽略第二次判断,将待写入数据拆分成小块数据和大块数据,所述小块数据写入缓存池,所述大块数据写入纠删池;
87.若缓存池接收过所述待写入数据,则根据所述对所述待写入数据进行的拆分的结果进行判断。
88.同时,若将所述待写入数据写入缓存池,则数据处理结束后将处理结果反馈给客户端,并将所述数据的属性信息用备份文件记录的信息替换;
89.若将所述待写入数据写入纠删池,则增加布尔型变量值来标记是否有数据写入所述纠删池,将所述布尔型变量值设置为true,并将所述数据的属性信息用备份文件记录的信息替换。
90.具体地,若将所述待写入数据只写入缓存池,则数据处理结束后将处理结果反馈给客户端,并将所述数据的属性信息用备份文件记录的信息替换;
91.若将所述待写入数据需要写入纠删池,则增加布尔型变量值用作逻辑判断,来标记是否有数据写入所述纠删池,默认为有数据写向纠删池,当有数据写入所述纠删池,将所述布尔型变量值设置为true,在第二次判断完成后,并将所述数据的属性信息用备份文件记录的信息替换,恢复所述数据的属性信息。
92.步骤s033,所述第三次判断是否为首次收到所述数据写入请求,并根据判断结果对拆分后的待写入数据进行写入操作,包括:
93.第三次判断所述数据写入请求是否为首次收到;
94.若是,则对所述待写入数据进行拆分,并将所述待写入数据的属性信息进行备份,
记录到备份文件;
95.若否,则所述缓存池向纠删池转发所述待写入数据,将所述待写入数据写入所述纠删池。
96.具体地,对所述待写入数据进行第三次判断;
97.判断是否为首次接收到所述待写入数据;
98.若是,则对所述待写入数据进行拆分,并将所述待写入数据的属性信息进行备份,记录到备份文件;
99.若否,则所述缓存池向纠删池转发所述待写入数据,将所述待写入数据写入所述纠删池。
100.具体地,这里缓存池向硬盘或磁盘提交数据和缓存池向纠删池转发数据写入请求的代码在同一位置,在这里,缓存池向磁盘写入数据,同时缓存池向纠删池转发数据后,对所述待写入数据进行第三次判断;
101.判断是否为首次接收到所述待写入数据;
102.若是,则按原流程进行数据写入存储池处理,对所述待写入数据进行拆分,并将所述待写入数据的属性信息进行备份,记录到备份文件;
103.若否,则所述缓存池向纠删池转发所述待写入数据,将所述待写入数据写入所述纠删池。
104.其中,这里需要向存储池添加至少一个硬盘才可开始保存数据。副本模式和纠删模式为数据存储方式,可以理解为使用硬盘的方式,当副本模式时,多个硬盘上数据相同;当为纠删模式时,数据会分到多个硬盘上,并进行数据写入处理。
105.最后,根据所述判断结果将所述待写入数据写入到对应的存储池。
106.具体地,可以理解为存储系统接收到写数据请求后,对写数据请求进行三次判断,并根据每次的判断结果决定处理流程,从而保证存储系统的数据一致性。
107.本发明实施例提供的双存储池数据写入处理方法在不脱离本发明技术方案的前提下,还可以做出若干改进以及优化,这些改进与优化也应当视为本发明的保护范围。
108.本发明实施例提供的双存储池数据写入处理方法应用到数据写入请求场景,能够通过对所述待写入数据请求进行若干次判断,根据判断结果确定处理流程,同时缓存池接收到重复请求后对待写入数据请求进行正确处理,保证存储系统的数据一致性。
109.本发明实施例提供的技术方案提供了一种双存储池数据写入处理方法,可以保证所述数据写入的完整性和正确性,在未收到数据写入指令时或在存储系统发生异常时会重发写入指令,避免所述数据未写入存储池,造成数据不完整或数据重复写入存储池造成的系统损耗。
110.实施例二
111.本发明提供了一种双存储池数据写入处理装置,如图3所示,所述系统包括:创建模块、接收模块、判断模块、处理模块。
112.在本实施例中,所述双存储池包括副本池和纠删池,创建模块用于将所述副本池设置为所述纠删池的缓存池;接收模块用于所述缓存池接收数据写入请求;判断模块用于第一次判断是否为首次收到所述数据写入请求;处理模块用于对待写入数据进行拆分,并第二次判断是否为首次收到所述数据写入请求,并根据判断结果对拆分后的待写入数据进
行写入操作。
113.进一步地,处理模块用于若非首次收到所述数据写入请求,则判断所述缓存池接收数据是否出现错误,若出现错误,将出错信息反馈给客户端。
114.进一步地,处理模块用于根据使用场景可配置项将所述待写入数据拆分为小块数据和大块数据。
115.进一步地,判断模块用于第二次判断所述数据写入请求是否为首次收到;
116.若是,则第三次判断是否为首次收到所述数据写入请求,并根据判断结果对拆分后的待写入数据进行写入操作;
117.若否,则根据所述对所述待写入数据进行拆分的结果对拆分后的待写入数据进行写入操作。
118.进一步地,处理模块用于将小块数据写入缓存池,则数据写入结束后将写入结果反馈给客户端,并将所述数据的属性信息用备份文件记录的信息替换;
119.将大块数据写入纠删池。
120.进一步地,处理模块用于增加布尔型变量值来标记是否有数据写入所述纠删池,若是,则将所述布尔型变量值设置为true,并将所述数据的属性信息用备份文件记录的信息替换。
121.进一步地,判断模块还可用于第三次判断所述数据写入请求是否为首次收到;
122.若是,则对所述待写入数据进行拆分,并将所述待写入数据的属性信息进行备份,记录到备份文件;
123.若否,则所述缓存池向纠删池转发所述待写入数据,将所述待写入数据写入所述纠删池。
124.本发明实施例提供的技术方案带来的有益效果是:
125.本发明双存储池数据写入处理技术应用到重复请求场景,能够通过对所述待写入数据请求进行若干次判断,根据判断结果确定处理流程,同时缓存池接收到重复请求后对待写入数据请求进行正确处理,保证存储系统的数据一致性。
126.本发明实施例提供的技术方案提供了一种双存储池数据写入处理装置,可以保证所述数据写入的完整性和正确性,在未收到数据写入指令时或在存储系统发生异常时会重发写入指令,避免所述数据未写入存储池,造成数据不完整或数据重复写入存储池造成的系统损耗。
127.实施例三
128.本发明提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时可以执行如下双存储池数据写入处理方法:
129.将所述副本池设置为所述纠删池的缓存池;
130.所述缓存池接收数据写入请求;
131.第一次判断是否为首次收到所述数据写入请求;
132.若是,则对待写入数据进行拆分,并第二次判断是否为首次收到所述数据写入请求,并根据判断结果对拆分后的待写入数据进行写入操作。
133.实施例四
134.本发明提供了一种计算机存储介质,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
135.将所述副本池设置为所述纠删池的缓存池;
136.所述缓存池接收数据写入请求;
137.第一次判断是否为首次收到所述数据写入请求;
138.若是,则对待写入数据进行拆分,并第二次判断是否为首次收到所述数据写入请求,并根据判断结果对拆分后的待写入数据进行写入操作。
139.进一步地,若非首次收到所述数据写入请求,则判断所述缓存池接收数据是否出现错误,若出现错误,将出错信息反馈给客户端。
140.进一步地,所述对待写入数据进行拆分包括:
141.根据使用场景可配置项将所述待写入数据拆分为小块数据和大块数据。
142.进一步地,所述第二次判断是否为首次收到所述数据写入请求,并根据判断结果对拆分后的待写入数据进行写入操作,包括:
143.第二次判断所述数据写入请求是否为首次收到;
144.若是,则第三次判断是否为首次收到所述数据写入请求,并根据判断结果对拆分后的待写入数据进行写入操作;
145.若否,则根据所述对所述待写入数据进行拆分的结果对拆分后的待写入数据进行写入操作。
146.进一步地,所述根据所述对所述待写入数据进行拆分的结果对拆分后的待写入数据进行写入操作,包括:
147.将小块数据写入缓存池,则数据写入结束后将写入结果反馈给客户端,并将所述数据的属性信息用备份文件记录的信息替换;
148.将大块数据写入纠删池。
149.进一步地,所述将大块数据写入纠删池,还包括:
150.增加布尔型变量值来标记是否有数据写入所述纠删池,若是,则将所述布尔型变量值设置为true,并将所述数据的属性信息用备份文件记录的信息替换。
151.进一步地,所述第三次判断是否为首次收到所述数据写入请求,并根据判断结果对拆分后的待写入数据进行写入操作,包括:
152.第三次判断所述数据写入请求是否为首次收到;
153.若是,则对所述待写入数据进行拆分,并将所述待写入数据的属性信息进行备份,记录到备份文件;
154.若否,则所述缓存池向纠删池转发所述待写入数据,将所述待写入数据写入所述纠删池。
155.图4为本发明实施例四提供的可被用于实施本技术中所述的各个实施例的示例性系统;
156.如图4所示,在一些实施例中,系统能够作为各所述实施例中的任意一个用于双存储池数据写入处理的上述设备。在一些实施例中,系统可包括具有结果的一个或多个计算机可读介质(例如,系统存储器或nvm/存储设备)以及与该一个或多个计算机可读介质耦合并被配置为执行结果以实现模块从而执行本技术中所述的动作的一个或多个处理器(例
如,(一个或多个)处理器)。
157.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来结果相关的硬件来完成,上述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
158.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
159.以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
再多了解一些

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

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

相关文献