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

一种线程负载均衡的方法、装置、设备和介质与流程

2023-01-14 14:36:36 来源:中国专利 TAG:


1.本技术涉及分布式存储技术领域,特别是涉及一种线程负载均衡的方法、装置、设备和计算机可读存储介质。


背景技术:

2.分布式存储系统已经成为存储系统的主流趋势,分布式存储系统由分布式存储系统软件和硬件构成。在分布式存储系统软件中,经常会有多个执行相同任务的线程并行工作,任务分配者根据一定的规律或算法将任务分配给各个工作线程,传统的分配方法有:随机种子法,文件描述符取模法等。
3.利用随机种子法或文件描述符取模法对工作线程进行负载均衡时,由于具有较强的随机性,使得每个工作线程分配到的任务数量往往不同。尤其在高并发场景下,会出现有的线程特别繁忙,而有的线程则比较空闲,导致工作线程的不均衡调用。
4.图1是以文件描述符取模法为例的工作线程调用的示意图,假设存储系统软件会将每个文件按分片数切成6个数据分片,再利用每个数据分片的取模工作线程数得到其与工作线程的映射关系,存储系统软件会根据该映射关系,将数据分片的处理任务投递到相应的工作线程中,图1中是以三个工作线程为例,分别用t1、t2和t3表示这3个工作线程。从图1中可以看出工作线程t1负责的数据分片有6个,工作线程t2负责的数据分片有4个,工作线程t3负责的数据分片有2个。由于文件描述符取模法的随机性,会导致每个工作线程分配到的任务数量不同,造成工作线程的不均衡调用。
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.可选地,所述装置包括个数统计单元和分配单元;
37.所述个数统计单元,用于在系统启动后,统计所述至少一个磁盘的逻辑索引个数以及可调用的工作线程的线程个数;
38.所述分配单元,用于基于所述逻辑索引个数和所述线程个数,为各所述工作线程分配相应的逻辑索引。
39.可选地,还包括次数统计单元、计算单元和调整单元;
40.所述次数统计单元,用于统计周期时间内各工作线程被调用的次数;
41.所述计算单元,用于计算所述周期时间内所有工作线程被调用次数的平均数;
42.所述调整单元,用于若存在次数与所述平均数的偏差值大于预设阈值的工作线程,则调整所述至少一个磁盘的逻辑索引和可调用的工作线程的对应关系。
43.可选地,所述调整单元用于将次数与所述平均数的偏差值大于预设阈值的所有工作线程划分为第一工作线程组;将次数与所述平均数的偏差值小于或等于预设阈值的所有工作线程划分为第二工作线程组;依据设定的调整规则,将所述第一工作线程组对应个数的逻辑索引分配至所述第二工作线程组。
44.可选地,所述各数据分片由获取的文件切分得到,还包括设置单元和切分单元;
45.所述设置单元,用于基于所述至少一个磁盘的个数设置文件切分个数;其中,所述文件切分个数小于或等于所述至少一个磁盘的个数;
46.所述切分单元,用于按照所述文件切分个数,将所述获取的文件切分为多个数据分片;
47.将所述各数据分片存储至所述至少一个磁盘。
48.可选地,还包括调整单元;
49.所述调整单元,用于当检测到磁盘异常或工作线程异常的情况下,基于当前可用的磁盘的逻辑索引和可调用的工作线程,调整所述至少一个磁盘的逻辑索引与工作线程的对应关系。
50.本技术实施例还提供了一种线程负载均衡的设备,包括:
51.存储器,用于存储计算机程序;
52.处理器,用于执行所述计算机程序以实现如上述任意一项所述线程负载均衡的方法的步骤。
53.本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述线程负载均衡的方法的步骤。
54.由上述技术方案可以看出,接收到文件处理任务,查询文件处理任务关联的各数据分片对应的目标逻辑索引。目标逻辑索引用于指示数据分片所在的磁盘,每个磁盘有其唯一对应的逻辑索引,一个文件的多个数据分片往往会分散在各磁盘上存储,因此在该技术方案中,可以建立至少一个磁盘的逻辑索引与工作线程的对应关系。在查询到文件处理任务关联的各数据分片对应的目标逻辑索引之后,依据该对应关系可以确定出各目标逻辑索引对应的工作线程,调用目标逻辑索引对应的目标工作线程对数据分片进行处理即可。当需要对文件执行处理任务时,由于文件对应的数据分片分散在不同的磁盘上,每个磁盘都有各自对应的工作线程,使得每个工作线程处理的数据分片个数较为均衡,实现了工作线程的均衡调用。
附图说明
55.为了更清楚地说明本技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
56.图1为传统方式中以文件描述符取模法为例的工作线程调用的示意图;
57.图2为本技术实施例提供的一种线程负载均衡的应用场景示意图;
58.图3为本技术实施例提供的一种线程负载均衡的方法的流程图;
59.图4为本技术实施例提供的一种线程负载均衡的装置的结构示意图;
60.图5为本技术实施例提供的一种线程负载均衡的设备的结构示意图。
具体实施方式
61.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本技术保护范围。
62.为了使本技术领域的人员更好地理解本技术方案,下面结合附图和具体实施方式对本技术作进一步的详细说明。
63.传统技术中采用随机种子法或者文件描述符取模法等方式向工作线程分配任务,由于随机种子法和文件描述符取模法的随机性较强,会导致每个工作线程分配到的任务数量存在较大差异,导致工作线程的不均衡调用。
64.因此,本技术实施例提供了一种线程负载均衡的方法、装置、设备和计算机可读存储介质,接收到文件处理任务,查询文件处理任务关联的各数据分片对应的目标逻辑索引。依据至少一个磁盘的逻辑索引与工作线程的对应关系,调用目标逻辑索引对应的目标工作线程对数据分片进行处理。
65.图2为本技术实施例提供的一种线程负载均衡的应用场景示意图,图2中是以3个文件为例,分别为文件1、文件2和文件3。假设文件切分个数为4,则可以将每个文件切分为4个数据分片(shard)。每个文件的数据分片会分散存储在不同的磁盘上。磁盘的逻辑索引有6个,分别为s1至s6。工作线程有3个,分别为t1、t2和t3。按照轮询的方式,可以将逻辑索引s1和s4分配给工作线程t1,将逻辑索引s2和s5分配给工作线程t2,将逻辑索引s3和s6分配给工作线程t3。假设,文件处理任务为对文件1执行读操作,文件1的4个数据分片分别存储在磁盘s1、磁盘s2、磁盘s3和磁盘s4上,按照至少一个磁盘的逻辑索引与工作线程的对应关系,可以调用工作线程t1对数据分片1和数据分片4进行读操作,调用工作线程t2对数据分片2进行读操作,调用工作线程t3对数据分片3进行读操作。由于一个文件对应的数据分片分散在不同的磁盘存储,通过对各磁盘设置其对应的工作线程,当需要执行文件处理任务时,可以实现对各工作线程的均衡调用。
66.接下来,详细介绍本技术实施例所提供的一种线程负载均衡的方法。图3为本技术实施例提供的一种线程负载均衡的方法的流程图,该方法包括:
67.s301:接收文件处理任务。
68.文件处理任务可以包括对一个文件执行处理,也可以包括对多个文件执行处理,每个文件的处理过程类似,在本技术实施例中均以一个文件的处理为例展开介绍。
69.s302:查询文件处理任务关联的各数据分片对应的目标逻辑索引。
70.在实际应用中,为了便于系统识别不同的文件,可以针对每个文件设置文件标识信息,在文件处理任务中可以携带文件标识信息。同一个文件包含的数据分片对应相同的
文件标识信息。
71.基于文件处理任务中携带的文件标识信息,可以确定出需要对哪些文件进行处理。一个文件包含的多个数据分片往往分散在不同的磁盘存储,因此,在获取到文件处理任务的情况下,可以查询文件处理任务关联的各数据分片对应的目标逻辑索引。
72.每个磁盘有其对应的一个逻辑索引,为了便于区分,可以将文件处理任务关联的各数据分片所在磁盘的逻辑索引称作目标逻辑索引。
73.在本技术实施例中,对于逻辑索引的形式不做限定,例如,可以采用不同的数字作为不同磁盘的逻辑索引。
74.s303:依据至少一个磁盘的逻辑索引与工作线程的对应关系,调用目标逻辑索引对应的目标工作线程对数据分片进行处理。
75.一个文件包含的多个数据分片往往分散在不同的磁盘存储,在本技术实施例中,为了实现对工作线程的均衡调用,可以在系统启动后,建立至少一个磁盘的逻辑索引与工作线程的对应关系。
76.接收到文件处理任务,依据至少一个磁盘的逻辑索引与工作线程的对应关系,可以确定出目标逻辑索引所对应的目标工作线程,从而调用目标逻辑索引对应的目标工作线程对数据分片进行处理。
77.由上述技术方案可以看出,接收到文件处理任务,查询文件处理任务关联的各数据分片对应的目标逻辑索引。目标逻辑索引用于指示数据分片所在的磁盘,每个磁盘有其唯一对应的逻辑索引,一个文件的多个数据分片往往会分散在各磁盘上存储,因此在该技术方案中,可以建立至少一个各磁盘的逻辑索引与工作线程的对应关系。在查询到文件处理任务关联的各数据分片对应的目标逻辑索引之后,依据该对应关系可以确定出各目标逻辑索引对应的工作线程,调用目标逻辑索引对应的目标工作线程对数据分片进行处理即可。当需要对文件执行处理任务时,由于文件对应的数据分片分散在不同的磁盘上,每个磁盘都有各自对应的工作线程,使得每个工作线程处理的数据分片个数较为均衡,实现了工作线程的均衡调用。
78.在本技术实施例中,对于至少一个磁盘的逻辑索引与工作线程的对应关系的建立方式可以有多种。一种方式,可以在系统启动后,按照设定的轮询方式,对可调用的各个工作线程依次分配一个磁盘的逻辑索引。
79.举例说明,假设系统启动后可调用的工作线程有3个,分别为t1、t2和t3,磁盘的逻辑索引有6个,分别用数字1至6表示。按照轮询的方式,可以将逻辑索引1分配给工作线程t1,将逻辑索引2分配给工作线程t2,将逻辑索引3分配给工作线程t3,逻辑索引4分配给工作线程t1,将逻辑索引5分配给工作线程t2,将逻辑索引6分配给工作线程t3。
80.另一种方式,可以在系统启动后,统计至少一个磁盘的逻辑索引个数以及可调用的工作线程的线程个数;基于逻辑索引个数和线程个数,为各工作线程分配相应的逻辑索引。
81.举例说明,假设系统启动后可调用的工作线程有3个,分别为t1、t2和t3,磁盘的逻辑索引有6个,分别用数字1至6表示。逻辑索引个数为6,线程个数为3,此时可以为每个工作线程分配两个逻辑索引,例如,可以将逻辑索引1和逻辑索引2分配给工作线程t1,将逻辑索引3和逻辑索引4分配给工作线程t2,将逻辑索引5和逻辑索引6分配给工作线程t3。
82.通过轮询的方式或者基于逻辑索引个数和线程个数,为各工作线程分配相应的逻辑索引,可以保证各工作线程所分配的逻辑索引的个数相对均衡,从而保证后续基于各数据分片对应的逻辑索引调用工作线程时,实现了工作线程的均衡调用。
83.在本技术实施例中,可以结合工作线程的实际调用情况,对工作线程与逻辑索引的对应关系进行动态的调整,从而进一步确保工作线程的均衡调用。
84.在实际应用中,可以统计周期时间内各工作线程被调用的次数;计算周期时间内所有工作线程被调用次数的平均数;若存在次数与平均数的偏差值大于预设阈值的工作线程,则调整至少一个磁盘的逻辑索引和可调用的工作线程的对应关系。
85.预设阈值的取值可以根据实际需求设定,在此不做限定。例如,可以将预设阈值设置为2。
86.若存在次数与平均数的偏差值大于预设阈值的工作线程,则说明该工作线程被频繁调用,此时可以将该工作线程对应的部分逻辑索引迁移至未被频繁调用的工作线程上。
87.在具体实现中,可以将次数与平均数的偏差值大于预设阈值的所有工作线程划分为第一工作线程组;将次数与平均数的偏差值小于或等于预设阈值的所有工作线程划分为第二工作线程组;依据设定的调整规则,将第一工作线程组对应个数的逻辑索引分配至第二工作线程组。
88.调整规则可以包括所需调整的逻辑索引的个数,例如,所需调整的逻辑索引的个数可以设置为一,即每次将第一工作线程组中的一个逻辑索引迁移至第二工作线程组上。
89.基于工作线程实际被调用的情况,动态调整工作线程与逻辑索引的对应关系,使得工作线程与逻辑索引的对应关系更加符合实际的调用需求,从而有效的保障后续工作线程的调用更加均衡。
90.在本技术实施例中,各数据分片可以由获取的文件切分得到,为了使得文件的数据分片可以均衡的分散至各磁盘,可以基于至少一个磁盘的个数设置文件切分个数;其中,文件切分个数小于或等于至少一个磁盘的个数;按照文件切分个数,将获取的文件切分为多个数据分片;将各数据分片存储至至少一个磁盘。
91.数据分片分散存储至各磁盘的方式可以参见现有技术,在此不做限定。
92.通过基于磁盘的个数设置文件切分个数,可以使得文件切分个数可以更加符合数据分片分散存储的需求,有效的避免了文件被拆分的数据分片个数过多,造成数据分片的处理效率低下。
93.考虑到实际应用中,可能会存在磁盘异常或者工作线程异常的情况,当磁盘出现异常时,系统会将异常磁盘上的数据分片迁移至其它可用的磁盘上,如果仍按照原本的至少一个磁盘的逻辑索引与工作线程的对应关系,调用工作线程则会出现工作线程负责的数据分片任务不均衡的情况发生。当工作线程异常时,异常的工作线程无法执行文件处理任务。因此在本技术实施例中,可以当检测到磁盘异常或工作线程异常的情况下,基于当前可用的磁盘的逻辑索引和可调用的工作线程,调整至少一个磁盘的逻辑索引与工作线程的对应关系。
94.通过检测磁盘和工作线程的运行情况,可以在磁盘或工作线程出现异常时,及时调整至少一个磁盘的逻辑索引与工作线程的对应关系,从而保证工作线程的均衡调用以及文件处理任务的顺利执行。
95.图4为本技术实施例提供的一种线程负载均衡的装置的结构示意图,包括接收单元41、查询单元42和调用单元42;
96.接收单元41,用于接收文件处理任务;
97.查询单元41,用于查询文件处理任务关联的各数据分片对应的目标逻辑索引;
98.调用单元42,用于依据至少一个磁盘的逻辑索引与工作线程的对应关系,调用目标逻辑索引对应的目标工作线程对数据分片进行处理。
99.可选地,装置包括分配单元;
100.分配单元,用于在系统启动后,按照设定的轮询方式,对可调用的各个工作线程依次分配至少一个磁盘的逻辑索引。
101.可选地,装置包括个数统计单元和分配单元;
102.个数统计单元,用于在系统启动后,统计至少一个磁盘的逻辑索引个数以及可调用的工作线程的线程个数;
103.分配单元,用于基于逻辑索引个数和线程个数,为各工作线程分配相应的逻辑索引。
104.可选地,还包括次数统计单元、计算单元和调整单元;
105.次数统计单元,用于统计周期时间内各工作线程被调用的次数;
106.计算单元,用于计算周期时间内所有工作线程被调用次数的平均数;
107.调整单元,用于若存在次数与平均数的偏差值大于预设阈值的工作线程,则调整至少一个磁盘的逻辑索引和可调用的工作线程的对应关系。
108.可选地,调整单元用于将次数与平均数的偏差值大于预设阈值的所有工作线程划分为第一工作线程组;将次数与平均数的偏差值小于或等于预设阈值的所有工作线程划分为第二工作线程组;依据设定的调整规则,将第一工作线程组对应个数的逻辑索引分配至第二工作线程组。
109.可选地,各数据分片由获取的文件切分得到,还包括设置单元和切分单元;
110.设置单元,用于基于至少一个磁盘的个数设置文件切分个数;其中,文件切分个数小于或等于至少一个磁盘的个数;
111.切分单元,用于按照文件切分个数,将获取的文件切分为多个数据分片;
112.将各数据分片存储至至少一个磁盘。
113.可选地,还包括调整单元;
114.调整单元,用于当检测到磁盘异常或工作线程异常的情况下,基于当前可用的磁盘的逻辑索引和可调用的工作线程,调整至少一个磁盘的逻辑索引与工作线程的对应关系。
115.图4所对应实施例中特征的说明可以参见图3所对应实施例的相关说明,这里不再一一赘述。
116.由上述技术方案可以看出,接收到文件处理任务,查询文件处理任务关联的各数据分片对应的目标逻辑索引。目标逻辑索引用于指示数据分片所在的磁盘,每个磁盘有其唯一对应的逻辑索引,一个文件的多个数据分片往往会分散在各磁盘上存储,因此在该技术方案中,可以建立至少一个磁盘的逻辑索引与工作线程的对应关系。在查询到文件处理任务关联的各数据分片对应的目标逻辑索引之后,依据该对应关系可以确定出各目标逻辑
索引对应的工作线程,调用目标逻辑索引对应的目标工作线程对数据分片进行处理即可。当需要对文件执行处理任务时,由于文件对应的数据分片分散在不同的磁盘上,每个磁盘都有各自对应的工作线程,使得每个工作线程处理的数据分片个数较为均衡,实现了工作线程的均衡调用。
117.图5为本技术实施例提供的一种线程负载均衡的设备50的结构示意图,包括:
118.存储器51,用于存储计算机程序;
119.处理器52,用于执行计算机程序以实现如上述任意一项线程负载均衡的方法的步骤。
120.图5所对应实施例中特征的说明可以参见图3所对应实施例的相关说明,这里不再一一赘述。
121.由上述技术方案可以看出,接收到文件处理任务,查询文件处理任务关联的各数据分片对应的目标逻辑索引。目标逻辑索引用于指示数据分片所在的磁盘,每个磁盘有其唯一对应的逻辑索引,一个文件的多个数据分片往往会分散在各磁盘上存储,因此在该技术方案中,可以建立至少一个磁盘的逻辑索引与工作线程的对应关系。在查询到文件处理任务关联的各数据分片对应的目标逻辑索引之后,依据该对应关系可以确定出各目标逻辑索引对应的工作线程,调用目标逻辑索引对应的目标工作线程对数据分片进行处理即可。当需要对文件执行处理任务时,由于文件对应的数据分片分散在不同的磁盘上,每个磁盘都有各自对应的工作线程,使得每个工作线程处理的数据分片个数较为均衡,实现了工作线程的均衡调用。
122.本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述任意一项线程负载均衡的方法的步骤。
123.以上对本技术实施例所提供的一种线程负载均衡的方法、装置、设备和计算机可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
124.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
125.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
再多了解一些

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

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

相关文献