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

IO请求预测方法、装置、存储节点及可读存储介质与流程

2022-06-01 05:48:01 来源:中国专利 TAG:

io请求预测方法、装置、存储节点及可读存储介质
技术领域
1.本发明涉及分布式存储技术领域,具体而言,涉及一种io请求预测方法、装置、存储节点及可读存储介质。


背景技术:

2.在分布式存储系统中,各存储节点之间的数据均衡是充分发挥分布式存储系统性能的前提,只有数据在各存储节点均衡分布,才能最大程度地实现对数据进行读写的io请求的并发处理,最终得到理想的分布式存储系统性能。
3.现有的数据均衡算法,主要考虑如何充分发挥每个存储节点的cpu/内存、硬盘容量、网络带宽等硬件资源的每单位能力,采用静态哈希计算的方式,确定io请求分发至的目标存储节点,但是,当任一存储节点处于亚健康状态时,即存储节点仍然可以正常处理io请求,但是性能已经低于预期,这种静态哈希计算的方式仍然会将io请求发送至该存储节点,导致该存储节点的负载进一步增大,该存储节点的io请求的处理时延随之急剧增加,从而影响了分布式存储系统的整体性能。


技术实现要素:

4.本发明的目的在于提供了一种io请求预测方法、装置、存储节点及可读存储介质,其能够预测存储节点处理下一个io请求的平均处理时长,以便进一步基于预测的平均处理时长对io请求进行合理分发处理,最终得到理想的分布式存储系统的整体性能。
5.为了实现上述目的,本发明实施例采用的技术方案如下:
6.第一方面,本发明实施例提供了一种io请求预测方法,应用于分布式存储系统中的存储节点,所述方法包括:获取预设周期内接收的io请求的接收请求数和已处理完成的io请求的完成请求数;根据所述接收请求数和所述完成请求数,分别计算预设单位时长内的平均接收请求数和平均完成请求数;根据所述预设周期、所述平均接收请求数及所述平均完成请求数,预测所述存储节点处理下一个io请求的平均处理时长。
7.进一步地,所述根据所述预设周期、所述平均接收请求数及所述平均完成请求数,预测所述存储节点处理下一个io请求的平均处理时长的步骤包括:
8.若所述平均接收请求数小于所述平均完成请求数,则根据所述预设周期、所述平均接收请求数及所述平均完成请求数,预测所述平均处理时长;
9.若所述平均接收请求数大于或者等于所述平均完成请求数,则将所述预设周期作为所述平均处理时长。
10.进一步地,所述若所述平均接收请求数小于所述平均完成请求数,则根据所述预设周期、所述平均接收请求数及所述平均完成请求数,预测所述平均处理时长的步骤包括:
11.根据所述平均接收请求数和所述平均完成请求数,计算请求处理强度;
12.根据所述预设周期、所述平均完成请求数,及所述请求处理强度,预测所述平均处理时长。
13.进一步地,所述平均处理时长、所述预设周期、所述请求处理强度及所述平均完成请求数满足如下条件:
14.wc=t*(1/(μ(1-ρ))),其中,wc表示所述平均处理时长,ρ表示所述请求处理强度,μ表示所述平均完成请求数,t表示所述预设周期。
15.进一步地,所述方法还包括:
16.将所述接收的io请求放入预设创建的执行队列;
17.根据所述平均接收请求数和所述平均完成请求数,计算请求处理强度;
18.根据所述请求处理强度,预测所述执行队列的平均长度。
19.进一步地,所述请求处理强度及所述执行队列的平均长度满足如下条件:
20.l=ρ/(1-ρ),其中,l表示所述执行队列的平均长度,ρ表示所述请求处理强度。
21.进一步地,所述存储节点为多个,每一所述存储节点均与计算节点通信连接,所述方法还包括:
22.每一所述存储节点获取每一所述存储节点预测的所述平均处理时长;
23.每一所述存储节点均按照所述预设周期,将每一所述存储节点的所述平均处理时长发送至所述计算节点,以指示所述计算节点根据目标请求的预期时延及每一所述存储节点的所述平均处理时长,从多个所述存储节点中确定用于处理所述目标请求的目标存储节点。
24.第二方面,本发明实施例提供了一种io请求预测装置,应用于分布式存储系统中的存储节点,所述装置包括:获取模块,用于获取预设周期内接收的io请求的接收请求数和已处理完成的io请求的完成请求数;计算模块,用于根据所述接收请求数和所述完成请求数,分别计算预设单位时长内的平均接收请求数和平均完成请求数;预测模块,用于根据所述预设周期、所述平均接收请求数及所述平均完成请求数,预测所述存储节点处理下一个io请求的平均处理时长。
25.第三方面,本发明实施例还提供了一种存储节点,包括处理器和存储器;所述存储器用于存储程序;所述处理器用于在执行所述程序时,实现上述第一方面中的io请求预测方法。
26.第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面中的io请求预测方法。
27.相对于现有技术,本发明实施例提供的io请求预测方法、装置、存储节点及可读存储介质,根据预设周期内接收的io请求的接收请求数和已处理完成的io请求的完成请求数,分别计算预设单位时长内的平均接收请求数和平均完成请求数,根据预设周期、平均接收请求数及平均完成请求数,预测存储节点处理下一个io请求的平均处理时长,以便进一步基于预测的平均处理时长对io请求进行合理分发处理,最终得到理想的分布式存储系统的整体性能。
附图说明
28.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这
些附图获得其他相关的附图。
29.图1为本发明实施例提供的应用场景的示例图。
30.图2为本发明实施例提供的存储节点的方框示意图。
31.图3为本发明实施例提供的一种io请求预测方法的流程示例图。
32.图4为本发明实施例提供的另一种io请求预测方法的流程示例图。
33.图5示出了为本发明实施例提供的m/m/c队列模型的示例图。
34.图6为本发明实施例提供的另一种io请求预测方法的流程示例图。
35.图7为本发明实施例提供的另一种io请求预测方法的流程示例图。
36.图8为本发明实施例提供的io请求推荐分发和预测的示例图。
37.图9示出了本发明实施例提供的io请求预测装置的方框示意图。
38.图标:10-存储节点;11-处理器;12-存储器;13-总线;20-计算节点;100-io请求预测装置;110-获取模块;120-计算模块;130-预测模块;140-发送模块。
具体实施方式
39.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
40.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
41.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
42.在本发明的描述中,需要说明的是,若出现术语“上”、“下”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
43.此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
44.需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
45.请参考图1,图1为本发明实施例提供的应用场景的示例图,图1中,分布式存储系统包括存储节点10和计算节点20,存储节点10可以为一个或多个,但是通常为多个,每一存储节点10均与计算节点20通信连接,计算节点20接收io请求,并负责从存储节点10中确定处理该io请求的目标存储节点。
46.存储节点10可以是单个存储服务器、或者存储阵列或者由多个存储服务器组成的服务器组,用于存储用户数据或者用于管理用户数据的元数据。
47.计算节点20可以是普通主机或者是客户端,计算节点用于接收用户的io请求,并对io请求进行分发。
48.需要说明的是,本发明实施例可以适用于图1中各种类型数据的分布式存储系统中,尤其适用于分布式存储海量小文件的分布式存储系统。
49.由图1的应用场景可以看出来,数据在各存储节点10上分布的越均衡,则分布式存储系统越能发挥出其并发处理的优势,最终得到的整体处理性能也较为理想。为了充分发挥分布式存储系统的计算能力和存储能力,保证系统整体性能线性扩展,通常会采用某种数据均衡算法保持数据在各存储节点分布的均衡性,例如,现有技术采用一种静态哈希的方式,具体为:首先,计算每个存储节点的哈希值,并将其配置到0~2
32
的哈希圆环中;然后,采用同样的哈希方法计算每个io请求的哈希值,并映射到哈希圆环中,将io请求均衡调度分发到不同的存储节点。
50.另外,数据在各存储节点移动的数据量越小,则分布式存储系统的整体性能受到的影响也越小,对此,另一种现有技术聚焦于充分发挥每存储节点的cpu/内存、硬盘容量、网络带宽等硬件资源的每单位能力,以及如何减少集群规模伸缩场景下的数据迁移,其具体实现是:根据服务器资源权值计算虚拟节点个数和哈希值,并根据集群规模变化动态调整哈希圆环中的映射关系,达到数据均衡和减少数据迁移的目的。
51.无论上述哪一种方式,其前提都是假设所有存储节点在任何时候均能稳定对外提供存储服务,而实际上,存储节点在某个未知状况下出现硬件或者软件缺陷时,虽然依然能够正常提供存储服务,但是其性能远低于预期,即此时存储节点处于亚健康状态,例如,分布式存储系统中出现慢盘,或者分布式存储系统中软件设计不合理导致存储节点在某些情况下存储性能不佳,此时,如果仍然采用静态哈希计算方式,将io请求均衡调度分发到处于亚健康状态的存储节点,将导致严重的时延“长尾效应”问题,所谓“长尾效应”是指大部分io请求都可以正常处理,但是存在极少数io请求处理时长会非常长,以至于明显影响分布式存储系统的整体性能。
52.有鉴于此,本发明实施例提供一种io请求预测方法、装置、存储节点及可读存储介质,其通过对io请求的平均处理时长的合理预测,有助于实现io请求的合理分发,最终得到理想的分布式存储系统的整体性能,同时能够很好地解决“长尾效应”的问题,下面将对其进行详细描述。
53.本发明实施例在图1的基础上提供了存储节点10的方框示意图,请参照图2,图2为本发明实施例提供的存储节点10的方框示意图,存储节点10包括处理器11、存储器12、总线13。处理器11、存储器12通过总线13通信。
54.处理器11可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器11中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器11可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
55.存储器12用于存储程序,例如,本发明实施例中的io请求预测装置,io请求预测装置包括至少一个可以软件或固件(firmware)的形式存储于存储器12中的软件功能模块,处理器11在接收到执行指令后,执行所述程序以实现本发明实施例中的io请求预测方法。
56.存储器12可能包括高速随机存取存储器(ram:random access memory),也可能还
包括非易失存储器(non-volatile memory)。可选地,存储器12可以是内置于处理器11中的存储装置,也可以是独立于处理器11的存储装置。
57.总线13可以是isa总线、pci总线或eisa总线等。图2仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
58.在图1和图2的基础上,本发明实施例还提供了一种应用于图1和图2中的存储节点10的io请求预测方法,请参照图3,图3为本发明实施例提供的一种io请求预测方法的流程示例图,该方法包括以下步骤:
59.步骤s101,获取预设周期内接收的io请求的接收请求数和已处理完成的io请求的完成请求数。
60.在本实施例中,存储节点10可以按照预测周期统计该预测周期内的接收请求数和完成请求数,也可以通过运行的统计工具获取预设预测周期内的接收请求数和完成请求数。预设周期可以根据需要进行设置,例如,将预设周期设置为30秒。io请求可以包括读请求和写请求中的至少一种,读请求可以是从存储节点中读取所需数据,写请求可以是将数据存储至存储节点,数据可以是图片数据、文字数据、视频数据等,例如,当io请求为写图片数据的请求时,接收请求数为存储节点10接收的写图片数据的请求的个数,完成请求数为存储节点10将写图片数据的请求中指示的图片数据存储完成的请求的个数。
61.步骤s102,根据接收请求数和完成请求数,分别计算预设单位时长内的平均接收请求数和平均完成请求数。
62.在本实施例中,预设单位时长可以根据需要进行设置,预设单位时长可以和预设周期相同,也可以和预设周期不同。
63.步骤s103,根据预设周期、平均接收请求数及平均完成请求数,预测存储节点处理下一个io请求的平均处理时长。
64.在本实施例中,一段时间内接收的io请求数和完成请求数通常会满足预设分布规律,例如,在视频监控领域,io请求数据来源于前端卡口相机抓拍的人、机等图片数据,图片抓拍达到过程通常符合以下条件:1)将一天24小时划分成极限小的时间单元,在每个时间单元内,抓拍事件只可能发生0次或1次,且发生的概率与时间单元时长成正比;2)不同时间单元内,抓拍事件发生与否相互独立,因此,io请求处理过程可以近似看成是满足泊松分布的随机过程:{n(t),t≥0},如果用“生”表示接收到io请求,“灭”表示io请求处理完成,则该随机过程可以表示为生灭过程。此时,一段时间内接收的io请求数和完成请求数满足泊松分布,因此可以根据预设周期、平均接收请求数及平均完成请求数对下一个io请求的平均处理时长进行预测。当然,也可以根据其他应用场景,根据上述原理确定对应的其他分布,例如指数分布。
65.本发明实施例提供的上述方法,通过预测存储节点处理下一个io请求的平均处理时长,以便进一步基于预测的平均处理时长对io请求进行合理分发处理,最终得到理想的分布式存储系统的整体性能。
66.基于图3,本发明实施例还提供了一种预测存储节点处理下一个io请求的平均处理时长的具体实现方式,请参照图4,图4为本发明实施例提供的另一种io请求预测方法的流程示例图,步骤s103包括以下子步骤:
67.子步骤s1031,若平均接收请求数小于平均完成请求数,则根据预设周期、平均接
收请求数及平均完成请求数,预测平均处理时长。
68.在本实施例中,在存储节点10刚开始提供存储服务时,接收一个io请求,处理一个io请求,正常情况下处理的请求数和接收的请求数大致相同,随着io请求的不断下发,存储节点10接收的请求数越来越多,正常情况下,若平均接收请求数小于平均完成请求数,则此时存储节点处于完全正常的服务状态,即正常状态,直至存储节点10将所有io请求处理完毕。
69.作为一种具体实现方式,预测平均处理时长的方式可以是:
70.首先,根据平均接收请求数和平均完成请求数,计算请求处理强度。
71.在本实施例中,请求处理强度用于表征存储节点10进行io请求处理的服务能力,请求处理强度越小,则服务能力越强,反之,越弱。
72.其次,根据预设周期、平均完成请求数,及请求处理强度,预测平均处理时长。
73.在本实施例中,作为一种具体实施方式,可以利用m/m/c队列模型对分布式存储系统的io请求处理过程进行建模,其中,第一个m是输入过程服从负指数分布,即接收的io请求数,第二个m是服务时间服从负指数分布,即完成的io请求数,c是服务台数量,即存储节点的个数,对于任一存储节点,该存储节点处理io请求的过程可以近似模拟为经典的m/m/1队列模型,即:接收的io请求入队列,处理io请求时将其出队,单位时间内平均接收的io请求数为λ,平均完成的io请求数为μ,则存储节点的服务强度为ρ=λ/μ。请参照图5,图5示出了为本发明实施例提供的m/m/c队列模型的示例图,整个分布式系统处理io请求的过程近似满足m/m/c队列模型,io请求入队列,io请求被分发至c个存储节点,每一个存储节点处理接收的io请求又近似满足m/m/1队列模型,图5中的λ表示平均接收请求数,图5中的μ表示平均完成请求数。
74.根据平稳条件的生灭过程(ρ《1,否则,io请求队列将无限延长)推导公式,可得出k个io请求达到的概率pk=ρk(1-ρ),其为服从参数(1-ρ)的几何分布,根据利特尔法则(little’s law),可得出几何分布的数字特征,作为一种具体实现方式,平均处理时长、预设周期、请求处理强度及平均完成请求数满足如下条件:
75.wc=t*(1/(μ(1-ρ))),其中,wc表示平均处理时长,ρ表示请求处理强度,μ表示平均完成请求数,t表示预设周期。
76.子步骤s1032,若平均接收请求数大于或者等于平均完成请求数,则将预设周期作为平均处理时长。
77.在本实施例中,若平均接收请求数大于或者等于平均完成请求数,则此时存储节点处于非完全正常的服务状态,即存储节点10存在变为亚健康状态的趋势,此时,如果存储节点10保持当前接收io请求的状态,则存储节点10有可能很快不能继续保持当前的io请求的处理能力,变成亚健康状态,存储节点10可能会出现“长尾效应”,因此,为了避免“长尾效应”,此时,直接将预设周期作为平均处理时长,以便计算节点在根据平均时长进行io请求分发时,不会继续按照当前的io请求发送方式发送io请求到该存储节点10,从而及时避免存储节点10出现“长尾效应”,进而避免对分布式存储系统的整体性能产生较大的影响。
78.本发明实施例提供的上述方法,按照平均接收请求数和平均完成请求数的大小关系,确定平均处理时长,使得平均处理时长更合理,进而使得根据平均处理时长进行io请求分发也更合理,最终避免不合理的io请求分发对分布式存储系统整体性能的影响。
79.在本实施例中,除了对平均时长进行预测以便合理地进行io请求的分发之外,为了准确地获知存储节点当前进行io请求处理的情况,以便及时发现存储节点出现亚健康状态,从而及时对亚健康状态的存储节点进行优化处理,本发明实施例基于图3还提供了一种可以获知存储节点当前进行io请求处理的情况方法,请参照图6,图6为本发明实施例提供的另一种io请求预测方法的流程示例图,该方法也应用于存储节点,该方法还包括以下步骤:
80.步骤s201,将接收的io请求放入预设创建的执行队列。
81.在本实施例中,存储节点10在接收到io请求后,将该io请求放入执行队列进行等待,在需要处理io请求时,从执行队列中取出io请求并进行处理。也就是说,通常情况下,执行队列中会存在多个等待被处理的io请求。
82.步骤s202,根据平均接收请求数和平均完成请求数,计算请求处理强度。
83.在本实施例中,步骤s202的实现过程在上述子步骤s1031中已有描述,此处不再赘述。
84.步骤s203,根据请求处理强度,预测执行队列的平均长度。
85.在本实施例中,仍然可以采用上述的m/m/c队列模型进行近似建模的分析方式预测执行队列的平均长度,作为一种具体实施方式,可以采用公式l=ρ/(1-ρ)确定执行队列的平均长度,其中,l表示执行队列的平均长度,ρ表示请求处理强度。
86.需要说明的是,步骤s201~s203可以在步骤s101~s103之后执行,也可以在其之前执行,或者与其同时并发执行。
87.在本实施例中,为了通过预测的平均处理时长,实现io请求的合理分发,本发明实施例还提供了一种将预测的平均处理时长周期性发送至计算节点,以使计算节点根据平均处理时长进行io请求分发的具体实现方式,请参照图7,图7为本发明实施例提供的另一种io请求预测方法的流程示例图,该方法也应用于存储节点,该方法包括以下步骤:
88.步骤s300,每一存储节点获取每一存储节点预测的平均处理时长。
89.在本实施例中,每一存储节点预测平均时长的方法如上述步骤s101~s103或者步骤s101~s103极其子步骤实现。
90.步骤s301,每一存储节点均按照预设周期,将每一储节点的平均处理时长发送至计算节点,以指示计算节点根据目标请求的预期时延及每一存储节点的平均处理时长,从多个存储节点中确定用于处理所目标请求的目标存储节点。
91.在本实施例中,存储节点10可以为多个,每一存储节点10均按照预设周期,将按照上述步骤预测的平均处理时长发送至计算节点,用户可以在向计算节点发送io请求时指定该io请求的预期时延,计算节点在接收到该io请求时,根据每一存储节点的平均处理时长及预期时延从多个存储节点10中确定目标存储节点,目标存储节点为满足预期时延的存储节点,作为一种具体实施方式,计算节点可以先将预设时延乘以预设倍数,然后将所得乘积与每一存储节点的平均处理时长相比较,从中确定出平均处理时长小于该乘积的初选存储节点,再按照预设规则从初选存储节点中确定目标存储节点,预设规则可以是随机选取,或者按照初选存储节点的当前可用容量,从中选择可用容量最大的,或者按照初选存储节点的当前cpu占用率,从中选择cpu占用率最低的,本发明对具体的预设规则不予限定。
92.需要说明的是,作为一种具体实现方式,若所有存储节点10均远不能满足预期时
延,例如,所有存储节点10中平均处理时长的最小值大于预期时延的预设倍数,预设倍数可以根据实际场景需要进行设置,例如预设倍数设置为2倍,此时,计算节点通知用户,由用户决定在平均处理时长远无法满足其预期时延的情况下,是否取消本次io请求,避免拥塞的进一步恶化。
93.还需要说明的是,作为另一种具体实现方式,计算节点20在接收到io请求时,也可以先按照上述应用于存储节点的io请求预测方法,根据计算节点20在预设周期内接收的io请求的接收请求数和已处理完成的io请求的完成请求数,根据该接收请求数和完成请求数,计算预设单位时长内的平均接收请求数和平均完成请求数,根据预设周期、平均接收请求数及平均完成请求数,预测计算节点20处理下一个io请求的平均处理时长,若该平均处理时长远大于预期时延,例如,计算节点20的平均处理时长大于预期时延的预设倍数,预设倍数可以根据实际场景需要进行设置,计算节点20通知用户,由用户决定,是仍然下发该io请求,并等待该io请求处理完成,还是取消该io请求,延后提交,因为io请求的重要性不一样,其处理的优先级也可以不一样,对于重要性不太高的io请求,完全可以先取消该io请求,以处理更重要的其他io请求,稍后再次下发该io请求。如果计算节点20的平均处理时长不大于预期时延的预设倍数,或者用户确认需要继续处理该io请求,则计算节点20会根据每一存储节点10的平均处理时长及预期时延从多个存储节点10中确定目标存储节点,目标存储节点为满足预期时延的存储节点,将该io请求发送至目标存储节点进行处理。
94.本发明实施例提供的上述方法,计算节点可以根据平均处理时长及目标请求的预期时延,为目标请求确定合理的目标存储节点,从而使得io请求的分发更合理,更灵活,实现了io请求处理的可定制化。
95.在本实施例中,以分布式存储系统包括3个存储节点10、以访问图片数据为例,进行举例说明,请参照图8,图8为本发明实施例提供的io请求推荐分发和预测的示例图。其过程主要包括以下4个处理流程:
96.(1)注册流程:应用程序初始化分布式存储系统,向分布式存储系统注册图片写入时延期望(即预期时延)wu。
97.(2)预测流程:预设周期设置为5s,对于任一存储节点而言,每间隔5s采用一次,统计该预设周期内,该存储节点接收的io请求的接收请求数和已处理完成的io请求的完成请求数,计算平均接收请求数λ和平均完成请求数μ,若ρ=λ/μ《1,则平均处理时长wc=1/(μ(1-ρ))*5s;否则,平均处理时长wc为5s;3个存储节点每个预设周期均会计算出各自的平均处理时长w
c1
、w
c2
、w
c3

