发明内容
本发明的实施例提供一种并发控制方法、控制节点及系统,减少了对多个被控制端进行并发控制的场景下的时延,同时保障了并发个数。
本发明的第一方面,提供一种并发控制方法,所述方法包括:
第一控制节点接收上一级控制节点发送的控制消息;其中,所述控制消息由最高一级的控制节点生成,用于控制被控制节点执行所述控制消息指定的操作;
将所述控制消息发送至与所述第一控制节点连接的全部下一级控制节点,以便所述下一级控制节点继续将所述控制消息向下发送,直至到达所述被控制节点;或
将所述控制消息发送至与所述第一控制节点连接的全部所述被控制节点。
结合第一方面,在一种可能的实现方式中,
在所述第一控制节点接收上一级节点发送的控制消息之前,还包括:
创建线程资源池;
从所述线程资源池中获取至少一个空闲线程;
所述将所述控制消息发送至与所述第一控制节点连接的全部下一级控制节点,包括:通过获取的所述至少一个空闲线程将所述控制消息发送至所述与所述第一控制节点连接的全部下一级控制节点;
所述将所述控制消息发送至与所述第一控制节点连接的全部被控制节点,包括:通过获取的所述至少一个空闲线程将所述控制消息发送至所述与所述第一控制节点连接的全部被控制节点。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,
在所述将所述控制消息发送至与所述第一控制节点连接的全部下一级控制节点或将所述控制消息发送至与所述第一控制节点连接的全部被控制节点之前,还包括:
按照变长压缩技术对所述控制消息进行压缩;
所述将所述控制消息发送至与所述第一控制节点连接的全部下一级控制节点,包括:将所述压缩后的控制消息发送至所述与所述第一控制节点连接的全部下一级控制节点;
所述将所述控制消息发送至与所述第一控制节点连接的全部被控制节点,包括:将所述压缩后的控制消息发送至所述与所述第一控制节点连接的全部被控制节点。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述控制消息包含标识信息,其中,所述标识信息为所述下一级控制节点或所述被控制节点的进程的标识信息;
所述将所述控制消息发送至与所述第一控制节点连接的全部下一级控制节点或将所述控制消息发送至与所述第一控制节点连接的全部被控制节点,包括:
根据所述标识信息,按照预定算法查找所述标识信息对应的进程的线程描述符;
根据预设策略查找目标文件描述符;其中,所述目标文件描述符为所述第一控制节点发送所述控制消息至所述标识信息对应的进程所需的文件描述符;
根据所述线程描述符和所述目标文件描述符将所述控制消息发送至与所述第一控制节点连接的全部所述下一级控制节点的进程或将所述控制消息发送至与所述第一控制节点连接的全部所述被控制节点的进程。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述根据预设策略查找目标文件描述符,包括:
从所述第一控制节点中存储的所有文件描述符中选取的活跃文件描述符;
根据二叉平衡树算法对所述活跃文件描述符进行排序,生成文件描述符序列;
在所述文件描述符序列中查找所述目标文件描述符。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述预定算法包括哈希算法。
本发明的第二方面,提供一种控制节点,包括:
接收单元,用于接收上一级控制节点发送的控制消息;其中,所述控制消息由最高一级的控制节点生成,用于控制被控制节点执行所述控制消息指定的操作;
发送单元,用于将所述接收单元接收到的所述控制消息发送至与所述控制节点连接的全部下一级控制节点,以便所述下一级控制节点继续将所述控制消息向下发送,直至到达所述被控制节点;或将所述接收单元接收到的所述控制消息发送至与所述控制节点连接的全部所述被控制节点。
结合第二方面,在一种可能的实现方式中,还包括:
创建单元,用于在所述接收单元接收上一级节点发送的控制消息之前,创建线程资源池;
获取单元,用于从所述创建单元创建的线程资源池中获取至少一个空闲线程;
所述发送单元,具体用于通过所述获取单元获取到的所述至少一个空闲线程将所述控制消息发送至所述与所述控制节点连接的全部下一级控制节点或通过所述获取单元获取到的所述至少一个空闲线程将所述控制消息发送至所述与所述控制节点连接的全部被控制节点。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,还包括:
压缩单元,用于在所述发送单元将所述控制消息发送至与所述控制节点连接的全部下一级控制节点或将所述控制消息发送至与所述控制节点连接的全部被控制节点之前,按照变长压缩技术对所述控制消息进行压缩;
所述发送单元,具体用于将所述压缩单元压缩后的控制消息发送至所述与所述控制节点连接的全部下一级控制节点或将所述压缩单元压缩后的控制消息发送至所述与所述控制节点连接的全部被控制节点。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述控制消息包含标识信息,其中,所述标识信息为所述下一级控制节点或所述被控制节点的进程的标识信息;
所述发送单元,包括:
第一查找模块,用于根据所述标识信息,按照预定算法查找所述标识信息对应的进程的线程描述符;
第二查找模块,用于根据预设策略查找目标文件描述符;其中,所述目标文件描述符为所述控制节点发送所述控制消息至所述标识信息对应的进程所需的文件描述符;
发送模块,用于根据所述第一查找模块查找到的所述线程描述符和所述第二查找模块查找到的所述目标文件描述符将所述控制消息发送至与所述控制节点连接的全部所述下一级控制节点的进程或将所述控制消息发送至与所述控制节点连接的全部所述被控制节点的进程。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所第二查找模块,包括:
选取子模块,用于从所述控制节点中存储的所有文件描述符中选取的活跃文件描述符;
生成子模块,用于根据二叉平衡树算法对所述选取子模块选取的所述活跃文件描述符进行排序,生成文件描述符序列;
查找子模块,用于在所述生成子模块生成的所述文件描述符序列中查找所述目标文件描述符。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述预定算法包括哈希算法。
本发明的第三方面,提供一种并发控制系统,包含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所示,该方法可以包括:
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发送的控制信息,并执行所述控制消息指定的操作。
本发明实施例提供的一种并发控制系统,在接收到上一级控制节点发送的控制消息之后,将该控制消息发送至与该控制节点连接的全部下一级控制节点,以便下一级控制节点继续将控制消息向下发送,直至到达被控制节点;或将控制消息发送至与该控制节点连接的全部被控制节点,减少了对多个被控制节点进行并发控制的场景下的时延,同时保障了并发个数。
并且,通过在每个控制节点采用线程池,避免了多线程切换带来的时延抖动,并在将控制消息向下发送前将控制消息采用变长压缩技术进行压缩,减小了网络传输的数据,在将控制消息进行转发是采用哈希算法查找线程描述符,并采用基于活跃队列的底层异步技术,使得控制消息从控制端到达被控制端的时延进一步的减小。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。