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

一种基于分布式文件系统交织读预读的优化方法、装置与流程

2021-11-09 22:59:00 来源:中国专利 TAG:


1.本发明涉及分布式文件系统读业务技术领域,具体涉及一种基于分布式文件系统交织读预读的优化方法、装置。


背景技术:

2.计算机通过文件系统管理、存储数据,而信息爆炸时代中人们可以获取的数据成指数倍的增长,单纯通过增加硬盘个数来扩展计算机文件系统的存储容量的方式,在容量大小、容量增长速度、数据备份、数据安全等方面的表现都差强人意。分布式文件系统的设计基于客户机/服务器模式。分布式文件系统可以有效解决数据的存储和管理难题:将固定于某个地点的某个文件系统,扩展到任意多个地点/多个文件系统,众多的节点组成一个文件系统网络。分布式文件系统(distributed file system)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。
3.对于分布式文件系统(对象存储),对于文件的读业务模型有常见的交织读模式,例如多线程交替的从文件的不同位置顺序读,由于在分布式文件系统缓存层,多线程共享文件句柄,对分布式文件系统而言,整个io的顺序性不断遭受中断,顺序读预读效果差,整体读性能不理想。


技术实现要素:

4.针对多线程交替的从文件的不同位置顺序读,由于在分布式文件系统缓存层,多线程共享文件句柄,对分布式文件系统而言,整个io的顺序性不断遭受中断,顺序读预读效果差,整体读性能不理想的问题,本发明提供一种基于分布式文件系统交织读预读的优化方法、装置。
5.本发明的技术方案是:
6.第一方面,本发明技术方案提供一种基于分布式文件系统交织读预读的优化方法,包括如下步骤:
7.步骤1:接收读请求;
8.步骤2:根据接收到的读请求判断是否是随机读,若是,执行步骤3,否则,执行步骤4;
9.步骤3:根据整对象及对象中的数据块的预读标记进行预读信息恢复;
10.步骤4:发起预读;
11.步骤5:读结束。
12.进一步的,步骤3中根据整对象及对象中的数据块的预读标记进行预读信息恢复的步骤具体包括:
13.步骤31:根据整对象的预读标记记录预读长度;
14.步骤32:若整对象中没有预读标记,根据对象中的数据块的预读标记记录预读长度;
15.步骤33:根据步骤31和步骤32中记录的预读长度统计预读总长度;
16.步骤34:根据统计的预读总长度判断是否是交织读,若是,执行步骤35;否则,执行步骤36;
17.步骤35:恢复预读信息;
18.步骤36:交织读恢复流程结束。
19.进一步的,步骤31中根据整对象的预读标记记录预读长度的步骤具体包括:
20.步骤311:遍历对象检查整对象是否具有预读标记;若是,执行步骤312,否则执行步骤32;
21.步骤312:记录预读长度并检查下一对象;
22.步骤313:对象是否遍历完成,若是,执行步骤33,否则,继续执行步骤311。
23.进一步的,步骤32中,根据对象中的数据块的预读标记记录预读长度的步骤包括:
24.步骤321a:根据对象数据块的偏移,依次检查对象中的数据块,是否具有预读标记,若是,执行步骤322a,否则,执行步骤33;
25.步骤322a:记录预读长度,并检查对象中下一数据块;执行步骤313。
26.进一步的,步骤34中根据统计的预读总长度判断是否是交织读的步骤包括:
27.判断预读总长度是否为0,若是,判断为非交织读,执行步骤36,否则,执行步骤35。
28.进一步的,步骤32中,根据对象中的数据块的预读标记记录预读长度的步骤中,对象中的数据块是指对象中offset后连续数据块,具体步骤包括:
29.步骤321b:检查对象中数据块上是否具有预读标记,若是,执行步骤322b,否则,执行步骤312;
30.步骤322b:记录预读长度,并检查对象中下一数据块;
31.步骤323b:对象中的数据块是否遍历完成,若是,执行步骤312,否则,执行步骤321b。
32.进一步的,步骤35中恢复预读信息的步骤具体包括:
33.恢复预读位置;其中,设置下次预读位置为本次业务读结束位置 统计的预读长度;预读触发位置为本次读偏移 1/2统计的预读长度位置。
34.发明交织读的识别方法,设计数据块与对象的预读标记,实现预读信息的快速恢复,同时设计完整的交织读预读逻辑,模块嵌入性能较好,完美实现交织读模式下的识别与预读。
35.第二方面,本发明技术方案还提供一种基于分布式文件系统交织读预读的优化装置,包括接收模块、读类型判断模块、恢复模块、执行模块;
36.接收模块,用于接收读请求;
37.读类型判断模块,用于根据接收到的读请求判断是否是随机读;
38.恢复模块,用于当读类型判断模块输出是随机读时,根据整对象及对象中的数据块的预读标记进行预读信息恢复;
39.执行模块,用于当读类型判断模块输出不是随机读或者预读信息恢复完成时,发起预读。
40.进一步的,恢复模块包括记录单元、统计单元、长度判断单元和恢复单元;
41.记录单元,用于根据整对象的预读标记记录预读长度;还用于若整对象中没有预
读标记,根据对象中的数据块的预读标记记录预读长度;
42.统计单元,用于根据记录单元记录的预读长度统计预读总长度;
43.长度判断单元,用于根据统计的预读总长度判断是否是交织读;
44.恢复单元,用于当长度判断单元判断是交织读时,恢复预读信息。
45.进一步的,恢复模块还包括检查单元、过程判断单元;
46.检查单元,用于遍历对象检查整对象是否具有预读标记;
47.记录单元,还用于检查单元输出整对象具有预读标记时,记录预读长度;
48.过程判断单元,还用于判断对象是否遍历完成,若为遍历完成,输出信息到检查单元继续遍历对象检查整对象是否具有预读标记,若遍历完成,输出信息到统计单元根据记录单元记录的预读长度统计预读总长度。
49.进一步的,长度判断单元,具体用于判断预读总长度是否为0,若是0,判断为非交织读,交织读恢复流程结束,若判断不是0,输出信息到恢复单元恢复预读信息。
50.进一步的,记录单元根据对象中的数据块的预读标记记录预读长度时,对象中的数据块是指对象中offset后连续数据块;
51.检查单元,还具体用于检查对象中数据块上是否具有预读标记;
52.过程判断单元,还用于判断对象中的数据块是否遍历完成。
53.进一步的,恢复单元,具体用于恢复预读位置;其中,设置下次预读位置为本次业务读结束位置 统计的预读长度;预读触发位置为本次读偏移 1/2统计的预读长度位置。
54.从以上技术方案可以看出,本发明具有以下优点:交织读的识别方法,设计数据块与对象的预读标记,实现预读信息的快速恢复,同时设计完整的交织读预读逻辑,模块嵌入性能较好,完美实现交织读模式下的识别与预读。增加交织读模式下的读性能。提升产品多业务模式性能稳定性,增加友好的用户体验。模块嵌入性好,便于开发与维护。
55.此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
56.由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
57.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
58.图1是本发明一个实施例的方法的示意性流程图。
59.图2是本发明另一个实施例的方法的示意性流程图。
60.图3是本发明另一个实施例的装置的示意性框图。
61.其中,11

