CN103197920A - 一种并发控制方法、控制节点及系统 - Google Patents

一种并发控制方法、控制节点及系统 Download PDF

Info

Publication number
CN103197920A
CN103197920A CN2013100976264A CN201310097626A CN103197920A CN 103197920 A CN103197920 A CN 103197920A CN 2013100976264 A CN2013100976264 A CN 2013100976264A CN 201310097626 A CN201310097626 A CN 201310097626A CN 103197920 A CN103197920 A CN 103197920A
Authority
CN
China
Prior art keywords
control
control node
node
sent
message
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
Application number
CN2013100976264A
Other languages
English (en)
Other versions
CN103197920B (zh
Inventor
洪波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NINGBO JIETI EDUCATION TECHNOLOGY Co.,Ltd.
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201310097626.4A priority Critical patent/CN103197920B/zh
Publication of CN103197920A publication Critical patent/CN103197920A/zh
Application granted granted Critical
Publication of CN103197920B publication Critical patent/CN103197920B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明实施例公开了一种并发控制方法、控制节点及系统,涉及通信领域,减少了对多个被控制端进行并发控制的场景下的时延,同时保障了并发个数。具体方案为:第一控制节点接收上一级控制节点发送的控制消息;其中,控制消息由最高一级的控制节点生成,用于控制被控制节点执行控制消息指定的操作;将控制消息发送至与第一控制节点连接的全部下一级控制节点,以便下一级控制节点继续将控制消息向下发送,直至到达被控制节点;或将控制消息发送至与第一控制节点连接的全部被控制节点。本发明用于并发控制过程中。

Description

一种并发控制方法、控制节点及系统
技术领域
本发明涉及通信领域,尤其涉及一种并发控制方法、控制节点及系统。
背景技术
高并发技术是指对大量的事件在同一时刻进行处理的技术,例如当网络服务器同时被多个客户端访问时,就需要网络服务器可以同时响应每个客户端的请求;在分布式集群系统中,每个集群内存在大量的节点,大量节点同时变化会造成系统负荷瞬间增大,因此分布式集群系统的可靠性可以通过在同一时刻模拟触发大量节点发生状态变化来得到;在工业控制等其他领域也存在被控制节点需要在同一时刻执行某种动作的场景。
现有高并发的控制大多采用轮询或多线程的方式来实现,具体的轮询方式是控制端依次向被控制端发送控制消息,假设被控制端的个数为M,控制端向被控制端发送控制消息的时间间隔为t,那么控制端向第一被控制端和最后一个被控制端发送控制消息的时延为(M-1)×t;多线程方式是创建X个线程,在每个线程中向被控制端发送控制消息,直到所有的被控制端接收到控制消息,其中,由于系统支持的线程个数有限,不能保证一次性创建的线程个数和被控制端个数一样,因此当利用X(X<M)个线程向M个被控制端的其中X个被控制端发送控制消息之后,需要销毁当前线程,并重新创建线程来向其他被控制端进行发送控制消息,假设控制端通过创建的线程向被控制端发送控制消息的时间为t,那么控制端向第一被控制端和最后一个被控制端发送控制消息的时延为(x-1)×t,其中,x为需要创建线程的次数。
在实现上述请求处理的过程中,发明人发现现有技术中至少存在如下问题:若采用轮询或多线程的方式,控制端向第一个被控制端和最后一个被控制端发送控制消息会存在时延,并会随着被控制端个数的增加时延呈线性增长,并且在使用多线程的方式时,由于单个控制端支持的线程个数有限,难以实现同时对数千个被控制端进行控制,因此在要求同时对多个被控制端进行控制的场景中,现有技术存在时延高,并发个数低的问题。
发明内容
本发明的实施例提供一种并发控制方法、控制节点及系统,减少了对多个被控制端进行并发控制的场景下的时延,同时保障了并发个数。
本发明的第一方面,提供一种并发控制方法,所述方法包括:
第一控制节点接收上一级控制节点发送的控制消息;其中,所述控制消息由最高一级的控制节点生成,用于控制被控制节点执行所述控制消息指定的操作;
将所述控制消息发送至与所述第一控制节点连接的全部下一级控制节点,以便所述下一级控制节点继续将所述控制消息向下发送,直至到达所述被控制节点;或
将所述控制消息发送至与所述第一控制节点连接的全部所述被控制节点。
结合第一方面,在一种可能的实现方式中,
在所述第一控制节点接收上一级节点发送的控制消息之前,还包括:
创建线程资源池;
从所述线程资源池中获取至少一个空闲线程;
所述将所述控制消息发送至与所述第一控制节点连接的全部下一级控制节点,包括:通过获取的所述至少一个空闲线程将所述控制消息发送至所述与所述第一控制节点连接的全部下一级控制节点;
所述将所述控制消息发送至与所述第一控制节点连接的全部被控制节点,包括:通过获取的所述至少一个空闲线程将所述控制消息发送至所述与所述第一控制节点连接的全部被控制节点。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,
在所述将所述控制消息发送至与所述第一控制节点连接的全部下一级控制节点或将所述控制消息发送至与所述第一控制节点连接的全部被控制节点之前,还包括:
按照变长压缩技术对所述控制消息进行压缩;
所述将所述控制消息发送至与所述第一控制节点连接的全部下一级控制节点,包括:将所述压缩后的控制消息发送至所述与所述第一控制节点连接的全部下一级控制节点;
所述将所述控制消息发送至与所述第一控制节点连接的全部被控制节点,包括:将所述压缩后的控制消息发送至所述与所述第一控制节点连接的全部被控制节点。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述控制消息包含标识信息,其中,所述标识信息为所述下一级控制节点或所述被控制节点的进程的标识信息;
所述将所述控制消息发送至与所述第一控制节点连接的全部下一级控制节点或将所述控制消息发送至与所述第一控制节点连接的全部被控制节点,包括:
根据所述标识信息,按照预定算法查找所述标识信息对应的进程的线程描述符;
根据预设策略查找目标文件描述符;其中,所述目标文件描述符为所述第一控制节点发送所述控制消息至所述标识信息对应的进程所需的文件描述符;
根据所述线程描述符和所述目标文件描述符将所述控制消息发送至与所述第一控制节点连接的全部所述下一级控制节点的进程或将所述控制消息发送至与所述第一控制节点连接的全部所述被控制节点的进程。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述根据预设策略查找目标文件描述符,包括:
从所述第一控制节点中存储的所有文件描述符中选取的活跃文件描述符;
根据二叉平衡树算法对所述活跃文件描述符进行排序,生成文件描述符序列;
在所述文件描述符序列中查找所述目标文件描述符。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述预定算法包括哈希算法。
本发明的第二方面,提供一种控制节点,包括:
接收单元,用于接收上一级控制节点发送的控制消息;其中,所述控制消息由最高一级的控制节点生成,用于控制被控制节点执行所述控制消息指定的操作;
发送单元,用于将所述接收单元接收到的所述控制消息发送至与所述控制节点连接的全部下一级控制节点,以便所述下一级控制节点继续将所述控制消息向下发送,直至到达所述被控制节点;或将所述接收单元接收到的所述控制消息发送至与所述控制节点连接的全部所述被控制节点。
结合第二方面,在一种可能的实现方式中,还包括:
创建单元,用于在所述接收单元接收上一级节点发送的控制消息之前,创建线程资源池;
获取单元,用于从所述创建单元创建的线程资源池中获取至少一个空闲线程;
所述发送单元,具体用于通过所述获取单元获取到的所述至少一个空闲线程将所述控制消息发送至所述与所述控制节点连接的全部下一级控制节点或通过所述获取单元获取到的所述至少一个空闲线程将所述控制消息发送至所述与所述控制节点连接的全部被控制节点。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,还包括:
压缩单元,用于在所述发送单元将所述控制消息发送至与所述控制节点连接的全部下一级控制节点或将所述控制消息发送至与所述控制节点连接的全部被控制节点之前,按照变长压缩技术对所述控制消息进行压缩;
所述发送单元,具体用于将所述压缩单元压缩后的控制消息发送至所述与所述控制节点连接的全部下一级控制节点或将所述压缩单元压缩后的控制消息发送至所述与所述控制节点连接的全部被控制节点。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述控制消息包含标识信息,其中,所述标识信息为所述下一级控制节点或所述被控制节点的进程的标识信息;
所述发送单元,包括:
第一查找模块,用于根据所述标识信息,按照预定算法查找所述标识信息对应的进程的线程描述符;
第二查找模块,用于根据预设策略查找目标文件描述符;其中,所述目标文件描述符为所述控制节点发送所述控制消息至所述标识信息对应的进程所需的文件描述符;
发送模块,用于根据所述第一查找模块查找到的所述线程描述符和所述第二查找模块查找到的所述目标文件描述符将所述控制消息发送至与所述控制节点连接的全部所述下一级控制节点的进程或将所述控制消息发送至与所述控制节点连接的全部所述被控制节点的进程。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所第二查找模块,包括:
选取子模块,用于从所述控制节点中存储的所有文件描述符中选取的活跃文件描述符;
生成子模块,用于根据二叉平衡树算法对所述选取子模块选取的所述活跃文件描述符进行排序,生成文件描述符序列;
查找子模块,用于在所述生成子模块生成的所述文件描述符序列中查找所述目标文件描述符。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述预定算法包括哈希算法。
本发明的第三方面,提供一种并发控制系统,包含M个被控制节点和N个控制节点,N≥3,
所述N个控制节点分K层部署,每个控制节点最多并行发送X个控制消息;
第一层的控制节点最多与X个第二层的控制节点连接,所述第一层的控制节点,用于生成所述控制信息;
第m-1层的每个控制节点最多与X个第m层的控制节点连接;其中,1<m≤K;
第K层的每个控制节点最多与X个被控制节点连接,以便所述M个被控制节点同时接收所述控制信息;其中第K层共Y个控制节点,且X×Y≥M;
其中,所述第一层的控制节点,还用于将所述控制信息发送至与所述第一层的控制节点连接的全部第二层的控制节点;
所述第m-1层的控制节点,用于接收第m-2层的控制节点发送的所述控制信息,并将所述控制信息发送至与自身连接的所有第m层的控制节点;
所述第K层的控制节点,用于接收第K-1层的控制节点发送的所述控制信息,并将所述控制信息发送至与自身连接的全部被控制节点;
所述被控制节点,用于接收所述第K层的控制节点发送的控制信息,并执行所述控制消息指定的操作。
本发明实施例提供的并发控制方法、控制节点及系统,在第一控制节点接收到上一级控制节点发送的控制消息之后,将该控制消息发送至与第一控制节点连接的全部下一级控制节点,以便下一级控制节点继续将控制消息向下发送,直至到达被控制节点;或将控制消息发送至与第一控制节点连接的全部被控制节点,减少了对多个被控制节点进行并发控制的场景下的时延,同时保障了并发个数。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1提供的一种并发控制方法流程示意图;
图2为本发明实施例2提供的一种并发控制方法流程示意图;
图3为本发明实施例2提供的一种实现并发控制方法的架构组成示意图;
图4为本发明实施例3提供的一种控制节点组成示意图;
图5为本发明实施例3提供的另一种控制节点组成示意图;
图6为本发明实施例4提供的一种控制节点组成示意图;
图7为本发明实施例5提供的一种并发控制系统组成示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明实施例提供一种并发控制方法,如图1所示,该方法可以包括:
101、第一控制节点接收上一级控制节点发送的控制消息。
其中,为了使得被控制节点可以在同一时刻接收到控制节点发送的控制消息,本发明实施将控制节点分层部署,当最高一级的控制节点需要发出控制请求时,可以产生控制消息,并将控制消息发送出去直到到达第一控制节点的上一级控制节点,第一控制节点的上一级控制节点接收到控制消息之后,继续将控制消息向下发送至与其相连的全部控制节点,其中包括第一控制节点,这样第一控制节点便可以接收到上一级控制节点发送的控制消息。其中,该控制消息用于控制被控制节点执行该控制消息指定的操作。
102、第一控制节点将控制消息发送至与第一控制节点连接的全部下一级控制节点,以便下一级控制节点继续将控制消息向下发送,直至到达被控制节点,或将控制消息发送至与第一控制节点连接的全部被控制节点。
其中,若与第一控制节点相连的是下一级控制节点,那么当第一控制节点接收到上一级控制节点发送的控制消息之后,便可以将该控制消息发送至与自身相连的全部下一级控制节点,以便下一级控制节点继续将控制消息向下发送,直至将控制消息发送到被控制节点;若与第一控制节点相连的是被控制节点,那么当第一控制节点接收到上一级控制节点发送的控制消息之后,便可以将该控制消息直接发送至与自身连接的全部被控制节点,这样被控制端便可以在同一时刻接收到控制节点发送的控制消息,即被控制端中的所有的被控制节点便可以同一时刻接收到控制端发送的控制消息,降低了控制节点之间接收到控制消息的时延。其中,为了达到高并发的要求,在每一级控制节点向下发送控制消息的时,可以在同一时刻将控制消息发送至与其相连的全部的下一级控制节点。
并且,在本发明实施例提供的控制节点的分层部署结构,在分层部署控制节点的时候,可以根据被控制节点的个数确定如何分层部署控制节点,这样便可以实现在大量(数千个甚至数万个)被控制节点在同一时刻接收到控制节点发送的控制消息,提高了并发个数。
本发明实施例提供的一种并发控制方法,在第一控制节点接收到上一级控制节点发送的控制消息之后,将该控制消息发送至与第一控制节点连接的全部下一级控制节点,以便下一级控制节点继续将控制消息向下发送,直至到达被控制节点;或将控制消息发送至与第一控制节点连接的全部被控制节点,减少了对多个被控制节点进行并发控制的场景下的时延,同时保障了并发个数。
实施例2
本发明实施例提供一种并发控制方法,如图2所示,该方法可以包括:
为了方便本领域技术人员的理解,本发明实施例以分布式集群系统中系统可靠性评估的为例。可以理解的是,在分布式集群系统中,大量集群节点在同一时刻加入或退出集群,会使得系统表项在同一时刻进行刷新,使得系统负荷瞬间增大,因此为了评估系统的可靠性,可以模拟多个集群节点在同一时刻加入集群或退出集群来使得大量系统表项在同一时刻刷新的测试,进而检验系统的容错能力,此时测试控制端需要在同一时刻向大量的(数千个甚至数万个)被控制节点发送控制请求,触发节点加入、退出集群的操作。
控制端包含至少三个控制节点,且控制节点进行分层部署,控制端的分层部署架构可以参考图3所示,具体的当总控制节点需要对被控制节点进行控制时,总控制节点可以发起调用,并生成控制消息,然后可以执行步骤201到步骤206后,将控制消息发送至与其连接的全部下一级控制节点或将控制消息发送至与其连接的全部被控制节点。
需要说明的是,控制端的分层部署架构可以参考本发明实施例中的描述及示意图,而对于具体的分层部署架构中控制节点的部署层数以及每个控制节点连接的下一级控制节点的个数可以根据实际操作环境的需要进行部署,本发明实施例在此不做作限制。
为了进一步的减小控制消息在控制节点之间发送的时延,本发明实施例在每一级的每个控制节点中采用如下技术,使得控制消息的转发的时延进一步的减小。具体的可以是:
201、创建线程资源池。
其中,当控制节点需要对被控制节点进行控制时,第一控制节点可以提前创建指定大小的线程资源池,这样可以避免第一控制节点在接收到控制消息之后为每个任务创建和销毁线程带来的时间开销,也可以避免在第一控制节点接收到控制消息时申请创建大量线程造成的时延。
202、接收上一级控制节点发送的控制消息。
其中,当控制端需要对被控制端进行控制时,总的控制节点产生控制消息,并将控制消息向下发送,当第一控制节点的上一级控制节点接收到控制消息时,将控制消息发送至第一控制节点,此时第一控制节点便可以接收到与其相连的上一级控制节点发送的控制消息。
203、按照变长压缩技术对控制消息进行压缩。
其中,当第一控制节点接收到上一级控制节点发送的控制消息之后,可以使用变长压缩技术对接收到的控制消息进行压缩,以便压缩第一控制节点的传输数据量,这样可以进一步的降低控制端向被控制端发送控制消息的时延。具体的变长压缩技术的规则如下:变长编码的整数可能包含多个字节(byte),对于每个byte的8位,其中后7位表示数值,最高的一位表示是否还有另一个byte,0表示没有,1表示有,并且越前面的byte表示数值的低位,越后面的byte表示数值的高位。例如300的2进制编码为:0000 0000 0000 0000 0000 0001 0010 1100,根据变长压缩技术的规则,截取最后的7为放在第一个byte,则第一byte为1010 1100,其中最高位1表示,后续还有byte;接着剩下的内容放到第二个byte,为0000 0010,其中最高位0表示,后续无byte,这个数到这里截止了,因此300经过变长压缩后,变为2字节,值为:1010 1100 0000 0010。由此可以看出对数据按照变长压缩技术进行压缩之后,传输的数据量有了明显的减少,进而也就降低了控制端向被控制端发送控制消息的时延。
204、根据标识信息,按照预定算法查找标识信息对应的进程的线程描述符。
其中,控制消息中包含标识信息,该标识信息为下一级控制节点或被控制节点的进程的标识信息;第一控制节点在接收到控制消息,并对其进行变成编码之后,可以将压缩后的控制消息继续向下转发,由于第一控制节点向下转发控制消息,其实是将该控制消息发送给下一级控制节点或者是被控制节点的进程(IP地址+端口号标示),因此第一控制节点可以根据控制消息中包含的标识信息查找与标识信息对应的进程的线程描述符,为了尽快超找到进程的线程描述符,可以使用复杂度为O(1)的字符串哈希算法,在线性时间内查找的进程相应的线程描述符。其中O(1)为一种通用的算法复杂度表示方式,表示在N个元素中查找指定的一个元素,平均时间是1。
205、根据预设策略查找目标文件描述符。
其中,当第一控制端查找到进程对应的线程描述符之后,接下来就需要将控制消息通过操作系统向下转发,此时便需要在内核态查找发送控制消息到指定进程所需的目标文件描述符,以便控制消息能够正确的从指定的硬件发送出去。在文件描述符的查找中使用活跃数相关的底层异步接口,以便达到高速查找的目的。具体的查找过程可以包括以下步骤205a、步骤205b及步骤205c。
205a、从第一控制节点中存储的所有文件描述符中选取的活跃文件描述符。
其中,为了避免在进行文件描述符查找时,扫描非活跃文件描述符导致的时延增大的问题,可以首先从第一控制节点中存储的所有的文件描述符中选取活跃文件描述符。其中,活跃文件描述符为最近被使用过或使用频率比较高的文件描述符,非活跃文件描述符为最近未被使用或使用频率比较低的文件描述符。
205b、根据二叉平衡树算法对活跃文件描述符进行排序,生成文件描述符序列。
其中,当选取到活跃文件描述符之后,可以根据二叉平衡树算法对查找的所有的活跃文件描述符进行排序生成文件描述符序列。
205c、在文件描述符序列中查找目标文件描述符。
其中,当生成文件描述符序列之后,便可以在文件描述符序列中查找目标文件描述符,这样便可以使查找算法复杂度降低到O(Log(n))。。其中O(X)是算法复杂度的一种表示方式,O(1)表示线性,O(Log(n))表示查找n个元素,花费的平均时间是Log(n),所述目标文件描述符为发送控制消息所需的文件描述符。
206、从线程资源池中获取至少一个空闲线程,并将至少一个空闲线程分配控制消息。
其中,当第一控制节点需要向下发送控制消息时,从预先创建的线程资源池中获取至少一个空闲线程,并将该至少一个空闲线程分配给控制消息。
需要说明的是,本发明实施例中步骤203到步骤206执行顺序没有先后关系,本发明实施例对步骤203到步骤206的执行顺序不做限制。
207、根据线程描述符和目标文件描述符将控制消息发送至与第一控制节点连接的全部下一级控制节点的进程或将控制消息发送至与第一控制节点连接的全部被控制节点的进程。
其中,当将控制消息进行以上步骤203到步骤206的处理之后,便可以根据获取到的线程描述符和目标文件描述符将控制消息通过空闲线程发送至与第一控制节点连接的全部下一级控制节点的进程或将控制消息发送至与第一控制节点连接的全部被控制节点的进程,其中该控制消息为压缩后的控制消息。其中,为了达到高并发的要求,在每一级控制节点向下发送控制消息的时,可以在同一时刻将控制消息发送至与其相连的全部的下一级控制节点。
需要说明的是,本发明实施例主要可以用于控制大量节点在同一时刻进行某种操作的场景中,还可以用于需要进行大规模并发控制的场景中。
本发明实施例提供的一种并发控制方法,在第一控制节点接收到上一级控制节点发送的控制消息之后,将该控制消息发送至与第一控制节点连接的全部下一级控制节点,以便下一级控制节点继续将控制消息向下发送,直至到达被控制节点;或将控制消息发送至与第一控制节点连接的全部被控制节点,减少了对多个被控制节点进行并发控制的场景下的时延,同时保障了并发个数。
并且,通过在每个控制节点采用线程池,避免了多线程切换带来的时延抖动,并在将控制消息向下发送前将控制消息采用变长压缩技术进行压缩,减小了网络传输的数据,在将控制消息进行转发是采用哈希算法查找线程描述符,并采用基于活跃队列的底层异步技术,使得控制消息从控制端到达被控制端的时延进一步的减小。
实施例3
本发明实施例提供一种控制节点,如图4所示,包括:接收单元31、发送单元32。
接收单元31,用于接收上一级控制节点发送的控制消息;其中,所述控制消息由最高一级的控制节点生成,用于控制被控制节点执行所述控制消息指定的操作。
发送单元32,用于将所述接收单元31接收到的所述控制消息发送至与所述控制节点连接的全部下一级控制节点,以便所述下一级控制节点继续将所述控制消息向下发送,直至到达所述被控制节点;或将所述接收单元31接收到的所述控制消息发送至与所述控制节点连接的全部所述被控制节点。
进一步的,如图5所示,该控制节点还可以包括:创建单元33、获取单元34。
创建单元33,用于在所述接收单元31接收上一级节点发送的控制消息之前,创建线程资源池。
获取单元34,用于从所述创建单元33创建的线程资源池中获取至少一个空闲线程。
所述发送单元32,具体用于通过所述获取单元34获取到的所述至少一个空闲线程将所述控制消息发送至所述与所述控制节点连接的全部下一级控制节点或通过所述获取单元34获取到的所述至少一个空闲线程将所述控制消息发送至所述与所述控制节点连接的全部被控制节点。
进一步的,该控制节点还可以包括:压缩单元35。
压缩单元35,用于在所述发送单元32将所述控制消息发送至与所述控制节点连接的全部下一级控制节点或将所述控制消息发送至与所述控制节点连接的全部被控制节点之前,按照变长压缩技术对所述控制消息进行压缩。
所述发送单元32,具体用于将所述压缩单元35压缩后的控制消息发送至所述与所述控制节点连接的全部下一级控制节点或将所述压缩单元35压缩后的控制消息发送至所述与所述控制节点连接的全部被控制节点。
进一步的,所述控制消息包含标识信息,其中,所述标识信息为所述下一级控制节点或所述被控制节点的进程的标识信息。
所述发送单元32可以包括:第一查找模块321、第二查找模块322、发送模块323。
第一查找模块321,用于根据所述标识信息,按照预定算法查找所述标识信息对应的进程的线程描述符。
第二查找模块322,用于根据预设策略查找目标文件描述符;其中,所述目标文件描述符为所述控制节点发送所述控制消息至所述标识信息对应的进程所需的文件描述符。
发送模块323,用于根据所述第一查找模块321查找到的所述线程描述符和所述第二查找模块322查找到的所述目标文件描述符将所述控制消息发送至与所述控制节点连接的全部所述下一级控制节点的进程或将所述控制消息发送至与所述控制节点连接的全部所述被控制节点的进程。
进一步的,所第二查找模块322可以包括:选取子模块3221、生成子模块3222、查找子模块3223。
选取子模块3221,用于从所述控制节点中存储的所有文件描述符中选取的活跃文件描述符。
生成子模块3222,用于根据二叉平衡树算法对所述选取子模块3221选取的所述活跃文件描述符进行排序,生成文件描述符序列。
查找子模块3223,用于在所述生成子模块3222生成的所述文件描述符序列中查找所述目标文件描述符。
进一步的,所述预定算法包括哈希算法。
本发明实施例提供的一种控制节点,在接收到上一级控制节点发送的控制消息之后,将该控制消息发送至与该控制节点连接的全部下一级控制节点,以便下一级控制节点继续将控制消息向下发送,直至到达被控制节点;或将控制消息发送至与该控制节点连接的全部被控制节点,减少了对多个被控制节点进行并发控制的场景下的时延,同时保障了并发个数。
并且,通过在每个控制节点采用线程池,避免了多线程切换带来的时延抖动,并在将控制消息向下发送前将控制消息采用变长压缩技术进行压缩,减小了网络传输的数据,在将控制消息进行转发是采用哈希算法查找线程描述符,并采用基于活跃队列的底层异步技术,使得控制消息从控制端到达被控制端的时延进一步的减小。
实施例4
本发明实施例提供一种控制节点,如图6所示,包括:至少一个处理器41、存储器42、通信接口43和总线44,该至少一个处理器41、存储器42和通信接口43通过总线44连接并完成相互间的通信,其中:
所述总线44可以是工业标准体系结构(Industry StandardArchitecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry StandardArchitecture,简称为EISA)总线等。该总线44可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。其中:
所述存储器42用于存储可执行程序代码,该程序代码包括计算机操作指令。存储器42可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
所述处理器41可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
所述通信接口43,主要用于实现本实施例的设备之间的通信。
所述处理器41,用于接收上一级控制节点发送的控制消息;其中,所述控制消息由最高一级的控制节点生成,用于控制被控制节点执行所述控制消息指定的操作;将所述控制消息发送至与所述第一控制节点连接的全部下一级控制节点,以便所述下一级控制节点继续将所述控制消息向下发送,直至到所述达被控制节点;或将所述控制消息发送至与所述第一控制节点连接的全部所述被控制节点。
进一步的,所述处理器41,还用于在所述第一控制节点接收上一级节点发送的控制消息之前,创建线程资源池,并从所述线程资源池中获取至少一个空闲线程,并通过获取的所述至少一个空闲线程将所述控制消息发送至所述与所述第一控制节点连接的全部下一级控制节点或通过获取的所述至少一个空闲线程将所述控制消息发送至所述与所述第一控制节点连接的全部被控制节点。
进一步的,所述处理器41,还用于在所述将所述控制消息发送至与所述第一控制节点连接的全部下一级控制节点或将所述控制消息发送至与所述第一控制节点连接的全部被控制节点之前,按照变长压缩技术对所述控制消息进行压缩,并将所述压缩后的控制消息发送至所述与所述第一控制节点连接的全部下一级控制节点或将所述压缩后的控制消息发送至所述与所述第一控制节点连接的全部被控制节点。
进一步的,所述控制消息包含标识信息,其中,所述标识信息为所述下一级控制节点或所述被控制节点的进程的标识信息。
进一步的,所述处理器41,还用于根据所述标识信息,按照预定算法查找所述标识信息对应的进程的线程描述符;根据预设策略查找目标文件描述符;其中,所述目标文件描述符为所述第一控制节点发送所述控制消息至所述标识信息对应的进程所需的文件描述符;根据所述线程描述符和所述目标文件描述符将所述控制消息发送至与所述第一控制节点连接的全部所述下一级控制节点的进程或将所述控制消息发送至与所述第一控制节点连接的全部所述被控制节点的进程。
进一步的,所述处理器41,还用于从所述第一控制节点中存储的所有文件描述符中选取的活跃文件描述符;根据二叉平衡树算法对所述活跃文件描述符进行排序,生成文件描述符序列;在所述文件描述符序列中查找所述目标文件描述符。
进一步的,所述预定算法包括哈希算法。
本发明实施例提供的一种控制节点,在接收到上一级控制节点发送的控制消息之后,将该控制消息发送至与该控制节点连接的全部下一级控制节点,以便下一级控制节点继续将控制消息向下发送,直至到达被控制节点;或将控制消息发送至与该控制节点连接的全部被控制节点,减少了对多个被控制节点进行并发控制的场景下的时延,同时保障了并发个数。
并且,通过在每个控制节点采用线程池,避免了多线程切换带来的时延抖动,并在将控制消息向下发送前将控制消息采用变长压缩技术进行压缩,减小了网络传输的数据,在将控制消息进行转发是采用哈希算法查找线程描述符,并采用基于活跃队列的底层异步技术,使得控制消息从控制端到达被控制端的时延进一步的减小。
实施例5
本发明实施例提供一种并发控制系统,如图7所示,包含M个被控制节点51和N个控制节点52,N≥3。
所述N个控制节点52分K层部署,每个控制节点52最多并行发送X个控制消息。
第一层的控制节点52最多与X个第二层的控制节点52连接,所述第一层的控制节点52,用于生成所述控制信息。
第m-1层的每个控制节点52最多与X个第m层的控制节点52连接;其中,1<m≤K。
第K层的每个控制节点52最多与X个被控制节点51连接,以便所述M个被控制节点51同时接收所述控制信息;其中第K层共Y个控制节点52,且X×Y≥M。
其中,所述第一层的控制节点52,还用于将所述控制信息发送至与所述第一层的控制节点52连接的全部第二层的控制节点52。
所述第m-1层的控制节点52,用于接收第m-2层的控制节点52发送的所述控制信息,并将所述控制信息发送至与自身连接的所有第m层的控制节点52。
所述第K层的控制节点52,用于接收第K-1层的控制节点52发送的所述控制信息,并将所述控制信息发送至与自身连接的全部被控制节点51。
所述被控制节点51,用于接收所述第K层的控制节点52发送的控制信息,并执行所述控制消息指定的操作。
本发明实施例提供的一种并发控制系统,在接收到上一级控制节点发送的控制消息之后,将该控制消息发送至与该控制节点连接的全部下一级控制节点,以便下一级控制节点继续将控制消息向下发送,直至到达被控制节点;或将控制消息发送至与该控制节点连接的全部被控制节点,减少了对多个被控制节点进行并发控制的场景下的时延,同时保障了并发个数。
并且,通过在每个控制节点采用线程池,避免了多线程切换带来的时延抖动,并在将控制消息向下发送前将控制消息采用变长压缩技术进行压缩,减小了网络传输的数据,在将控制消息进行转发是采用哈希算法查找线程描述符,并采用基于活跃队列的底层异步技术,使得控制消息从控制端到达被控制端的时延进一步的减小。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (13)

1.一种并发控制方法,其特征在于,所述方法包括:
第一控制节点接收上一级控制节点发送的控制消息;其中,所述控制消息由最高一级的控制节点生成,用于控制被控制节点执行所述控制消息指定的操作;
将所述控制消息发送至与所述第一控制节点连接的全部下一级控制节点,以便所述下一级控制节点继续将所述控制消息向下发送,直至到达所述被控制节点;或
将所述控制消息发送至与所述第一控制节点连接的全部所述被控制节点。
2.根据权利要求1所述的并发控制方法,其特征在于,
在所述第一控制节点接收上一级节点发送的控制消息之前,还包括:
创建线程资源池;
从所述线程资源池中获取至少一个空闲线程;
所述将所述控制消息发送至与所述第一控制节点连接的全部下一级控制节点,包括:通过获取的所述至少一个空闲线程将所述控制消息发送至所述与所述第一控制节点连接的全部下一级控制节点;
所述将所述控制消息发送至与所述第一控制节点连接的全部被控制节点,包括:通过获取的所述至少一个空闲线程将所述控制消息发送至所述与所述第一控制节点连接的全部被控制节点。
3.根据权利要求1所述的并发控制方法,其特征在于,
在所述将所述控制消息发送至与所述第一控制节点连接的全部下一级控制节点或将所述控制消息发送至与所述第一控制节点连接的全部被控制节点之前,还包括:
按照变长压缩技术对所述控制消息进行压缩;
所述将所述控制消息发送至与所述第一控制节点连接的全部下一级控制节点,包括:将所述压缩后的控制消息发送至所述与所述第一控制节点连接的全部下一级控制节点;
所述将所述控制消息发送至与所述第一控制节点连接的全部被控制节点,包括:将所述压缩后的控制消息发送至所述与所述第一控制节点连接的全部被控制节点。
4.根据权利要求1所述的并发控制方法,其特征在于,所述控制消息包含标识信息,其中,所述标识信息为所述下一级控制节点或所述被控制节点的进程的标识信息;
所述将所述控制消息发送至与所述第一控制节点连接的全部下一级控制节点或将所述控制消息发送至与所述第一控制节点连接的全部被控制节点,包括:
根据所述标识信息,按照预定算法查找所述标识信息对应的进程的线程描述符;
根据预设策略查找目标文件描述符;其中,所述目标文件描述符为所述第一控制节点发送所述控制消息至所述标识信息对应的进程所需的文件描述符;
根据所述线程描述符和所述目标文件描述符将所述控制消息发送至与所述第一控制节点连接的全部所述下一级控制节点的进程或将所述控制消息发送至与所述第一控制节点连接的全部所述被控制节点的进程。
5.根据权利要求4所述的并发控制方法,其特征在于,所述根据预设策略查找目标文件描述符,包括:
从所述第一控制节点中存储的所有文件描述符中选取的活跃文件描述符;
根据二叉平衡树算法对所述活跃文件描述符进行排序,生成文件描述符序列;
在所述文件描述符序列中查找所述目标文件描述符。
6.根据权利要求4或5所述的并发控制方法,其特征在于,所述预定算法包括哈希算法。
7.一种控制节点,其特征在于,包括:
接收单元,用于接收上一级控制节点发送的控制消息;其中,所述控制消息由最高一级的控制节点生成,用于控制被控制节点执行所述控制消息指定的操作;
发送单元,用于将所述接收单元接收到的所述控制消息发送至与所述控制节点连接的全部下一级控制节点,以便所述下一级控制节点继续将所述控制消息向下发送,直至到达所述被控制节点;或将所述接收单元接收到的所述控制消息发送至与所述控制节点连接的全部所述被控制节点。
8.根据权利要求7所述的控制节点,其特征在于,还包括:
创建单元,用于在所述接收单元接收上一级节点发送的控制消息之前,创建线程资源池;
获取单元,用于从所述创建单元创建的线程资源池中获取至少一个空闲线程;
所述发送单元,具体用于通过所述获取单元获取到的所述至少一个空闲线程将所述控制消息发送至所述与所述控制节点连接的全部下一级控制节点或通过所述获取单元获取到的所述至少一个空闲线程将所述控制消息发送至所述与所述控制节点连接的全部被控制节点。
9.根据权利要求7所述的控制节点,其特征在于,还包括:
压缩单元,用于在所述发送单元将所述控制消息发送至与所述控制节点连接的全部下一级控制节点或将所述控制消息发送至与所述控制节点连接的全部被控制节点之前,按照变长压缩技术对所述控制消息进行压缩;
所述发送单元,具体用于将所述压缩单元压缩后的控制消息发送至所述与所述控制节点连接的全部下一级控制节点或将所述压缩单元压缩后的控制消息发送至所述与所述控制节点连接的全部被控制节点。
10.根据权利要求7所述的控制节点,其特征在于,所述控制消息包含标识信息,其中,所述标识信息为所述下一级控制节点或所述被控制节点的进程的标识信息;
所述发送单元,包括:
第一查找模块,用于根据所述标识信息,按照预定算法查找所述标识信息对应的进程的线程描述符;
第二查找模块,用于根据预设策略查找目标文件描述符;其中,所述目标文件描述符为所述控制节点发送所述控制消息至所述标识信息对应的进程所需的文件描述符;
发送模块,用于根据所述第一查找模块查找到的所述线程描述符和所述第二查找模块查找到的所述目标文件描述符将所述控制消息发送至与所述控制节点连接的全部所述下一级控制节点的进程或将所述控制消息发送至与所述控制节点连接的全部所述被控制节点的进程。
11.根据权利要求10所述的控制节点,其特征在于,所第二查找模块,包括:
选取子模块,用于从所述控制节点中存储的所有文件描述符中选取的活跃文件描述符;
生成子模块,用于根据二叉平衡树算法对所述选取子模块选取的所述活跃文件描述符进行排序,生成文件描述符序列;
查找子模块,用于在所述生成子模块生成的所述文件描述符序列中查找所述目标文件描述符。
12.根据权利要求10或11所述的控制节点,其特征在于,所述预定算法包括哈希算法。
13.一种并发控制系统,包含M个被控制节点和N个控制节点,N≥3,其特征在于,
所述N个控制节点分K层部署,每个控制节点最多并行发送X个控制消息;
第一层的控制节点最多与X个第二层的控制节点连接,所述第一层的控制节点,用于生成所述控制信息;
第m-1层的每个控制节点最多与X个第m层的控制节点连接;其中,1<m≤K;
第K层的每个控制节点最多与X个被控制节点连接,以便所述M个被控制节点同时接收所述控制信息;其中第K层共Y个控制节点,且X×Y≥M;
其中,所述第一层的控制节点,还用于将所述控制信息发送至与所述第一层的控制节点连接的全部第二层的控制节点;
所述第m-1层的控制节点,用于接收第m-2层的控制节点发送的所述控制信息,并将所述控制信息发送至与自身连接的所有第m层的控制节点;
所述第K层的控制节点,用于接收第K-1层的控制节点发送的所述控制信息,并将所述控制信息发送至与自身连接的全部被控制节点;
所述被控制节点,用于接收所述第K层的控制节点发送的控制信息,并执行所述控制消息指定的操作。
CN201310097626.4A 2013-03-25 2013-03-25 一种并发控制方法、控制节点及系统 Active CN103197920B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310097626.4A CN103197920B (zh) 2013-03-25 2013-03-25 一种并发控制方法、控制节点及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310097626.4A CN103197920B (zh) 2013-03-25 2013-03-25 一种并发控制方法、控制节点及系统

Publications (2)

Publication Number Publication Date
CN103197920A true CN103197920A (zh) 2013-07-10
CN103197920B CN103197920B (zh) 2016-08-03

Family

ID=48720521

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310097626.4A Active CN103197920B (zh) 2013-03-25 2013-03-25 一种并发控制方法、控制节点及系统

Country Status (1)

Country Link
CN (1) CN103197920B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106209996A (zh) * 2016-06-27 2016-12-07 网易(杭州)网络有限公司 通信处理方法和装置
CN106257425A (zh) * 2016-07-20 2016-12-28 东南大学 一种基于并发控制流图的Java并发程序路径剖析方法
CN108924206A (zh) * 2018-06-26 2018-11-30 郑州云海信息技术有限公司 一种分布式系统的集群事件同步方法、装置及设备
CN110599005A (zh) * 2019-08-23 2019-12-20 东软集团股份有限公司 流程解析方法、装置、计算机可读存储介质和电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1805379A (zh) * 2006-01-05 2006-07-19 西安交通大学 一种具有弹性体系架构的集群管理监控系统的构建方法
CN101072133A (zh) * 2007-05-23 2007-11-14 华中科技大学 一种基于对等网络的高性能计算系统
US7774457B1 (en) * 2005-03-25 2010-08-10 Hewlett-Packard Development Company, L.P. Resource evaluation for a batch job and an interactive session concurrently executed in a grid computing environment
CN102025756A (zh) * 2009-09-09 2011-04-20 中兴通讯股份有限公司 分布式系统及其数据同步方法
CN102331923A (zh) * 2011-10-13 2012-01-25 西安电子科技大学 一种基于多核多线程处理器的功能宏流水线实现方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774457B1 (en) * 2005-03-25 2010-08-10 Hewlett-Packard Development Company, L.P. Resource evaluation for a batch job and an interactive session concurrently executed in a grid computing environment
CN1805379A (zh) * 2006-01-05 2006-07-19 西安交通大学 一种具有弹性体系架构的集群管理监控系统的构建方法
CN101072133A (zh) * 2007-05-23 2007-11-14 华中科技大学 一种基于对等网络的高性能计算系统
CN102025756A (zh) * 2009-09-09 2011-04-20 中兴通讯股份有限公司 分布式系统及其数据同步方法
CN102331923A (zh) * 2011-10-13 2012-01-25 西安电子科技大学 一种基于多核多线程处理器的功能宏流水线实现方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106209996A (zh) * 2016-06-27 2016-12-07 网易(杭州)网络有限公司 通信处理方法和装置
CN106257425A (zh) * 2016-07-20 2016-12-28 东南大学 一种基于并发控制流图的Java并发程序路径剖析方法
CN106257425B (zh) * 2016-07-20 2019-04-09 东南大学 一种基于并发控制流图的Java并发程序路径剖析方法
CN108924206A (zh) * 2018-06-26 2018-11-30 郑州云海信息技术有限公司 一种分布式系统的集群事件同步方法、装置及设备
CN110599005A (zh) * 2019-08-23 2019-12-20 东软集团股份有限公司 流程解析方法、装置、计算机可读存储介质和电子设备
CN110599005B (zh) * 2019-08-23 2023-01-31 东软集团股份有限公司 流程解析方法、装置、计算机可读存储介质和电子设备

Also Published As

Publication number Publication date
CN103197920B (zh) 2016-08-03

Similar Documents

Publication Publication Date Title
US20160321104A1 (en) Method and apparatus for scheduling concurrent task
CN106302632B (zh) 一种基础镜像的下载方法以及管理节点
CN107122252B (zh) 一种系统间交互方法和装置
CN102968498A (zh) 数据处理方法及装置
CN105843819B (zh) 一种数据导出方法及装置
EP3221797B1 (en) Testing systems and methods
CN103927305B (zh) 一种对内存溢出进行控制的方法和设备
CN110995513A (zh) 物联网系统中的数据发送、接收方法、物联网设备及平台
CN103197920A (zh) 一种并发控制方法、控制节点及系统
CN104618304A (zh) 数据处理方法及数据处理系统
CN110928905A (zh) 一种数据处理方法和装置
US20210248057A1 (en) Test case generator and user interface
CN101667139A (zh) 基于集合类型对象的服务程序调用方法、装置及系统
CN104270287A (zh) 一种报文乱序检测方法及装置
CN105744494A (zh) 一种短信发送方法和装置
CN110442500A (zh) 一种基于Unixbench的超融合集群性能的测试方法及装置
CN104281636A (zh) 海量报表数据并发分布式处理方法
CN109656610B (zh) 网络游戏分布式数据热更新方法及装置
CN103299298A (zh) 处理业务的方法和系统
CN110505276B (zh) 对象匹配方法、装置及系统、电子设备及存储介质
CN110413398B (zh) 任务调度方法、装置、计算机设备和存储介质
CN112306827A (zh) 日志采集装置、方法和计算机可读存储介质
CN114050909B (zh) 模拟邮件的演练方法、系统和电子设备
CN115328457A (zh) 基于参数配置的表单页面实现方法和装置
CN106210159A (zh) 一种域名解析方法和设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200715

Address after: 315000 Room 716, Building C4, Lane 299, Guanghua Road, Ningbo High-tech Zone, Zhejiang Province

Patentee after: NINGBO JIETI EDUCATION TECHNOLOGY Co.,Ltd.

Address before: 518000 Baoan District Xin'an street, Shenzhen, Guangdong, No. 625, No. 625, Nuo platinum Plaza,

Patentee before: SHENZHEN SHANGGE INTELLECTUAL PROPERTY SERVICE Co.,Ltd.

Effective date of registration: 20200715

Address after: 518000 Baoan District Xin'an street, Shenzhen, Guangdong, No. 625, No. 625, Nuo platinum Plaza,

Patentee after: SHENZHEN SHANGGE INTELLECTUAL PROPERTY SERVICE Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.