KR100618960B1 - Method and apparatus for symmetrical load balancing through load exchange between adjacent nodes - Google Patents
Method and apparatus for symmetrical load balancing through load exchange between adjacent nodes Download PDFInfo
- Publication number
- KR100618960B1 KR100618960B1 KR1019990000533A KR19990000533A KR100618960B1 KR 100618960 B1 KR100618960 B1 KR 100618960B1 KR 1019990000533 A KR1019990000533 A KR 1019990000533A KR 19990000533 A KR19990000533 A KR 19990000533A KR 100618960 B1 KR100618960 B1 KR 100618960B1
- Authority
- KR
- South Korea
- Prior art keywords
- node
- load
- message
- load level
- nodes
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 230000005540 biological transmission Effects 0.000 claims abstract description 102
- 238000004364 calculation method Methods 0.000 claims abstract description 6
- 230000004044 response Effects 0.000 claims description 17
- 230000009467 reduction Effects 0.000 claims description 4
- 238000012790 confirmation Methods 0.000 claims description 2
- 238000005259 measurement Methods 0.000 claims description 2
- 238000004422 calculation algorithm Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 230000007423 decrease Effects 0.000 description 5
- 239000000523 sample Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/08—Load balancing or load distribution
- H04W28/086—Load balancing or load distribution among access entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/042—Network management architectures or arrangements comprising distributed management centres cooperatively managing the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/08—Load balancing or load distribution
- H04W28/09—Management thereof
- H04W28/0925—Management thereof using policies
- H04W28/0942—Management thereof using policies based on measured or predicted load of entities- or links
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Small-Scale Networks (AREA)
Abstract
본 발명은 인접 노드간의 부하 교환을 통한 대칭적 부하 균배를 하는 방법 및 장치에 관한 것으로서, 네트웍에서 각 노드간 전송 지연 시간이 작은 노드끼리 인접하도록 네트웍을 재구성하여 자신의 부하 수준이 임계값보다 크면 인접 노드의 부하 수준에 따라 자신의 부하를 부하 수준이 임계값보다 작은 노드로 전송하고, 자신의 부하 수준이 임계값보다 작으면 인접 노드 중 부하 수준이 임계값보다 큰 노드에서 부하를 전송받아 부하를 교환하여 대칭적으로 부하를 균배할 수 있어 계산의 성능을 크게 향상시킬 수 있다.The present invention relates to a method and apparatus for symmetrical load balancing through load exchange between adjacent nodes. When the load level is greater than a threshold value, the network is reconfigured so that nodes having small transmission delay times are adjacent to each other in the network. According to the load level of the neighboring node, it sends its load to the node whose load level is lower than the threshold. If its load level is lower than the threshold, the load is received from the node whose load level is higher than the threshold. You can balance the load symmetrically by exchanging, which can greatly improve the performance of the calculation.
Description
도 1은 종래의 PSI 기법의 동작을 도시한 것이다.1 illustrates the operation of a conventional PSI technique.
도 2는 본 발명에 따른 동작 흐름도이다.2 is a flowchart of operation according to the present invention.
도 3a는 본 발명에 따른 송신자 동작 흐름도이다.3A is a flow diagram of a sender operation in accordance with the present invention.
도 3b는 본 발명에 따른 수신자 동작 흐름도이다.3B is a flowchart of a receiver operation according to the present invention.
도 4는 본 발명에 따른 노드의 상세 동작 흐름도이다.4 is a detailed operation flowchart of a node according to the present invention.
도 5는 본 발명에 따른 송신자 단계의 상세 흐름도이다.5 is a detailed flowchart of a sender step according to the present invention.
도 6은 본 발명에 따른 수신자 단계의 상세 흐름도이다.6 is a detailed flowchart of the receiver step according to the present invention.
도 7은 본 발명에 따른 부하 균배 장치의 실시예를 도시한 것이다.7 shows an embodiment of a load balancing device according to the present invention.
본 발명은 네트웍의 노드의 부하를 분배하는 방법 및 장치에 관한 것으로, 특히 인접 노드간의 부하를 분산하여 처리하는 분산 처리 환경에서 인접 노드간의 부하 교환을 통하여 대칭적으로 부하를 분배하는 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for distributing loads of nodes in a network, and more particularly, to a method and apparatus for symmetrically distributing loads through load exchange between adjacent nodes in a distributed processing environment in which loads are processed between adjacent nodes. It is about.
종래에 부하 분배에 대해 영국의 Leeds 대학에서 제안한 PSI(Periodic Symmetrically-Initiated) 부하 균배 알고리즘이 IEEE Proc. of 14th International Conference on Distributed Computing Systems, pp.616-623(1994.6월)에 기술되어 있다. 그리고 동적 부하 균배 기법에 관하여 Stephen R. Wheat에 의해 미국 특허 출원 US5630129 "Dynamic load balancing of applications"으로 출원되어 있다.The conventional PSI (Periodic Symmetrically-Initiated) Load Balancing Algorithm proposed by Leeds University in the UK for load distribution is based on IEEE Proc. of 14th International Conference on Distributed Computing Systems, pp.616-623 (August 199). And US patent application US5630129 "Dynamic load balancing of applications" by Stephen R. Wheat on a dynamic load balancing technique.
PSI 알고리즘에서는 노드(node)에 일이 전송되었을 때나 혹은 노드에서 일이 끝났을 때에 부하 균배 알고리즘이 시작되는 것이 아니라 주기적으로 알고리즘을 시작하게 한다. 이 방법으로 대칭 알고리즘의 문제인 높은 부하가 걸릴 때의 메시지 포화 문제를 해결하였다. PSI 알고리즘이 적용된 시스템에서는 Pt의 주기로 무작위로 선택된 노드에 폴링 메시지(polling message)를 보내게 된다. 이 때 폴링의 횟수는 Lp로 정해진다. In the PSI algorithm, the load balancing algorithm does not start when work is sent to the node or when work is done at the node. This method solves the problem of message saturation at high loads, which is a problem of symmetric algorithms. In a PSI-based system, a polling message is sent to a randomly selected node at a period of Pt. At this time, the number of polling is set to Lp.
상기 논문에 의한 PSI 알고리즘의 동작을 간단히 알아보면 다음과 같다. The operation of the PSI algorithm according to the paper is briefly described as follows.
도 1은 PSI 알고리즘의 동작을 도시한 것이다. 1 illustrates the operation of the PSI algorithm.
각 노드에 부과된 일의 양을 부하 수준이라 하고, 노드가 처리할 수 있는 부하의 양을 임계값이라 한다. 임계값은 네트웍 관리자에 의해 설정되는 정수값이다.The amount of work imposed on each node is called the load level, and the amount of load the node can handle is called the threshold. The threshold is an integer value set by the network administrator.
노드 1(110)의 부하수준은 5이고 노드 2(120)의 부하 수준은 6, 노드 3(130)의 부하수준은 1이며, 노드 4(140)의 부하 수준은 3이다. 임계값은 4라고 가정한다.The load level of
타이머(100)는 일정 시간 간격 Pt=0.2초마다 무작위로 노드를 선택한다. 이 선택된 노드에 부하를 부과하게 된다. 이 타이머(100)에 의해 노드 1(110)이 선택(151)되었다고 가정한다. 노드 1(110)의 부하수준이 5이므로 임계값 4보다 크다. 그러므로 노드 1(110)은 송신자 알고리즘에 의해 동작하게 되어 임의의 노드를 다시 선택하게 된다. 이때에 노드 2(120)가 선택(152)되었다 가정한다. 노드 2(120)의 부하수준은 6으로 임계값 4보다 노드 2(120)는 부하 균배를 거절(153)하게 되어 부하 균배가 되지 않는다. 부하 균배에 실패하였으므로 다시 한번 임의의 노드를 선택하는 폴링을 하게 된다. 이번에는 노드 4(140)가 선택(154)되었다고 하자. 노드 4(140)의 부하수준은 3으로 임계값보다 작으므로 부하 균배를 수락(155)하게 되고 노드 4(140)는 수신자 알고리즘에 의해 동작한다. 이러면 노드 1(110)에서 노드 4(140)로 일이 하나 전송(156)되어 부하가 균배되게 된다. The timer 100 randomly selects a node every Pt = 0.2 seconds at regular intervals. This will place a load on the selected node. Assume that
Stephen R. Wheat가 출원한 특허는 병렬 컴퓨터의 일종인 MIMD(복수 명령어 스트림-복수 데이터 스트림) 병렬 컴퓨터의 응용 프로그램 수준에서의 동적 부하 균배 기법을 제안하였다. 중앙 집중형 부하 균배 기법은 각 노드의 프로세서(processor)가 지역적인 부하 균배를 할 때 전체 프로세서의 작업 영역을 겹침으로서 이루어진다. 이 방법은 확장성이 좋은 것으로 알려져 있다. The patent, filed by Stephen R. Wheat, proposes a dynamic load balancing technique at the application level of a parallel instruction stream-multiple data stream (MIMD) parallel computer. The centralized load balancing technique is achieved by overlapping the work area of the entire processor when the processors of each node perform local load balancing. This method is known to be scalable.
그러나 PSI 알고리즘에서는 부하 균배가 이루어지기까지의 오버헤드가 너무 크고, 네트웍에서의 지연 시간이 모든 노드에서 일정하다고 가정을 하였다. 또한 모든 각 노드에서의 일의 수행 시간이 일정하다고 가정하였다. 실제로는 네트웍의 지연 시간은 모든 노드에서 일정한 것은 아니고, 각 노드에서의 일 수행 시간은 노드마다 틀리게 된다. 또한 이 알고리즘에서는 임계값 T와 주기 Pt가 중요한 변수가 되는데 이 변수들을 결정하기 위해 많은 실험을 해야하는 문제가 있다.However, the PSI algorithm assumes that the overhead of load balancing is too high and the delay time in the network is constant at all nodes. It is also assumed that the execution time of work at each node is constant. In practice, network latency is not constant at every node, and the execution time at each node is different for each node. In addition, the threshold T and the period Pt become important variables in this algorithm, which requires a lot of experimentation to determine these variables.
또, Stephen R. Wheat가 출원한 특허는 중앙 집중형 부하 균배 기법에 관한 개념을 가지고 있다. 그러나 이 방법은 병렬 처리 컴퓨터를 기준으로 설계를 했기 때문에 각각의 프로세서의 성능은 동일하고 네트웍 지연 시간도 동일하다는 전제를 하고 있다. 그러므로 이 방법은 각각 노드의 프로세서간의 성능 차가 존재하고 네트웍 지연 시간이 각각 틀린 분산 처리 환경에서 적용하는 것이 적당하지 않다.The patent filed by Stephen R. Wheat also has the concept of a centralized load balancing technique. However, because this method is designed based on a parallel processing computer, each processor has the same performance and the same network latency. Therefore, this method is not suitable to be used in distributed processing environments where there is a performance difference between the processors of each node and network latency is different.
본 발명이 이루고자 하는 기술적인 과제는, 상기의 문제점들을 해결하기 위해, 노드의 임계값과 선택 주기에 영향을 받지 않으면서 분산 처리 환경에서 적용이 가능한 노드간의 부하 균배 방법과 장치를 제공하는데 있다.The technical problem to be achieved by the present invention is to provide a method and apparatus for load balancing between nodes that can be applied in a distributed processing environment without being affected by the threshold value and the selection period of the node to solve the above problems.
상기 기술적 과제를 해결하기 위한 본 발명에 의한, 네트웍의 데이터 전송로에 접속되는 노드들의 부하를 분배하는 방법은, 상기 네트웍의 각 노드를 링 구조로 재구성하는 단계; 및 각 노드가 해야 할 일의 양인 부하 수준과 인접 노드의 부하 수준에 따라 각 노드의 부하가 균등하도록 각 노드의 부하를 조절하는 단계;를 포함하며, 상기 링 구조로 재구성하는 단계는, 상기 네트웍의 각 노드 간에 메시지를 전송하고 수신하는 시각을 이용하여 각 노드 간의 데이터 전송 지연시간을 구하는 단계; 및 인접한 노드간의 상기 지연시간이 최소가 되도록 상기 네트웍의 각 노드를 재배열하는 단계;를 포함하는 것을 특징으로 한다.According to the present invention for solving the technical problem, a method for distributing the load of the nodes connected to the data transmission path of the network, Reconfiguring each node of the network into a ring structure; And adjusting the load of each node so that the load of each node is equal according to the load level which is the amount of work that each node should do and the load level of the neighboring node, wherein the reconfiguring into the ring structure includes: Obtaining a data transmission delay time between each node using time of transmitting and receiving a message between each node of the node; And rearranging each node of the network such that the delay time between adjacent nodes is minimized.
상기 기술적 과제를 해결하기 위한 본 발명에 의한, 네트웍의 데이터 전송로에 접속되는 노드들의 부하를 분배하는 장치는, 상기 각 노드를 링 구조로 재구성하는 노드 재구성부; 및 링 구조로 재구성된 각 노드가 해야 할 일의 양인 부하 수준과 인접 노드의 부하 수준에 따라 각 노드의 부하가 균등하도록 조절하는 부하조절부;를 포함하며, 상기 노드 재구성부는, 다른 노드에 지연 확인 신호를 전송하고 그 다른 노드가 이 신호의 재전송을 하는 시간을 이용하여 상기 각 노드간의 데이터 전송 지연 시간을 계산하는 지연시간 계산부; 및 인접한 노드간의 상기 계산된 전송 지연 시간이 최소가 되도록 상기 각 노드들을 배치하고 배치 완료 정보를 출력하는 노드 배치부;를 포함하는 것을 특징으로 한다.In accordance with an aspect of the present invention, an apparatus for distributing loads of nodes connected to a data transmission path of a network includes: a node reconfiguring unit configured to reconfigure each node into a ring structure; And a load adjuster configured to adjust the load of each node to be equal according to the load level of each node reconfigured into the ring structure and the load level of the adjacent node. A delay time calculating section for transmitting a confirmation signal and calculating a data transmission delay time between the nodes using a time for which another node retransmits the signal; And a node arrangement unit for arranging each of the nodes and outputting deployment completion information such that the calculated transmission delay time between adjacent nodes is minimized.
이하에서 첨부된 도면을 참조하여 본 발명의 바람직한 일 실시예를 상세히 설명한다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
네트웍은 일을 수행하는 노드와 각 노드간의 데이터 전송로에 접속되는 노드로 구성되어 있다. 각 노드에는 서버(server), 각종 단말기, 통신망 접속 카드, 사용자 접속 장치 등이 접속되며, 통신망을 운영하기 위한 운영체제, 단말을 위한 운영체제 및 통신망 응용 프로그램 등의 소프트웨어가 운영된다. 각 노드는 자신에 부과된 작업을 처리하거나 다른 노드를 통해 데이터를 전송하기도 한다. 그리고 자신의 노드에 걸린 일의 양이 과할 경우에는 다른 노드에 이 과부하를 넘겨서 부하를 분배해야 네트웍 운용이 원활해진다.A network consists of nodes that perform work and nodes that are connected to the data path between each node. Each node is connected with a server, various terminals, a network access card, a user access device, and the like, and software such as an operating system for operating a communication network, an operating system for a terminal, and a network application program is operated. Each node can either process the work charged to it or send data through another node. And if the amount of work done on one's own node is excessive, then overload this load with other nodes to distribute the load to facilitate network operation.
도 2는 본 발명에 따른 실시예의 동작 흐름도이다.2 is an operational flowchart of an embodiment according to the present invention.
개략적인 동작은 다음과 같다.The schematic operation is as follows.
본 발명의 네트웍의 각 노드를 링 구조로 재구성하는 단계는, 네트웍의 임계값(T)을 설정(200 단계)하고 네트웍의 각 노드에서의 전송 지연 시간을 구하며(210 단계) 이 전송 지연 시간에 따라 네트웍을 재구성(220 단계)하는 단계들을 포함하는 것이 바람직하다.Reconstructing each node of the network of the present invention into a ring structure includes setting a threshold T of the network (step 200) and obtaining a transmission delay time at each node of the network (step 210). It is preferable to include the step of reconfiguring (step 220) according to the network.
그리고 본 발명의 노드의 부하를 균등하게 조절하는 단계는, 각 노드에서는 각 노드가 실행할 작업의 내용을 포함하는 작업 메시지를 수신하여 부하수준을 측정(230 단계)하고 측정한 부하 수준에 따라(240 단계) 부하수준이 임계값보다 크면 송신자 단계를 실행(250)하고 부하수준이 임계값보다 작으면 수신자 단계를 수행(260 단계)한 후 노드 작업 단계를 수행(270 단계)하며 이후 부하 수준 측정 단계(230 단계)부터 다시 반복하는 단계들을 포함한다.And the step of equally adjusting the load of the node of the present invention, each node receives a job message including the content of the job to be executed by each node to measure the load level (step 230) and according to the measured load level (240) Step) If the load level is greater than the threshold, the sender step is executed (250). If the load level is less than the threshold, the receiver step is performed (step 260), then the node operation step is performed (step 270). And repeating from
위의 과정들을 상세히 설명하면 다음과 같다.The above processes will be described in detail as follows.
네트웍 시스템이 처음 시동될 때에 네트웍 운영을 위한 여러 가지 변수들이 설정된다. 이때에 각 노드에서 처리할 수 있는 부하의 양인 임계값을 설정한다(200 단계). 이 임계값은 부하의 성능과 성질에 따라 각 노드마다 틀려질 수 있는 정수값이다. 그리고 이 임계값을 설정하는 것은 각 노드가 자신의 부하값을 측정하기 이전에는 어느 때에 설정해도 관계없다.When the network system is first started, several variables are set up for network operation. At this time, a threshold value which is an amount of load that can be processed by each node is set (step 200). This threshold is an integer value that can be different for each node depending on the performance and nature of the load. The threshold may be set at any time before each node measures its own load value.
노드간에 메시지를 전송하는데 혹은 전달받는데 걸리는 시간인 전송 지연 시간은 각 노드의 성질, 성능 그리고 네트웍이 구성된 형태에 따라 틀려지게 된다. 전송 지연 시간을 구하는 한 방법은, 각 노드는 전송 시각을 포함하는 지연 시간 확인 메시지를 다른 노드에 전송하고, 상기 확인 메시지를 수신한 노드는 상기 확인 메시지를 수신한 시각을 확인하고, 상기 전송 시각과 수신 시각을 이용하여 전송 지연 시간을 구하는 것이다.The transmission delay time, which is the time it takes to transmit or receive a message between nodes, depends on the nature of each node, its performance, and how the network is configured. In one method of obtaining a transmission delay time, each node transmits a delay time acknowledgment message including a transmission time to another node, and the node receiving the acknowledgment message confirms the time at which the acknowledgment message was received, and the transmission time. The transmission delay time is obtained by using and the reception time.
전송 지연 시간을 구하는 또 다른 방법의 하나는, 각 노드는 전송 시각을 포함하는 지연 시간 확인 메시지를 다른 노드에 전송하고, 상기 확인 메시지를 수신한 노드는 상기 메세지 수신 시각을 기재한 응답 메시지를 상기 확인 메시지를 전송한 노드에 재전송하며, 상기 응답 메시지를 재전송받은 각 노드는 상기 응답 메시지를 수신한 시각을 확인하고, 상기 전송 시각, 수신 시각 그리고 응답 메시지 수신 시각을 이용하여 전송 지연 시간을 구하는 것이다. 이런 방법을 사용하면 첫 번째 방법에 비해서 확인 메시지 전송과 재전송때문에 네트웍의 데이터 전송로에 대한 트래픽(traffic)은 높아지지만 상대 노드의 상태가 정상인가를 판정할 수 있는 장점이 있다.(210 단계)In another method of obtaining a transmission delay time, each node transmits a delay time acknowledgment message including a transmission time to another node, and the node receiving the acknowledgment message sends a response message indicating the message reception time. Resend the acknowledgment message to the node that sent the acknowledgment message, and each node retransmitting the response message confirms the time at which the response message was received, and calculates a transmission delay time using the transmission time, the reception time, and the response message reception time. . Using this method, compared to the first method, the traffic to the data transmission path of the network is higher due to the transmission and retransmission of acknowledgment, but it has the advantage of determining whether the other node is in a normal state (step 210).
상기 전송 지연 시간을 기준으로 인접한 노드간의 전송 지연 시간이 최소가 되도록 네트웍의 각 노드를 링 구조로 재구성한다(220 단계). 본 발명을 적용하기 위한 가상의 구조로 네트웍을 재구성하는 것이다.Based on the transmission delay time, each node of the network is reconfigured into a ring structure such that transmission delay time between adjacent nodes is minimized (step 220). The network is reconfigured into a virtual structure for applying the present invention.
네트웍이 구성된 형태는 버스(bus), 트리(tree), 링(ring), 격자(mesh)등 혹은 이들 구조들의 복합형 등의 여러 가지 모습이 가능하다. 어떤 형태를 갖춘 경우라도 한 노드에서 다른 노드로 메시지를 보내고 그 메시지를 다시 돌려 받는 시간을 측정하여 각 노드간의 전송 지연 시간을 구할 수 있다(210 단계). 이 전송 지연 시간을 이용하여 한 노드에서 구한 전송 지연 시간이 제일 작은 노드 2개가 자신과 인접하게 위치하도록 각 노드를 재구성한다(220 단계). The network may be formed in various forms such as a bus, a tree, a ring, a mesh, or a combination of these structures. In any case, the transmission delay time between nodes can be obtained by measuring the time of sending a message from one node to another node and receiving the message again (step 210). Using the transmission delay time, each node is reconfigured so that two nodes having the smallest transmission delay time obtained from one node are located adjacent to the node (step 220).
특히 버스 형태의 구조를 가진 네트웍은 버스의 양끝에 위치한 노드 사이에 가상의 데이터 전송로가 이어진 것으로 하여, 이 양 끝의 노드를 인접하게 배치하는 링 구조로 재구성하는 것이 바람직하다.In particular, a network having a bus-type structure is a virtual data transmission path between nodes located at both ends of the bus, and it is preferable to reconfigure a ring structure in which nodes at both ends are disposed adjacent to each other.
각 노드는 각 노드가 실행할 작업의 내용이 담긴 작업 메시지를 수신하며, 자신 노드의 현재 부하의 양인 부하 수준을 측정한다(230 단계). 이 작업 메시지는 다른 노드에서 전달되는 부하 분배에 대한 메세지이거나, 각 노드에 딸린 단말에서 네트웍에 대한 작업을 요구하는 메시지를 포함한다.Each node receives a job message containing the content of a job to be executed by each node, and measures the load level, which is the amount of the current load of the own node (step 230). This work message is a message about load distribution delivered from another node, or includes a message requesting work on the network at a terminal attached to each node.
본 실시예에서는 부하 수준은 정수값으로 표현된다. 노드가 해야할 일인 부하의 종류에 따라 각 부하의 부하 수준값이 서로 달라질 수 있지만, 본 실시예에서 는 하나의 부하에 대해서는 하나의 부하 수준이 대응한다고 가정한다. 상기 네트웍이 처음 시동되었을 때에는 부하 수준의 값은 "0"이 될 것이다. 그리고 노드가 해야 하는 일인 부하가 하나 늘어나면 부하 수준도 하나 늘어나고 , 부하가 하나 줄면 부하 수준도 하나 주는 것으로 가정한다. 각 노드는 부하 수준을 노드 동작의 기준으로 한다.In this embodiment, the load level is expressed as an integer value. Although the load level values of each load may be different from each other according to the type of load that the node should do, in this embodiment, it is assumed that one load level corresponds to one load. When the network is first started up, the value of the load level will be "0". It is also assumed that if the load is increased by one node, the load level is increased by one and the load level is given by one node. Each node bases its load level on node operation.
그리고 본 실시예에서는 인접한 노드의 부하 수준을 측정하기 위하여 인접 노드를 폴링하는 방법을 사용한다.In this embodiment, a method of polling adjacent nodes is used to measure load levels of adjacent nodes.
부하 수준을 측정하는 단계(230)와 그에 따른 노드 동작을 이하 상세히 설명한다.Measuring the
도 3a는 본 발명에 따른 송신자 동작 흐름도이며, 도 3b는 본 발명에 따른 수신자 동작 흐름도이다.3A is a flowchart of a transmitter operation according to the present invention, and FIG. 3B is a flowchart of a receiver operation according to the present invention.
기존의 PSI 알고리즘과의 대조적인 설명을 위하여 4개의 노드로 네트웍이 구성되어 있다고 가정한다. 각 노드의 임계값은 4이다. 이 경우 한 노드가 다른 노드의 부하 수준을 측정하기 위해서 그 노드를 폴링하는 방법을 사용한다. 폴링하는 횟수는 2회로 한다. 그리고 각 노드는 링 구조로 데이터 전송로에 의해 연결되어 있다.In contrast to the conventional PSI algorithm, it is assumed that the network consists of four nodes. Each node has a threshold of four. In this case, one node polls the other node to measure the load level of another node. The number of polls is two times. Each node is connected by a data transmission path in a ring structure.
노드 1(300)의 부하 수준은 5, 노드 2(310)의 부하 수준은 6, 노드 3(320)의 부하 수준은 1 그리고 노드 4(330)의 부하 수준은 3이다.The load level of
도 3a에서 노드 1(300)의 부하 수준은 5이다. 자신의 부하 수준이 임계값보다 크기 때문에 폴링에 의해서 부하 수준이 임계값 이하인 노드를 찾아야 한다. 즉 송신자 동작을 한다. 이때 자신을 기준으로 시계 방향의 노드를 먼저 폴링한다(341). (반시계 방향의 노드를 먼저 폴링해도 관계없다.) 노드 2(310)에 송신자(sender) 메시지를 보낸다(341). 자신 노드의 일을 보내도 되는가를 문의하는 것이다. 노드 2(310)의 부하 수준은 6으로 임계값보다 크므로 거절(REJECT) 메시지를 노드 1(300)에 전송한다(342). 거절 메시지를 받은 노드 1(300)은 반시계 방향의 인접 노드인 노드 4(330)에 폴링하여 송신자 메시지를 보낸다(343). 노드 4(330)의 부하 수준은 임계값보다 작은 3이므로 수락(ACCEPT) 메시지를 노드 1(300)에 전송하게 되고(344), 이에 대해 노드 1(300)은 하나의 일을 노드 4(330)에 전송한다(345). In FIG. 3A, the load level of
위에서 폴링하는 횟수를 2회로 정했는데 이 폴링의 회수를 3으로 하면 시계 방향과 반시계 방향의 노드를 폴링한 후에 부하 배분이 이루어지지 않았다면 시계 방향으로 두 번째로 인접한 노드에 3번째로 폴링하게 된다. 이 경우 노드 3(320)까지 폴링하게 된다.If you set the number of polls to two times above, and the number of polls is 3, if the load distribution is not done after polling clockwise and counterclockwise nodes, it will poll the second neighbor to the third node clockwise. . In this case, the
도 3b에서 노드 3(320)의 부하 수준은 1이다. 자신의 부하 수준이 임계값보다 작기 때문에 폴링에 의해 부하 수준이 임계값 이상인 노드를 찾아야 한다. 즉, 수신자 동작을 한다. 먼저 시계 방향의 인접 노드를 먼저 폴링한다(351).(역시 반시계 방향의 노드를 먼저 폴링해도 관계없다.) 노드 4(330)에 수신자(receiver) 메시지를 전송한다(351). 자신의 노드에 일을 보내달라는 의미이다. 노드 4(330)의 부하 수준은 임계값보다 작은 3이므로 노드 4(330)는 거절 메시지를 노드 3(320)에 전송한다(352). 거절 메시지를 받은 노드 3(320)은 반시계 방향의 인접 노드인 노 드 2(310)에 폴링 메시지인 수신자 메시지를 보내게 된다(353). 노드 2(310)의 부하 수준은 임계값보다 큰 6이기 때문에 일을 노드 3(320)에 전송한다(354).In FIG. 3B, the load level of
또, 위에서 폴링하는 횟수를 2회로 정했는데, 이 폴링의 회수를 3으로 하면 시계 방향과 반시계 방향의 노드를 폴링한 후에 부하 배분이 이루어지지 않았다면 시계 방향으로 두 번째로 인접한 노드에 3번째로 폴링하게 된다.In addition, if the number of polling is determined as 2 times, and the number of polling is set to 3, if the load distribution is not performed after polling clockwise and counterclockwise nodes, the clockwise third is applied to the second adjacent node. Will poll.
상기 송신자 모드와 수신자 모드의 동작을 본 발명을 실시하는데 이용되는 방법은 추후에 상세히 기술된다.The method used to implement the invention in the sender mode and the receiver mode is described in detail later.
각 노드가 실행할 작업의 내용이 담긴 작업 메시지를 수신하여 부하 수준을 측정하는 단계(230 단계)는, 상기 작업 메시지의 내용이, 상기 작업 메시지를 수신한 노드가 소정의 노드 작업을 하라는 동작 모드이면, 노드 작업에 따른 소정 크기만큼 자신의 부하 수준을 증가시키는 단계, 상기 작업 메시지의 내용이, 상기 작업 메시지를 전송한 노드에서 메시지를 수신한 노드로 부하를 전송하겠다는 송신자 모드이면, 자신의 부하 수준을 계산하여, 이 부하 수준이 상기 임계값보다 작으면 수락 메시지를 상기 메시지를 전송한 노드에 전송하고, 상기 임계값보다 작지 않으면 상기 메시지를 전송한 노드에 거절 메시지를 전송하는 단계 및 상기 작업 메시지의 내용이, 수신한 상기 작업 메시지가 상기 작업 메시지를 수신한 노드에서 상기 작업 메시지를 전송한 노드로 부하를 전송하라는 수신자 모드이면, 자신의 부하 수준을 계산하여, 이 부하 수준이 상기 임계값보다 크면 자신의 부하 수준을 소정의 크기만큼 줄이고 상기 메시지를 전송한 노드로 부하를 전송하고, 상기 임계값보다 크지 않으면 상기 메시지를 전송한 노드로 거절 메시지를 전송하는 단계를 더 포함하 는 것이 바람직하다.Receiving a work message containing the content of the work to be executed by each node to measure the load level (step 230), if the content of the work message is an operation mode that the node receiving the work message to perform a predetermined node work Increasing the load level by a predetermined size according to the node's work; and if the content of the work message is a sender mode to send a load from the node that sent the work message to the node that received the message, the load level of the work message. Calculating, if the load level is less than the threshold, sending an accept message to the node that sent the message; if not less than the threshold, sending a reject message to the node that sent the message and the working message The received content of the work message is transmitted from the node that received the work message. In receiver mode to send a load to one node, calculate its load level, if this load level is greater than the threshold, reduce its load level by a certain amount and send the load to the node that sent the message, If it is not greater than the threshold, it is preferable to further include the step of transmitting a reject message to the node that sent the message.
도 4는 본 발명에 따른 노드의 상세 동작 흐름도이다. 부하 수준을 측정하는 단계(230 단계)에 포함되는 상기 과정은 도 4의 참조 번호 400 내지 참조 번호 440까지의 단계이다. 이하 이를 설명한다. 4 is a detailed operation flowchart of a node according to the present invention. The process included in the step of measuring the load level (step 230) is a step from 400 to 440 of FIG. This will be described below.
네트웍이 시동되고 필요한 변수가 지정된 후, 각 노드가 실행할 작업의 내용이 담긴 작업 메시지를 수신하게 된다(400 단계). 이 작업 메시지는 노드에 대한 일 즉 사용자의 작업으로 인한 부하나 네트웍 운영을 위한 작업과 같은 노드 작업에 대한 내용일 수도 있고, 다른 노드에서 전송되는 데이터일 수도 있다. 이 작업 메시지는 도 4에서 message.i로 표현된다.After the network is started up and the required variables are specified, each node will receive a job message containing the content of the job to be executed (step 400). This work message may be about a node's work, such as work on a node, such as a load due to a user's work or a network operation, or data transmitted from another node. This working message is represented by message.i in FIG.
작업 메시지의 상태가 무엇인가를 판별하여(402 단계) 수신한 메시지가 수신한 노드에서 노드 작업을 하는 동작 모드에 대한 것이면 수신한 노드는 자신의 부하 수준을 하나 증가시킨다. 도 4에서 부하 수준은 load.i로 표시되고, 부하 수준이 하나 증가하거나 감소하는 것을 큐(queue)를 사용해서 큐 값이 하나 증가하거나 감소하는 것으로 표현한다.If the status of the work message is determined (step 402) and the received message is for an operation mode in which the node works with the received node, the received node increases its load level by one. In FIG. 4, the load level is denoted as load.i, and the increase or decrease of the load level is expressed by increasing or decreasing the queue value by one using a queue.
작업 메시지가 메시지를 전송한 노드에서 메시지를 수신한 노드로 부하를 전송하겠다는 송신자 모드 메시지이면 메시지를 수신한 노드는 자신 노드의 부하 수준을 계산(420 단계)한다. 이 부하 수준이 임계값보다 작으면 수락 메시지를 상기 작업 메시지를 전송한 노드에 전송하고(424 단계) 그렇지 않으면 상기 메시지를 전송한 노드에 거절 메시지를 전송한다(426 단계). 이때 수락 메시지를 받은 노드는 수락 메시지를 보낸 노드에 부하를 하나 전송하여 자신의 부하 수준을 하나 낮추게 된다.If the work message is a sender mode message to send a load from the node that sent the message to the node that received the message, the node that receives the message calculates the load level of its own node (step 420). If the load level is less than the threshold, an acceptance message is sent to the node that sent the work message (step 424); otherwise, a rejection message is sent to the node that sent the message (step 426). At this time, the node receiving the accept message transmits a load to the node that sent the accept message to lower its load level by one.
전송받은 메시지가 메시지를 수신한 노드에서 메시지를 전송한 노드로 부하를 전송하라는 수신자 모드이면 자신의 부하 수준을 계산(430 단계)하여 이 부하 수준이 임계값보다 크면 자신의 부하 수준을 하나 줄이고 상기 메시지를 전송한 노드로 부하를 전송하며(434 단계) 그렇지 않으면 상기 메시지를 전송한 노드로 거절 메시지를 전송한다(436 단계). If the received message is the receiver mode to send the load from the node that received the message to the node that sent the message, the load level is calculated (step 430). If the load level is greater than the threshold, the load level is reduced by one. The load is transmitted to the node that sent the message (step 434). Otherwise, the rejection message is sent to the node that sent the message (step 436).
참조 번호 410 내지 436의 단계를 거친 후 자신 노드의 부하 수준을 계산한다.(440 단계) 이로서 부하 수준을 측정하는 단계(230 단계)가 완료된다.After the reference numerals 410 to 436, the load level of the own node is calculated (step 440). The step of measuring the load level (step 230) is completed.
부하 수준의 상태를 판별하여(240 단계), 이 부하 수준이 임계값과 같다면 노드의 부하 수준을 하나 줄이고 노드 작업을 수행하며, 부하 수준 측정 단계(230 단계)부터 반복하는 노드 작업 단계(270 단계)를 수행한다.Determine the state of the load level (step 240), if the load level is equal to the threshold, reduce the node's load level by one, perform node operation, and repeat the node operation step (270) from the load level measurement step (230). Step).
부하 수준이 임계값보다 크면, 자신과 인접한 노드를 폴링하여 그 인접 노드의 부하 수준이 상기 임계값보다 작을 때에 자신의 부하를 그 인접노드에 전송하는 송신자(Sender) 단계를 수행한다(250 단계). 그리고 노드 작업 단계(270 단계)로 진행한다. If the load level is greater than the threshold, a sender step of polling a node adjacent to itself and transmitting its load to the neighbor node when the load level of the neighbor node is smaller than the threshold value is performed (step 250). . The process proceeds to a node task step (step 270).
부하 수준이 임계값보다 작으면, 자신과 인접한 노드를 폴링하여 그 인접 노드의 부하 수준이 상기 임계값보다 클 때에 그 인접 노드의 부하를 전송받는 수신자 단계를 수행한다(260 단계). 그리고 노드 작업 단계(270 단계)로 진행한다.If the load level is less than the threshold, polling the node adjacent to itself and performing the receiver step of receiving the load of the neighbor node when the load level of the neighbor node is greater than the threshold (step 260). The process proceeds to a node task step (step 270).
도 2의 참조 번호 240부터 참조 번호 270까지의 단계를 도 4의 참조 번호 442 내지 480을 참조하여 상세히 설명한다. Steps from
참조 번호 440에서 계산한 부하 수준의 상태를 판별(442 단계)하여 부하 수준이 임계값과 같다면 노드의 부하 수준을 하나 줄이고 노드 작업을 수행(450 단계)하며, 부하 수준 측정 단계(230 단계 혹은 400 단계)부터 반복하게 된다.If the load level calculated in
부하 수준의 상태를 판별(442 단계)하여 부하 수준이 임계값보다 크면, 자신과 인접한 노드를 폴링하여 그 인접 노드의 부하 수준이 상기 임계값보다 작을 때에 자신의 부하를 그 인접노드에 전송하는 송신자(Sender) 단계를 수행한다(460 단계). 이후 복귀(465 단계)하여 노드 작업 단계(270 단계 또는 450 단계)로 돌아온다.Determine the status of the load level (step 442), if the load level is greater than the threshold, polling the node adjacent to itself and transmitting its load to that neighbor when the load level of that neighbor is less than the threshold. (Sender) is performed (step 460). Thereafter, the process returns to step 465 to return to the
상기 송신자 단계(250 단계 또는 460 단계)는 인접한 노드의 부하를 측정할 때에 링 구조로 구성된 각 노드 중에서 시계 방향과 반시계 방향에 위치하여 인접해 있는 두 노드만을 측정하는 것이 바람직하다. 시뮬레이션(simulation)을 통해 시험한 결과 폴링의 회수는 2회로 하여 인접한 두 노드만을 부하 측정하는 것이 가장 효율적임을 확인할 수 있기 때문이다. 즉, 네트웍을 재구성할 때에 전송 지연시간이 가장 작은 노드가 인접하도록 재구성했기 때문에, 전송 지연 시간이 가장 작은 두 노드를 폴링하여 그 노드들의 부하를 측정하는 것이 가장 효율이 좋다.In the transmitter step (step 250 or step 460), when measuring the load of the adjacent node, it is preferable to measure only two nodes adjacent to each other located in the clockwise and counterclockwise directions among the nodes configured in the ring structure. This is because the simulation results show that the most efficient polling is to double the number of polls and measure the load of only two adjacent nodes. In other words, when reconfiguring the network, since the nodes having the smallest transmission delay are reconfigured to be adjacent to each other, it is most efficient to poll two nodes having the smallest transmission delay and measure the load of the nodes.
도 5는 본 발명에 따른 송신자 단계의 상세 흐름도이다.5 is a detailed flowchart of a sender step according to the present invention.
도 5의 참조 번호 500은 도 2의 참조 번호 250 또는 도 4의 참조 번호 460의 송신자 단계의 시작 부분이다.
송신자 단계(250 단계 또는 460 단계)는 각 노드의 시계 방향 또는 반시계 방향의 노드 중에서 전송 지연 시간이 작은 한 노드(F)를 선택하여 그 노드에 부하 를 전송하겠다는 메시지(Sender Probe)를 전송하는 송신자 모드 전송 단계(510 단계), 상기 선택된 노드에서 상기 송신자 모드 메시지에 응답하는 인식 메시지(Acknowledge, A.f)를 수신하는 단계(520 단계), 상기 인식 메시지(A.f)가 수락 메시지(ACCEPT)이면(530 단계) 자신 노드의 부하 수준을 하나 줄이고 부하를 상기 선택된 노드에 전송(540 단계)한 후 노드 작업 단계(270 단계 또는 450 단계)로 진행하는 단계(580) 및 상기 인식 메시지(A.f)가 거절 메시지(REJECT)이면(530 단계) 상기 시계 방향 또는 반시계 방향에 있는 노드 중 다른 노드(S)에 송신자 모드 전송을 하고(550 단계), 이 송신자 모드 전송에 응답하는 상기 다른 노드에서 받은(560 단계) 인식 메시지(Acknowledge, A.s)가 수락 메시지(ACCEPT)이면(570 단계) 자신 노드의 부하 수준을 하나 줄이고 상기 다른 노드에 부하를 전송(540 단계)한 후 노드 작업 단계(270 단계 또는 450 단계)로 진행(580 단계)하며, 상기 다른 노드에서 받은 메시지(A.s)가 거절 메시지(REJECT)이면(570 단계) 노드 작업 단계(270 단계 또는 450 단계)로 진행(580 단계)하는 단계를 더 포함하는 것이 바람직하다.The sender step (step 250 or step 460) selects a node F having a small transmission delay time among clockwise or counterclockwise nodes of each node and transmits a message (Sender Probe) to transmit the load to the node. Sender mode transmission step (step 510), receiving an acknowledgment message (Acknowledge, Af) in response to the sender mode message at the selected node (step 520), if the acknowledgment message Af is an acceptance message (ACCEPT) ( Step 530) reduce the load level of one's own node, transfer the load to the selected node (step 540), and proceed to node operation step (step 270 or 450) (580) and the recognition message Af is rejected. If the message is a REJECT (step 530), the sender mode transmission to the other node (S) of the node in the clockwise or counterclockwise direction (step 550), the other in response to the sender mode transmission If the acknowledgment message (Acknowledge, As) received from the node (step 560) is the acknowledgment message (ACCEPT) (step 570), reduce the load level of one's own node and transmit the load to the other node (step 540) and then the node operation step ( If the message As received from the other node is a reject message (REJECT) (step 570), the process proceeds to the node operation step (step 270 or 450) (step 580). It is preferable to further comprise the step of.
그리고 이때에 상기 노드 작업 단계(270 단계 또는 450 단계)는 노드의 부하 수준 값이 '0'이 아니면 부하 수준을 측정하는 단계(230 단계)부터 반복하는 단계를 더 포함하는 것이 바람직하다. In this case, the node operation step (step 270 or step 450) may further include repeating the step of measuring the load level (step 230) if the load level value of the node is not '0'.
노드의 부하 수준이 임계값보다 작으면, 자신과 인접한 노드를 폴링하여 그 인접 노드의 부하 수준이 상기 임계값보다 클 때에 그 인접 노드의 부하를 전송받는 수신자 단계를 수행한다.(470 단계) 이후 복귀(465)하여 노드 작업 단계(270 단 계 또는 450 단계)로 돌아온다.If the load level of the node is less than the threshold, polling the node adjacent to itself and performing the receiver step of receiving the load of the neighbor node when the load level of the neighbor node is greater than the threshold (step 470). Return (465) to return to the node operation step (step 270 or 450).
수신자 단계(260 단계 또는 470 단계)는 인접한 노드의 부하를 측정할 때에 링 구조로 구성된 각 노드에서 시계 방향과 반시계 방향에 위치하여 인접해 있는 두 노드만을 측정하는 것이 바람직하다. 시뮬레이션(simulation)을 통해 시험한 결과 폴링의 회수는 2회로 하여 인접한 두 노드만을 부하 측정하는 것이 가장 효율적임을 확인할 수 있기 때문이다.In the receiver step (step 260 or step 470), when measuring loads of adjacent nodes, it is preferable to measure only two adjacent nodes located in clockwise and counterclockwise directions at each node configured in a ring structure. This is because the simulation results show that the most efficient polling is to double the number of polls and measure the load of only two adjacent nodes.
도 6은 본 발명에 따른 수신자 단계의 상세 흐름도이다.6 is a detailed flowchart of the receiver step according to the present invention.
도 6의 참조 번호 600은 도 2의 참조 번호 260 또는 도 4의 참조 번호 470의 수신자 단계의 시작 단계이다.The
수신자 단계(260 단계 또는 460 단계)는 각 노드의 시계 방향 또는 반시계 방향의 노드 중 전송 지연 시간이 작은 한 노드(F)를 선택하여 그 노드에서 부하를 전송 받겠다는 메시지(Receiver Probe)를 전송하는 수신자 모드 전송 단계(610 단계), 상기 선택된 노드에서 상기 수신자 모드 메시지에 응답하는 인식 메시지(Acknowledge, A.f)를 수신하는 단계(620 단계), 상기 인식 메시지(A.f)가 부하(WORK)이면 자신 노드의 부하 수준을 하나 늘리고(640 단계) 노드 작업 단계(270 단계 또는 450 단계)로 진행(680 단계)하는 단계 및 상기 인식 메시지(A.f)가 거절 메시지(REJECT)이면 상기 시계 방향 또는 반시계 방향의 노드 중 다른 노드(S)에 수신자 모드 전송(Receiver Probe)을 하고(650 단계), 이 수신자 모드 전송에 응답하는 상기 다른 노드에서 받은(660 단계) 인식 메시지(Acknowledge, A.s)가 부하(WORK)이면(670 단계) 자신 노드의 부하 수준을 하나 늘리고(640 단계) 노드 작업 단계(270 단계 또는 450 단계)로 진행하며(680 단계), 상기 다른 노드에서 받은 인식 메시지(A.s)가 거절 메시지(REJECT)이면(670 단계) 노드 작업 단계(270 단계 또는 450 단계)로 진행(680 단계)하는 단계를 더 포함하는 것이 바람직하다.The receiver step (step 260 or step 460) selects a node (F) having a small transmission delay time among clockwise or counterclockwise nodes of each node and transmits a message (Receiver Probe) to receive the load from the node. A receiver mode transmission step (step 610), a step of receiving an acknowledgment message (Acknowledge, Af) in response to the receiver mode message at the selected node (step 620), and if the acknowledgment message Af is WORK, Increasing the load level of the node by one (step 640) and proceeding to the node operation step (step 270 or 450) (step 680) and if the recognition message Af is a rejection message REJECT, the clockwise or counterclockwise direction. The receiver mode transmission (Receiver Probe) to the other node (S) of the node (step 650), the acknowledgment message (Acknowledge, As) received from the other node in response to the receiver mode transmission (step 660) If it is WORK (step 670), increase the load level of one's own node (step 640), proceed to node work step (step 270 or 450) (step 680), and the recognition message As received from the other node is If it is a reject message (REJECT) (step 670) it is preferable to further include the step of proceeding to the node operation step (step 270 or 450) (step 680).
그리고 이때에 상기 노드 작업 단계(270 단계 또는 450 단계)는 노드의 부하 수준 값이 '0'이 아니면 상기 부하 수준을 측정하는 단계(230 단계)부터 반복하는 단계를 더 포함하는 것이 바람직하다.In this case, the node operation step (step 270 or step 450) may further include repeating the step of measuring the load level (step 230) if the node load level value is not '0'.
도 4의 참조 번호 400 내지 참조 번호 480 까지의 단계는 다음의 의사코드(pseudo code)로 표현된다.
program NeighborSymmetricprogram NeighborSymmetric
beginbegin
인접 노드의 지연시간을 구한다.Find the delay time of the adjacent node.
f = 지연시간이 가장 작은 노드f = node with lowest latency
s = 지연시간이 두 번째로 작은 노드s = node with second lowest latency
while(노드 작업을 수행하는 동안) dowhile (while performing node operations) do
beginbegin
메시지(message.i)를 받는다.Receive a message (message.i).
if(message.i==work) then 큐를 하나 증가시킨다. end;if (message.i == work) then increments the queue by one end;
else if(message.i==SENDER) then else if (message.i == SENDER) then
자신의 로드 레벨(load.i)를 계산한다.Calculate your load level (load.i).
if(load.i < T) ACCEPT를 전송. else REJECT를 전송. send if (load.i <T) ACCEPT Send else REJECT.
end;end;
else if(message.i==RECEIVER) then else if (message.i == RECEIVER) then
자신의 로드 레벨(load.i)을 계산한다.Calculate your load level (load.i).
if(load.i>T) then 큐를 줄이고 일을 전송한다. end;if (load.i> T) then dequeue and send work end;
else REJECT를 전송.Send else REJECT.
end;end;
자신의 로드 레벨(load.i)를 계산한다.Calculate your load level (load.i).
if (load.i > T) then call Sender(f,s) end;if (load.i> T) then call Sender (f, s) end;
else if(load.i < T) then call Receiver(f,s) end;else if (load.i <T) then call Receiver (f, s) end;
큐를 하나 줄이고 노드 작업을 수행한다.Reduce the queue by one and perform node operations.
end;end;
end.end.
상기 Sender(f,s) 프로시져는 다음의 의사 코드로 표현된다.The Sender (f, s) procedure is represented by the following pseudo code.
Procedure Sender(f,s)Procedure Sender (f, s)
beginbegin
f에 Sender Probe를 보낸다.Send a Sender Probe to f
f에서 Acknowledge(A.f)를 받는다.Receive Acknowledge (A.f) at f.
if(A.f==ACCEPT) then 큐를 줄이고 일을 전송한다. end;if (A.f == ACCEPT) then Decrease the queue and send the job. end;
else if(A.f==REJECT) thenelse if (A.f == REJECT) then
s에 Sender Probe를 보낸다.Send Sender Probe to s
s에서 Acknowledge(A.s)를 받는다.Receive Acknowledge (A.s) in s
if(A.s==ACCEPT) then 큐를 줄이고 일을 전송한다. end;if (A.s == ACCEPT) then Decrease the queue and send the job. end;
end;end;
end.end.
상기 Receiver(f,s) 프로시져는 다음의 의사 코드로 표현된다.The Receiver (f, s) procedure is represented by the following pseudo code.
Procedure Receiver(f,s)Procedure Receiver (f, s)
beginbegin
f에 Receiver Porbe를 보낸다.Send Receiver Porbe to f.
f에서 Acknowledge(A.f)를 받는다.Receive Acknowledge (A.f) at f.
if(A.f==WORK) then 큐를 증가시킨다. end;if (A.f == WORK) then Increments the queue. end;
if(A.f==REJECT) thenif (A.f == REJECT) then
s에 Receiver Probe를 보낸다.Send Receiver Probe to s
s에서 Acknowledge(A.s)를 받는다.Receive Acknowledge (A.s) in s
if(A.s==WORK) then 큐를 증가시킨다. end;if (A.s == WORK) then Increments the queue. end;
end;end;
end.end.
도 7은 본 발명에 따른 부하 균배 장치의 실시예를 도시한 것이다.7 shows an embodiment of a load balancing device according to the present invention.
본 장치는 노드 재구성부(700)와 부하조절부(720)를 포함한다. The apparatus includes a
노드 재구성부(700)는 네트웍의 데이터 전송로에 접속되는 노드들을 링 구조 로 재구성하는 기능을 하고, 부하조절부(720)는 링 구조로 재구성된 각 노드가 해야 할 일의 양인 부하 수준과 인접 노드의 부하 수준에 따라 각 노드의 부하를 조절하는 기능을 한다.The
노드 재구성부(700)는 지연시간 계산부(705)와 노드 배치부(710)를 포함한다. 지연시간 계산부(705)는 각 노드가 다른 노드에 지연 확인 신호를 전송하고 그 다른 노드가 이 신호에 대응하는 재전송을 하는 시간을 이용하여 상기 각 노드간의 데이터 전송 지연 시간을 계산한다. 그리고 노드 배치부(710)는 인접한 노드간의 상기 계산된 전송 지연시간이 최소가 되도록 상기 각 노드들을 배치하고 배치 완료 정보를 출력한다. 이 배치 완료 정보가 부하조절부(720)에 전달된다.The
노드 배치부(710)는, 상기 네트웍이 버스 구조일 때에, 버스 구조의 양끝에 위치한 노드 사이에 가상의 데이터 전송로가 이어진 것으로 하여, 이 양 끝의 노드를 인접하게 배치하는 기능을 더 포함하는 것이 바람직하다.The
부하조절부(720)는 부하 계산부(730), 송신 설정부(740), 수신 설정부(750) 및 노드 작업 실행부(760)를 포함하는 것이 바람직하다. The
이하 각 구성부의 동작을 상세히 설명한다.Hereinafter, the operation of each component will be described in detail.
부하 계산부(730)는 상기 배치 완료 정보를 수신하고, 노드가 실행할 작업의 내용을 포함하는 작업 메시지를 수신하며, 자신 노드의 노드 작업 완료 정보를 수신하여, 노드의 부하수준을 계산하고, 이 부하 수준이 소정의 임계값보다 크면 송신 신호, 작으면 수신 신호, 같으면 작업 신호를 출력한다.The
송신 설정부(740)는 상기 송신 신호를 받으면, 상기 링 구조로 구성된 각 노 드에서 시계 방향과 반시계 방향으로 인접한 두 노드 중 부하 수준이 상기 소정의 임계값보다 작은 노드에 자신의 부하를 전송하고 송신 완료 신호를 출력한다.Upon receiving the transmission signal, the
송신 설정부(740)의 기능을 실시한 장치의 상세한 동작은 다음과 같은 것이 바람직하다.It is preferable that the detailed operation of the apparatus which performed the function of the
송신 설정부(740)는 시계 방향 또는 반시계 방향의 노드 중 전송 지연 시간이 더 작은 노드에 부하를 송신하겠다는 송신자 모드 메시지를 전송한다. 그리고 그 노드에서 상기 송신자 모드 메시지에 응답하는 메시지가 수락 메시지(ACCEPT)이면 자신 노드의 부하 수준을 소정의 크기만큼 줄이고, 소정의 부하(WORK)를 상기 선택된 노드에 전송한 후 송신 완료 신호를 출력한다. 그리고, 상기 응답 메시지가 거절 메시지(REJECT)이면 상기 시계 방향 또는 반시계 방향의 노드 중 선택되지 않았던 다른 노드에 송신자 모드 메시지를 전송하고, 이 송신자 모드 메시지에 응답하는 상기 다른 노드에서 받은 메시지가 수락 메시지이면 자신 노드의 부하 수준을 소정의 크기만큼 줄이고 상기 다른 노드에 소정의 부하를 전송한 후 송신 완료 신호를 출력하며, 상기 다른 노드에서 받은 메시지가 거절 메시지이면 송신 완료 신호를 출력한다.The
수신 설정부(750)는 상기 수신 신호를 받으면, 상기 링 구조로 구성된 각 노드에서 시계 방향과 반시계 방향으로 인접한 두 노드 중 부하 수준이 상기 임계값보다 큰 노드에서 부하를 전송 받고 수신 완료 신호를 출력한다.When receiving the reception signal, the reception setting unit 750 receives a load from a node having a load level greater than the threshold value among the two nodes adjacent in the clockwise and counterclockwise directions at each node having the ring structure, and receives a reception completion signal. Output
수신 설정부(750)의 기능을 실시한 장치의 상세한 동작은 다음과 같은 것이 바람직하다.The detailed operation of the apparatus that performed the function of the reception setting unit 750 is as follows.
수신 설정부(750)는 시계 방향 또는 반시계 방향 노드 중 전송 지연 시간이 더 작은 노드에 그 노드에서 부하를 전송 받겠다는 수신자 모드 메시지를 전송한다. 그리고, 그 노드에서 상기 수신자 모드 메시지에 응답하는 메시지가 부하이면 자신 노드의 부하 수준을 소정의 크기만큼 늘린 후 수신 완료 신호를 출력한다. 그 메시지가 거절 메시지이면 상기 시계 방향 또는 반시계 방향 노드 중 선택되지 않았던 다른 노드에 수신자 모드 메시지를 전송한다. 이 수신자 모드 전송에 응답하는 상기 다른 노드에서 받은 인식 메시지가 부하이면 자신 노드의 부하 수준을 소정의 크기만큼 늘리고 수신 완료 신호를 출력하며, 상기 다른 노드에서 받은 인식 메시지가 거절 메시지이면 수신 완료 신호를 출력한다.The reception setting unit 750 transmits a receiver mode message to the node that has a smaller transmission delay time among clockwise or counterclockwise nodes to receive the load from the node. If the node responds to the receiver mode message, the node increases its load level by a predetermined amount and outputs a reception completion signal. If the message is a rejection message, the receiver mode message is transmitted to another node that has not been selected among the clockwise or counterclockwise nodes. If the acknowledgment message received from the other node in response to the receiver mode transmission is a load, increase the load level of the own node by a predetermined amount and output a reception completion signal; if the acknowledgment message received from the other node is a rejection message, the reception completion signal is received. Output
노드 작업 실행부(760)는 상기 작업 완료 신호, 상기 송신 완료 신호 혹은 상기 수신 완료 신호 중 하나를 입력받으면 소정의 노드 작업을 실행하고, 노드 작업에 따른 소정의 크기만큼 부하수준을 감소하며, 노드 작업 완료 신호를 출력한다.When the node
부하 계산부(730)는 작업 메시지 해석부(732), 부하 송신 처리부(734), 부하 수신 처리부(736) 및 부하 상태 제어부(738)를 더 포함하는 것이 바람직하다. The
이하 각 구성부의 동작을 상세히 설명한다.Hereinafter, the operation of each component will be described in detail.
작업 메시지 해석부(732)는 노드 배치부(710)의 배치 완료 정보를 수신한 후, 노드 작업 실행부(760)의 노드 작업 완료 신호를 수신하면, 수신한 상기 작업 메시지를 분석하여, 상기 작업 메시지의 내용이 동작 모드이면, 노드 작업에 따른 소정 크기의 부하 수준과 증가 상태를 표시하는 부하 증가 신호를 출력한다. 동작 모드의 메시지는 다른 노드에서 전송된 네트웍 작업일 수 있고 또는 노드에 연결된 단말등이 요청한 네트웍 작업을 해야하는 경우일 수도 있다. 그리고 작업 메시지가 송신자 모드이면 부하 송신 신호를 출력한다. 송신자 모드의 작업 메시지는 다른 노드, 본 발명의 방법에 따르면 인접한 노드의 송신 설정부에서 전송되는 것이다. 또 작업 메시지가 수신자 모드이면 부하 수신 신호를 출력한다. 이 수신자 모드 메시지는 다른 노드의 수신 설정부에서 전송되는 것이다.When the
부하 송신 처리부(734)는 상기 부하 송신 신호가 입력되면, 자신 노드의 부하 수준을 판단하여 소정의 임계값보다 작으면 상기 작업 메시지를 전송한 노드에 수락 신호를 전송한다. 그러면 그 노드에서 부하가 전송된다. 작업 메시지를 전송한 것은 인접한 노드의 송신 설정부이며 그 송신 설정부가 보낸 부하를 받는 것이다. 그리고 부하 송신 처리가 끝났음을 알리는 완료 신호를 출력한다. 부하 수준이 상기 임계값보다 작지 않으면 상기 작업 메시지를 전송한 노드 즉, 그 노드의 송신 설정부에 거절 메시지를 출력한 후, 부하 송신 처리가 끝났음을 알리는 완료 신호를 출력한다.When the load transmission signal is input, the load
부하 수신 처리부(736)는 상기 부하 수신 신호가 입력되면, 자신 노드의 부하 수준이 상기 소정의 임계값보다 크면 자신의 부하를 인접한 노드에 보내기 위해 자신의 부하 수준을 보낼 부하에 따른 소정의 크기만큼 줄인다. 그리고 상기 작업 메시지를 전송한 노드로 소정의 부하를 전송한다. 부하를 제거한 것이므로 부하 수준은 줄었으므로, 이를 표시하기 위해 전송한 부하에 따른 소정 크기의 부하 수준과 감소 상태를 표시하는 부하 감소 신호를 출력한다. 또한 노드의 부하 수준이 상 기 소정의 임계값보다 크지 않으면 상기 작업 메시지를 전송한 노드로 거절 메시지를 출력하고, 부하 수신 처리가 끝났음을 알리는 완료 신호를 출력한다.When the load receiving signal is input, the load receiving
부하 상태 제어부(738)는 상기 부하 증가 신호나 부하 감소 신호 혹은 완료 신호가 입력된 후, 부하 수준이 상기 소정의 임계값보다 크면 송신 신호, 작으면 수신 신호, 같으면 작업 신호를 출력한다. 이 신호들은 각각 송신 설정부(740), 수신 설정부(750) 및 노드 작업 실행부(760)로 전달된다.After the load increase signal, the load decrease signal, or the completion signal is input, the
본 발명을 적용하여 시뮬레이터(simulator)를 제작하여 다양한 환경에서 시험하여 기존의 부하 균배 기법들과 성능을 비교한 결과 본 발명은 임계값에 크게 영향을 받지 않음을 알 수 있다. 노드간의 응답 시간도 기존에 제안된 방법보다 짧아짐을 확인할 수 있다.As a result of comparing the performance with the existing load balancing techniques by producing a simulator using the present invention and testing it in various environments, it can be seen that the present invention is not significantly affected by the threshold value. The response time between nodes is also shorter than the conventional method.
본 발명을 무선 네트웍에 적용한다면 쉽게 분산 시스템 네트웍을 구성할 수 있다. 그리고 무선 랜(LAN)으로 연결된 컴퓨터 네트웍의 경우에 연결된 컴퓨터간의 거리에 따라 지연 시간이 크게 차이가 나므로 기존의 부하 균배 기법을 사용한다면 네트웍의 성능이 저하될 수 있으나 본 발명을 적용하여 네트웍의 오버헤드가 가장 적은 노드간의 부하 교환을 통해 데이터 전송 시간을 줄여, 노드에 많은 부하가 걸릴 때에도 가장 전송 지연 시간이 작은 가장 가까운 컴퓨터와 효율적으로 부하 교환을 할 수 있어 네트웍의 성능을 크게 높일 수 있다. If the present invention is applied to a wireless network, a distributed system network can be easily configured. In the case of a computer network connected by a wireless LAN, the delay time varies greatly depending on the distance between the connected computers. However, if the existing load balancing technique is used, the performance of the network may be degraded. The load exchange between the nodes with the least heads reduces the data transfer time, and the network performance can be greatly improved by efficiently exchanging loads with the closest computer with the smallest transmission delay even when the node is heavily loaded.
본 발명에 의하면, 네트웍에서 노드를 전송 지연 시간이 작은 노드가 인접하도록 네트웍을 재구성하여 자신의 부하 수준이 임계값보다 크면 인접 노드의 부하 수준에 따라 자신의 부하를 부하 수준이 임계값보다 작은 노드로 전송하고, 자신의 부하 수준이 임계값보다 작으면 인접 노드 중 부하 수준이 임계값보다 큰 노드에서 부하를 전송 받아 부하를 교환하여 대칭적으로 부하를 균배할 수 있어 네트웍의 성능을 크게 향상시킬 수 있다.According to the present invention, if the load level is greater than the threshold, the network is reconfigured so that the nodes having the smallest transmission delay time are adjacent to the nodes in the network. If the load level is less than the threshold, the load is transmitted from the nodes with the load level higher than the threshold, and the load can be exchanged symmetrically to balance the load. Can be.
Claims (21)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990000533A KR100618960B1 (en) | 1999-01-12 | 1999-01-12 | Method and apparatus for symmetrical load balancing through load exchange between adjacent nodes |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990000533A KR100618960B1 (en) | 1999-01-12 | 1999-01-12 | Method and apparatus for symmetrical load balancing through load exchange between adjacent nodes |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20000050564A KR20000050564A (en) | 2000-08-05 |
KR100618960B1 true KR100618960B1 (en) | 2006-09-01 |
Family
ID=19571039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019990000533A KR100618960B1 (en) | 1999-01-12 | 1999-01-12 | Method and apparatus for symmetrical load balancing through load exchange between adjacent nodes |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100618960B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475250B (en) * | 2019-01-24 | 2023-05-26 | 阿里巴巴集团控股有限公司 | Network optimization method and device in cloud environment |
-
1999
- 1999-01-12 KR KR1019990000533A patent/KR100618960B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR20000050564A (en) | 2000-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7062768B2 (en) | Dynamic load-distributed computer system using estimated expansion ratios and load-distributing method therefor | |
US4982185A (en) | System for synchronous measurement in a digital computer network | |
US8331237B2 (en) | Supervisory control method and supervisory control device | |
KR101769114B1 (en) | Sending node and buffer status reporting method | |
KR20090032454A (en) | Method and system for transmitting data by distributing traffic for each line between server and client connected through virtual interface | |
CN111726303A (en) | Flow control method and device and computing equipment | |
Usman et al. | Extended delivery time analysis for cognitive packet transmission with application to secondary queuing analysis | |
CN107332741B (en) | Network detection method, network detection device and intelligent terminal | |
KR100618960B1 (en) | Method and apparatus for symmetrical load balancing through load exchange between adjacent nodes | |
CN113556397B (en) | Cloud service resource scheduling method for IoT gateway | |
JP3507824B2 (en) | Data transmission device and data transmission method | |
JP3945390B2 (en) | Network device control system, server, and transmission control method | |
JPH07168790A (en) | Information processor | |
Pradeepa et al. | An estimated delay based association policy for web browsing in a multirate WLAN | |
US10104571B1 (en) | System for distributing data using a designated device | |
CN105634694A (en) | Method and system for data transmission between nodes | |
CN108600308A (en) | Data uploading method, device, storage medium and server | |
CN115348322B (en) | Data processing method, networking equipment and computer readable storage medium | |
US10177929B1 (en) | System for distributing data to multiple devices | |
KR100557077B1 (en) | Interprocessor communication performance test method and apparatus | |
KR100716170B1 (en) | Command retry apparatus and method in a network management system | |
WO2017154066A1 (en) | Elevator control device | |
WO2024150299A1 (en) | Device and method for preliminarily predicting and executing establishment of communication path | |
JPH10240697A (en) | Load distribution method based on session use rate | |
CN114205269A (en) | High-performance multi-task TCP speed measurement realization method and system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 19990112 |
|
PG1501 | Laying open of application | ||
A201 | Request for examination | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20031226 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 19990112 Comment text: Patent Application |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20051028 Patent event code: PE09021S01D |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20060313 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20060721 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20060825 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20060828 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20090730 Start annual number: 4 End annual number: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20100729 Start annual number: 5 End annual number: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20110728 Start annual number: 6 End annual number: 6 |
|
FPAY | Annual fee payment |
Payment date: 20120730 Year of fee payment: 7 |
|
PR1001 | Payment of annual fee |
Payment date: 20120730 Start annual number: 7 End annual number: 7 |
|
FPAY | Annual fee payment |
Payment date: 20130730 Year of fee payment: 8 |
|
PR1001 | Payment of annual fee |
Payment date: 20130730 Start annual number: 8 End annual number: 8 |
|
FPAY | Annual fee payment |
Payment date: 20140730 Year of fee payment: 9 |
|
PR1001 | Payment of annual fee |
Payment date: 20140730 Start annual number: 9 End annual number: 9 |
|
LAPS | Lapse due to unpaid annual fee | ||
PC1903 | Unpaid annual fee |
Termination category: Default of registration fee Termination date: 20160709 |