KR101957239B1 - Method and apparatus for processing tasks - Google Patents
Method and apparatus for processing tasks Download PDFInfo
- Publication number
- KR101957239B1 KR101957239B1 KR1020170138531A KR20170138531A KR101957239B1 KR 101957239 B1 KR101957239 B1 KR 101957239B1 KR 1020170138531 A KR1020170138531 A KR 1020170138531A KR 20170138531 A KR20170138531 A KR 20170138531A KR 101957239 B1 KR101957239 B1 KR 101957239B1
- Authority
- KR
- South Korea
- Prior art keywords
- host
- job
- status information
- network
- information
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer And Data Communications (AREA)
Abstract
클라이언트로부터 처리할 작업에 대한 정보를 수신하고, 각각의 호스트가 작업을 처리하는데 소요되는 시간을 나타내는 호스트 상태 정보 및 각각의 호스트와의 네트워크의 상태를 나타내는 네트워크 상태 정보를 획득하고, 호스트 상태 정보 및 네트워크 상태 정보에 기초하여, 작업을 처리할 호스트를 결정하며, 결정된 호스트로 작업의 처리에 필요한 정보를 전송하는 단계를 포함하는 작업 처리 방법. Obtains host status information indicating a time required for each host to process a job and network status information indicating a status of a network with each host, Determining a host to process the job based on the network status information, and transmitting information necessary for processing the job to the determined host.
Description
본 발명은 작업을 처리하는 방법 및 장치에 관한 것으로, 특히 SDN(Software-Defined Network) 환경에서 작업을 처리하는 방법 및 장치에 관한 것이다. The present invention relates to a method and apparatus for processing a job, and more particularly to a method and apparatus for processing a job in an SDN (Software-Defined Network) environment.
종래의 인터넷 구조는 클라이언트-서버 컴퓨팅이 지배적이던 지난 20년간 만들어진 것으로 이더넷 스위치와 라우터를 트리 형태로 배치한 계위적 구조를 취하고 있다. 최근 수년 사이에 일어난 모바일 장치와 컨텐츠의 폭발적 증가 및 클라우드 기반 가상화 서비스의 전개 그리고 미래 인터넷 구축연구는 현재의 네트워크 구조와 관리 구조에 대한 재검토를 요구하고 있다. 그 주요 이유는 급변하는 네트워크 사용 환경의 변화를 따라가지 못하는 현 네트워크 기술의 한계 및 벤더가 기술 개발을 주도하는 환경에 기인한다.The conventional Internet architecture has been developed over the last 20 years, when client-server computing dominates, and adopts a hierarchical structure in which Ethernet switches and routers are arranged in a tree form. The explosive growth of mobile devices and content in recent years, the deployment of cloud-based virtualization services, and the study of future Internet deployments require a review of the current network structure and management structure. The main reason is due to the limitations of current network technology that can not keep pace with the rapidly changing network environment and the environment where vendors lead the technology development.
종래의 인터넷 구조에 대한 해결책으로 최근 Software Defined Network(이하, SDN)가 각광을 받고 있다. SDN은 소프트웨어 프로그래밍을 통해 네트워크 경로 설정과 제어 및 복잡한 운용 관리를 편리하게 처리할 수 있는 차세대 네트워킹 기술이다. 이를 위하여 SDN에서는 네트워크의 데이터 평면(data plane)과 제어평면(control plane)을 분리하고 이 사이에 표준화된 인터페이스를 제공하며, 네트워크 운용자가 여러 상황에 맞추어 제어 평면을 프로그래밍하여 데이터 평면에서 이루어지는 통신 기능을 다양한 방식으로 제어할 수 있다.As a solution to the conventional Internet architecture, Software Defined Network (SDN) has recently been spotlighted. SDN is a next-generation networking technology that facilitates network routing, control and management of complex operations through software programming. For this purpose, the SDN separates the data plane and control plane of the network and provides a standardized interface between them. The network operator can program the control plane according to various situations, Can be controlled in various ways.
이러한, SDN에서는 효율적인 자원의 사용을 위하여 호스트에 작업을 할당하는 스케쥴링이 매우 중요하다. In SDN, it is very important to allocate tasks to hosts for efficient use of resources.
상기의 문제점을 해결하기 위한 본 발명의 목적은, 작업 요청의 정도에 따라 호스트 상황을 확인하는 주기를 적응적으로 조절하는 작업 처리 장치 및 방법을 제공하는 것이다. SUMMARY OF THE INVENTION An object of the present invention is to provide an apparatus and method for adaptively adjusting a period for checking a host status according to the degree of a task request.
또한, 네트워크 상황 및 호스트 상황에 기초하여 효율적으로 작업을 처리하는 작업 처리 방법 및 장치를 제공하는 것이다. In addition, it is an object of the present invention to provide a method and apparatus for processing a job efficiently based on a network situation and a host situation.
본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제(들)로 제한되지 않으며, 언급되지 않은 또 다른 과제(들)은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the above-mentioned problem (s), and another problem (s) not mentioned can be clearly understood by those skilled in the art from the following description.
상기의 목적을 달성하기 위한 본 발명의 일 실시예에 따른 작업 처리 방법은, 클라이언트로부터 처리할 작업에 대한 정보를 수신하는 단계; 각각의 호스트가 작업을 처리하는데 소요되는 시간을 나타내는 호스트 상태 정보 및 상기 각각의 호스트와의 네트워크의 상태를 나타내는 네트워크 상태 정보를 획득하는 단계; 상기 호스트 상태 정보 및 네트워크 상태 정보에 기초하여, 상기 작업을 처리할 호스트를 결정하는 단계; 및 상기 결정된 호스트로 상기 작업의 처리에 필요한 정보를 전송하는 단계를 포함하는 것이다. According to an aspect of the present invention, there is provided a method of processing a job, the method comprising: receiving information on a job to be processed from a client; Obtaining host status information indicating a time required for each host to process a job and network status information indicating a status of a network with each host; Determining a host to process the job based on the host status information and the network status information; And transmitting information necessary for processing the job to the determined host.
상기 정보를 획득하는 단계는, 상기 네트워크 및 상기 각각의 호스트의 상태를 확인하기 위한 모니터링 메시지를 상기 각각의 호스트로 전송하는 단계; 상기 전송에 대응하여, 상기 각각의 호스트로부터 대기 중인 작업의 양 및 평균 작업 처리 시간에 관한 정보가 포함된 응답 메시지를 수신하는 단계; 및 상기 응답 메시지에 기초하여, 상기 정보를 획득하는 단계를 포함할 수 있다. Wherein the obtaining of the information comprises: sending a monitoring message to each host to confirm the status of the network and each host; Receiving, in response to the transmission, a response message including information on the amount of waiting jobs and the average job processing time from each of the hosts; And obtaining the information based on the response message.
상기 모니터링 메시지를 전송하는 단계는, 상기 클라이언트가 요청하여 대기 중인 작업의 수에 기초하여, 상기 모니터링 메시지의 전송 주기를 조정하는 단계를 포함할 수 있다. The step of transmitting the monitoring message may include adjusting a transmission period of the monitoring message based on the number of jobs waiting for the client.
상기 호스트 상태 정보는, 상기 호스트에서 하나의 작업을 완료하는데 소요되는 평균 시간인 평균 작업 처리 시간과 상기 호스트에서 처리해야할 작업의 개수에 관한 정보에 기초하여 결정될 수 있다. The host status information may be determined based on information about an average task processing time, which is an average time required for completing a task in the host, and the number of tasks to be processed by the host.
상기 평균 작업 처리 시간은, 최근에 처리한 작업의 처리 시간에 가중치를 부여하여 결정될 수 있다. The average job processing time may be determined by weighting the processing time of the recently processed job.
상기 가중치는, 상기 최근에 처리한 작업이 상기 호스트에서 차지한 메모리 점유율에 기초하여 결정될 수 있다. The weight may be determined based on the memory occupancy that the recently processed task occupies in the host.
상기 네트워크 상태 정보는, 상기 클라인트로부터 상기 호스트까지 데이터가 전송되는데 소요되는 평균 시간인 평균 네트워크 지연 정보, 상기 클라인트가 요청한 작업의 크기 및 데이터의 손실율에 기초하여 결정될 수 있다. The network status information may be determined based on average network delay information, which is an average time required for data transmission from the client to the host, a size of a job requested by the client, and a data loss rate.
상기 호스트를 결정하는 단계는, 상기 클라이언트로부터 요청된 작업의 특성에 기초하여, 상기 호스트 상태 정보 및 상기 네트워크 상태 정보의 가중치를 변경하고, 변경된 가중치에 기초하여 상기 요청된 작업을 처리할 호스트를 결정하는 단계를 포함할 수 있다. Wherein the step of determining the host comprises the steps of: changing a weight of the host status information and the network status information based on characteristics of a job requested from the client; determining a host to process the requested job based on the changed weight; .
상기 호스트를 결정하는 단계는, 상기 호스트 상태 정보 및 상기 네트워크 상태 정보에 기초하여, 각각의 호스트에 대한 점수를 계산하는 단계; 및 상기 계산된 점수가 임계치 이상인 호스트가 존재하지 않으면 상기 작업의 처리를 중지하는 단계를 포함할 수 있다. The step of determining the host may include: calculating a score for each host based on the host status information and the network status information; And stopping the processing of the job if the calculated score is not equal to or greater than the threshold.
상기 호스트를 결정하는 단계는, 상기 계산된 점수가 임계치 이상인 호스트가 존재하면, 상기 계산된 점수가 임계치 이상인 호스트 중 대기 중인 작업이 없는 호스트에 상기 작업의 처리를 요청하는 단계를 더 포함할 수 있다. The step of determining the host may further include, if there is a host having the calculated score equal to or greater than the threshold, requesting processing of the job to a host having no job waiting among the hosts having the calculated score exceeding the threshold .
상기 호스트를 결정하는 단계는, 상기 계산된 점수가 임계치 이상인 호스트가 존재하면, 상기 계산된 점수가 임계치 이상인 호스트 중 상기 계산된 점수가 가장 높은 호스트로 상기 작업의 처리를 요청하는 단계를 더 포함할 수 있다. The step of determining the host may further include, if there is a host having the calculated score exceeding the threshold, requesting processing of the task to a host having the highest score among the hosts having the calculated score equal to or higher than the threshold .
상기 작업에 필요한 정보를 전송하는 단계는, 상기 결정된 호스트에 대응하는 라우터로 상기 작업의 처리에 필요한 정보를 전송하는 단계를 포함할 수 있다. The step of transmitting information necessary for the task may include transmitting information necessary for processing the job to the router corresponding to the determined host.
상기 방법은, 상기 라우터로부터 상기 작업의 처리 결과를 수신하는 단계; 및 상기 수신된 처리 결과를 상기 클라이언트에 전송하는 단계를 더 포함할 수 있다. The method includes: receiving a processing result of the job from the router; And transmitting the received processing result to the client.
상기 네트워크는, SDN(Software-Defined Networking)일 수 있다. The network may be SDN (Software-Defined Networking).
상기의 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 작업 처리 장치는, 클라이언트로부터 처리할 작업에 대한 정보를 수신하는 수신부; 각각의 호스트가 작업을 처리하는데 소요되는 시간을 나타내는 호스트 상태 정보 및 상기 각각의 호스트와의 네트워크의 상태를 나타내는 네트워크 상태 정보를 획득하는 정보 획득부; 상기 호스트 상태 정보 및 네트워크 상태 정보에 기초하여, 상기 작업을 처리할 호스트를 결정하는 결정부; 및 상기 결정된 호스트로 상기 작업의 처리에 필요한 정보를 전송하는 전송부를 포함하는 것이다. According to another aspect of the present invention, there is provided a task processing apparatus including: a receiving unit for receiving information on a task to be processed by a client; An information obtaining unit obtaining host status information indicating a time required for each host to process a job and network status information indicating a status of a network with each host; A determining unit that determines a host to process the job based on the host status information and the network status information; And a transmitting unit for transmitting information necessary for processing the job to the determined host.
본 발명의 일 실시예에 따른 작업 처리 장치는, 대기 중인 작업의 수에 기초하여 호스트의 상태를 확인하기 위한 모니터링 메시지의 전송 주기를 조절함으로서, 대기 작업이 많은 경우 호스트의 상태를 신속하게 확인하고 대기 작업이 적은 경우 데이터 오버해드를 감소시킨다. The job processing apparatus according to an embodiment of the present invention quickly checks the status of the host when there are many waiting jobs by adjusting the transmission period of the monitoring message for checking the status of the host based on the number of waiting jobs Reduce data overhead when there are few waiting jobs.
또한, 본 발명의 일 실시예에 따른 작업 처리 장치는, 호스트 상태 정보 및 네트워크 상태 정보에 기초하여 최적의 호스트에 작업을 할당함으로서 작업 처리 속도를 향상시킨다. In addition, the task processing apparatus according to an embodiment of the present invention improves the task processing speed by allocating tasks to the optimal host based on the host status information and the network status information.
도 1은 본 발명의 일 실시예에 따른 작업 처리 시스템에 관한 블록도를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 작업 처리 장치(200)에 관한 블록도를 나타낸다.
도 3은 본 발명의 일 실시예에 따른 작업 처리 장치(200)에서 모니터링 단계를 수행하는데 사용되는 알고리즘의 일 예를 나타내는 도면이다.
도 4은 본 발명의 일 실시예에 따른 작업 처리 장치(200)에서 작업 할당 단계를 수행하는데 사용되는 알고리즘의 일 예를 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따른 시스템 상태 정보(CSC)에 관한 일 예를 나타내는 도면이다.
도 6은 본 발명의 일 실시예에 따른 작업 처리 방법에 관한 흐름도를 나타낸다. 1 shows a block diagram of a task processing system according to an embodiment of the present invention.
2 shows a block diagram of a
3 is a diagram showing an example of an algorithm used to perform the monitoring step in the
FIG. 4 is a diagram illustrating an example of an algorithm used to perform the job assignment step in the
5 is a diagram illustrating an example of system status information (CSC) according to an embodiment of the present invention.
6 is a flowchart illustrating a job processing method according to an embodiment of the present invention.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.The terms first, second, A, B, etc. may be used to describe various elements, but the elements should not be limited by the terms. For example, without departing from the scope of the present invention, a first component may be termed a second component, and similarly, the term " second component " The second component may also be referred to as the first component. The term < RTI ID = 0.0 > and / or < / RTI > includes any combination of a plurality of related listed items or any of the plurality of related listed items.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일 실시예에 따른 작업 처리 시스템에 관한 블록도를 나타낸다. 1 shows a block diagram of a task processing system according to an embodiment of the present invention.
본 발명의 일 실시예에 따른 작업 처리 시스템(100)은 클라이언트(101), 작업 처리 장치(200), 라우터(103) 및 호스트(104)를 포함한다. 본 발명의 일 실시예에 따른 작업 처리 시스템(100)은 SDN(Software-Defined Network) 환경일 수 있다. 이 경우, 전통적인 네트워크와 달리 작업의 할당 및 경로 지정과 같은 제어 기능은 작업 처리 장치(200)에서 수행하고 라우터(103)는 작업 처리 장치(200)의 제어에 따라 작업 처리 장치(200)와 호스트(104)간의 데이터를 전송하는 역할만을 수행할 수 있다. A
클라이언트(101)는 작업 처리 시스템(100)을 통하여 하나 이상의 작업의 처리를 요청한다. 이 때, 복수의 클라이언트(101)가 동시에 작업 처리 시스템(100)에 연결될 수 있다. The
작업 처리 장치(200)는 클라이언트(101)로부터 작업 처리 요청을 수신하고, 각각의 작업을 처리할 호스트(104)를 결정한다. 작업 처리 장치(200)는 클라이언트(101)들이 요청한 작업에 관한 정보가 포함된 작업 리스트를 관리하며, 작업 리스트에 기초하여 해당 작업을 처리하기에 적합한 호스트(104)를 결정한다. 작업 처리 장치(200)는 기본적으로 FIFO(First Input First Output), 즉, 먼저 요청된 작업을 먼저 처리하지만, 예외적으로 특정 요건을 만족하는 작업을 먼저 처리할 수 있다. The
라우터(103)는 작업 처리 장치(200)로부터 작업의 처리에 필요한 데이터를 수신하여 후술할 호스트(104)로 전달한다. 작업 처리 시스템(100)이 SDN환경으로 구현될 경우, 라우터(103)는 작업 처리 장치(200)의 제어에 따라 데이터를 호스트(104)로 전달하는 역할만을 수행한다. 실시예에 따라서는 라우터(103)외에 전통적인 네트워크 장비에서의 스위치(미도시) 및 미들웨어(미도시)가 더 포함될 수 있으나, SDN 환경에서는 라우터(103)와 마찬가지로 작업 처리 장치(200)의 제어에 따라 데이터를 전송하는 역할만을 수행할 것이다. The
호스트(104)는 라우터(103)로부터 전달받은 데이터를 처리하고, 작업 처리 결과를 라우터(103)를 통하여 클라이언트(101)에 전달한다. The
도 2는 본 발명의 일 실시예에 따른 작업 처리 장치(200)에 관한 블록도를 나타낸다. 2 shows a block diagram of a
본 발명의 일 실시예에 따른 작업 처리 장치(200)는 수신부(210), 정보 획득부(220), 호스트 결정부(230) 및 전송부(240)를 포함한다. The
수신부(210)는 클라이언트(101)로부터 처리할 작업에 관한 정보를 수신한다. 수신부(210)는 복수의 클라이언트(101)로부터 복수의 작업의 처리를 요청받을 수 있으며, 작업 처리 장치(200)는 수신부(210)가 수신한 작업에 관한 정보에 기초하여 대기 작업 리스트를 관리하며, 대기 작업 리스트에 기초하여 해당 작업을 처리할 적절한 호스트를 결정할 것이다. The receiving
정보 획득부(220)는 호스트 상태 정보 및 네트워크 상태 정보를 획득한다. The
호스트 상태 정보는 각각의 호스트가 작업을 처리하는데 소요되는 시간을 나타내는 정보이다. 호스트 상태 정보는 호스트에서의 평균 작업 처리 시간 및 대기 중인 작업의 개수에 기초하여 결정될 수 있다. 예를 들어, 호스트 상태 정보를 작업 전송 예상 시간(Expected Job Transfer Time, 이하, EJTT)로 표현할 수 있으며, EJTT는 다음의 수학식 1에 의하여 계산될 수 있다. The host status information is information indicating the time required for each host to process the task. The host status information can be determined based on the average job processing time at the host and the number of waiting jobs. For example, the host status information may be expressed as Expected Job Transfer Time (EJTT), and EJTT can be calculated by the following equation (1).
[수학식 1][Equation 1]
EJTT = 평균 작업 처리 시간(average job execution time) × (대기 작업의 수 -1) EJTT = average job execution time × (number of waiting jobs -1)
평균 작업 처리 시간을 계산함에 있어서 가장 최근에 처리된 작업에 대하여 가중치를 부여할 수 있으며, 이 때 가중치는 가장 최근에 처리된 작업이 호스트의 메모리(또는, CPU)를 점유한 정도에 기초하여 결정될 수 있다. 다음의 수학식 2는 평균 작업 처리 시간에 관한 일 예이다. In calculating the average task processing time, the most recently processed task may be weighted, where the weight is determined based on the degree of occupancy of the most recently processed task by the host's memory (or CPU) . Equation (2) is an example of the average work processing time.
[수학식 2]&Quot; (2) "
Wnew ← Wold(1-a)+Wlast ×aW new? W old (1-a) + W last? A
Wnew: 호스트의 현재 평균 작업 시간W new : the current average working time of the host
Wold: 호스트의 직전 평균 작업 시간W old : the average time before the host was last run
Wlsat: 마지막 작업의 처리 시간W lsat : Processing time of the last operation
a: 마지막 작업을 처리할 때 메모리 점유율a: memory occupancy when processing the last operation
네트워크 상태 정보는 클라이언트(101)로부터 호스트(104)까지 데이터를 전송하는데 소요되는 시간과 패킷 손실율에 기초하여 결정될 수 있다. 일 예로, 네트워크 상태 정보는 예상 네트워크 지연(Expected Network Delay, 이하, ENT)로 표현될 수 있으며, ENT는 다음의 수학식 3으로 계산될 수 있다. The network status information can be determined based on the time required to transmit data from the
[수학식 3]&Quot; (3) "
ENT = 평균 네트워크 지연 * 현재 작업의 패킷 수 / (1-패킷 손실율)ENT = Average network delay * Number of packets in current job / (1-packet loss rate)
하나의 작업은 복수의 패킷으로 구성될 수 있으며, 평균 네트워크 지연은 처리(processing), 큐(queing), 대기(transmission), 지연(propagation)과 같이 패킷이 클라이언트에서 호스트(104)에 도달할 때까지 네트워크 상에서 소요되는 시간 중 적어도 하나를 포함할 수 있다. One task may be comprised of a plurality of packets, and the average network delay may be determined when a packet arrives at the
호스트 결정부(230)는 호스트 상태 정보 및 네트워크 상태 정보에 기초하여 작업을 처리할 호스트를 결정한다. The
호스트 결정부(230)는 호스트 상태 정보 및 네트워크 상태 정보에 기초하여 각각의 호스트에 대한 점수를 산정할 수 있으며, 이 때 작업의 종류에 따라 호스트 상태 정보 및 네트워크 상태 정보에 대한 가중치를 변경할 수 있다. 일 예로, 대기 중인 작업이 네트워크 상태에 민감한 작업인 경우 네트워크 상태 정보에 더 높은 가중치를 부여하고, 대기 중인 작업이 데이터의 처리 속도에 민감한 작업인 경우 호스트 상태 정보에 더 높은 가중치를 부여할 수 있다. The
호스트 결정부(230)는 계산된 호스트 점수와 소정의 기준과 비교하여 기준을 만족하는 호스트가 존재하지 않는 경우 기준을 만족하는 호스트가 발견될 때까지 해당 작업의 처리를 중지할 수 있다. The
호스트 결정부(230)는 기준을 만족하는 호스트가 존재할 경우, 기준을 만족하는 호스트 중 점수가 가장 높은 호스트에 작업을 할당하거나, 점수가 낮더라도 대기 작업이 없는 호스트에 작업을 할당할 수 있다. When there is a host satisfying the criterion, the
일 예로, 호스트 결정부(230)에서 산정한 호스트의 점수가 다음의 표 1과 같다고 가정해보자. As an example, suppose that the score of the host calculated by the
표 1에서는 설명의 편의를 위하여, EJTT와 ENT의 합에 따라 호스트 점수를 계산하며, 호스트 점수는 호스트간의 랭킹을 나타내는 것으로 가정한다. 이 때, EJTT와 ENT의 합이 작을 수록 해당 호스트의 랭킹이 높아지는 것으로 가정한다. 또한, 호스트 결정부(230)는 EJTT와 ENT의 합이 45 이하인 호스트에만 작업을 할당하는 것으로 가정한다. In Table 1, for convenience of explanation, the host score is calculated according to the sum of EJTT and ENT, and it is assumed that the host score represents the ranking between the hosts. In this case, it is assumed that the smaller the sum of EJTT and ENT, the higher the ranking of the host. It is also assumed that the
따라서, 호스트 결정부(230)는 호스트 A와 호스트 B 중 하나에 작업을 할당한다. 이 때, 호스트 B의 랭킹이 호스트 A보다 낮지만 호스트 B는 대기 중인 작업이 없기 때문에 호스트 결정부(230)는 호스트 B에 해당 작업을 할당할 수 있다. 또한, 실시예에 따라서는 대기 작업 수와 무관하게 랭킹이 높은 호스트 A에 작업을 할당할 수도 있다. Accordingly, the
전송부(240)는 작업을 처리할 호스트로 작업의 처리에 필요한 정보를 전송한다. 전송부(240)는 호스트에 대응하는 스위치 또는 라우터에 해당 작업의 처리에 필요한 정보를 전송할 수 있으며, 이 경우 작업의 처리에 필요한 정보는 스위치 또는 라우터를 거쳐 해당하는 호스트에 전달될 것이다. The transmitting
이하에서는, 시간 순서에 따라 작업 처리 장치(200)의 각 모듈에서의 동작을 설명한다. 설명의 편의를 위하여 모니터링 단계, 작업 할당 단계 및 작업 처리 단계로 구분하여 설명하기로 한다. Hereinafter, the operation of each module of the
[모니터링 단계][Monitoring step]
전송부(240)는 작업 처리 시스템(100)의 상태를 확인하기 위한 모니터링 메시지를 호스트에 주기적으로 전송한다. 이 때, 작업 처리 장치(200)는 대기중인 작업의 수에 기초하여 모니터링 메시지의 전송 주기를 제어할 수 있다. 즉, 대기 중인 작업의 수가 임계치 이상인 경우 작업 처리 시스템(100)의 상태를 신속하게 확인하기 위하여, 모니터링 메시지의 전송 주기를 짧게한다(예를 들면, 0.1CP/sec). 반면, 대기 중인 작업의 수가 임계치 이하인 경우 일반적인 상태로 보아 전송 주기를 길게(예를 들면, 1CP/sec)하여 시스템 오버헤드를 줄인다. The
전송부(240)가 모니터링 메시지를 전송하는 과정에 관한 알고리즘은 도 3에서 후술한다.An algorithm for the transmission of the monitoring message by the
수신부(210)는 모니터링 메시지를 수신한 호스트로부터 응답 메시지를 수신한다. 응답 메시지에는 현재 호스트의 상태를 나타낼 수 있는 정보가 포함될 수 있다. 일 예로, 응답 메시지에는 호스트 ID, 평균 작업 시간, 대기 작업 수가 포함될 수 있다. The receiving
정보 획득부(220)는 응답 메시지에 기초하여 네트워크 상태 정보 및 호스트 상태 정보를 획득하여 시스템(즉, 클라우드 시스템) 상태 정보(Current Status of Cloud, 이하 CSC)를 갱신한다. 정보 획득부(220)는 모니터링 메시지를 전송한 시간과 응답 메시지를 수신한 시간간의 차이 및 응답 메시지의 수신율에 기초하여 네트워크 상태 정보를 획득하고, 응답 메시지에 포함된 정보에 기초하여 호스트 상태 정보를 획득할 수 있다. 정보 획득부(220)가 갱신하는 CSC에 관한 일 예는 도 5에서 후술한다. The
[작업 할당 단계][Job Allocation Phase]
호스트 결정부(230)는 호스트 상태 정보 및 네트워크 상태 정보에 기초하여 작업을 처리할 호스트를 결정한다. The
호스트 결정부(230)는 호스트 상태 정보 및 네트워크 상태 정보에 기초하여 호스트 별 점수를 산정하고, 기준을 만족하는 호스트 중 하나에 작업을 할당한다. 호스트 결정부(230)에서 작업을 처리할 호스트를 결정하는 과정에 관한 알고리즘의 예는 도 4에서 후술한다. The
[작업 처리 단계][Job processing step]
전송부(240)는 호스트 결정부(230)에서 결정한 호스트의 IP로 목적지 IP를 변경한 후 연결 요청 메시지를 전송한다. 이 때, 소스 IP는 여전히 클라이언트의 IP로 유지할 수 있다. The transmitting
수신부(210)는 해당 호스트로부터 연결 수락 메시지를 수신한다. The receiving
수신부(210)는 호스트로부터 클라이언트로 전송되는 메시지를 인터셉트하여 소스 IP를 작업 처리 장치(200)의 IP로 변경한 후 클라이언트에 포워딩한다. 따라서, 해당 메시지를 수신한 클라이언트는 해당 메시지가 작업 처리 장치(200)로부터 수신된 것으로 해석하고 응답 메시지를 전송할 것이다.(즉, 세션의 형성)The receiving
전송부(240)는 클라이언트가 요청한 작업에 관한 정보(예를 들면, 작업에 필요한 패킷)를 호스트에 전송한다. The transmitting
호스트는 해당 작업을 처리한 후 수신부(210)로 전송한다. The host processes the corresponding job and transmits the processed job to the receiving
전송부(240)는 작업 처리 결과를 클라이언트에 재전송한다. The
도 3은 본 발명의 일 실시예에 따른 작업 처리 장치(200)에서 모니터링 단계를 수행하는데 사용되는 알고리즘의 일 예를 나타내는 도면이다. 3 is a diagram showing an example of an algorithm used to perform the monitoring step in the
2라인(310)을 참고하면, 대기 중인 작업의 수(q)가 '0'이상인지를 확인한다. 대기 중인 작업의 수가 '0'이상이라면, 처리하여야 할(또는, 할당되지 않은) 작업이 존재함을 의미한다.2
3라인(321)~4라인(322)을 참고하면, 응답 메시지를 수신하고, 응답 메시지에 기초하여 시스템(즉, 클라우드 시스템) 상태 정보(Current status of Cloud, 이하, CSC)를 갱신한다. 3
8라인(330)을 참고하면, 모니터링 메시지의 전송 주기를 1.0CP/sec로 설정한다. 8
9라인(342) ~ 10라인(344)를 참고하면, 대기 중인 작업의 개수가 임계치 이상이면 모니터링 메시지의 전송 주기를 0.1CP/sec로 변경한다. 따라서, 대기 중인 작업의 개수가 임계치 이상일 때는 모니터링 메시지의 전송 주기를 1/10로 짧게하여 작업 처리 장치(200)가 네트워크 및 호스트의 상태를 빠르게 인지할 수 있도록 한다. Referring to the 9th line (342) to the 10th line (344), if the number of queued jobs is equal to or greater than the threshold value, the transmission period of the monitoring message is changed to 0.1 CP / sec. Accordingly, when the number of queued jobs is equal to or greater than the threshold value, the transmission period of the monitoring message is shortened to 1/10 so that the
도 4은 본 발명의 일 실시예에 따른 작업 처리 장치(200)에서 작업 할당 단계를 수행하는데 사용되는 알고리즘의 일 예를 나타내는 도면이다. FIG. 4 is a diagram illustrating an example of an algorithm used to perform the job assignment step in the
1라인(411)을 참고하면, 처리할 작업(j)을 선택한다. 처리할 작업은 FIFO에 따라 선택될 수 있다. 즉, 먼저 요청된 작업을 먼저 선택할 수 있다. Referring to the
2라인(412)를 참고하면, 해당 작업을 처리할 호스트의 점수를 산정한다. 도 4에서는 호스트의 점수를 평균 응답 시간(Average Response Time, 이하, ART)로 표현하였으며, 네트워크 상태 정보와 호스트 상태 정보에 기초하여 산정된다. Referring to the
4라인(422) ~ 5라인(424)를 참고하면, 임계치 이하의 ART를 갖는 호스트가 존재하는지를 판단하고, 임계치 이하의 ART를 갖는 호스트가 존재하지 않는다면 작업(j)를 할당하지 않고, 임계치 이하의 ART를 갖는 호스트가 존재할 때까지 대기한다. 4
7라인(432) ~ 8라인(434)을 참고하면, 임계치 이하의 ART를 갖는 호스트 중 대기 중인 작업이 없는 호스트가 존재한다면 해당 호스트에 작업(j)를 할당한다. 7
10라인(440)을 참고하면, 임계치 이하의 ART를 갖는 모든 호스트가 대기 중인 작업이 존재한다면, 가장 적절한 호스트(예를 들면, ART가 가장 낮은 호스트)에 해당 작업(j)을 할당한다. 10
도 5는 본 발명의 일 실시예에 따른 시스템 상태 정보(CSC)에 관한 일 예를 나타내는 도면이다. 5 is a diagram illustrating an example of system status information (CSC) according to an embodiment of the present invention.
본 발명의 일 실시예에 따른 CSC는 Time 필드(510), C_ID 필드(520), Delay 필드(530), Loss 필드(540), Execution time필드(550) 및 Waiting Jobs 필드(560)을 포함할 수 있다. The CSC according to an embodiment of the present invention includes a
Time 필드(510)는 호스트로부터 메시지를 수신한 시간을 나타낸다. The
C_ID 필드(520)는 호스트 클라우드의 식별 정보를 포함한다. The
Delay 필드(530)는 클라이언트로부터 호스트까지 데이터를 전송할 때 예상되는 지연 시간을 나타낸다. 지연 시간은 모니터링 메시지와 응답 메시지의 송/수신 시간을 기초로 결정될 수 있다. The
Loss 필드(540)는 패킷 손실율을 나타낸다. 패킷 손실율은 모니터링 메시지와 응답 메시지의 송/수신 비율을 기초로 결정될 수 있다. The
Execution time 필드(550)는 해당 호스트에서 작업을 처리하는데 소요되는 시간을 나타낸다. The
Waiting Jobs 필드(560)는 해당 호스트에 대기 중인 작업의 수를 나타낸다. The
Execution time 필드(550)와 Waiting Jobs 필드(560)는 호스트의 현재 상태를 확인하는데 중요한 역할을 수행한다. The
도 5를 참고하면, ID가 "Host002"인 호스트는 지연 시간이 "0.16"으로 가장 짧고 패킷 손실율이 "0.04%"로 가장 작다. 또한, 작업 실행 시간이 '2.11'로 가장 짧고 대기중인 작업의 수는 '5'개로 평균에 해당한다. 특히, 9:34:12:45에 수신된 응답 메시지와 비교할 때 호스트의 상태가 더 좋아졌음을 확인할 수 있다. 따라서, 호스트 결정부(230)는 "Host002"인 호스트에 해당 작업을 할당할 수 있다. Referring to FIG. 5, a host with ID "Host002" has the smallest delay time of "0.16" and the smallest packet loss rate of "0.04%". Also, the task execution time is the shortest with '2.11' and the number of waiting jobs is '5'. In particular, it can be confirmed that the status of the host is improved when compared with the response message received at 9:34:12:45. Accordingly, the
도 6은 본 발명의 일 실시예에 따른 작업 처리 방법에 관한 흐름도를 나타낸다. 6 is a flowchart illustrating a job processing method according to an embodiment of the present invention.
단계 s610에서는, 작업 처리 장치(100)에 대기 중인 작업의 수가 임계치를 초과하는지를 판단한다. 대기 중인 작업의 수가 임계치를 초과하는 경우, 단계 s622를 수행하고, 대기 중인 작업의 수가 임계치 이하인 경우 단계 s624를 수행한다. In step s610, it is determined whether the number of jobs waiting in the
단계 s622에서는, 전송 주기를 짧게하여(예를 들면, 0.1CP/sec) 호스트에 모니터링 메시지를 전송한다. In step s622, the monitoring period is shortened (for example, 0.1 CP / sec) and the monitoring message is transmitted to the host.
단계 s624에서는, 전송 주기를 길게하여(예를 들면, 1CP/sec) 호스트에 모니터링 메시지를 전송한다. In step s624, the monitoring period is longer (for example, 1 CP / sec) and the monitoring message is transmitted to the host.
단계 s630에서는, 호스트로부터 응답 메시지를 수신한다. In step s630, a response message is received from the host.
단계 s640에서는, 응답 메시지에 기초하여 네트워크의 상태를 나타내는 네트워크 상태 정보와 호스트의 상태를 나타내는 호스트 상태 정보를 획득하고, 이에 기초하여 호스트에 대한 점수를 산정한다. In step s640, based on the response message, the network status information indicating the status of the network and the host status information indicating the status of the host are acquired, and the score for the host is calculated based on the obtained network status information.
단계 s650에서는, 호스트 점수에 기초하여 특정 기준을 만족하는 호스트가 존재하는지를 판단한다. 특정 기준을 만족하는 호스트가 존재하는 경우 단계 s660을 수행하고, 그렇지 않은 경우 단계 s650을 다시 수행하여 기준을 만족하는 호스트가 존재할 때까지 대기한다. In step s650, based on the host score, it is determined whether there is a host satisfying a specific criterion. If there is a host satisfying a specific criterion, step s660 is performed. Otherwise, step s650 is repeated to wait until there is a host satisfying the criterion.
단계 s660에서는, 특정 기준을 만족하는 호스트 중 대기 작업이 없는 호스트가 존재하는지를 판단한다. In step s660, it is determined whether there is a host that does not have a waiting job among the hosts satisfying the specific criterion.
기준을 만족하는 호스트 중 대기 작업이 없는 호스트가 존재하는 경우 단계 s662를 수행하여 해당 호스트에 작업을 할당한다. 그러나, 기준을 만족하는 모든 호스트에 대기 작업이 존재하는 경우 단계 s664를 수행하여 점수가 가장 높은 호스트에 해당 작업을 할당한다. If there is a host that does not have a waiting job among the hosts satisfying the criteria, step s662 is performed to allocate the job to the host. However, if there are waiting jobs in all the hosts satisfying the criteria, step s664 is performed to allocate the jobs to the host having the highest score.
본 발명의 이점 및/또는 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and / or features of the present invention, and how to accomplish them, will become apparent with reference to the embodiments described in detail below with reference to the accompanying drawings. It should be understood, however, that the invention is not limited to the disclosed embodiments, but is capable of many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, To fully disclose the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout the specification.
지금까지 본 발명에 따른 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서는 여러 가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허 청구의 범위뿐 아니라 이 특허 청구의 범위와 균등한 것들에 의해 정해져야 한다.While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the scope of the appended claims and equivalents thereof.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, Modification is possible. Accordingly, the spirit of the present invention should be understood only in accordance with the following claims, and all equivalents or equivalent variations thereof are included in the scope of the present invention.
101: 클라이언트
200: 작업 처리 장치
210: 수신부
220:정보 획득부
230: 호스트 결정부
240: 전송부101: Client
200: work processing device
210:
220: Information obtaining unit
230:
240:
Claims (15)
상기 작업 처리 장치에서, 각각의 호스트가 작업을 처리하는데 소요되는 시간을 나타내는 호스트 상태 정보 및 상기 클라이언트와 상기 각각의 호스트간의 네트워크의 상태를 나타내는 네트워크 상태 정보를 획득하는 단계;
상기 작업 처리 장치에서, 상기 호스트 상태 정보 및 네트워크 상태 정보에 기초하여, 상기 작업을 처리할 호스트를 결정하는 단계; 및
상기 작업 처리 장치에서, 상기 결정된 호스트로 상기 작업의 처리에 필요한 정보를 전송하는 단계를 포함하고,
상기 정보를 획득하는 단계는,
상기 네트워크 및 상기 각각의 호스트의 상태를 확인하기 위한 모니터링 메시지를 상기 각각의 호스트로 전송하는 단계;
상기 전송에 대응하여, 상기 각각의 호스트로부터 대기 중인 작업의 양 및 평균 작업 처리 시간에 관한 정보가 포함된 응답 메시지를 수신하는 단계; 및
상기 응답 메시지에 기초하여, 상기 호스트 상태 정보 및 상기 네트워크 상태 정보를 획득하는 단계를 포함하되,
상기 모니터링 메시지를 전송하는 단계는, 대기 중 작업의 수가 임계치 이상인 경우, 모니터링 메시지의 전송 주기를 짧게 조절하고, 상기 대기 중 작업의 수가 임계치 미만인 경우, 모니터링 메시지의 전송 주기를 길게 조절하는 것을 특징으로 하는 작업 처리 방법. In the job processing apparatus, receiving information on a job to be processed from a client;
The method comprising: obtaining host status information indicating a time required for each host to process a job and network status information indicating a status of a network between the client and each host in the job processing apparatus;
In the work processing apparatus, determining a host to process the job based on the host status information and the network status information; And
And transmitting, in the job processing apparatus, information necessary for processing the job to the determined host,
The step of acquiring the information comprises:
Sending a monitoring message to each host to confirm the status of the network and each host;
Receiving, in response to the transmission, a response message including information on the amount of waiting jobs and the average job processing time from each of the hosts; And
And obtaining the host status information and the network status information based on the response message,
The step of transmitting the monitoring message may shorten the transmission period of the monitoring message if the number of waiting jobs is equal to or greater than the threshold and adjust the transmission period of the monitoring message to be longer when the number of waiting jobs is less than the threshold. To be processed.
상기 호스트에서 하나의 작업을 완료하는데 소요되는 평균 시간인 평균 작업 처리 시간과 상기 호스트에서 처리해야할 작업의 개수에 관한 정보에 기초하여 결정되는 것을 특징으로 하는 작업 처리 방법. 2. The method of claim 1,
Based on information about an average task processing time which is an average time required for completing one task in the host and a number of tasks to be processed by the host.
최근에 처리한 작업의 처리 시간에 가중치를 부여하여 결정되는 것을 특징으로 하는 작업 처리 방법. 5. The method according to claim 4,
Wherein a weight is assigned to a processing time of a recently processed work.
상기 최근에 처리한 작업이 상기 호스트에서 차지한 메모리 점유율에 기초하여 결정되는 것을 특징으로 하는 작업 처리 방법. 6. The method of claim 5,
Wherein the recently processed work is determined based on a memory occupancy rate in the host.
상기 클라이언트로부터 상기 호스트까지 데이터가 전송되는데 소요되는 평균 시간인 평균 네트워크 지연 정보, 상기 클라이언트가 요청한 작업의 크기 및 데이터의 손실율에 기초하여 결정되는 것을 특징으로 하는 작업 처리 방법. 2. The method of claim 1,
The average network delay information which is an average time required for data transmission from the client to the host, the size of the job requested by the client, and the loss rate of the data.
상기 클라이언트로부터 요청된 작업의 특성에 기초하여, 상기 호스트 상태 정보 및 상기 네트워크 상태 정보의 가중치를 변경하고, 변경된 가중치에 기초하여 상기 요청된 작업을 처리할 호스트를 결정하는 단계를 포함하는 것을 특징으로 하는 작업 처리 방법. 2. The method of claim 1, wherein determining the host comprises:
Changing a weight of the host status information and the network status information based on a characteristic of the job requested from the client and determining a host to process the requested job based on the changed weight, To be processed.
상기 호스트 상태 정보 및 상기 네트워크 상태 정보에 기초하여, 각각의 호스트에 대한 점수를 계산하는 단계; 및
상기 계산된 점수가 임계치 이상인 호스트가 존재하지 않으면 상기 작업의 처리를 일시 중지하는 단계를 포함하는 것을 특징으로 하는 작업 처리 방법. 2. The method of claim 1, wherein determining the host comprises:
Calculating a score for each host based on the host status information and the network status information; And
And suspending the processing of the job if the calculated score is not equal to or greater than a threshold value.
상기 계산된 점수가 임계치 이상인 호스트가 존재하면, 상기 계산된 점수가 임계치 이상인 호스트 중 대기 중인 작업이 없는 호스트에 상기 작업의 처리를 요청하는 단계를 더 포함하는 것을 특징으로 하는 작업 처리 방법. 10. The method of claim 9, wherein determining the host comprises:
Further comprising the step of requesting a host having no job waiting among the hosts having the calculated score equal to or higher than a threshold value to process the job if the calculated score is equal to or greater than a threshold value.
상기 계산된 점수가 임계치 이상인 호스트가 존재하면, 상기 계산된 점수가 임계치 이상인 호스트 중 상기 계산된 점수가 가장 높은 호스트로 상기 작업의 처리를 요청하는 단계를 더 포함하는 것을 특징으로 하는 작업 처리 방법. 10. The method of claim 9, wherein determining the host comprises:
And requesting processing of the job to a host having the highest score among the hosts having the calculated score equal to or higher than the threshold, if the host having the calculated score exceeds the threshold.
상기 결정된 호스트에 대응하는 라우터로 상기 작업의 처리에 필요한 정보를 전송하는 단계를 포함하는 것을 특징으로 하는 작업 처리 방법. The method as claimed in claim 1,
And transmitting information necessary for processing the job to the router corresponding to the determined host.
상기 라우터로부터 상기 작업의 처리 결과를 수신하는 단계; 및
상기 수신된 처리 결과를 상기 클라이언트에 전송하는 단계를 더 포함하는 것을 특징으로 하는 작업 처리 방법. 13. The method of claim 12,
Receiving a processing result of the job from the router; And
And transmitting the received processing result to the client.
SDN(Software-Defined Networking)인 것을 특징으로 하는 작업 처리 방법. The network according to claim 1,
SDN (Software-Defined Networking).
각각의 호스트가 작업을 처리하는데 소요되는 시간을 나타내는 호스트 상태 정보 및 상기 클라이언트와 상기 각각의 호스트간의 네트워크의 상태를 나타내는 네트워크 상태 정보를 획득하는 정보 획득부;
상기 호스트 상태 정보 및 네트워크 상태 정보에 기초하여, 상기 작업을 처리할 호스트를 결정하는 결정부; 및
상기 결정된 호스트로 상기 작업의 처리에 필요한 정보를 전송하는 전송부를 포함하고,
상기 정보 획득부는,
상기 네트워크 및 상기 각각의 호스트의 상태를 확인하기 위한 모니터링 메시지를 상기 각각의 호스트로 전송하고, 상기 전송에 대응하여, 상기 각각의 호스트로부터 대기 중인 작업의 양 및 평균 작업 처리 시간에 관한 정보가 포함된 응답 메시지를 수신하고, 상기 응답 메시지에 기초하여, 상기 호스트 상태 정보 및 상기 네트워크 상태 정보를 획득하되, 대기 중 작업의 수가 임계치 이상인 경우 모니터링 메시지의 전송 주기를 짧게 조절하고, 상기 대기 중 작업의 수가 임계치 미만인 경우, 모니터링 메시지의 전송 주기를 길게 조절하는 것을 특징으로 하는 작업 처리 장치.
A receiving unit for receiving information on a job to be processed from a client;
An information obtaining unit for obtaining host status information indicating a time required for each host to process a job and network status information indicating a status of the network between the client and each of the hosts;
A determining unit that determines a host to process the job based on the host status information and the network status information; And
And a transfer unit for transferring information necessary for processing the job to the determined host,
The information obtaining unit obtains,
A monitoring message for confirming the status of the network and each of the hosts is transmitted to each of the hosts, and in response to the transmission, information about the amount of waiting jobs and the average job processing time from each host is included Wherein the host status information and the network status information are obtained based on the response message and the transmission period of the monitoring message is shortened when the number of waiting jobs is equal to or greater than the threshold, Wherein when the number of the monitoring messages is less than the threshold, the transmission period of the monitoring message is adjusted to be longer.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020170138531A KR101957239B1 (en) | 2017-10-24 | 2017-10-24 | Method and apparatus for processing tasks |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR1020170138531A KR101957239B1 (en) | 2017-10-24 | 2017-10-24 | Method and apparatus for processing tasks |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR101957239B1 true KR101957239B1 (en) | 2019-03-12 |
Family
ID=65800094
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020170138531A Expired - Fee Related KR101957239B1 (en) | 2017-10-24 | 2017-10-24 | Method and apparatus for processing tasks |
Country Status (1)
| Country | Link |
|---|---|
| KR (1) | KR101957239B1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112838980A (en) * | 2020-12-30 | 2021-05-25 | 北京奇艺世纪科技有限公司 | Message processing method, system, device, electronic equipment and storage medium |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005352697A (en) * | 2004-06-09 | 2005-12-22 | Canon Inc | Computer system and job assignment method in the system |
| JP2006293730A (en) * | 2005-04-12 | 2006-10-26 | Nec Corp | Job cooperation system, method, program, and recording medium |
| JP4034312B2 (en) * | 2003-03-24 | 2008-01-16 | 富士通株式会社 | Distributed processing control device, distributed processing control method, and distributed processing control program |
| KR20110064179A (en) * | 2009-12-07 | 2011-06-15 | 성균관대학교산학협력단 | Priority-based message scheduling method and apparatus therefor for multi-agent system |
| JP2013061700A (en) * | 2011-09-12 | 2013-04-04 | Sony Corp | Information processor, information processing method, recording medium, and information processing system |
-
2017
- 2017-10-24 KR KR1020170138531A patent/KR101957239B1/en not_active Expired - Fee Related
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4034312B2 (en) * | 2003-03-24 | 2008-01-16 | 富士通株式会社 | Distributed processing control device, distributed processing control method, and distributed processing control program |
| JP2005352697A (en) * | 2004-06-09 | 2005-12-22 | Canon Inc | Computer system and job assignment method in the system |
| JP2006293730A (en) * | 2005-04-12 | 2006-10-26 | Nec Corp | Job cooperation system, method, program, and recording medium |
| KR20110064179A (en) * | 2009-12-07 | 2011-06-15 | 성균관대학교산학협력단 | Priority-based message scheduling method and apparatus therefor for multi-agent system |
| JP2013061700A (en) * | 2011-09-12 | 2013-04-04 | Sony Corp | Information processor, information processing method, recording medium, and information processing system |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112838980A (en) * | 2020-12-30 | 2021-05-25 | 北京奇艺世纪科技有限公司 | Message processing method, system, device, electronic equipment and storage medium |
| CN112838980B (en) * | 2020-12-30 | 2023-06-13 | 北京奇艺世纪科技有限公司 | Message processing method, system, device, electronic equipment and storage medium |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5918021A (en) | System and method for dynamic distribution of data packets through multiple channels | |
| US10374945B1 (en) | Application-centric method to find relative paths | |
| CN110022264B (en) | Method, access device, and computer-readable storage medium for controlling network congestion | |
| JP5659125B2 (en) | Relay device and relay method | |
| US20170118108A1 (en) | Real Time Priority Selection Engine for Improved Burst Tolerance | |
| EP3031184B1 (en) | Performing quality-of-service on unknown bandwidths through rate estimating tcp congestion controllers | |
| US7315896B2 (en) | Server network controller including packet forwarding and method therefor | |
| US10164870B2 (en) | Relaxed ordering network | |
| WO2015118429A1 (en) | Method and system for supporting packet prioritization at a data network | |
| CN109617810B (en) | Data transmission method and device | |
| WO2014021839A1 (en) | Bandwidth guarantee and work conservation | |
| CN111343097B (en) | Link load balancing method and device, electronic equipment and storage medium | |
| WO2016064704A1 (en) | Distributed computing based on deep packet inspection by network devices along network path to computing device | |
| CN118295937A (en) | Fine-grained traffic shaping offload for network interface cards | |
| US10965605B2 (en) | Communication system, communication control method, and communication apparatus | |
| CN111835849A (en) | Method and device for enhancing service capability of access network | |
| CN103841042B (en) | Method and device for transmitting data with high operating efficiency | |
| EP4044525B1 (en) | Data transmission method and apparatus | |
| US9985886B2 (en) | Technologies for network packet pacing during segmentation operations | |
| US20160316022A1 (en) | Communication device, communication processing method, and storage medium | |
| WO2015107806A1 (en) | Communication apparatus | |
| WO2014155617A1 (en) | Communication device, communication method, and communication program | |
| KR101957239B1 (en) | Method and apparatus for processing tasks | |
| WO2014157512A1 (en) | System for providing virtual machines, device for determining paths, method for controlling paths, and program | |
| US10666565B2 (en) | Method to measure relative QOS gains and to reduce the variance in QOS for similar connections for during bandwidth contention |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
St.27 status event code: A-0-1-A10-A12-nap-PA0109 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| D13-X000 | Search requested |
St.27 status event code: A-1-2-D10-D13-srh-X000 |
|
| D14-X000 | Search report completed |
St.27 status event code: A-1-2-D10-D14-srh-X000 |
|
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
Fee payment year number: 1 St.27 status event code: A-2-2-U10-U11-oth-PR1002 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| PR1001 | Payment of annual fee |
Fee payment year number: 4 St.27 status event code: A-4-4-U10-U11-oth-PR1001 |
|
| PR1001 | Payment of annual fee |
Fee payment year number: 5 St.27 status event code: A-4-4-U10-U11-oth-PR1001 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |
|
| PN2301 | Change of applicant |
St.27 status event code: A-5-5-R10-R11-asn-PN2301 St.27 status event code: A-5-5-R10-R13-asn-PN2301 |
|
| PC1903 | Unpaid annual fee |
Not in force date: 20240307 Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE St.27 status event code: A-4-4-U10-U13-oth-PC1903 |
|
| PC1903 | Unpaid annual fee |
Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE Not in force date: 20240307 St.27 status event code: N-4-6-H10-H13-oth-PC1903 |
|
| R18-X000 | Changes to party contact information recorded |
St.27 status event code: A-5-5-R10-R18-oth-X000 |