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

一种任务分配方法、装置、设备及介质与流程

2023-01-15 08:48:44 来源:中国专利 TAG:


1.本技术涉及分布式存储领域,特别是涉及一种任务分配方法、装置、设备及介质。


背景技术:

2.对于客户来说,块存储的使用可以像使用物理硬盘一样格式化并建立任意文件系统,所以块存储适用于大部分通用业务场景下的数据存储,并得到了越来越广泛的应用。
3.在块存储场景中,卷承担了主要的功能实现和业务输出。虽然分布式存储系统采用了部分去中心化思维设计方式,但卷的管理类操作的任务仍需要在管理节点进行,大量的卷管理类操作的任务集中在管理节点堆积执行,可能造成管理节点系统资源不足,影响分布式存储集群整体稳定性。
4.鉴于上述问题,如何避免分布式存储系统中对卷的操作任务堆积于一个节点,以提升分布式存储集群的稳定性,是该领域技术人员亟待解决的问题。


技术实现要素:

5.本技术的目的是提供一种任务分配方法、装置、设备及介质,实现分布式存储系统中对卷的操作任务的分配,以提升分布式存储集群的稳定性。
6.为解决上述技术问题,本技术提供一种任务分配方法,包括:
7.在分布式存储集群中创建任务记录对象,以记录表征卷操作请求的任务的信息;
8.创建各节点对应的任务管理服务;
9.根据所述任务记录对象在各所述节点中选取任务分配节点;
10.根据所述任务记录对象和所述任务分配节点判断是否接收到所述任务;
11.若是,通过所述任务分配节点分配所述任务至目标节点,以用于所述目标节点通过对应的所述任务管理服务对所述任务进行处理。
12.优选地,在所述创建各节点对应的任务管理服务之后,在所述根据所述任务记录对象在各所述节点中选取任务分配节点之前,还包括:
13.通过各所述任务管理服务向所述任务记录对象注册对应的各所述节点的节点id。
14.优选地,所述根据所述任务记录对象在各所述节点中选取任务分配节点包括:
15.基于所述任务记录对象创建分布式锁;
16.接收各所述节点通过对应的所述任务管理服务对所述分布式锁的申请;
17.分别判断各所述节点是否申请到所述分布式锁;
18.若是,则申请到所述分布式锁的所述节点为所述任务分配节点。
19.优选地,所述根据所述任务记录对象和所述任务分配节点判断是否接收到所述任务包括:
20.通过所述任务分配节点定时读取所述任务记录对象中的所述任务;
21.判断读取到的所述任务是否与任务列表中现有的所述任务相同;
22.若否,则确认接收到所述任务,获取所述任务的任务信息;其中,所述任务信息包
括任务类型、源卷信息、目的卷信息和执行者id;
23.设置所述任务的任务id并添加至所述任务信息中;
24.将所述任务信息写入所述任务记录对象中,进入所述通过所述任务分配节点分配所述任务至目标节点的步骤。
25.优选地,所述通过所述任务分配节点分配所述任务至目标节点包括:
26.通过一致性哈希算法计算所述任务的所述任务id,以将所述任务分配至所述目标节点;
27.将所述目标节点的所述节点id写入所述任务的所述执行者id的字段;
28.通过广播通知各所述节点刷新对应的所述任务列表。
29.优选地,所述目标节点通过对应的所述任务管理服务对所述任务进行处理的具体过程包括:
30.根据所述广播刷新所述任务列表;
31.读取所述任务列表中各所述任务的所述执行者id;
32.判断所述执行者id是否与所述节点id一致;
33.若是,则根据对应的所述任务信息执行所述任务;
34.通过回调更新任务执行进度至所述任务的进度字段中,并在所述任务执行完成后删除对应的所述任务信息。
35.优选地,还包括:
36.接收所述目标节点发送的更新所述任务列表的提示信息,以用于通过所述任务分配节点更新所述任务列表。
37.为解决上述技术问题,本技术还提供一种任务分配装置,包括:
38.第一创建模块,用于在分布式存储集群中创建任务记录对象,以记录表征卷操作请求的任务的信息;
39.第二创建模块,用于创建各节点对应的任务管理服务;
40.选取模块,用于根据所述任务记录对象在各所述节点中选取任务分配节点;
41.判断模块,用于根据所述任务记录对象和所述任务分配节点判断是否接收到所述任务;若是,触发分配模块;
42.所述分配模块,用于通过所述任务分配节点分配所述任务至目标节点,以用于所述目标节点通过对应的所述任务管理服务对所述任务进行处理。
43.为解决上述技术问题,本技术还提供一种任务分配设备,包括:
44.存储器,用于存储计算机程序;
45.处理器,用于执行所述计算机程序时实现上述的任务分配方法的步骤。
46.为解决上述技术问题,本技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的任务分配方法的步骤。
47.本技术所提供的任务分配方法,通过在分布式存储集群中创建任务记录对象,以记录表征卷操作请求的任务的信息;创建各节点对应的任务管理服务;根据任务记录对象在各节点中选取任务分配节点;根据任务记录对象和任务分配节点判断是否接收到任务;若是,通过任务分配节点分配任务至目标节点,以用于目标节点通过对应的任务管理服务
对任务进行处理。由此可知,上述方案通过在分布式存储集群中创建任务记录对象记录任务,并在全部节点中选取任务分配节点用于任务分配;当接收到任务时,由任务分配节点将任务分配至存储集群中其他节点进行处理,避免了卷管理类操作集中在管理节点堆积执行,节省了节点资源,提高了分布式存储集群的整体稳定性。
48.此外,本技术实施例还提供了一种任务分配装置、设备及介质,效果同上。
附图说明
49.为了更清楚地说明本技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
50.图1为本技术实施例提供的一种任务分配方法的流程图;
51.图2为本技术实施例提供的一种任务分配装置的示意图;
52.图3为本技术实施例提供的一种任务分配设备的示意图。
具体实施方式
53.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本技术保护范围。
54.本技术的核心是提供一种任务分配方法、装置、设备及介质。
55.为了使本技术领域的人员更好地理解本技术方案,下面结合附图和具体实施方式对本技术作进一步的详细说明。
56.图1为本技术实施例提供的一种任务分配方法的流程图。如图1所示,方法包括:
57.s10:在分布式存储集群中创建任务记录对象,以记录表征卷操作请求的任务的信息。
58.在具体实施中,首先在分布式存储集群中创建任务记录对象(task_obj)。可以理解的是,该对象用于记录任务的各项信息,包括但不限于任务类型、操作目标(源卷、目的卷)、执行者id等信息。每当分布式存储集群接收到卷操作请求,都应向任务记录对象中添加该任务的相关信息。
59.s11:创建各节点对应的任务管理服务。
60.进一步地,创建各节点对应的任务管理服务。可以理解的是,在分布式存储集群中存在多个节点,各节点均可应用于不同任务场景下的数据处理。而在具体实施中,各节点对于任务的处理主要由各自的任务管理服务实现。
61.s12:根据任务记录对象在各节点中选取任务分配节点。
62.为了避免分布式存储系统的大量的卷管理类操作集中在管理节点堆积执行,在本实施例中根据任务记录对象在各节点中选取任务分配节点(leader)。
63.需要注意的是,任务分配节点是分布式存储集群全部节点中的一个节点,其主要作用是将分布式存储集群接收到的卷操作请求的任务分配至集群中其余节点中处理。本实施例中对于任务分配节点的具体选取方式不做限制,可直接在集群中各节点中选取,还可
通过票选或接收选取请求的方式选取,根据具体的实施情况而定。
64.s13:根据任务记录对象和任务分配节点判断是否接收到任务;若是,进入步骤s14。
65.s14:通过任务分配节点分配任务至目标节点,以用于目标节点通过对应的任务管理服务对任务进行处理。
66.进一步地,根据任务记录对象和任务分配节点判断是否接收到任务。可以理解的是,由于任务记录对象用于记录任务信息,任务分配节点用于分配任务,则可通过根据任务记录对象和任务分配节点共同对是否接收到任务进行判断。本实施例中对于判断是否接收到任务的具体过程不做限制,根据具体的实施情况而定。
67.当确认接收到任务后,通过任务分配节点分配任务至目标节点,以用于目标节点通过对应的任务管理服务对任务进行处理。需要注意的是,本实施例对于任务分配节点对任务的具体分配方式不做限制,可直接分配至指定的目标节点,还可根据任务的相关信息进行分配,还可根据其余节点的当前状态进行分配,根据具体的实施情况而定。目标节点在分配到任务后,通过对应的任务管理服务对任务进行处理。
68.本实施例中,通过在分布式存储集群中创建任务记录对象,以记录表征卷操作请求的任务的信息;创建各节点对应的任务管理服务;根据任务记录对象在各节点中选取任务分配节点;根据任务记录对象和任务分配节点判断是否接收到任务;若是,通过任务分配节点分配任务至目标节点,以用于目标节点通过对应的任务管理服务对任务进行处理。由此可知,上述方案通过在分布式存储集群中创建任务记录对象记录任务,并在全部节点中选取任务分配节点用于任务分配;当接收到任务时,由任务分配节点将任务分配至存储集群中其他节点进行处理,避免了卷管理类操作集中在管理节点堆积执行,节省了节点资源,提高了分布式存储集群的整体稳定性。
69.在上述实施例的基础上,作为一种优选的实施例,在创建各节点对应的任务管理服务之后,在根据任务记录对象在各节点中选取任务分配节点之前,还包括:
70.通过各任务管理服务向任务记录对象注册对应的各节点的节点id。
71.可以理解的是,为了使任务分配节点能够将任务分配至其余节点,则需要使任务分配节点获知各其余节点的信息。
72.具体地,在创建各节点对应的任务管理服务之后,通过各节点的任务管理服务向任务记录对象task_obj注册对应的各节点的节点id,通过存储用于处理任务的各节点的信息,便于后续的任务分配。
73.在上述实施例的基础上,作为一种优选的实施例,根据任务记录对象在各节点中选取任务分配节点包括:
74.基于任务记录对象创建分布式锁;
75.接收各节点通过对应的任务管理服务对分布式锁的申请;
76.分别判断各节点是否申请到分布式锁;
77.若是,则申请到分布式锁的节点为任务分配节点。
78.为了实现任务分配节点的选取,作为一种优选的实施例,本实施例中,首先在任务记录对象task_obj上创建一个分布式锁;进一步所有节点通过各自的任务管理服务去申请该锁;任务记录对象接收各节点对分布式锁的申请,并分别判断各节点是否申请到分布式
锁;申请到并持有该分布式锁的节点即为任务分配节点leader。
79.需要注意的是,本实施例中对于各节点申请到分布式锁的判定方式不做限制,可根据接收到各申请的时间顺序确定,还可通过票选的方式确定,根据具体的实施情况而定。
80.本实施例中,通过基于任务记录对象创建分布式锁;接收各节点通过对应的任务管理服务对分布式锁的申请;分别判断各节点是否申请到分布式锁;若是,则申请到分布式锁的节点为任务分配节点,实现了任务分配节点的选取。
81.在上述实施例的基础上,作为一种优选的实施例,根据任务记录对象和任务分配节点判断是否接收到任务包括:
82.通过任务分配节点定时读取任务记录对象中的任务;
83.判断读取到的任务是否与任务列表中现有的任务相同;
84.若否,则确认接收到任务,获取任务的任务信息;其中,任务信息包括任务类型、源卷信息、目的卷信息和执行者id;
85.设置任务的任务id并添加至任务信息中;
86.将任务信息写入任务记录对象中,进入通过任务分配节点分配任务至目标节点的步骤。
87.在具体实施中,任务分配节点leader定时读取任务记录对象中的任务,并判断读取到的任务是否与任务列表中现有的任务相同。可以理解的是,本实施例中的任务列表是用于存储分布式存储集群中现有的任务信息的列表;比较该列表中的任务与任务记录对象中的任务,当读取到的任务记录对象的任务与任务列表中的现有任务不同时,即出现了新的任务。
88.进一步地,当确认接受到了任务,获取任务的任务信息。本实施例中任务信息具体包括任务类型、源卷信息、目的卷信息和执行者id。同时设置任务的任务id并添加至任务信息中,并将全部任务信息以结构体的形式写入任务记录对象中,最后通过任务分配节点分配任务至目标节点。需要注意的是,在具体实施中任务id可具体设置为一个随机分配的通用唯一识别码(universally unique identifier,uuid),以对任务进行标识。
89.此外,本实施例中对于任务分配节点定时读取任务记录对象中的任务的定时时间不做限制,根据具体的实施情况而定。
90.本实施例中,通过任务分配节点定时读取任务记录对象中的任务;判断读取到的任务是否与任务列表中现有的任务相同;若否,则确认接收到任务,获取任务的任务信息;其中,任务信息包括任务类型、源卷信息、目的卷信息和执行者id;设置任务的任务id并添加至任务信息中;将任务信息写入任务记录对象中,进入通过任务分配节点分配任务至目标节点的步骤,实现了是否接收到任务的判断,同时对任务信息进行设置,以便于后续的任务处理。
91.在上述实施例的基础上,作为一种优选的实施例,通过任务分配节点分配任务至目标节点包括:
92.通过一致性哈希算法计算任务的任务id,以将任务分配至目标节点;
93.将目标节点的节点id写入任务的执行者id的字段;
94.通过广播通知各节点刷新对应的任务列表。
95.为实现任务分配节点对目标节点的任务分配,作为一种优选的实施例,在本实施
例中通过一致性哈希算法计算任务的任务id,以将任务分配至目标节点。
96.一致性哈希(consistent hashing)算法是一种特殊的哈希算法,目的是解决分布式缓存的问题。例如在移除或者添加一个服务器时,能够尽可能小地改变已存在的服务请求与处理请求服务器之间的映射关系。因此通过一致性哈希算法计算任务的任务id实现的任务分配能够实现任务分配的负载均衡,避免将多个任务分配至同一个节点,从而提高整个分布式存储系统的任务处理效率。
97.进一步将目标节点的节点id写入该任务的任务信息中执行者id的字段,并通过广播通知各节点刷新对应的任务列表,从而使得其他节点能够通过任务列表得知,目前该任务是由目标节点在处理。
98.本实施例中,通过一致性哈希算法计算任务的任务id,以将任务分配至目标节点;将目标节点的节点id写入任务的执行者id的字段;通过广播通知各节点刷新对应的任务列表,实现了任务的分配。
99.在上述实施例的基础上,作为一种优选的实施例,目标节点通过对应的任务管理服务对任务进行处理的具体过程包括:
100.根据广播刷新任务列表;
101.读取任务列表中各任务的执行者id;
102.判断执行者id是否与节点id一致;
103.若是,则根据对应的任务信息执行任务;
104.通过回调更新任务执行进度至任务的进度字段中,并在任务执行完成后删除对应的任务信息。
105.作为一种优选的实施例,当目标节点接收到广播后,根据广播刷新自身任务列表。读取列表中每个任务的执行者id,并与自身节点id进行比对。若执行者id与自身节点id一致,则根据任务的任务信息执行对应任务。
106.为实现任务执行进度的直观展示,在具体实施中,通过回调的形式更新任务执行进度至任务的进度字段中,能够通过目标节点的任务列表查看任务的执行情况。此外,当任务执行完毕之后,删除对应的任务信息,以释放任务列表的存储资源。
107.本实施例中,根据广播刷新任务列表;读取任务列表中各任务的执行者id;判断执行者id是否与节点id一致;若是,则根据对应的任务信息执行任务;通过回调更新任务执行进度至任务的进度字段中,并在任务执行完成后删除对应的任务信息。实现了任务的处理,同时实现了任务执行进度的展示。
108.在上述实施例的基础上,作为一种优选的实施例,还包括:
109.接收目标节点发送的更新任务列表的提示信息,以用于通过任务分配节点更新任务列表。
110.最后当任务处理完成之后,为了实现任务分配节点对于任务处理状态的更新,作为一种优选的实施例,接收目标节点发送的更新任务列表的提示信息,任务分配节点进一步根据提示信息更新任务列表,从而实现了执行完成后任务信息的清除,释放了存储空间。
111.在上述实施例中,对于任务分配方法进行了详细描述,本技术还提供任务分配装置对应的实施例。
112.图2为本技术实施例提供的一种任务分配装置的示意图。如图2所示,任务分配装
置包括:
113.第一创建模块10,用于在分布式存储集群中创建任务记录对象,以记录表征卷操作请求的任务的信息。
114.第二创建模块11,用于创建各节点对应的任务管理服务。
115.选取模块12,用于根据任务记录对象在各节点中选取任务分配节点。
116.判断模块13,用于根据任务记录对象和任务分配节点判断是否接收到任务;若是,触发分配模块14;
117.分配模块14,用于通过任务分配节点分配任务至目标节点,以用于目标节点通过对应的任务管理服务对任务进行处理。
118.本实施例中,任务分配装置包括第一创建模块、第二创建模块、选取模块、判断模块和分配模块。通过在分布式存储集群中创建任务记录对象,以记录表征卷操作请求的任务的信息;创建各节点对应的任务管理服务;根据任务记录对象在各节点中选取任务分配节点;根据任务记录对象和任务分配节点判断是否接收到任务;若是,通过任务分配节点分配任务至目标节点,以用于目标节点通过对应的任务管理服务对任务进行处理。由此可知,上述方案通过在分布式存储集群中创建任务记录对象记录任务,并在全部节点中选取任务分配节点用于任务分配;当接收到任务时,由任务分配节点将任务分配至存储集群中其他节点进行处理,避免了卷管理类操作集中在管理节点堆积执行,节省了节点资源,提高了分布式存储集群的整体稳定性。
119.图3为本技术实施例提供的一种任务分配设备的示意图。如图3所示,任务分配设备包括:
120.存储器20,用于存储计算机程序。
121.处理器21,用于执行计算机程序时实现如上述实施例中所提到的任务分配方法的步骤。
122.本实施例提供的任务分配设备可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
123.其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用数字信号处理器(digital signal processor,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(central processing unit,cpu);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有图形处理器(graphics processing unit,gpu),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括人工智能(artificial intelligence,ai)处理器,该ai处理器用于处理有关机器学习的计算操作。
124.存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的任务分
配方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括windows、unix、linux等。数据203可以包括但不限于任务分配方法涉及到的数据。
125.在一些实施例中,任务分配设备还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
126.本领域技术人员可以理解,图3中示出的结构并不构成对任务分配设备的限定,可以包括比图示更多或更少的组件。
127.本实施例中,任务分配设备包括存储器和处理器。存储器用于存储计算机程序;处理器用于执行计算机程序时实现如上述实施例中所提到的任务分配方法的步骤。通过在分布式存储集群中创建任务记录对象,以记录表征卷操作请求的任务的信息;创建各节点对应的任务管理服务;根据任务记录对象在各节点中选取任务分配节点;根据任务记录对象和任务分配节点判断是否接收到任务;若是,通过任务分配节点分配任务至目标节点,以用于目标节点通过对应的任务管理服务对任务进行处理。由此可知,上述方案通过在分布式存储集群中创建任务记录对象记录任务,并在全部节点中选取任务分配节点用于任务分配;当接收到任务时,由任务分配节点将任务分配至存储集群中其他节点进行处理,避免了卷管理类操作集中在管理节点堆积执行,节省了节点资源,提高了分布式存储集群的整体稳定性。
128.最后,本技术还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。
129.可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
130.本实施例中,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。通过在分布式存储集群中创建任务记录对象,以记录表征卷操作请求的任务的信息;创建各节点对应的任务管理服务;根据任务记录对象在各节点中选取任务分配节点;根据任务记录对象和任务分配节点判断是否接收到任务;若是,通过任务分配节点分配任务至目标节点,以用于目标节点通过对应的任务管理服务对任务进行处理。由此可知,上述方案通过在分布式存储集群中创建任务记录对象记录任务,并在全部节点中选取任务分配节点用于任务分配;当接收到任务时,由任务分配节点将任务分配至存储集群中其他节点进行处理,避免了卷管理类操作集中在管理节点堆积执行,节省了节点资源,提高了分布式存储集群的整体稳定性。
131.以上对本技术所提供的一种任务分配方法、装置、设备及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与
实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
132.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献