本发明涉及计算机算法技术领域,尤其涉及反馈型负载均衡交叉缓冲调度算法。
背景技术:
近来,负载均衡交换技术作为一种新兴的交换结构而受到研究者越来越多的重视,负载均衡交换一般由两个周期性匹配输入和输出端口的交换矩阵以及两个交叉矩阵之间的缓冲构成。第一级负责将输入流量平均的分配到两个交叉矩阵之间的缓冲队列中去,而第二级可以采用同样的匹配模式将队列中的数据包输出,匹配的周期等同于交换结构的输入/输出端口的个数n。
第一级负载均衡,第二级缓冲调度。通过增加一级负载均衡交换矩阵,实现了将输入端口的突发或非均衡流量转化为中间输入端口上的近似均衡流量,解决了单纯交叉点缓冲非均衡流量性能下降的问题。但是采用负载均衡技术时,同一个输出端口的数据流(指从相同输入端口到达的并且去往相同输出端口的信元序列)中的信元会存在失序的问题,因为经过负载平衡级的处理,属于同一个流的信元会从第二级不同输入端口进入交叉点缓冲交换矩阵,然后从不同的交叉点缓冲区发送到目的输出端口,这样就会经历不同的排队延迟,从而可能导致后到的信元先被调度出去,引起信元的失序。
技术实现要素:
本发明的目的是为了克服现有技术的不足,提供了反馈型负载均衡交叉缓冲调度算法,在负载均衡第一级前建立输入流的链表(时间戳,流id,目的端口号),通过专用的通信链路将链表调度信息发送给输出相应的调度器,每个输出调度器按照链表信息完成调度,实现有序输出。
本发明是通过以下技术方案实现:
反馈型负载均衡交叉缓冲调度算法,包括负载均衡交叉点缓冲结构,所述负载均衡交叉点缓冲结构中有两级矩阵构成,第一级是n*n交换矩阵,采用最简单的定时轮询方式匹配输入、输出端口,在任意的时隙t到达第一级交换矩阵的输入端口i的交换信元通过预定模式的当前时隙交换节点配置,立即交换到第二级的中间端口k,i,k的关系设置为k=(i+t)modn;
第二级交换矩阵是一个交叉点缓冲矩阵,从中间输入端口k到达第二级交换的信元会直接送到相应的交叉缓冲点bkj,输出端口j上的调度器在每个时隙选出相应的信元输出。
进一步地,每个所述信元在经过第一级负载均衡后到达第二级端口之前,每个流被分割的信元会加上时间戳和目的端口号组成链表,发送到相应的调度器,调度器根据链表的信息依次调度,可以保证信元不失序;采用fifo的方式,但是这样就会经历不同的排队延迟,从而可能导致后到的信元先被调度出去,引起信元的失序。
进一步地,所述负载均衡交叉点缓冲结构的具体调度算法如下:
1)信元到达调度器,查看调度器链表,对比达到的信元时隙与链表头部的时隙是否一致;
2)如果一致说明顺序正确,信元直接输出同时删除链表头部信息,下一个信元时隙置顶;
3)如果不一致,说明信元乱序,后面时隙的信元先达到调度器,此时让达到的信元以先进先出(fifo)的顺序进入等待排队缓冲区;
4)下一个信元到达调度器,查看链表对比时隙,如果一致转到2,不一致转到3;
5)排队缓冲区进去调度器进行调度。
与现有技术相比,本发明的优点和有益效果为:采用反馈型负载均衡交叉缓冲调度算法,在负载均衡第一级前建立输入流的链表(时间戳,流id,目的端口号),通过专用的通信链路将链表调度信息发送给输出相应的调度器,每个输出调度器按照链表信息完成调度,实现有序输出。
附图说明
图1是本发明的反馈式负载均衡交叉缓冲调度算法结构图;
图2是本发明的调度器调度算法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1-2,图1是本发明的反馈式负载均衡交叉缓冲调度算法结构图,图2是本发明的调度器调度算法流程图。
本发明实施例1
反馈型负载均衡交叉缓冲调度算法,包括负载均衡交叉点缓冲结构,所述负载均衡交叉点缓冲结构中有两级矩阵构成,第一级是n*n交换矩阵,采用最简单的定时轮询方式匹配输入、输出端口,在任意的时隙t到达第一级交换矩阵的输入端口i的交换信元通过预定模式的当前时隙交换节点配置,立即交换到第二级的中间端口k,i,k的关系设置为k=(i+t)modn;
第二级交换矩阵是一个交叉点缓冲矩阵,从中间输入端口k到达第二级交换的信元会直接送到相应的交叉缓冲点bkj,输出端口j上的调度器在每个时隙选出相应的信元输出。
进一步地,每个所述信元在经过第一级负载均衡后到达第二级端口之前,每个流被分割的信元会加上时间戳和目的端口号组成链表,发送到相应的调度器,调度器根据链表的信息依次调度,可以保证信元不失序;采用fifo的方式,但是这样就会经历不同的排队延迟,从而可能导致后到的信元先被调度出去,引起信元的失序。
实施例二
所述负载均衡交叉点缓冲结构的具体调度算法如下:
1)信元到达调度器,查看调度器链表,对比达到的信元时隙与链表头部的时隙是否一致;
2)如果一致说明顺序正确,信元直接输出同时删除链表头部信息,下一个信元时隙置顶;
3)如果不一致,说明信元乱序,后面时隙的信元先达到调度器,此时让达到的信元以先进先出(fifo)的顺序进入等待排队缓冲区;
4)下一个信元到达调度器,查看链表对比时隙,如果一致转到2,不一致转到3;
5)排队缓冲区进去调度器进行调度。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。