接收模块,12

读类型判断模块,13

恢复模块,14

执行模块。
具体实施方式
62.为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通
技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
63.如图1所示,本发明实施例提供一种基于分布式文件系统交织读预读的优化方法,包括如下步骤:
64.步骤1:接收读请求;
65.步骤2:根据接收到的读请求判断是否是随机读,若是,执行步骤3,否则,执行步骤4;
66.步骤3:根据整对象及对象中的数据块的预读标记进行预读信息恢复;
67.步骤4:发起预读;
68.步骤5:读结束。
69.设计数据块与对象的预读标记,实现预读信息的快速恢复。
70.本发明实施例还提供一种基于分布式文件系统交织读预读的优化方法,包括如下步骤:
71.步骤1:接收读请求;
72.步骤2:根据接收到的读请求判断是否是随机读,若是,执行步骤3,否则,执行步骤4;
73.步骤3:根据整对象及对象中的数据块的预读标记进行预读信息恢复;步骤3中根据整对象及对象中的数据块的预读标记进行预读信息恢复的步骤具体包括:步骤31:根据整对象的预读标记记录预读长度;步骤32:若整对象中没有预读标记,根据对象中的数据块的预读标记记录预读长度;步骤33:根据步骤31和步骤32中记录的预读长度统计预读总长度;步骤34:根据统计的预读总长度判断是否是交织读,若是,执行步骤35;否则,执行步骤36;步骤35:恢复预读信息;步骤36:交织读恢复流程结束。
74.步骤4:发起预读;
75.步骤5:读结束。
76.发明交织读的识别方法,设计数据块与对象的预读标记,实现预读信息的快速恢复,同时设计完整的交织读预读逻辑,模块嵌入性能较好,完美实现交织读模式下的识别与预读。
77.如图2所示,本发明实施例还提供一种基于分布式文件系统交织读预读的优化方法,包括如下步骤:
78.步骤1:接收读请求;
79.步骤2:根据接收到的读请求判断是否是随机读,若是,执行步骤3,否则,执行步骤4;
80.步骤3:根据整对象及对象中的数据块的预读标记进行预读信息恢复;
81.需要说明的是,步骤3中根据整对象及对象中的数据块的预读标记进行预读信息恢复的步骤具体包括:
82.步骤31:根据整对象的预读标记记录预读长度;步骤31中根据整对象的预读标记记录预读长度的步骤具体包括:
83.步骤311:遍历对象检查整对象是否具有预读标记;若是,执行步骤312,否则执行步骤32;
84.步骤312:记录预读长度并检查下一对象;
85.步骤313:对象是否遍历完成,若是,执行步骤33,否则,继续执行步骤311。
86.步骤32:若整对象中没有预读标记,根据对象中的数据块的预读标记记录预读长度;步骤32中,根据对象中的数据块的预读标记记录预读长度的步骤中,对象中的数据块是指对象中offset后连续数据块,具体步骤包括:
87.步骤321b:检查对象中数据块上是否具有预读标记,若是,执行步骤322b,否则,执行步骤312;
88.步骤322b:记录预读长度,并检查对象中下一数据块;
89.步骤323b:对象中的数据块是否遍历完成,若是,执行步骤312,否则,执行步骤321b;
90.步骤33:根据步骤31和步骤32中记录的预读长度统计预读总长度;
91.步骤34:根据统计的预读总长度判断是否是交织读,若是,执行步骤35;否则,执行步骤36;需要说明的是,步骤34中根据统计的预读总长度判断是否是交织读的步骤包括:判断预读总长度是否为0,若是,判断为非交织读,执行步骤36,否则,执行步骤35;
92.步骤35:恢复预读信息;然后执行步骤4;需要说明的是,步骤35中恢复预读信息的步骤具体包括:恢复预读位置;其中,设置下次预读位置为本次业务读结束位置 统计的预读长度;预读触发位置为本次读偏移 1/2统计的预读长度位置。
93.步骤36:交织读恢复流程结束;
94.步骤4:发起预读;
95.步骤5:读结束。
96.发明交织读的识别方法,设计数据块与对象的预读标记,实现预读信息的快速恢复,同时设计完整的交织读预读逻辑,模块嵌入性能较好,完美实现交织读模式下的识别与预读。
97.具体的,本发明提供一种基于分布式文件系统交织读预读的优化方法,具体流程如下:
98.s1.接收到读请求。
99.s2.判断是否是随机读,如果是进行步骤s3.否则进行步骤s5;
100.s3.进行预读信息恢复;
101.s4.如果是交织读,进行步骤s5,否则结束预读流程。
102.s5.根据预读信息发起预读。
103.s6.读结束。
104.在s3中,预读信息恢复过程如下;
105.s31.整对象是否具有预读标记,如果有,统计预读长度并检查下一对象,并做步骤s31的循环判断统计,否则进行步骤s32;如果对象遍历完进行步骤s34;
106.s32.根据对象数据块的偏移(首次是0或和读结束位置之后的数据块),依次检查对象中的数据块,是否具有预读标记,如果有,统计预读长度,并检查对象中下一数据块。否则进行步骤s34;
107.s33.判读对象是否遍历完,如果遍历完,进行步骤;否则进行下一对象的检查,如果对象遍历完,进行步骤s34,否则进行步骤s31;
108.s34.恢复预读信息,如果统计的预读长度等0是非交织读,结束交织读信息恢复过程。否则进行预读信息恢复,下次预读位置为本次业务读结束位置 统计的预读长度。上次预读长度为min(1/2统计的预读长度,文件的预读最大长度)。预读触发位置为本次读偏移 1/2统计的预读长度位置;
109.s35.结束交织读恢复流程。
110.分布式文件系统(对象存储)存储服务器中,发明交织读的识别方法,设计数据块与对象的预读标记,实现预读信息的快速恢复,同时设计完整的交织读预读逻辑,模块嵌入性能较好,完美实现交织读模式下的识别与预读。
111.如图3所示,本发明另一个实施例还提供一种基于分布式文件系统交织读预读的优化装置,包括接收模块11、读类型判断模块12、恢复模块13、执行模块14;
112.接收模块11,用于接收读请求;
113.读类型判断模块12,用于根据接收到的读请求判断是否是随机读;
114.恢复模块13,用于当读类型判断模块输出是随机读时,根据整对象及对象中的数据块的预读标记进行预读信息恢复;
115.执行模块14,用于当读类型判断模块输出不是随机读或者预读信息恢复完成时,发起预读。
116.本发明另一个实施例还提供一种基于分布式文件系统交织读预读的优化装置,包括接收模块11、读类型判断模块12、恢复模块13、执行模块14;
117.接收模块11,用于接收读请求;
118.读类型判断模块12,用于根据接收到的读请求判断是否是随机读;
119.恢复模块13,用于当读类型判断模块输出是随机读时,根据整对象及对象中的数据块的预读标记进行预读信息恢复;
120.执行模块14,用于当读类型判断模块输出不是随机读或者预读信息恢复完成时,发起预读。
121.其中,恢复模块13包括记录单元、统计单元、长度判断单元、检查单元、过程判断单元、恢复单元;
122.记录单元,用于根据整对象的预读标记记录预读长度;还用于若整对象中没有预读标记,根据对象中的数据块的预读标记记录预读长度;
123.统计单元,用于根据记录单元记录的预读长度统计预读总长度;
124.长度判断单元,用于根据统计的预读总长度判断是否是交织读;
125.恢复单元,用于当长度判断单元判断是交织读时,恢复预读信息。
126.检查单元,用于遍历对象检查整对象是否具有预读标记;
127.记录单元,还用于检查单元输出整对象具有预读标记时,记录预读长度;
128.过程判断单元,还用于判断对象是否遍历完成,若为遍历完成,输出信息到检查单元继续遍历对象检查整对象是否具有预读标记,若遍历完成,输出信息到统计单元根据记录单元记录的预读长度统计预读总长度。
129.执行模块14,用于当读类型判断模块输出不是随机读或者预读信息恢复完成时,发起预读。
130.本发明另一个实施例还提供一种基于分布式文件系统交织读预读的优化装置,包
括接收模块11、读类型判断模块12、恢复模块13、执行模块14;
131.接收模块11,用于接收读请求;
132.读类型判断模块12,用于根据接收到的读请求判断是否是随机读;
133.恢复模块13,用于当读类型判断模块输出是随机读时,根据整对象及对象中的数据块的预读标记进行预读信息恢复;
134.其中,恢复模块包括记录单元、统计单元、长度判断单元、检查单元、过程判断单元、恢复单元;
135.记录单元,用于根据整对象的预读标记记录预读长度;还用于若整对象中没有预读标记,根据对象中的数据块的预读标记记录预读长度;
136.统计单元,用于根据记录单元记录的预读长度统计预读总长度;
137.长度判断单元,用于根据统计的预读总长度判断是否是交织读;具体用于判断预读总长度是否为0,若是0,判断为非交织读,交织读恢复流程结束,若判断不是0,输出信息到恢复单元恢复预读信息。
138.恢复单元,用于当长度判断单元判断是交织读时,恢复预读信息。
139.检查单元,用于遍历对象检查整对象是否具有预读标记;还具体用于检查对象中数据块上是否具有预读标记;
140.记录单元,还用于检查单元输出整对象具有预读标记时,记录预读长度;记录单元根据对象中的数据块的预读标记记录预读长度时,对象中的数据块是指对象中offset后连续数据块;
141.过程判断单元,还用于判断对象是否遍历完成,若为遍历完成,输出信息到检查单元继续遍历对象检查整对象是否具有预读标记,若遍历完成,输出信息到统计单元根据记录单元记录的预读长度统计预读总长度。还用于判断对象中的数据块是否遍历完成;
142.执行模块14,用于当读类型判断模块输出不是随机读或者预读信息恢复完成时,发起预读。
143.恢复单元,具体用于恢复预读位置;其中,设置下次预读位置为本次业务读结束位置 统计的预读长度;预读触发位置为本次读偏移 1/2统计的预读长度位置。
144.尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
再多了解一些

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

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

相关文献