98.(3)同步流程:3个存储节点按照每个预设周期分别将各自的平均处理时长w
c1
、w
c2
、w
c3
同步至计算节点。
99.(4)图片写流程:用户需要通过计算节点上的应用程序写入图片时,计算节点将该图片数据封装成io写请求,插入本地的io调度队列,计算节点中的io调度分发模块预测该图片的写入时延,并通知应用程序,预测过程如下:
100.首先,io调度分发模块按照w
cn
《1.1wu规则,选择满足时延期望wu的存储节点集合;
101.其次,io调度分发模块按照硬件资源负载均衡原则,从满足期望的存储节点集合中,选择目标存储节点;
102.第三,io调度分发模块向目标存储节点发送io写请求,以请求写入图片。
103.最后,目标存储节点将图片写入完成后,并向应用程序返回图片的唯一标识fid。具体写入方式可以是:将io写请求加入至本地的io执行队列,为了提高io写请求的处理效率,目标存储就节点本地有io执行线程池,io执行线程池采用先来先服务fcfs(first-come-first-served)服务协议,处理io执行队列中的io写请求。
104.(5)图片读流程:
105.首先,用户通过应用程序指示需要读取的图片fid;
106.其次,io调度分发模块从fid中解析目标存储节点,生成io读请求并发送至目标存储节点;
107.最后,目标存储节点基于接收的io读请求返回需要读取图片的数据。
108.为了执行上述实施例及各个可能的实施方式中的相应步骤,下面给出一种io请求预测装置100的实现方式。请参照图9,图9示出了本发明实施例提供的io请求预测装置100的方框示意图。需要说明的是,本实施例所提供的io请求预测装置100,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及指出。
109.io请求预测装置100包括获取模块110、计算模块120、预测模块130及发送模块140。
110.获取模块110,用于获取预设周期内接收的io请求的接收请求数和已处理完成的io请求的完成请求数。
111.进一步地,获取模块110还用于:获取每一存储节点预测的平均处理时长。
112.计算模块120,用于根据接收请求数和完成请求数,分别计算预设单位时长内的平均接收请求数和平均完成请求数。
113.预测模块130,用于根据预设周期、平均接收请求数及平均完成请求数,预测存储节点处理下一个io请求的平均处理时长。
114.进一步地,预测模块130具体用于:若平均接收请求数小于平均完成请求数,则根据预设周期、平均接收请求数及平均完成请求数,预测平均处理时长;若平均接收请求数大于或者等于平均完成请求数,则将预设周期作为平均处理时长。
115.进一步地,预测模块130在若平均接收请求数小于平均完成请求数,则具体用于根据预设周期、平均接收请求数及平均完成请求数,预测平均处理时长时具体用于:根据平均接收请求数和平均完成请求数,计算请求处理强度;根据预设周期、平均完成请求数,及请求处理强度,预测平均处理时长。
116.进一步地,预测模块130在具体用于:根据平均接收请求数和平均完成请求数,计算请求处理强度;根据预设周期、平均完成请求数,及请求处理强度,预测平均处理时长时,平均处理时长、预设周期、请求处理强度及平均完成请求数满足如下条件:
117.wc=t*(1/(μ(1-ρ))),其中,wc表示平均处理时长,ρ表示请求处理强度,μ表示平均完成请求数,t表示预设周期。
118.进一步地,预测模块130还用于:将接收的io请求放入预设创建的执行队列;根据平均接收请求数和平均完成请求数,计算请求处理强度;根据请求处理强度,预测执行队列的平均长度。
119.进一步地,预测模块130在用于根据请求处理强度,预测执行队列的平均长度时,请求处理强度及执行队列的平均长度满足如下条件:l=ρ/(1-ρ),其中,l表示执行队列的
平均长度,ρ表示请求处理强度。
120.发送模块140,用于按照预设周期,将每一存储节点的平均处理时长发送至所述计算节点,以指示计算节点根据目标请求的预期时延及每一存储节点的所述平均处理时长,从多个存储节点中确定用于处理目标请求的目标存储节点。
121.本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述的io请求预测方法。
122.综上所述,本发明实施例提供了一种io请求预测方法、装置、存储节点及可读存储介质,所述方法包括:获取预设周期内接收的io请求的接收请求数和已处理完成的io请求的完成请求数;根据接收请求数和完成请求数,分别计算预设单位时长内的平均接收请求数和平均完成请求数;根据预设周期、平均接收请求数及平均完成请求数,预测存储节点处理下一个io请求的平均处理时长。与现有技术相比,本发明实施例通过预测存储节点处理下一个io请求的平均处理时长,以便进一步基于预测的平均处理时长对io请求进行合理分发处理,最终得到理想的分布式存储系统的整体性能。
123.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
再多了解一些

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

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

相关文献