CN111125139A - 一种多控制器的任务处理方法及相关装置 - Google Patents
一种多控制器的任务处理方法及相关装置 Download PDFInfo
- Publication number
- CN111125139A CN111125139A CN201911370275.3A CN201911370275A CN111125139A CN 111125139 A CN111125139 A CN 111125139A CN 201911370275 A CN201911370275 A CN 201911370275A CN 111125139 A CN111125139 A CN 111125139A
- Authority
- CN
- China
- Prior art keywords
- controller
- data synchronization
- task
- hash
- hash ring
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Multi Processors (AREA)
Abstract
本申请公开了一种多控制器的任务处理方法,包括:将所有控制器分布在哈希环中,得到多控制器哈希环;当第一控制器接收到数据同步任务时,第一控制器执行数据同步任务;当数据同步任务执行完成时,向数据同步任务的发送方发送应答消息;根据多控制器哈希环将数据同步任务发送至第二控制器,以便第二控制器执行数据同步任务;其中,第二控制器为多控制器哈希环中第一控制器之后的第一个控制器。通过以多控制器哈希环进行数据同步操作,实现一对一的数据同步,而不是以广播的形式,避免遗漏控制器,提高了数据同步的一致性。本申请还公开了一种多控制器的任务处理装置、服务器以及计算机可读存储介质,具有以上有益效果。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种多控制器的任务处理方法、任务处理装置、服务器以及计算机可读存储介质。
背景技术
随着互联网中的数据量不断增加,访问的人数不断增多,为了提高存储***的访问速度以及响应的速度,会采用不同的存储技术提高存储性能。其中,在存储***中常常使用多控制器***,以便采用多个控制器对请求进行处理,提高存储***的响应速度。
现有技术中,一般是通过广播的方式向多控制器的***进行数据同步操作。也就是采用一个节点对多个节点广播待同步数据,并接收不同控制器的反馈以便判断是否同步完成。但是,当只要一个控制器失效了,就会影响其他控制器的数据同步过程,影响数据同步操作的一致性,如果为了提高数据同步任务的一致性,则需要复杂的实现过程,不利于高效实现数据同步操作。还有一些情况,由于控制器失效或者数据传输不良,导致出现对控制器进行遗漏的情况,导致所有正常可用的控制器无法均被同步。
因此,如何提高数据同步的一致性,避免出现同步遗漏的问题是本领域技术人员关注的重点问题。
发明内容
本申请的目的是提供一种多控制器的任务处理方法、任务处理装置、服务器以及计算机可读存储介质,通过以多控制器哈希环进行数据同步操作,实现一对一的数据同步,而不是以广播的形式,避免遗漏控制器,提高了数据同步的一致性。
为解决上述技术问题,本申请提供一种多控制器的任务处理方法,包括:
将所有控制器分布在哈希环中,得到多控制器哈希环;
当第一控制器接收到数据同步任务时,所述第一控制器执行所述数据同步任务;
当所述数据同步任务执行完成时,向所述数据同步任务的发送方发送应答消息;
根据所述多控制器哈希环将所述数据同步任务发送至第二控制器,以便所述第二控制器执行所述数据同步任务;其中,所述第二控制器为所述多控制器哈希环中所述第一控制器之后的第一个控制器。
可选的,将所有控制器分布在哈希环中,得到多控制器哈希环,包括:
利用哈希算法对所述所有控制器的信息进行计算,得到每个控制器对应的哈希值;
根据每个控制器对应的哈希值将所有控制器映射至所述哈希环中,得到所述多控制器哈希环。
可选的,根据所述多控制器哈希环将所述数据同步任务发送至第二控制器,以便所述第二控制器执行所述数据同步任务,包括:
根据所述第一控制器的信息在所述多控制器哈希环中查找后一个控制器,并作为所述第二控制器;
向所述第二控制器发送所述数据同步任务,以便所述第二控制器执行所述数据同步任务。
可选的,还包括:
当所述第一控制器在预设时间间隔内未接收到应答消息时,在所述多控制器哈希环中查找所述第二控制器之后的第二个控制器;将该控制器作为第二控制器;
向所述第二控制器发送所述数据同步任务,以便所述第二控制器执行所述数据同步任务。
可选的,还包括:
当接收到IO请求时,采用哈希算法对所述IO请求的信息进行计算,得到请求编码;
根据所述请求编码在所述多控制器哈希环中顺时针查找最近的目标控制器;
将所述IO请求发送至所述目标控制器,以便所述目标控制器对所述IO请求进行处理。
本申请还提供一种多控制器的任务处理装置,包括:
哈希分布处理模块,用于将所有控制器分布在哈希环中,得到多控制器哈希环;
任务接收模块,用于当第一控制器接收到数据同步任务时,所述第一控制器执行所述数据同步任务;
任务应答模块,用于当所述数据同步任务执行完成时,向所述数据同步任务的发送方发送应答消息;
任务传递模块,用于根据所述多控制器哈希环将所述数据同步任务发送至第二控制器,以便所述第二控制器执行所述数据同步任务;其中,所述第二控制器为所述多控制器哈希环中所述第一控制器之后的第一个控制器。
可选的,所述哈希分布处理模块,包括:
哈希计算单元,用于利用哈希算法对所述所有控制器的信息进行计算,得到每个控制器对应的哈希值;
控制器映射单元,用于根据每个控制器对应的哈希值将所有控制器映射至所述哈希环中,得到所述多控制器哈希环。
可选的,所述任务传递模块,包括:
下一控制器确定单元,用于根据所述第一控制器的信息在所述多控制器哈希环中查找后一个控制器,并作为所述第二控制器;
任务发送单元,用于向所述第二控制器发送所述数据同步任务,以便所述第二控制器执行所述数据同步任务。
本申请还提供一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上所述的任务处理方法的步骤。
本申请还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的任务处理方法的步骤。
本申请所提供的一种多控制器的任务处理方法,包括:将所有控制器分布在哈希环中,得到多控制器哈希环;当第一控制器接收到数据同步任务时,所述第一控制器执行所述数据同步任务;当所述数据同步任务执行完成时,向所述数据同步任务的发送方发送应答消息;根据所述多控制器哈希环将所述数据同步任务发送至第二控制器,以便所述第二控制器执行所述数据同步任务;其中,所述第二控制器为所述多控制器哈希环中所述第一控制器之后的第一个控制器。
通过先将所有的控制器分布至哈希环中,然后在数据同步时,按照多控制器哈希环的形式一对一地将该数据同步任务传递并执行下去,保证每一个正常控制器均被正常的数据同步,而不是采用广播的方式对多个控制器进行数据同步,避免出现遗漏正常控制器的情况,提高了数据同步的一致性,保证数据同步任务执行的完整性。
本申请还提供一种多控制器的任务处理装置、服务器以及计算机可读存储介质,具有以上有益效果,在此不做赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种多控制器的任务处理方法的流程图;
图2为本申请实施例所提供的一种多控制器的任务处理装置的结构示意图。
具体实施方式
本申请的核心是提供一种多控制器的任务处理方法、任务处理装置、服务器以及计算机可读存储介质,通过以多控制器哈希环进行数据同步操作,实现一对一的数据同步,而不是以广播的形式,避免遗漏控制器,提高了数据同步的一致性。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有技术中,一般是通过广播的方式向多控制器的***进行数据同步操作。也就是采用一个节点对多个节点广播待同步数据,并接收不同控制器的反馈以便判断是否同步完成。但是,当只要一个控制器失效了,就会影响其他控制器的数据同步过程,影响数据同步操作的一致性,如果为了提高数据同步任务的一致性,则需要复杂的实现过程,不利于高效实现数据同步操作。还有一些情况,由于控制器失效或者数据传输不良,导致出现对控制器进行遗漏的情况,导致所有正常可用的控制器无法均被同步。
因此,本申请提供了一种多控制器的任务处理方法,通过先将所有的控制器分布至哈希环中,然后在数据同步时,按照多控制器哈希环的形式一对一地将该数据同步任务传递并执行下去,保证每一个正常控制器均被正常的数据同步,而不是采用广播的方式对多个控制器进行数据同步,避免出现遗漏正常控制器的情况,提高了数据同步的一致性,保证数据同步任务执行的完整性。
以下通过一个实施例,对本申请提供的一种多控制器的任务处理方法作进一步说明。
请参考图1,图1为本申请实施例所提供的一种多控制器的任务处理方法的流程图。
本实施例中,该方法可以包括:
S101,将所有控制器分布在哈希环中,得到多控制器哈希环;
本步骤旨在将所有控制器分布在哈希环中,以便得到将多个控制器进行不同布局的多控制器哈希环。其中,每个控制器根据其对应的哈希值在该哈希环中对应有一确定的位置。
其中,哈希环是出现在一致性哈希算法中的哈希表。其中,一致性哈希算法是一种特殊的哈希算法,在移除或者添加一个服务器时,能够尽可能小地改变已存在的服务请求与处理请求服务器之间的映射关系。一致性哈希算法将整个哈希值空间映射成一个虚拟的圆环,整个哈希空间的取值范围为0至232-1。整个空间按顺时针方向组织。0至232-1在零点中方向重合。接下来使用如下算法对服务请求进行映射,将服务请求使用哈希算法算出对应的hash值,然后根据hash值的位置沿圆环顺时针查找,第一台遇到的服务器就是所对应的处理请求服务器。
可见,本步骤中是将存储***中用于控制IO请求的控制器分布在哈希环中,得到所有控制器的映射关系,即多控制器哈希环。其中,具体将所有控制器分布至哈希环的方法可以参考现有技术提供的任意一种分布方法,在此不做具体限定。
可选的,本步骤可以包括:
利用哈希算法对所有控制器的信息进行计算,得到每个控制器对应的哈希值;
根据每个控制器对应的哈希值将所有控制器映射至哈希环中,得到多控制器哈希环。
可见,本可选方案主要是对如何映射得到多控制器哈希环做进一步说明。
S102,当第一控制器接收到数据同步任务时,第一控制器执行数据同步任务;
在S101的基础上,本步骤旨在当第一控制器接收到数据同步任务时,执行该数据同步任务。其中,执行数据同步任务的方式可以参考现有技术提供的任意一种执行方式,在此不做具体限定。
需要说明的是,本步骤中的第一控制器是指任一一个接收到数据同步任务的控制器,并非特指多控制器哈希环中任何一个控制器。
可见,本步骤的主要目的就是,无论控制器是什么控制器,只要接收到数据同步任务首先执行该任务。
S103,当数据同步任务执行完成时,向数据同步任务的发送方发送应答消息;
在S102的基础上,本步骤旨在当执行该数据同步任务执行结束时,向该数据同步任务的发送方进行反馈,即发送应答消息。其中,该应答消息一般是指数据同步任务执行完成。
其中,数据同步任务的发送方可以是首先发送数据同步任务的总控制器,也可以是执行数据同步任务后进行传递的控制器。
由于数据同步任务需要保持在多控制器中的数据同步率,也就是保持所有正常的控制器都需要执行数据同步任务。因此,需要反馈应答消息。
而在现有技术中,由于是采用广播的方式向多个控制器发布数据同步任务。每个控制器都需要向任务广播方反馈消息,但是由于是多对一的接收方式,就没有办法确定任意一个控制器的单独情况。因此,当任意一个控制器出现失误没有接收到数据同步任务,或者仅仅是消息发送失败。都会判定是执行失败。但是,再次发送会浪费极大的性能资源,因此,现有技术中是通过整体的反馈率判定是否执行成功。但是会遗漏部分控制器。
很显然,本步骤中是一对一的方式,避免出现遗漏情况,可以提高数据同步任务的执行率,提高完整性。
S104,根据多控制器哈希环将数据同步任务发送至第二控制器,以便第二控制器执行数据同步任务;其中,第二控制器为多控制器哈希环中第一控制器之后的第一个控制器。
在S103的基础上,本步骤旨在将该数据同步任务进行传递,也就是将该数据同步任务发送至第二控制器中。可见,该第二控制器为多控制器哈希环中第一控制器之后的第一个控制器,即在哈希环中第一控制器的下一个控制器。可见,本实施例中采用哈希环是确定多个控制器之间的关系。并且,当出现不同的控制器的删除或退出时,通过该哈希环也可以避免出现列表变动等问题。
因此,具体的,本步骤可以包括:
步骤1,根据第一控制器的信息在多控制器哈希环中查找后一个控制器,并作为第二控制器;
步骤2,向第二控制器发送数据同步任务,以便第二控制器执行数据同步任务。
并且,可以知道的是,当第二控制器发送不成功,可以查找到下一个第二控制器。
具体的,本实施例还可以包括:
步骤1,当第一控制器在预设时间间隔内未接收到应答消息时,在多控制器哈希环中查找第二控制器之后的第二个控制器;将该控制器作为第二控制器;
步骤2,向第二控制器发送数据同步任务,以便第二控制器执行数据同步任务。
可见,本可选方案中主要是说明当该第一控制器未接收到应答消息时,重新确定下一个第二控制器。然后,再将该数据同步任务发送至新的第二控制器中。
此外,本实施例中的控制器本身主要应用于对IO请求进行处理,即根据每个IO请求对应的请求编码,在多控制器哈希环中查找到对应的控制器,采用该控制器对该IO请求进行处理。
此外,本实施例还可以包括:
当接收到IO请求时,采用哈希算法对IO请求的信息进行计算,得到请求编码;
根据请求编码在多控制器哈希环中顺时针查找最近的目标控制器;
将IO请求发送至目标控制器,以便目标控制器对IO请求进行处理。
综上,本实施例通过先将所有的控制器分布至哈希环中,然后在数据同步时,按照多控制器哈希环的形式一对一地将该数据同步任务传递并执行下去,保证每一个正常控制器均被正常的数据同步,而不是采用广播的方式对多个控制器进行数据同步,避免出现遗漏正常控制器的情况,提高了数据同步的一致性,保证数据同步任务执行的完整性。
以下通过另一具体的实施例,对本申请提供的一种多控制器的任务处理方法作进一步说明。
本实施例中,主要是应用一致性哈希算法。假设某哈希函数H的值空间为0至232-1(即哈希值是一个32位无符号整形),每个节点hash成相应的哈希值,在查找相应对应节点时,会根据请求的特性hash到圆环的一个值,再以顺时针进行旋转,找到最近的节点,此节点就是处理上述请求的节点。
此外,假设3台节点,当节点映射到hash环上的时候,很有可能出现hash环偏斜的情况(即节点分布不均匀造成所有请求都集中在一个节点),当hash环偏斜以后,缓存往往会极度不均衡的分布在各节点上。因此,在算法中提出一种“虚拟节点”的概念。虚拟节点是实际节点(实际的物理节点)在hash环上的复制品,一个实际节点可以对应多个虚拟节点,如果防止偏斜的影响,可以虚拟出更多的虚拟节点,虚拟节点越多,hash环上的节点就越多,缓存被均匀分布的概率就越大。
本实施例是将一致性算法很好应用于多控制的切换与高可用性功能,在无感知的情况下无需停相应业务,实现控制器的切换,主要实现功能如下:
1、控制器分布:首先将哈希环的值空间为0至232-1,本文以IP进行hash计算,也就是hash值%232,得到哈希环上的一个整数,再根据IP做多次HASH,生成不同的整数集,称其为控制器的哈希集。注意的是,此处hash的值不要与其他控制器的hash值相同。可以尽最大能力的将各控制器的哈希集散布在哈希环中。此处可用hash算法包括但不限于CityHash/APHash/DJB Hash等。
2、请求处理:当从主机端下发IO时,需要根据卷、池等相应信息生成一个编码,利用此编码进行hash到哈希环中的一个值,如hash(编码)%232,可以确定哈希环中的一个值,再顺时针查找最近可用控制器的值,则将此请求下发到最近控制器,由其进行处理。其中,具体编码以业务为准。
3、控制器失效:当一个控制器失效时,首先将失效控制器的哈希集从哈希环中移除,将失效控制器待处理的请求进行重新下发,根据hash值查找最近的控制器,进而对相应的数据或者请求进行重新处理,处理完失效控制器上的请求后接收新请求,处理新下发的请求,保证了IO的顺序执行。
4、控制器恢复:当失效的控制器恢复后,将会所有等待的请求进行缓存,正在处理的请求继续处理,当处理完成后。再将等待请求重新下发进行处理,新请求将会下发,根据编码hash一个整数值,进行查找到最近的控制器,并由各控制器做相应处理。
5、控制器间数据同步:在存储***中,控制器之间需要数据同步操作,如何保证数据的时间同步,如果利用广播的方式,只要一个控制器失效,有可能影响其他控制器是否同步完成的问题,必须保证事务的一致性,实现比较复杂。为了保证数据一致性,将所有节点做成一个圆环,所有控制器的同步数据都按照顺时针进行同步,比如A在B的前面,则会将A的同步信息发给B,完成后发应答给A,则代表A到B同步完成。B到C的同步如A到B步骤一样。当最后一个控制器向A发送同步时,则代表此信息在所有控制器间已全部同步完成。假如同步过程中,其中一个控制器失效,会将此控制器圆环中移除,同步至下一个控制器,保证了同步信息能准确的同步到每一个控制器,保证了数据的完整性。
可见,本实施例通过先将所有的控制器分布至哈希环中,然后在数据同步时,按照多控制器哈希环的形式一对一地将该数据同步任务传递并执行下去,保证每一个正常控制器均被正常的数据同步,而不是采用广播的方式对多个控制器进行数据同步,避免出现遗漏正常控制器的情况,提高了数据同步的一致性,保证数据同步任务执行的完整性。
下面对本申请实施例提供的一种多控制器的任务处理装置进行介绍,下文描述的一种多控制器的任务处理装置与上文描述的一种多控制器的任务处理方法可相互对应参照。
请参考图2,图2为本申请实施例所提供的一种多控制器的任务处理装置的结构示意图。
本实施例中,该装置可以包括:
哈希分布处理模块100,用于将所有控制器分布在哈希环中,得到多控制器哈希环;
任务接收模块200,用于当第一控制器接收到数据同步任务时,第一控制器执行数据同步任务;
任务应答模块300,用于当数据同步任务执行完成时,向数据同步任务的发送方发送应答消息;
任务传递模块400,用于根据多控制器哈希环将数据同步任务发送至第二控制器,以便第二控制器执行数据同步任务;其中,第二控制器为多控制器哈希环中第一控制器之后的第一个控制器。
可选的,该哈希分布处理模块100,可以包括:
哈希计算单元,用于利用哈希算法对所有控制器的信息进行计算,得到每个控制器对应的哈希值;
控制器映射单元,用于根据每个控制器对应的哈希值将所有控制器映射至哈希环中,得到多控制器哈希环。
可选的,该任务传递模块400,可以包括:
下一控制器确定单元,用于根据第一控制器的信息在多控制器哈希环中查找后一个控制器,并作为第二控制器;
任务发送单元,用于向第二控制器发送数据同步任务,以便第二控制器执行数据同步任务。
本申请实施例还提供一种服务器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如以上实施例所述的任务处理方法的步骤。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上实施例所述的任务处理方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种多控制器的任务处理方法、任务处理装置、服务器以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (10)
1.一种多控制器的任务处理方法,其特征在于,包括:
将所有控制器分布在哈希环中,得到多控制器哈希环;
当第一控制器接收到数据同步任务时,所述第一控制器执行所述数据同步任务;
当所述数据同步任务执行完成时,向所述数据同步任务的发送方发送应答消息;
根据所述多控制器哈希环将所述数据同步任务发送至第二控制器,以便所述第二控制器执行所述数据同步任务;其中,所述第二控制器为所述多控制器哈希环中所述第一控制器之后的第一个控制器。
2.根据权利要求1所述的任务处理方法,其特征在于,将所有控制器分布在哈希环中,得到多控制器哈希环,包括:
利用哈希算法对所述所有控制器的信息进行计算,得到每个控制器对应的哈希值;
根据每个控制器对应的哈希值将所有控制器映射至所述哈希环中,得到所述多控制器哈希环。
3.根据权利要求1所述的任务处理方法,其特征在于,根据所述多控制器哈希环将所述数据同步任务发送至第二控制器,以便所述第二控制器执行所述数据同步任务,包括:
根据所述第一控制器的信息在所述多控制器哈希环中查找后一个控制器,并作为所述第二控制器;
向所述第二控制器发送所述数据同步任务,以便所述第二控制器执行所述数据同步任务。
4.根据权利要求1所述的任务处理方法,其特征在于,还包括:
当所述第一控制器在预设时间间隔内未接收到应答消息时,在所述多控制器哈希环中查找所述第二控制器之后的第二个控制器;将该控制器作为第二控制器;
向所述第二控制器发送所述数据同步任务,以便所述第二控制器执行所述数据同步任务。
5.根据权利要求1所述的任务处理方法,其特征在于,还包括:
当接收到IO请求时,采用哈希算法对所述IO请求的信息进行计算,得到请求编码;
根据所述请求编码在所述多控制器哈希环中顺时针查找最近的目标控制器;
将所述IO请求发送至所述目标控制器,以便所述目标控制器对所述IO请求进行处理。
6.一种多控制器的任务处理装置,其特征在于,包括:
哈希分布处理模块,用于将所有控制器分布在哈希环中,得到多控制器哈希环;
任务接收模块,用于当第一控制器接收到数据同步任务时,所述第一控制器执行所述数据同步任务;
任务应答模块,用于当所述数据同步任务执行完成时,向所述数据同步任务的发送方发送应答消息;
任务传递模块,用于根据所述多控制器哈希环将所述数据同步任务发送至第二控制器,以便所述第二控制器执行所述数据同步任务;其中,所述第二控制器为所述多控制器哈希环中所述第一控制器之后的第一个控制器。
7.根据权利要求6所述的任务处理装置,其特征在于,所述哈希分布处理模块,包括:
哈希计算单元,用于利用哈希算法对所述所有控制器的信息进行计算,得到每个控制器对应的哈希值;
控制器映射单元,用于根据每个控制器对应的哈希值将所有控制器映射至所述哈希环中,得到所述多控制器哈希环。
8.根据权利要求6所述的任务处理装置,其特征在于,所述任务传递模块,包括:
下一控制器确定单元,用于根据所述第一控制器的信息在所述多控制器哈希环中查找后一个控制器,并作为所述第二控制器;
任务发送单元,用于向所述第二控制器发送所述数据同步任务,以便所述第二控制器执行所述数据同步任务。
9.一种服务器,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的任务处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的任务处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911370275.3A CN111125139B (zh) | 2019-12-26 | 2019-12-26 | 一种多控制器的任务处理方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911370275.3A CN111125139B (zh) | 2019-12-26 | 2019-12-26 | 一种多控制器的任务处理方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111125139A true CN111125139A (zh) | 2020-05-08 |
CN111125139B CN111125139B (zh) | 2022-04-22 |
Family
ID=70503339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911370275.3A Active CN111125139B (zh) | 2019-12-26 | 2019-12-26 | 一种多控制器的任务处理方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111125139B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102025756A (zh) * | 2009-09-09 | 2011-04-20 | 中兴通讯股份有限公司 | 分布式***及其数据同步方法 |
CN102780763A (zh) * | 2012-06-29 | 2012-11-14 | 华中科技大学 | 一种分布式hss数据存储方法和分布式hss数据提取方法 |
CN104461777A (zh) * | 2014-11-26 | 2015-03-25 | 华为技术有限公司 | 一种存储阵列中数据镜像方法及存储阵列 |
AU2014253953B2 (en) * | 2013-04-16 | 2016-09-29 | Amazon Technologies, Inc. | Distributed load balancer |
WO2017177800A1 (zh) * | 2016-04-15 | 2017-10-19 | 中兴通讯股份有限公司 | Solr集群自动扩容方法及***、计算机存储介质 |
CN108345659A (zh) * | 2018-01-31 | 2018-07-31 | 平安科技(深圳)有限公司 | 一种数据处理方法、装置、设备及计算机可读存储介质 |
CN108737375A (zh) * | 2018-04-13 | 2018-11-02 | 中山大学 | 一种区块链共识方法及*** |
-
2019
- 2019-12-26 CN CN201911370275.3A patent/CN111125139B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102025756A (zh) * | 2009-09-09 | 2011-04-20 | 中兴通讯股份有限公司 | 分布式***及其数据同步方法 |
CN102780763A (zh) * | 2012-06-29 | 2012-11-14 | 华中科技大学 | 一种分布式hss数据存储方法和分布式hss数据提取方法 |
AU2014253953B2 (en) * | 2013-04-16 | 2016-09-29 | Amazon Technologies, Inc. | Distributed load balancer |
CN104461777A (zh) * | 2014-11-26 | 2015-03-25 | 华为技术有限公司 | 一种存储阵列中数据镜像方法及存储阵列 |
WO2017177800A1 (zh) * | 2016-04-15 | 2017-10-19 | 中兴通讯股份有限公司 | Solr集群自动扩容方法及***、计算机存储介质 |
CN108345659A (zh) * | 2018-01-31 | 2018-07-31 | 平安科技(深圳)有限公司 | 一种数据处理方法、装置、设备及计算机可读存储介质 |
CN108737375A (zh) * | 2018-04-13 | 2018-11-02 | 中山大学 | 一种区块链共识方法及*** |
Non-Patent Citations (1)
Title |
---|
孜孜不倦: "安心技术梳理-Redis集群数据存储原理和技术策略数据同步问题"", 《CSDN》 * |
Also Published As
Publication number | Publication date |
---|---|
CN111125139B (zh) | 2022-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10064025B2 (en) | Offline peer-assisted notification delivery | |
US20210176310A1 (en) | Data synchronization method and system | |
CN110401843B (zh) | 直播平台中的榜单数据更新方法、装置、设备和介质 | |
CN109684414B (zh) | 区块数据的同步方法、装置、设备及存储介质 | |
CN106354865B (zh) | 一种同步主从数据库的方法、装置和*** | |
CN112714192B (zh) | 数据同步方法、装置、计算机可读介质及电子设备 | |
WO2017088572A1 (zh) | 一种处理数据的方法、装置及*** | |
CN111049928B (zh) | 数据同步方法、***、电子设备及计算机可读存储介质 | |
CN107623703B (zh) | 全局事务标识gtid的同步方法、装置及*** | |
TWI753876B (zh) | 異步服務處理方法及其伺服器 | |
US20180013610A1 (en) | File delivery method, apparatus and system | |
JP6700308B2 (ja) | データ・コピー方法及びデバイス | |
CN113268472B (zh) | 一种分布式数据存储***及方法 | |
CN113094430B (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN111221469A (zh) | 同步缓存数据的方法、装置和*** | |
CN103281356A (zh) | 一种分发文件的方法及*** | |
CN111611321A (zh) | 一种数据存储方法、装置及区块链*** | |
CN112835885B (zh) | 一种分布式表格存储的处理方法、装置及*** | |
CN107547593B (zh) | 一种实现日志同步的方法、装置及分布式*** | |
CN105373563B (zh) | 数据库切换方法及装置 | |
CN108011926B (zh) | 一种报文发送方法、处理方法、服务器及*** | |
CN111125139B (zh) | 一种多控制器的任务处理方法及相关装置 | |
CN106951443B (zh) | 基于分布式***的副本同步的方法、设备和*** | |
US8250140B2 (en) | Enabling connections for use with a network | |
US11381642B2 (en) | Distributed storage system suitable for sensor data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |