KR20180072295A - Dynamic job scheduling system and method for supporting real-time stream data processing in distributed in-memory environment - Google Patents

Dynamic job scheduling system and method for supporting real-time stream data processing in distributed in-memory environment Download PDF

Info

Publication number
KR20180072295A
KR20180072295A KR1020160175725A KR20160175725A KR20180072295A KR 20180072295 A KR20180072295 A KR 20180072295A KR 1020160175725 A KR1020160175725 A KR 1020160175725A KR 20160175725 A KR20160175725 A KR 20160175725A KR 20180072295 A KR20180072295 A KR 20180072295A
Authority
KR
South Korea
Prior art keywords
node
load
memory
job
idle
Prior art date
Application number
KR1020160175725A
Other languages
Korean (ko)
Other versions
KR101886072B1 (en
Inventor
유재수
전현욱
임종태
복경수
Original Assignee
세림티에스지(주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 세림티에스지(주) filed Critical 세림티에스지(주)
Priority to KR1020160175725A priority Critical patent/KR101886072B1/en
Publication of KR20180072295A publication Critical patent/KR20180072295A/en
Application granted granted Critical
Publication of KR101886072B1 publication Critical patent/KR101886072B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5038Allocation 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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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

Abstract

According to the present invention, a dynamic job scheduling method in a dynamic job scheduling system for supporting real-time stream data processing in a distributed in-memory environment includes the steps of: calculating a load of each node in consideration of CPU usage, a size of an idle memory, and a network load when stream data is inputted; performing static job scheduling for assigning priority to each node according to the calculated load of each node to distribute jobs; managing status information of each node and load information consumed by each node in a load table after the distribution; and searching for a cause of a load by periodically checking the information of the load table, and redistributing the jobs through dynamic job scheduling using the CPU usage, memory usage, and the network load of each node according to the cause of the load. According to the present invention, a job delay and a loss due to a load on a node are prevented from occurring, and a data processing performance is improved.

Description

분산 인 메모리 환경에서 실시간 스트림 데이터 처리를 위한 동적 잡 스케쥴링 시스템 및 방법 {Dynamic job scheduling system and method for supporting real-time stream data processing in distributed in-memory environment}[0001] The present invention relates to a dynamic job scheduling system and method for real-time stream data processing in a distributed memory environment,

본 발명은 분산 인 메모리 환경에 관한 것으로서, 더욱 상세하게는 분산 인 메모리 환경에서 실시간 스트림 데이터를 처리하기 위한 기술에 관한 것이다. The present invention relates to a distributed memory environment, and more particularly to techniques for processing real-time stream data in a distributed memory environment.

최근 IT기술의 발전으로 모바일 단말기, 소셜 미디어, 사물인터넷(IOT: Internet of Things)과 같은 다양한 매체로 인해 생성 및 유통되는 정보량이 기하급수적으로 증가하고 있다. 이와 함께 기존 정보 처리 기술을 통해 데이터 저장, 관리, 분석이 어려워짐에 따라 빅데이터의 중요성이 증가되고 있다. Recently, with the development of IT technology, the amount of information generated and distributed due to various media such as mobile terminals, social media, and Internet of Things (IOT) is increasing exponentially. In addition, the importance of big data is increasing as data storage, management, and analysis become difficult through existing information processing technology.

빅데이터는 거대한 데이터 양(volume), 빠른 데이터 유통 및 이용 속도(velocity), 데이터 다양성(variety)의 특징을 가지고 있으며, 이와 관련하여 새로운 가치 창출을 위한 다양한 분석 및 처리 기법들에 대한 연구가 진행되고 있다. Big data has characteristics of huge data volume, fast data distribution and utilization rate, and data diversity. In this regard, research on various analysis and processing techniques for creating new value is conducted .

소셜 미디어 및 사물인터넷과 같은 다양한 매체의 활용이 증가되며 다양한 형태의 스트림 데이터가 생성된다. 스트림 데이터는 각종 장비, 응용 서비스 등에서 지속적으로 데이터가 발생되기 때문에, 실시간 데이터 수집 및 처리 방법이 요구된다. 예를 들어, 사건, 사고, 장애 및 시설물 관리 등 다양한 분야에서 방대한 양의 데이터들이 생성되고 있으며, 이렇게 생성된 데이터는 모니터링과 같은 실시간 시스템에 이용되고 있다.The use of various media such as social media and object internet is increased and various types of stream data are generated. Since stream data is continuously generated in various equipment and application services, real-time data collection and processing methods are required. For example, vast amounts of data are being generated in various fields such as events, accidents, obstacles, and facilities management, and the data thus generated is used in real-time systems such as monitoring.

기존의 빅데이터 처리는 분산 처리 시스템인 하둡(Hadoop)을 사용한다. 하둡은 하둡파일시스템(HDFS)과 맵리듀스(Mapreduce)로 구성된다.The existing big data processing uses Hadoop distributed processing system. Hadoop consists of the Hadoop file system (HDFS) and Mapreduce.

하둡파일시스템은 분산 파일 시스템 역할을 담당하며, 사용자가 제출한 파일을 분산 저장, 관리한다. The Hadoop file system acts as a distributed file system, distributing and managing files submitted by users.

대용량의 데이터를 분산 처리하기 위한 맵리듀스는 데이터를 여러 조각으로 나누어서 처리하는 단계인 맵(Map) 단계와, 처리 결과를 모아서 결과를 출력하는 리듀스(Reduce)단계로 나누어져 처리된다. The MapReduce for distributing a large amount of data is divided into a Map step, which is a step of dividing the data into several pieces, and a Reduce step, which collects the result of the processing and outputs the result.

기존 하둡은 데이터를 하둡파일시스템에 저장 후, 맵리듀스를 통해 분석하는 일괄처리(Batch) 방식을 사용하는데, 그로 인해 대용량의 데이터를 일괄 처리하는데 효과적이지만, 실시간 스트림 데이터를 처리하는데 문제점이 있다. Existing Hadoop uses a batch method of storing the data in the Hadoop file system and then analyzing it through MapReduce, which is effective for collectively processing a large amount of data, but has a problem in processing real-time stream data.

이러한 문제점을 해결하기 위해 디스크에 비해 입/출력 속도가 빠른 인-메모리(In-Memory) 처리기술이 부각되고 있으며, 이를 통한 스트림 데이터 처리기법들이 연구되고 있다. In order to solve these problems, in-memory processing technology having a faster input / output speed than disk has been emphasized, and stream data processing techniques therefor are being studied.

인-메모리 처리기술은 데이터를 하드 디스크가 아닌 메모리에 적재하여 사용하기 때문에, 데이터를 빠르게 접근하고 처리할 수 있다. 이러한 분산 인-메모리 기술은 실시간으로 입력되는 스트림 데이터를 처리하는 다양한 시스템에서 많이 활용되고 있다. Because in-memory processing technology loads data into memory rather than hard disk, it can access and process data quickly. This distributed in-memory technology is widely used in various systems for processing stream data input in real time.

대표적인 분산 인-메모리 스트림 데이터 처리 시스템으로 스톰이 있다. 스톰은 실시간 데이터처리를 목적으로 분산환경에서 스트림 데이터를 튜플 형태로 처리한다. 또한, 라운드 로빈 방식을 사용하여 작업을 분배한다. 하지만, 작업 계산 복잡도로 인한 노드의 처리 비용이 증가하는 문제와, 대량의 데이터 폭주 및 한 노드의 작업이 집중된 경우, 노드의 부하를 고려하지 못하여 실시간 처리에 지연이 발생하는 문제점이 있다. Storm is a representative distributed in-memory stream data processing system. Storm processes stream data as a tuple in a distributed environment for the purpose of real-time data processing. In addition, the work is distributed using the round-robin method. However, there is a problem in that the processing cost of the node increases due to the computational complexity of the operation, and in the case where a large amount of data congestion and the operation of one node are concentrated, the load of the node can not be taken into account and a delay occurs in the real-time processing.

이러한 문제점을 해결하기 위해, 분산 환경에서 실시간 처리를 위해서 노드의 성능과 부하에 따른 잡 스케쥴링(Job scheduling) 기법이 필요하다. In order to solve these problems, a job scheduling scheme according to performance and load of a node is required for real time processing in a distributed environment.

기존 연구는 노드의 부하를 고려한 정적 잡 스케쥴링 기법과 동적 잡 스케쥴링 기법을 제안하였다. Previous work has proposed a static job scheduling scheme and a dynamic job scheduling scheme that take into consideration node load.

정적 잡 스케쥴링 기법은 초기의 노드의 부하를 고려하여 잡을 분배한다. 이를 통해 대량의 데이터 폭주 및 한 노드에 작업이 집중된 경우에 발생되는 노드의 부하를 분산하지만, 계산 복잡도로 인한 노드의 처리 비용을 고려하지 못하여 노드에 CPU 부하가 발생함으로 인해 처리 시간에 지연이 발생한다. The static job scheduling scheme distributes the jobs considering the initial node load. It can distribute the load of the nodes that occurs when a large amount of data is congested and the work is concentrated on one node. However, since the processing cost of the node due to the computational complexity can not be taken into consideration, do.

동적 잡 스케쥴링은 주기적으로 노드의 부하를 측정하여, 노드의 부하 발생 시 처리비용이 높은 작업을 재분배하여 노드의 부하를 분산한다. 하지만, 기존에 제안된 동적 잡 스케쥴링 기법은 CPU 사용량을 통해 노드의 부하를 결정하여, 대량의 데이터 폭주 및 한 노드에 작업이 집중된 경우에 발생되는 노드의 메모리 부하를 고려하지 않는 문제점을 가지고 있다. 이를 통해 메모리 부하로 인한 작업 손실의 문제점을 가지고 있다. 따라서 노드의 CPU 사용량과 메모리의 사용량, 네트워크 부하를 고려한 동적 스케쥴링 기법이 요구된다. Dynamic job scheduling periodically measures the load of a node and distributes the load of the node by redistributing the work having a high processing cost when the load of the node occurs. However, the proposed dynamic job scheduling method has a problem that the load of the node is determined through the CPU usage, so that a large amount of data congestion and the memory load of the node are not taken into consideration when the work is concentrated in one node. Thus, there is a problem of work loss due to a memory load. Therefore, a dynamic scheduling scheme considering CPU usage, memory usage, and network load of nodes is required.

즉, 종래 기술에서는 분산 환경에 각기 다른 성능을 가진 노드와 작업의 계산 복잡도로 인한 노드의 처리비용 증가와 데이터의 폭주, 한 노드에 작업이 집중된 경우를 고려하지 않아 실시간 처리에 지연을 가지고 있는 문제점을 가지고 있다.In other words, in the prior art, there is a delay in real-time processing due to an increase in the processing cost of the node due to the computational complexity of the node having different performance in the distributed environment and data congestion, Lt; / RTI >

대한민국 등록특허 10-1289136Korean Patent No. 10-1289136

본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명에서는 실시간 스트림 데이터 처리를 위해 노드의 부하를 평준화하는 동적 잡 스케쥴링 방법을 제공하는데 그 목적이 있다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a dynamic job scheduling method for leveling loads of nodes for real-time stream data processing.

본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The objects of the present invention are not limited to the above-mentioned objects, and other objects not mentioned can be clearly understood by those skilled in the art from the following description.

이와 같은 목적을 달성하기 위한 본 발명의 분산 인-메모리(In-Memory) 환경에서 실시간 스트림 데이터 처리를 위한 동적 잡 스케쥴링 시스템에서의 동적 잡 스케쥴링 방법에서, 스트림 데이터가 입력되면, CPU 사용량, 유휴 메모리의 크기, 네트워크 부하를 고려하여 각 노드의 부하를 계산하는 단계, 계산된 각 노드의 부하에 따라 각 노드에 우선순위를 부여하여 작업을 분배하는 정적 잡 스케쥴링을 수행하는 단계, 분배 후 각 노드의 상태 정보 및 작업이 각 노드에서 소모하는 부하 정보를 부하 테이블에서 관리하는 단계 및 상기 부하 테이블의 정보를 주기적으로 확인하여, 부하의 발생 원인을 탐색하고, 부하의 발생 원인에 따라 각 노드의 CPU 사용량, 메모리 사용량, 네트워크 부하를 이용하여 동적 잡 스케쥴링을 통해 작업을 재분배하는 단계를 포함한다. In order to achieve the above object, in a dynamic job scheduling method in a dynamic job scheduling system for real-time stream data processing in a distributed in-memory environment of the present invention, when stream data is input, Calculating the load of each node in consideration of the size of the node and the network load, performing static job scheduling for assigning priority to each node according to the calculated load of each node and performing job scheduling, The load information consumed by each node is managed by the load table, and the information of the load table is periodically checked to find the cause of the load, and the CPU usage of each node , Memory usage, and network load to redistribute jobs through dynamic job scheduling The.

상기 부하의 발생 원인이 작업 계산 복잡도로 인한 CPU 사용량의 증가에 따른 부하인 경우, CPU의 사용량을 통해 노드의 부하를 구분하고, 상대적으로 부하가 적은 유휴 노드에 작업을 재분배할 수 있는지 확인하고, 재분배가 가능하면 해당 작업을 해당 유휴 노드에 재분배할 때 예상되는 처리량을 구하고, 그 결과 해당 유휴 노드에 부하가 발생하지 않는 것으로 판단되면 해당 작업을 해당 유휴 노드에 재분배할 수 있다. If the cause of the load is a load due to an increase in the CPU usage due to the complexity of the job calculation, the load of the node is classified through the usage amount of the CPU, and it is confirmed whether the operation can be redistributed to the idle node, If redistribution is possible, the workload can be redistributed to the idle node if the workload is redistributed to the idle node, and if it is determined that there is no load on the idle node, the work can be redistributed to the idle node.

상기 부하의 발생 원인이 데이터 폭주로 인해 발생한 부하인 경우, 가용 메모리가 있으면, 유휴 메모리의 양이 가장 큰 노드에 해당 작업을 재분배할 수 있다. If the cause of the load is a load caused by data congestion and there is an available memory, the job can be redistributed to the node having the largest amount of idle memory.

본 발명의 일 실시예에서 메모리 부하 노드의 작업 중 메모리 처리 비용이 가작 적은 작업을 선택하여, 메모리의 유휴량이 가장 큰 유휴 노드에 최악 적합(Worst-fit) 방식을 적용하여 작업을 재분배하며, 이때 최악 적합 방식을 만족하는 노드가 없으면, 최적 적합을 만족하는 노드를 선택하여 작업을 재분배할 수 있다. In one embodiment of the present invention, a task with a small memory processing cost during the operation of the memory load node is selected, and the worst-fit method is applied to the idle node having the largest idle amount of memory to redistribute the task. If there is no node that satisfies the worst-case adaptation scheme, the node that satisfies the optimal fit can be selected and redistributed.

가용 메모리가 없으면, 작업의 데드라인을 확인하여 상대적으로 처리가 급한 작업과 처리가 급하지 않은 작업으로 구분하고, 처리가 급한 작업을 노드의 처리량과 메모리의 크기가 상대적으로 큰 노드에 재분배하고, 처리가 급하지 않은 작업을 노드의 처리량과 메모리의 크기가 상대적으로 작은 노드에 재분배할 수 있다. If there is no available memory, the deadline of the job is identified, and the job is classified into a relatively urgent job and a non-urgent job. The urgent job is redistributed to a node having a relatively large throughput and memory size, It is possible to redistribute jobs whose processing is not urgent to nodes having a relatively small throughput and memory size of the nodes.

상기 부하의 발생 원인이 한 노드에 작업이 집중되어 CPU와 메모리 사용량이 증가하는 것인 경우, 우선적으로 가용 메모리를 갖고 있는 유휴 노드에 대해 메모리의 크기가 큰 순서대로 우선 순위를 결정하여 작업을 재분배하고, 이후 CPU의 사용량에 따라 사용량이 비교적 적은 노드를 선택하여 작업을 재분배할 수 있다. In the case where the CPU and the memory usage increase due to the work being concentrated on one node which causes the load, priority is given to the idle nodes having the available memory in descending order of the size of the memory, And then the node can be re-distributed by selecting a node having a relatively small amount of usage according to the amount of CPU usage.

본 발명의 분산 인-메모리(In-Memory) 환경에서 실시간 스트림 데이터 처리를 위한 동적 잡 스케쥴링 시스템에서, 작업을 수행하는 워커(Worker)와, 부하를 확인하기 위한 N모니터(NMonitor)를 포함하여 구성되는 하나 이상의 워커 노드, 상기 워커노드의 상태정보를 저장하는 쥬키퍼 노드 및 상기 쥬키퍼와 통신하며, 상기 워커 노드의 상태 정보와, 상기 워커 노드에서 수행 중인 작업 정보를 저장하기 위한 부하 테이블과, 상기 부하 테이블을 확인하여 스케쥴링(scheduling)을 진행하는 스케쥴러를 포함하여 이루어지는 님버스 노드를 포함하되, 상기 스케쥴러는 스트림 데이터가 입력되면, 상기 부하 테이블로부터 CPU 사용량, 유휴 메모리의 크기, 네트워크 부하를 고려하여 각 워커 노드의 부하를 계산하고, 계산된 각 노드의 부하에 따라 각 워커 노드에 우선순위를 부여하여 작업을 분배하는 정적 잡 스케쥴링을 수행하고, 상기 부하 테이블의 정보를 주기적으로 확인하여, 부하의 발생 원인을 탐색하고, 부하의 발생 원인에 따라 각 워커 노드의 CPU 사용량, 메모리 사용량, 네트워크 부하를 이용하여 동적 잡 스케쥴링을 통해 작업을 재분배한다. In the dynamic job scheduling system for real-time stream data processing in the distributed in-memory environment of the present invention, a worker for performing work and an N monitor (Nonitor) A load table for storing status information of the worker node and job information being performed by the worker node; and a load table for storing the status information of the worker node, And a scheduler for checking the load table and scheduling the load table, wherein the scheduler takes into account the CPU usage, the size of the idle memory, and the network load from the load table when the stream data is input The load of each worker node is calculated, and each worker node is assigned a priority And the load table is periodically checked to find the cause of the load, and the CPU usage, the memory usage, the network usage amount of each worker node, The work is redistributed through dynamic job scheduling using load.

상기 부하의 발생 원인이 작업 계산 복잡도로 인한 CPU 사용량의 증가에 따른 부하인 경우, 상기 스케쥴러는 CPU의 사용량을 통해 워커 노드의 부하를 구분하고, 상대적으로 부하가 적은 유휴 워커 노드에 작업을 재분배할 수 있는지 확인하고, 재분배가 가능하면 해당 작업을 해당 유휴 워커 노드에 재분배할 때 예상되는 처리량을 구하고, 그 결과 해당 유휴 워커 노드에 부하가 발생하지 않는 것으로 판단되면 해당 작업을 해당 유휴 워커 노드에 재분배할 수 있다. If the cause of the load is a load due to an increase in the CPU usage due to the complexity of job calculation, the scheduler identifies the load of the worker node through the CPU usage amount and redistributes the job to the idle worker node having a relatively low load And if the redistribution is possible, the expected throughput is determined when redistributing the job to the idle worker node, and if it is determined that no load is generated on the idle worker node, the job is redistributed to the idle worker node can do.

상기 부하의 발생 원인이 데이터 폭주로 인해 발생한 부하인 경우, 상기 스케쥴러는 가용 메모리가 있으면, 유휴 메모리의 양이 가장 큰 워커 노드에 해당 작업을 재분배할 수 있다.If the cause of the load is a load caused by data congestion, the scheduler can redistribute the task to the worker node having the largest amount of idle memory if the available memory exists.

상기 스케쥴러는 메모리 부하 노드의 작업 중 메모리 처리 비용이 가작 적은 작업을 선택하여, 메모리의 유휴량이 가장 큰 유휴 워커 노드에 최악 적합(Worst-fit) 방식을 적용하여 작업을 재분배하며, 이때 최악 적합 방식을 만족하는 워커 노드가 없으면, 최적 적합을 만족하는 워커 노드를 선택하여 작업을 재분배할 수 있다. The scheduler selects a job having a small memory processing cost during the operation of the memory load node and redistributes the job by applying a worst-fit method to the idle worker node having the largest idle amount of memory. In this case, , It is possible to redistribute the work by selecting a worker node satisfying the optimal fit.

상기 스케쥴러는 가용 메모리가 없으면, 작업의 데드라인을 확인하여 상대적으로 처리가 급한 작업과 처리가 급하지 않은 작업으로 구분하고, 처리가 급한 작업을 처리량과 메모리의 크기가 상대적으로 큰 워커 노드에 재분배하고, 처리가 급하지 않은 작업을 처리량과 메모리의 크기가 상대적으로 작은 워커 노드에 재분배할 수 있다. If the available memory is not available, the scheduler identifies the deadline of the task and divides it into a relatively urgent task and a non-urgent task. When the urgent task is redistributed to a worker node having a relatively large throughput and memory size And can redistribute jobs that are not urgently processed to worker nodes with relatively low throughput and memory size.

상기 부하의 발생 원인이 한 워커 노드에 작업이 집중되어 CPU와 메모리 사용량이 증가하는 것인 경우, 상기 스케쥴러는 우선적으로 가용 메모리를 갖고 있는 유휴 워커 노드에 대해 메모리의 크기가 큰 순서대로 우선 순위를 결정하여 작업을 재분배하고, 이후 CPU의 사용량에 따라 사용량이 비교적 적은 워커 노드를 선택하여 작업을 재분배할 수 있다. If the worker is concentrated on a worker node that causes the load, and the CPU and the memory usage increase, the scheduler preferentially assigns priority to the idle worker node having the available memory in descending order of the size of the memory And redistribute the work, and then redistribute the work by selecting a worker node with a relatively low usage according to the amount of CPU usage.

본 발명에 의하면, 분산 인-메모리 환경에서 실시간 스트림 데이터를 처리하기 위한 동적 잡 스케쥴링 기법을 제안함으로써, 노드의 부하로 인한 작업 지연 및 손실을 방지하고, 데이터 처리 성능을 향상시킬 수 있는 효과가 있다. The present invention proposes a dynamic job scheduling technique for processing real-time stream data in a distributed in-memory environment, thereby preventing work delay and loss due to load of a node and improving data processing performance .

도 1은 본 발명의 일 실시예에 따른 동적 잡 스케쥴링 시스템의 구조를 보여주는 블록도이다.
도 2는 본 발명의 일 실시예에 다른 동적 잡 스케쥴링 방법을 보여주는 흐름도이다.
도 3은 부하 테이블을 정의한 도표이다.
도 4는 본 발명에서 제안하는 부하 관리 기법의 저장 구조의 예를 나타낸 도표이다.
도 5는 작업 복잡도로 인한 처리비용 증가 시 잡 스케쥴링 알고리즘이다.
도 6은 본 발명의 일 실시예에 따른 동적 잡 스케쥴링 시스템에서 작업 복잡도로 인한 노드의 처리비용 증가 상황을 나타낸 도면이다.
도 7은 슬라이딩 윈도우 방식으로 데이터가 입력되는 것을 나타낸 도면이다.
도 8은 본 발명의 일 실시예에 따른 동적 잡 스케쥴링 시스템에서 데이터 폭주 시 가용 노드가 존재하는 않는 상황을 나타낸 도면이다.
1 is a block diagram illustrating a structure of a dynamic job scheduling system according to an embodiment of the present invention.
FIG. 2 is a flowchart illustrating a dynamic job scheduling method according to an embodiment of the present invention.
3 is a chart defining a load table.
4 is a diagram illustrating an example of a storage structure of a load management technique proposed in the present invention.
5 is a job scheduling algorithm when the processing cost is increased due to the operation complexity.
6 is a diagram illustrating a process cost increase of a node due to an operation complexity in a dynamic job scheduling system according to an embodiment of the present invention.
7 is a diagram illustrating data input in a sliding window method.
FIG. 8 is a diagram illustrating a situation where an available node does not exist when data is congested in a dynamic-scheduling system 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.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.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 in an ideal or overly formal sense unless expressly defined in the present application Do not.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In the following description of the present invention with reference to the accompanying drawings, the same components are denoted by the same reference numerals regardless of the reference numerals, and redundant explanations thereof will be omitted. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail.

본 발명에서 제안하는 기법은 CPU 사용량, 메모리 사용량, 네트워크 사용량을 통해 계산의 복잡도로 인한 노드의 처리량 증가, 데이터 폭증, 한 노드의 데이터가 집중된 경우 등 3가지 형태의 부하로 나뉘어 작업을 재분배한다. 작업의 계산 복잡도로 인한 부하의 경우 CPU 사용량을 우선 측정하여 CPU 사용량이 적은 노드에 작업을 재분배하고, 데이터 폭증의 경우 메모리 사용량을 우선 측정하여 유휴 메모리가 큰 노드에 작업을 재분배한다. 또한, 한 노드의 데이터가 집중된 경우 메모리 사용량과 CPU 사용량을 측정하여 메모리의 사용량과 CPU 사용량이 작은 노드에 작업을 재분배한다. 이와 같은 방법을 통해 본 발명에서 제안하는 기법은 실시간 데이터 처리에 있어서, 노드에 부하를 집중화 하지 않고, 노드의 부하를 평준화함으로써, 지연을 방지하여 작업을 처리한다.The technique proposed in this invention is divided into three types of loads such as increase in throughput of nodes due to computational complexity, data explosion, concentration of data of one node through CPU usage, memory usage, and network usage, thereby redistributing the work. Redistribute tasks to nodes with low CPU usage by first measuring CPU usage for load due to the computational complexity of the task, and redistribute tasks to nodes with large idle memory by measuring memory usage first for data explosion. Also, if the data of one node is concentrated, the memory usage and the CPU usage are measured, and the operation is redistributed to the memory usage and the CPU usage. Through the above-described method, the technique proposed in the present invention processes the job by preventing the delay by leveling the load of the node without concentrating the load on the node in the real-time data processing.

본 발명에서는 각기 다른 성능을 가진 노드와, 노드에서 처리 중인 작업의 노드 처리비용, 노드의 상태를 통해 부하를 구분하고, 상황에 맞게 작업을 재분배하여 실시간 처리의 지연을 방지한다. In the present invention, loads are classified through nodes having different performance, node processing cost of a node being processed, and node status, and the delay of real-time processing is prevented by redistributing the job according to the situation.

또한, 본 발명에서는 분산 인-메모리 환경의 스트림 데이터 처리 시스템 중 스톰 환경에서 주기적으로 노드의 부하를 고려한 동적 스케쥴링 기법을 제안한다.In addition, the present invention proposes a dynamic scheduling scheme that considers node loads periodically in a storm environment of a stream data processing system in a distributed in-memory environment.

본 발명에서 제안하는 기법은 CPU의 사용량과 처리량, 유휴 메모리의 크기, 네트워크의 부하를 통해 노드의 부하를 측정하고, 부하에 따라 잡(Job)을 재분배하여 노드의 부하를 평준화한다. 이를 통해 스트림 데이터를 실시간 처리하며 지연을 방지한다. The technique proposed in the present invention measures the load of the node through the usage amount and the throughput of the CPU, the size of the idle memory, the load of the network, and reloads the job according to the load, thereby leveling the load of the node. This allows real-time processing of stream data and avoids delays.

부하는 처리 중인 작업의 계산 복잡도로 인한 노드의 처리비용 증가, 데이터 폭주, 한 노드에 작업이 집중 된 경우와 같이 세가지 경우로 나누어진다. The load is divided into three cases as the processing cost of the node is increased due to the computational complexity of the work being processed, the data burst, and the work is concentrated on one node.

우선 처리 중인 작업의 복잡도로 인한 노드의 처리비용 증가에 따른 부하의 경우, 노드의 CPU 사용량이 증가되어 실시간 처리에 지연이 발생한다. 이러한 경우 CPU 사용량이 비교적 작은 노드에 작업을 재분배하여 CPU 사용량을 평준화 하여 작업을 처리한다. In the case of the load due to the increase of processing cost of the node due to the complexity of the work being processed first, the CPU usage of the node is increased and a delay occurs in the real time processing. In this case, the task is redistributed to nodes with relatively low CPU usage, and the CPU usage is leveled to handle the task.

또한, 데이터 폭주에 의한 부하가 발생되는 경우, 스트림 데이터가 급증하여 인-메모리 환경에서 처리 시 메모리에 해당 작업이 다 할당되지 못하여 작업의 손실이 발생한다. 이러한 경우 유휴 메모리의 양이 가장 큰 노드에 해당 작업을 재분배하여 작업의 손실을 지연한다. In addition, when a load due to data runaway occurs, stream data is rapidly increased, and a corresponding job is not allocated to the memory during processing in an in-memory environment, resulting in a loss of operation. In such a case, the work is re-distributed to the node having the largest amount of idle memory to delay the loss of the work.

마지막으로 한 노드에 작업이 집중된 경우이다. 이러한 경우는 CPU 사용량과 메모리의 사용량을 모두 고려해야 한다. CPU 사용량에 의한 부하는 작업이 지연이 발생하지만, 메모리에 의한 부하는 작업이 손실되는 문제가 발생하여, 우선적으로 가용한 메모리를 가지고 있는 노드에 대한 우선순위를 결정 후, CPU의 사용량이 비교적 적은 노드를 선택하여 작업을 재분배한다. 또한, 성능이 다른 경우 각 CPU의 처리량과 메모리 크기를 비교하여, 작업이 소모할 부하를 계산하여, 부하의 임계치 이하 시 작업을 해당 노드에 재분배 한다.Finally, the work is concentrated on one node. In this case, both CPU usage and memory usage should be considered. The load caused by the CPU usage is delayed by the operation, but the load due to the memory is lost due to the problem of the operation. Therefore, the priority of the node having the available memory is determined first, Select the node to redistribute the job. Also, when the performance is different, the throughput of each CPU is compared with the memory size, the load to be consumed by the work is calculated, and the work is redistributed to the corresponding node when the load is below the threshold.

본 발명의 분산 인-메모리(In-Memory) 환경에서 실시간 스트림 데이터 처리를 위한 동적 잡 스케쥴링 시스템에서의 동적 잡 스케쥴링 방법에서, 스트림 데이터가 입력되면, CPU 사용량, 유휴 메모리의 크기, 네트워크 부하를 고려하여 각 노드의 부하를 계산하는 단계, 계산된 각 노드의 부하에 따라 각 노드에 우선순위를 부여하여 작업을 분배하는 정적 잡 스케쥴링을 수행하는 단계, 분배 후 각 노드의 상태 정보 및 작업이 각 노드에서 소모하는 부하 정보를 부하 테이블에서 관리하는 단계 및 상기 부하 테이블의 정보를 주기적으로 확인하여, 부하의 발생 원인을 탐색하고, 부하의 발생 원인에 따라 각 노드의 CPU 사용량, 메모리 사용량, 네트워크 부하를 이용하여 동적 잡 스케쥴링을 통해 작업을 재분배하는 단계를 포함한다. In the dynamic job scheduling method in the dynamic job scheduling system for real-time stream data processing in the distributed in-memory environment of the present invention, when the stream data is input, the CPU usage, the size of the idle memory, A step of calculating a load of each node, a step of assigning priority to each node according to a load of each node, and performing static job scheduling to distribute the job, Managing the load information consumed by the load table in the load table and periodically checking the information of the load table to search for the cause of the load and determining the CPU usage, And redistributing the job through dynamic job scheduling.

상기 부하의 발생 원인이 작업 계산 복잡도로 인한 CPU 사용량의 증가에 따른 부하인 경우, CPU의 사용량을 통해 노드의 부하를 구분하고, 상대적으로 부하가 적은 유휴 노드에 작업을 재분배할 수 있는지 확인하고, 재분배가 가능하면 해당 작업을 해당 유휴 노드에 재분배할 때 예상되는 처리량을 구하고, 그 결과 해당 유휴 노드에 부하가 발생하지 않는 것으로 판단되면 해당 작업을 해당 유휴 노드에 재분배할 수 있다. If the cause of the load is a load due to an increase in the CPU usage due to the complexity of the job calculation, the load of the node is classified through the usage amount of the CPU, and it is confirmed whether the operation can be redistributed to the idle node, If redistribution is possible, the workload can be redistributed to the idle node if the workload is redistributed to the idle node, and if it is determined that there is no load on the idle node, the work can be redistributed to the idle node.

상기 부하의 발생 원인이 데이터 폭주로 인해 발생한 부하인 경우, 가용 메모리가 있으면, 유휴 메모리의 양이 가장 큰 노드에 해당 작업을 재분배할 수 있다. If the cause of the load is a load caused by data congestion and there is an available memory, the job can be redistributed to the node having the largest amount of idle memory.

본 발명의 일 실시예에서 메모리 부하 노드의 작업 중 메모리 처리 비용이 가작 적은 작업을 선택하여, 메모리의 유휴량이 가장 큰 유휴 노드에 최악 적합(Worst-fit) 방식을 적용하여 작업을 재분배하며, 이때 최악 적합 방식을 만족하는 노드가 없으면, 최적 적합을 만족하는 노드를 선택하여 작업을 재분배할 수 있다. In one embodiment of the present invention, a task with a small memory processing cost during the operation of the memory load node is selected, and the worst-fit method is applied to the idle node having the largest idle amount of memory to redistribute the task. If there is no node that satisfies the worst-case adaptation scheme, the node that satisfies the optimal fit can be selected and redistributed.

가용 메모리가 없으면, 작업의 데드라인을 확인하여 상대적으로 처리가 급한 작업과 처리가 급하지 않은 작업으로 구분하고, 처리가 급한 작업을 노드의 처리량과 메모리의 크기가 상대적으로 큰 노드에 재분배하고, 처리가 급하지 않은 작업을 노드의 처리량과 메모리의 크기가 상대적으로 작은 노드에 재분배할 수 있다. If there is no available memory, the deadline of the job is identified, and the job is classified into a relatively urgent job and a non-urgent job. The urgent job is redistributed to a node having a relatively large throughput and memory size, It is possible to redistribute jobs whose processing is not urgent to nodes having a relatively small throughput and memory size of the nodes.

상기 부하의 발생 원인이 한 노드에 작업이 집중되어 CPU와 메모리 사용량이 증가하는 것인 경우, 우선적으로 가용 메모리를 갖고 있는 유휴 노드에 대해 메모리의 크기가 큰 순서대로 우선 순위를 결정하여 작업을 재분배하고, 이후 CPU의 사용량에 따라 사용량이 비교적 적은 노드를 선택하여 작업을 재분배할 수 있다. In the case where the CPU and the memory usage increase due to the work being concentrated on one node which causes the load, priority is given to the idle nodes having the available memory in descending order of the size of the memory, And then the node can be re-distributed by selecting a node having a relatively small amount of usage according to the amount of CPU usage.

본 발명의 분산 인-메모리(In-Memory) 환경에서 실시간 스트림 데이터 처리를 위한 동적 잡 스케쥴링 시스템에서, 작업을 수행하는 워커(Worker)와, 부하를 확인하기 위한 N모니터(NMonitor)를 포함하여 구성되는 하나 이상의 워커 노드, 상기 워커노드의 상태정보를 저장하는 쥬키퍼 노드 및 상기 쥬키퍼와 통신하며, 상기 워커 노드의 상태 정보와, 상기 워커 노드에서 수행 중인 작업 정보를 저장하기 위한 부하 테이블과, 상기 부하 테이블을 확인하여 스케쥴링(scheduling)을 진행하는 스케쥴러를 포함하여 이루어지는 님버스 노드를 포함하되, 상기 스케쥴러는 스트림 데이터가 입력되면, 상기 부하 테이블로부터 CPU 사용량, 유휴 메모리의 크기, 네트워크 부하를 고려하여 각 워커 노드의 부하를 계산하고, 계산된 각 노드의 부하에 따라 각 워커 노드에 우선순위를 부여하여 작업을 분배하는 정적 잡 스케쥴링을 수행하고, 상기 부하 테이블의 정보를 주기적으로 확인하여, 부하의 발생 원인을 탐색하고, 부하의 발생 원인에 따라 각 워커 노드의 CPU 사용량, 메모리 사용량, 네트워크 부하를 이용하여 동적 잡 스케쥴링을 통해 작업을 재분배한다. In the dynamic job scheduling system for real-time stream data processing in the distributed in-memory environment of the present invention, a worker for performing work and an N monitor (Nonitor) A load table for storing status information of the worker node and job information being performed by the worker node; and a load table for storing the status information of the worker node, And a scheduler for checking the load table and scheduling the load table, wherein the scheduler takes into account the CPU usage, the size of the idle memory, and the network load from the load table when the stream data is input The load of each worker node is calculated, and each worker node is assigned a priority And the load table is periodically checked to find the cause of the load, and the CPU usage, the memory usage, the network usage amount of each worker node, The work is redistributed through dynamic job scheduling using load.

상기 부하의 발생 원인이 작업 계산 복잡도로 인한 CPU 사용량의 증가에 따른 부하인 경우, 상기 스케쥴러는 CPU의 사용량을 통해 워커 노드의 부하를 구분하고, 상대적으로 부하가 적은 유휴 워커 노드에 작업을 재분배할 수 있는지 확인하고, 재분배가 가능하면 해당 작업을 해당 유휴 워커 노드에 재분배할 때 예상되는 처리량을 구하고, 그 결과 해당 유휴 워커 노드에 부하가 발생하지 않는 것으로 판단되면 해당 작업을 해당 유휴 워커 노드에 재분배할 수 있다. If the cause of the load is a load due to an increase in the CPU usage due to the complexity of job calculation, the scheduler identifies the load of the worker node through the CPU usage amount and redistributes the job to the idle worker node having a relatively low load And if the redistribution is possible, the expected throughput is determined when redistributing the job to the idle worker node, and if it is determined that no load is generated on the idle worker node, the job is redistributed to the idle worker node can do.

상기 부하의 발생 원인이 데이터 폭주로 인해 발생한 부하인 경우, 상기 스케쥴러는 가용 메모리가 있으면, 유휴 메모리의 양이 가장 큰 워커 노드에 해당 작업을 재분배할 수 있다.If the cause of the load is a load caused by data congestion, the scheduler can redistribute the task to the worker node having the largest amount of idle memory if the available memory exists.

상기 스케쥴러는 메모리 부하 노드의 작업 중 메모리 처리 비용이 가작 적은 작업을 선택하여, 메모리의 유휴량이 가장 큰 유휴 워커 노드에 최악 적합(Worst-fit) 방식을 적용하여 작업을 재분배하며, 이때 최악 적합 방식을 만족하는 워커 노드가 없으면, 최적 적합을 만족하는 워커 노드를 선택하여 작업을 재분배할 수 있다. The scheduler selects a job having a small memory processing cost during the operation of the memory load node and redistributes the job by applying a worst-fit method to the idle worker node having the largest idle amount of memory. In this case, , It is possible to redistribute the work by selecting a worker node satisfying the optimal fit.

상기 스케쥴러는 가용 메모리가 없으면, 작업의 데드라인을 확인하여 상대적으로 처리가 급한 작업과 처리가 급하지 않은 작업으로 구분하고, 처리가 급한 작업을 처리량과 메모리의 크기가 상대적으로 큰 워커 노드에 재분배하고, 처리가 급하지 않은 작업을 처리량과 메모리의 크기가 상대적으로 작은 워커 노드에 재분배할 수 있다. If the available memory is not available, the scheduler identifies the deadline of the task and divides it into a relatively urgent task and a non-urgent task. When the urgent task is redistributed to a worker node having a relatively large throughput and memory size And can redistribute jobs that are not urgently processed to worker nodes with relatively low throughput and memory size.

상기 부하의 발생 원인이 한 워커 노드에 작업이 집중되어 CPU와 메모리 사용량이 증가하는 것인 경우, 상기 스케쥴러는 우선적으로 가용 메모리를 갖고 있는 유휴 워커 노드에 대해 메모리의 크기가 큰 순서대로 우선 순위를 결정하여 작업을 재분배하고, 이후 CPU의 사용량에 따라 사용량이 비교적 적은 워커 노드를 선택하여 작업을 재분배할 수 있다. If the worker is concentrated on a worker node that causes the load, and the CPU and the memory usage increase, the scheduler preferentially assigns priority to the idle worker node having the available memory in descending order of the size of the memory And redistribute the work, and then redistribute the work by selecting a worker node with a relatively low usage according to the amount of CPU usage.

도 1은 본 발명의 일 실시예에 따른 동적 잡 스케쥴링 시스템의 구조를 보여주는 블록도이다. 1 is a block diagram illustrating a structure of a dynamic job scheduling system according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 동적 잡 스케쥴링 시스템은 스톰(Storm) 환경에서 하나의 마스터 역할을 하는 님버스(Nimbus) 노드(100), 워커(Worker) 노드(200), 워커 노드의 상태 정보를 저장하는 쥬키퍼(Zookeeper) 노드(300)로 구성된다. 1, a dynamic job scheduling system according to an exemplary embodiment of the present invention includes a Nimbus node 100, a worker node 200, and a worker node 200 acting as a master in a storm environment, And a Zookeeper node 300 for storing status information of the worker node.

님버스 노드(100)는 워커 노드(200)의 상태 정보와 워커 노드(200)에서 수행 중인 작업의 정보를 저장하는 부하테이블(120)과, 부하테이블을 확인하여 스케쥴링을 진행하는 스케쥴러(110)로 구성된다. The nod node 100 includes a load table 120 for storing the state information of the worker node 200 and information about the work being performed by the worker node 200, a scheduler 110 for checking the load table and performing the scheduling, .

워커 노드(200)는 작업을 수행하는 워커(Worker)(210)와 워커 노드의 부하를 확인하는 N모니터(NMonitor)(220)로 구성된다. 워커(210)는 쓰레드 슬롯(Slot)안에서 실제 스파웃(Spout)과 볼트(Bolt)를 실행하는 역할을 한다. The worker node 200 includes a worker 210 for performing work and an N monitor 220 for checking the load of the worker node. The walker 210 plays a role of executing the actual spout and bolt in the thread slot.

도 1은 본 발명의 일 실시예에 따른 동적 잡 스케쥴링 시스템에서 작업의 계산 복잡도로 인한 노드의 처리비용 증가를 나타내고 있다. 이러한 경우 CPU 사용량을 통해 노드의 부하를 측정하여, 부하가 큰 부하 노드와 부하가 비교적 작은 유휴 노드로 구분한다. 이를 통해 구분된 부하 노드의 작업에서, 노드 내에서 소모하고 있는 CPU 사용량에 있어서 가장 큰 사용량을 갖는 노드의 작업을, 유휴 노드의 성능을 고려하여 유휴 노드에 재분배한다.Figure 1 illustrates the increase in the processing cost of a node due to computational complexity of a task in a dynamic job scheduling system according to an embodiment of the present invention. In this case, the load of the node is measured through the CPU usage, and the load node having a large load and the idle node having a relatively small load are distinguished. In this way, the work of the node having the largest usage amount in the CPU usage consuming in the node is redistributed to the idle node considering the performance of the idle node.

도 2는 본 발명의 일 실시예에 다른 동적 잡 스케쥴링 방법을 보여주는 흐름도이다. FIG. 2 is a flowchart illustrating a dynamic job scheduling method according to an embodiment of the present invention.

도 2를 참조하면, 처음 스트림 데이터가 입력되면(S210), CPU 사용량, 유휴 메모리의 크기, 네트워크 부하를 고려하여 각 노드의 부하를 계산하고, 계산을 통해 노드의 우선순위를 부여하여 해당 작업을 분배하는 정적 잡 스케쥴링을 수행한다(S220). Referring to FIG. 2, when stream data is input for the first time (S210), load of each node is calculated in consideration of CPU usage, idle memory size, and network load, And performs static job scheduling to distribute (S220).

그리고, 분배 후 노드의 상태 정보와 작업이 노드에서 소모하는 부하를 부하 테이블에서 관리한다(S230). Then, the state information of the node after the distribution and the load consumed by the node in the job are managed in the load table (S230).

그리고, 부하테이블의 정보를 주기적으로 확인하여, 노드의 CPU 사용량, 메모리 사용량, 네트워크 부하에 따라 적합한 동적 잡 스케쥴링을 통해 작업을 재분배한다(S240, S250). 이를 통해 실시간 스트림 데이터 처리에 있어서, 지연을 방지한다.Then, the information of the load table is periodically checked, and the work is redistributed through the dynamic job scheduling appropriate to the CPU usage of the node, the memory usage, and the network load (S240, S250). This prevents delays in real-time stream data processing.

분산 환경에서 실시간 스트림 데이터를 처리하는 과정에 부하가 발생한 노드와 작업의 처리비용을 관리하는 것은 중요하다. 부하 발생 시 부하 노드의 판별과, 부하 노드에서 처리 중인 작업을 선택하여 재분배하는데 관리한 부하를 사용하여 판별한다. 부하 정보는 인-메모리(In-Memory) 데이터베이스에 테이블의 형식으로 관리한다. It is important to manage the processing cost of nodes and jobs that are under load during the processing of real-time stream data in a distributed environment. In the case of a load, it is discriminated by using the load that is used for the determination of the load node and for the redistribution of the work being processed by the load node. The load information is managed in the form of a table in an in-memory database.

스케쥴러(110)는 각 노드의 상태를 노드에 직접적으로 확인하지 않고, 부하테이블(120)을 통해 모든 노드의 부하를 확인한다. 이로써 스케쥴러(110)가 노드의 부하를 측정하는 비용을 줄인다. The scheduler 110 confirms the load of all the nodes through the load table 120 without directly checking the state of each node. This reduces the cost of the scheduler 110 to measure the load on the node.

또한, 노드의 부하를 판별하기 위해 노드의 CPU 사용량, 유휴 메모리의 크기, 네트워크 부하를 통해 노드의 부하를 판단하고, 각기 다른 성능을 가지고 있는 특성을 고려해 평균 처리량을 관리해야 한다. In order to determine the load of a node, the CPU load of the node, the size of the idle memory, the load of the node through the network load, and the average throughput should be managed considering characteristics having different performance.

또한, 노드의 상태 정보 뿐만 아니라 작업이 소요하는 CPU 사용량, 메모리 사용량을 통해 부하 발생 시, 해당 노드에서 가장 큰 처리 비용을 갖는 작업을 선택하여 재분배하기에, 노드의 상태정보와 노드에서 처리중인 작업의 처리비용을 관리하는 것이 필요하다.In addition, in addition to the status information of a node, when a load occurs due to a CPU usage and a memory usage consumed by a task, a task having the largest processing cost is selected and redistributed. It is necessary to manage the processing cost of the system.

도 3은 부하 테이블을 정의한 도표이다. 3 is a chart defining a load table.

도 3을 참조하면, 부하 테이블은 각 노드의 정보와 노드에서 처리중인 작업의 처리비용을 나타낸다. 노드의 정보는 각 노드의 성능과 CPU 사용량, 처리량, 평균 처리량, 네트워크 부하를 관리한다. 작업의 처리 비용은 작업이 처리중인 노드와 CPU 사용량, 메모리 사용량을 관리한다. 부하테이블을 갱신함에 있어서, 노드의 작업의 상태가 변경될 시 다른 노드의 상태도 같이 확인하여 갱신한다. Referring to FIG. 3, the load table shows the information of each node and the processing cost of a job being processed in the node. The node information manages the performance, CPU usage, throughput, average throughput, and network load of each node. The processing cost of a job manages the nodes, CPU usage, and memory usage that the job is processing. In updating the load table, when the state of the node operation is changed, the states of other nodes are also confirmed and updated.

도 3 (a)는 노드의 상태 정보를 나타낸다. 노드의 상태 정보는 CPU의 사용량, 평균 처리량, 메모리의 사용량, 네트워크 부하로 이루어져 있다. 이를 통해 노드의 상황에 따른 부하를 확인 할 수 있다. CPU의 사용량이 큰 경우 작업의 계산 복잡도로 인한 증가를 나타내고, 메모리의 사용량은 데이터가 폭주하는 상황으로 인해 증가하게 된다. 3 (a) shows state information of the node. The node status information consists of CPU usage, average throughput, memory usage, and network load. Through this, it is possible to check the load depending on the state of the node. If the CPU usage is large, it indicates an increase due to the computational complexity of the task, and the memory usage increases due to data congestion.

도 3 (b)는 작업별 소요되는 노드의 처리비용을 나타낸다. 처리비용에 대한 정보는 어느 워커에서 실행되고 있는지, 워커 노드에서 작업이 소모하는 노드의 CPU 사용량과 메모리 크기로 구성되어 있다. 이를 통해 부하 발생 시 상황에 따라 재분배하는 작업을 선택하는데 사용된다.FIG. 3 (b) shows the processing cost of the node required for each job. The information about the processing cost consists of which worker is running, the CPU usage of the node consumed by the worker node, and the memory size. It is used to select the task to redistribute according to the situation when the load occurs.

도 4는 본 발명에서 제안하는 부하 관리 기법의 저장 구조의 예를 나타낸 도표이다. 4 is a diagram illustrating an example of a storage structure of a load management technique proposed in the present invention.

도 4를 참조하면, 부하 관리 기법의 저장 구조는 노드 상태 정보와 작업 정보로 나눌 수 있다. Referring to FIG. 4, the storage structure of the load management technique can be divided into node status information and task information.

도 4 (a)는 노드 상태 정보를 나타내며 노드의 성능, CPU의 사용량, 평균처리량, 메모리의 사용량으로 구성된다. 4 (a) shows node status information, and is composed of node performance, CPU usage, average throughput, and memory usage.

노드의 성능의 경우 노드에서 작업을 처리하는 과정에 계산의 복잡도로 인한 노드의 부하가 생겨 해당 작업을 재분배 시, 부하노드와 유휴노드의 구분과 각기 성능이 다른 노드의 처리량을 통해 작업을 재분배시 고려하는 과정에 사용된다. In the case of performance of nodes, in the process of processing a node, there is a load of nodes due to computational complexity. In redistributing the jobs, the load node and the idle node are distinguished and the performance is redistributed through the throughput of the other node It is used in the process of consideration.

Figure pat00001
Figure pat00001

수학식 1은 노드의 CPU 평균 처리량을 구하는 식이다. 이때, CPUthroughput[i]/n는 i노드의 현재 처리량을 나타내고, n은 해당 노드에 저장된 처리량의 수를 나타낸다. Equation (1) is an equation for obtaining the average CPU throughput of the node. At this time, CPU throughput [i] / n represents the current throughput of i-node, and n represents the number of throughputs stored in the corresponding node.

Figure pat00002
Figure pat00002

수학식 2는 노드의 메모리 유휴 메모리 크기를 나타내는 식이다. Equation 2 is an expression representing the memory idle memory size of the node.

도 4 (b)는 작업의 정보를 나타낸다. 작업의 정보는 작업이 소모하는 노드의 CPU 사용량과 메모리크기로 구성되어있다. 작업의 정보를 통해 부하 노드에서 재분배의 대상이 되는 작업을 선택하는데 사용된다.4 (b) shows the information of the job. The task information consists of CPU usage and memory size of the nodes consumed by the task. It is used to select the job to be redistributed from the load node through the information of the job.

분산된 환경에서 발생되는 부하는 다음과 같다. 작업의 계산복잡도로 인한 처리비용 증가, 데이터 폭주로 인한 메모리 사용량 증가, 한 노드에 작업이 집중되어 지연이 발생하는 경우로 나눌 수 있다. 이러한 부하로 인해 작업의 지연 및 손실이 발생하는 문제점이 있다. 이러한 문제점을 해결하기 위해 부하를 관리하고 상태를 확인하여 상황에 따른 잡 스케쥴링 기법이 필요하다. The load generated in a distributed environment is as follows. The increase of the processing cost due to the computational complexity of the task, the increase of the memory usage due to the data congestion, and the case where the work is concentrated on one node and the delay occurs. There is a problem that the work is delayed and lost due to such a load. In order to solve these problems, it is necessary to manage the load, check the status, and schedule job scheduling according to the situation.

본 발명에서 제안하는 기법은 주기적으로 부하 테이블을 통해 노드의 상태 정보와 작업의 처리비용을 확인한다. 그리고, 부하를 확인하며 부하의 발생 원인을 찾는다. 부하의 발생원인은 작업 계산복잡도로 인한 CPU 사용량의 증가에 따른 부하, 데이터 폭주로 인한 메모리 부하, 한 노드에 작업이 집중된 CPU 사용량, 메모리 부하로 나누어 구분할 수 있다.The technique proposed in the present invention periodically checks the status information of the node and the processing cost of the job through the load table. Then, check the load and find the cause of the load. The cause of the load can be divided into the load due to the increase of the CPU usage due to the computational complexity of the task, the memory load due to the data congestion, the CPU usage concentrated on one node, and the memory load.

노드에서 처리 중인 작업의 계산이 복잡한 경우, CPU의 연산이 증가하여 CPU의 사용량이 증가하게 된다. 이러한 경우 CPU에 부하가 발생되어 작업처리에 지연이 발생하게 된다. If the computation of the work being processed by the node is complicated, the CPU operation increases and the CPU usage increases. In such a case, a load is generated on the CPU and a delay occurs in the processing of the work.

작업 계산 복잡도로 인한 CPU 사용량의 증가의 경우, CPU의 사용량을 통해 노드의 부하를 구분하고, 부하가 적은 유휴 노드에 작업을 재분배할 수 있는지 확인한다. 재분배가 가능한 경우, 해당 작업을 유휴 노드에 재분배하여 예상되는 처리량을 구하고, 유휴 노드에 부하가 발생하지 않을 것으로 예상되면, 작업을 재분배한다. 만약, 그렇지 않으면 유휴 노드를 재선정하여 처리한다. In the case of increased CPU usage due to the computational complexity of the task, identify the load of the node through CPU usage and ensure that the task can be redistributed to idle nodes with low load. If redistribution is possible, redistribute the job to the idle node to obtain the expected throughput, and redistribute the job if it is expected that no load will occur on the idle node. If not, re-select and process the idle node.

CPU의 사용량은 각기 다른 성능의 노드를 고려하여 각 노드의 CPU 사용량의 평균을 통해 부하를 구분한다. CPU 사용량을 통해 부하 노드와 유휴 노드를 구하는 식은 수학식 3과 수학식4를 통해 구할 수 있다. CPU usage is divided by the average of CPU usage of each node considering different performance nodes. Equation 3 and Equation 4 can be used to obtain the load node and the idle node through the CPU usage.

Figure pat00003
Figure pat00003

수학식 3은 각 노드의 CPU 사용량 평균을 구하는 식이다. 이때, CPUexp는 평균 CPU 사용량, i는 노드, n은 총 노드의 수, CPUi -use는 노드 i의 CPU 사용량을 의미한다. 이를 통해 구해진 값을 통해 모든 노드의 CPU 사용량의 평균을 구한다. 수학식 3을 통해 구해진 값을 이용하여 전체 노드의 CPU 사용량의 평균을 구하고, CPUexp값과 각 노드의 CPU 사용량의 편차를 통해 부하 노드와 유휴 노드를 구분한다.Equation (3) is an equation for obtaining the CPU usage average of each node. In this case, CPU exp is the average CPU usage, i is the node, n is the total number of nodes, and CPU i -use is the CPU usage of the node i. The average of the CPU usage of all nodes is obtained through the obtained value. Using the value obtained from Equation (3), an average of the CPU usage of all the nodes is obtained, and the load node and the idle node are distinguished by the CPU exp value and the CPU usage of each node.

Figure pat00004
Figure pat00004

수학식 4는 CPUexp값과 각 노드의 CPU 사용량의 편차를 구하는 식이다. 이때, CPUi.dev는 CPUexp값과 노드 i의 CPU 사용량의 편차를 의미한다. Equation (4) is an expression for calculating the CPU exp value and the deviation of the CPU usage of each node. At this time, CPU i.dev means deviation of CPU exp value and CPU usage of node i.

편차의 값이 가장 작은 경우, 평균에 비해 큰 CPU 사용량을 가지고 있다는 것을 의미하게 된다. 이를 통해 편차가 가장 작은 값을 가지고 있는 노드를 부하 노드로 구분하고, 가장 큰 값을 가지는 노드를 유휴 노드로 구분한다. 이때, 유휴 노드로 구분된 노드의 유휴 메모리의 크기가 20% 미만 시에 작업의 손실이 발생하는 문제점이 발생한다. 이러한 경우, 유휴 노드로 구분된 노드를 제외하고 편차가 큰 노드를 유휴 노드로 구분한다.If the value of the deviation is the smallest, it means that the CPU usage is larger than the average. The node with the smallest deviation is classified as a load node, and the node with the largest value is classified as an idle node. In this case, when the size of the idle memory of the node classified as the idle node is less than 20%, there is a problem that the job is lost. In this case, a node with a large deviation is classified as an idle node, except for nodes classified as idle nodes.

수학식 4를 통해 구분된 부하 노드에서 처리 중인 작업 중 일부를 선택하여 유휴 노드에 재분배하여 부하 노드의 CPU 사용량을 평준화한다. 이때, 작업이 소모하는 노드의 처리 비용과 유휴 노드에서 재분배 후 예상되는 처리비용을 고려하여 작업을 선택한다. 이를 통해 부하노드에서 작업이 소모하는 처리비용을 감소시키고, 유휴 노드의 처리비용을 늘려 부하를 평준화한다. 처리 중인 작업의 CPU 소모량, 유휴 노드로 재분배시 예상처리 비용, 재분배시 발생하는 비용을 통해 부하 노드에서 작업을 선택할 수 있다. (4) selects some of the jobs being processed from the load nodes classified by Equation (4) and redistributes them to the idle nodes to level the CPU usage of the load nodes. At this time, the job is selected considering the processing cost of the node consumed by the job and the processing cost expected after the redistribution at the idle node. This reduces processing costs consumed by the load node at the load node and increases the processing cost of the idle node to level the load. The workload can be selected from the load node through the CPU consumption of the work being processed, the anticipated processing cost for redistributing to idle nodes, and the cost of redistribution.

Figure pat00005
Figure pat00005

수학식 5는 작업 재분배시 부하 노드에서 작업을 선택하는 수식이다. 작업을 선택함에 있어서, 부하 노드에서 처리 중인 작업 중 CPU 소모량이 가장 큰 작업을 선택하게 된다. 이때, Taskselect는 선택된 작업을 의미하고,

Figure pat00006
는 부하 노드에서 처리중인 작업의 CPU 소모량을 의미한다.Equation (5) is a formula for selecting a job at the load node in redistributing the job. In selecting a job, the load node selects a job that consumes the largest CPU among the jobs being processed. At this time, Task select means selected task,
Figure pat00006
Is the CPU consumption of the work being processed at the load node.

수학식 5로 선택된 작업이 유휴 노드에 재분배 되어 작업을 진행할 때, 유휴 노드에 부하가 발생하여 지연이 발생하는지 확인할 필요가 있다. When the task selected in Equation (5) is redistributed to the idle node, it is necessary to check whether a delay occurs due to a load on the idle node.

Figure pat00007
Figure pat00007

수학식 6은 수학식 5에서 선택된 작업이 유휴 노드에 해당 작업을 재분배하는데 발생하는 비용을 구하는 식이다. 이때, tuplesize는 작업의 크기를 의미한다. Equation (6) is an expression for finding the cost that occurs when the job selected in Equation (5) occurs in redistributing the job to the idle node. Here, tuple size refers to the size of the job.

Figure pat00008
Figure pat00008

수학식 7은 예상되는 처리비용을 구하는 수식이다. 이때, Taskcost는 예상되는 처리비용을 나타내고,

Figure pat00009
는 유휴 노드의 평균 CPU 처리량을 나타내고,
Figure pat00010
은 부하 노드의 평균 CPU 처리량을 나타낸다.Equation (7) is a formula for estimating the processing cost. At this time, Task cost represents expected processing cost,
Figure pat00009
Represents the average CPU throughput of the idle node,
Figure pat00010
Represents the average CPU throughput of the load node.

수학식 7의 결과를 통해 계산된 예상 값의 전송시간을 제외한 값을 유휴 노드의 CPU 사용량과 더하여, 다시 수학식 3을 계산하여 이전에 나온 CPUexp값보다 적을 시 작업을 재분배한다. 이때, 유휴 노드의 유휴 메모리가 작업의 크기보다 작은 경우 작업의 손실이 발생하는 문제점이 발생한다. 이러한 경우 선택된 작업을 제외하고 다시 작업을 선택한다.The value obtained by subtracting the transmission time of the expected value calculated through the result of Equation (7) is added to the CPU usage of the idle node, and the equation (3) is again calculated to redistribute the work when the CPU exp is smaller than the value of the CPU exp . At this time, when the idle memory of the idle node is smaller than the size of the job, there is a problem that the job is lost. In this case, select the task again, except for the selected task.

도 5는 작업 복잡도로 인한 처리비용 증가 시 잡 스케쥴링 알고리즘이다. 5 is a job scheduling algorithm when the processing cost is increased due to the operation complexity.

도 5의 알고리즘을 참조하면, 라인 01~14에서 부하테이블을 통해 노드의 상태정보를 확인하고, CPU 사용량에 따라 부하 노드와 유휴 노드로 구분한다. 만약, 유휴 노드로 선정된 노드에서 유휴 메모리의 크기가 임계값인 20% 미만인 경우, 작업의 손실이 발생하는 문제점을 가지게 되므로 유휴 노드를 다시 선정한다. Referring to the algorithm of FIG. 5, the node status information is checked through the load table on lines 01 to 14, and classified into load nodes and idle nodes according to CPU usage. If the size of the idle memory in the node selected as the idle node is less than the threshold value of 20%, the idle node is selected again because the operation is lost.

라인 16~25에서는 부하 노드에서 작업을 선택하고 노드에 재분배하는 것을 나타낸다. 이때, 선택된 작업의 크기와 유휴 노드의 메모리의 합이 임계치인 80%이상 시, 작업의 손실이 발생하는 문제점이 발생하므로, 해당 작업을 제외한 작업을 선택하여 작업을 재분배한다. 이후 부하 테이블을 갱신한다.Lines 16 through 25 indicate that the job is selected at the load node and redistributed to the node. At this time, when the sum of the size of the selected job and the memory of the idle node is 80% or more, which is the threshold value, there is a problem that the job is lost, so the job is redistributed by selecting the job excluding the job. Then, the load table is updated.

도 6은 본 발명의 일 실시예에 따른 동적 잡 스케쥴링 시스템에서 작업 복잡도로 인한 노드의 처리비용 증가 상황을 나타낸 도면이다. 6 is a diagram illustrating a process cost increase of a node due to an operation complexity in a dynamic job scheduling system according to an embodiment of the present invention.

도 6은 워커노드 1에서 처리중인 작업의 복잡도로 인해 부하가 발생한 상황이다. 이와 같은 상황에서 수학식 3과 수학식 4에 따라, 부하 노드로 구분된 워커 노드1에서 처리 중인 작업 중 수학식 5의 결과로 선택된 Task4를 선택하여, 유휴 노드로 구분된 워커 노드3에 재분배하는 것을 나타낸다. 재분배 후, 유휴 노드의 CPU 사용량은 네트워크 비용을 제외한 60%가 되고, 부하 노드는 90%가 된다. 이를 통해 각 노드의 CPU 사용량의 평균을 계산하면 70%로 기존의 80%보다 12%감소한 것을 볼 수 있다.FIG. 6 shows a situation in which a load occurs due to the complexity of the work being processed in the worker node 1. FIG. In such a situation, Task 4 selected as a result of Equation 5 is selected among the tasks being processed in the worker node 1 classified as the load node according to Equations 3 and 4, and the task 4 selected as the idle node is redistributed Lt; / RTI > After redistribution, the CPU usage of the idle node is 60% excluding the network cost, and the load node becomes 90%. The average CPU usage of each node is 70%, which is 12% less than the existing 80%.

데이터 폭주로 인한 부하가 발생한 경우, 노드의 메모리 사용량이 크게 증가하여 작업의 손실의 문제가 발생한다. 이러한 경우 가용한 메모리가 있는 경우와 없는 경우로 나누어서 작업을 재분배한다. If the load caused by data congestion occurs, the memory usage of the node is greatly increased, causing a problem of loss of operation. In this case, redistribute the work with and without available memory.

가용한 메모리가 있는 경우는 메모리 부하 노드와 유휴 노드로 구분한다. 메모리 부하 노드의 작업 중 메모리 처리 비용이 가장 적은 작업을 선택하여 메모리의 유휴량이 가장 큰 유휴노드에 최악 적합(Worst-fit)방식을 사용하여 작업을 재분배한다. 이때, 최악 적합 방식을 만족하는 노드가 존재하지 않을 시 최적 적합을 만족하는 노드를 선택하여 작업을 재분배한다. 또한, 메모리의 크기뿐만 아니라 CPU 사용량에 의한 부하 또한 고려해야 한다. 메모리가 만족하는 경우, CPU의 부하 발생 시, 작업의 지연이 발생하여 실시간 처리에 문제가 발생한다. 이러한 문제점을 해결하기 위해 재분배 대상이 된 작업에 대하여 수학식 6을 사용하여, 해당 작업이 유휴 노드에 재분배 되어 예상되는 CPU 사용량을 구하고, 수학식 3을 이용하여 CPU의 부하가 발생하는지 확인한다. 부하가 발생하면 기존에 선정한 유휴 노드가 아닌 CPU 사용량 기준으로 유휴 노드를 선정하여 재분배한다.If there is available memory, it is classified as a memory load node and an idle node. Select a job that has the least memory processing cost during the operation of the memory load node and redistribute the job using the worst-fit method to the idle node with the largest amount of memory idle. At this time, when there is no node satisfying the worst-fit method, the node that satisfies the best fit is selected and the work is redistributed. In addition, not only the size of the memory but also the load caused by the CPU usage should be considered. If the memory is satisfied, there is a delay in the operation when a load of the CPU occurs and a problem occurs in real-time processing. In order to solve this problem, Equation (6) is used for the work which has been redistributed, and the expected CPU usage is estimated by redistributing the job to the idle node, and whether the load of the CPU occurs by using Equation (3). When a load occurs, idle nodes are selected and redistributed on the basis of CPU usage instead of the previously selected idle nodes.

가용한 메모리가 없는 경우는 모든 노드에 메모리가 가득 찬 상태를 의미한다. 이러한 경우 노드에 작업을 분배하여 처리를 하여도 손실이 발생하여 작업의 결과를 사용하기 힘든 문제점을 가지고 있다. 이를 해결하기 위해 노드의 성능을 고려한 동적 잡 스케쥴링 기법이 필요하다. 노드의 성능을 고려한 잡 스케쥴링은 작업의 데드라인, 노드의 평균 처리량, 메모리의 크기를 기준으로 잡 스케쥴링을 진행한다. 부하가 발생한 경우, 작업의 데드라인을 확인하여 처리가 급한 작업과 급하지 않은 작업으로 나눈다. 이후 처리가 급한 작업을 노드의 처리량과 메모리 크기에 따라 작업을 재분배하고, 처리가 급하지 않은 작업은 처리량이 보다 낮은 노드에 작업을 재분배한다. 이러한 과정을 통해 처리가 급한 작업을 처리량이 좋은 노드에 우선적으로 분배하여 실시간 처리의 지연 및 손실을 방지한다. 이를 위해서는 작업의 데드라인을 정의해야 한다. If there is no available memory, it means that all the nodes are full of memory. In this case, there is a problem that it is difficult to use the result of the work because the loss occurs even if the work is distributed to the node and processed. To solve this problem, a dynamic job scheduling technique considering node performance is needed. Job scheduling considering node performance is based on job deadline, average throughput of nodes, and memory size. If a load occurs, check the deadline of the job and divide it into urgent and untrained jobs. Subsequently, the task is redistributed according to the throughput and memory size of the node, and the unprocessed task redistributes the task to the lower throughput node. Through this process, it is possible to preferentially distribute the tasks whose processing speed is high to the nodes with high throughput, thereby preventing delay and loss of the real-time processing. To do this, you need to define a deadline for the task.

도 7은 슬라이딩 윈도우 방식으로 데이터가 입력되는 것을 나타낸 도면이다. 7 is a diagram illustrating data input in a sliding window method.

도 7에서 각 윈도우의 데드라인은 다음 윈도우가 채워지기 이전을 의미한다. 예를 들어, W1의 데드라인은 t3-t4를 의미한다. 이를 통해 작업의 데드라인을 비교하여 처리가 급한 작업에 우선순위를 부여하여 우선적으로 작업을 재분배하는 대상이 된다.7, the deadline of each window means before the next window is filled. For example, the deadline of W 1 means t 3 -t 4 . Through this, deadlines of jobs are compared and priority is given to jobs that are in a process of urgency, so that the jobs are redistributed first.

도 8은 본 발명의 일 실시예에 따른 동적 잡 스케쥴링 시스템에서 데이터 폭주 시 가용 노드가 존재하는 않는 상황을 나타낸 도면이다. FIG. 8 is a diagram illustrating a situation where an available node does not exist when data is congested in a dynamic-scheduling system according to an embodiment of the present invention.

도 8은 데이터 폭주 시 가용 노드가 존재하지 않는 경우의 노드 구조의 예이다. 도 8에서 Task1, Task2는 우선적으로 입력된 작업으로 다른 작업에 비해 데드라인이 얼마 남지 않은 상황이다. 이러한 경우 CPU 처리량의 평균이 비교적 높은 워커 노드1이 우선적으로 성능이 좋은 노드로 선정된다. 이후 남은 워커 노드 2, 워커 노드3에 최적 적합이 될 수 있는 작업을 선택하여 해당 노드로 재분배한다. FIG. 8 is an example of a node structure when there is no available node at the time of data congestion. In FIG. 8, Task 1 and Task 2 are priority input tasks, and the deadline is less than other tasks. In this case, the worker node 1 having a relatively high average CPU throughput is selected as a node with high performance. Then, the work that can be most suitable for the remaining worker node 2 and worker node 3 is selected and redistributed to the corresponding node.

도 8의 경우, Task3이 워커노드 3에 최적 적합인 것을 알 수 있다. 이를 통해 Task3을 워커 노드에 재분배하고, 우선순위가 큰 Task2를 성능이 좋은 워커노드 1에 재분배하여 부하테이블을 갱신 후 처리한다. 하지만, 워커노드1과 같이 처리성능은 좋으나 메모리가 작은 크기인 경우, 메모리에 수용할 수 있는 크기의 작업을 재분배하고, 나머지 작업은 두 번째로 처리성능이 좋은 노드인 워커노드2에 재분배하여 작업을 처리한다.In the case of FIG. 8, it can be seen that Task 3 is best suited for the worker node 3. This redistributes Task 3 to the worker nodes and redistributes Task 2 with the highest priority to the worker node 1 with good performance to update the load table. However, if the memory size is small, it is possible to reallocate the work that can be accommodated in the memory to the worker node 2, which is good in processing performance as in the worker node 1, and redistribute the work to the worker node 2, Lt; / RTI >

마지막으로 한 노드에 작업이 집중되어 CPU와 메모리 사용량이 증가하는 경우이다. 이러한 경우는 우선적으로 메모리의 크기를 고려하여 유휴 노드의 우선순위를 고려하고, 그 이후 CPU 사용량에 따라 작업을 분배한다. 작업 손실로 인하여, 실시간 스트림 데이터 처리를 함에 있어서 결과값을 신용 할 수 없는 문제가 발생하기 때문에, 메모리의 크기를 우선으로 고려하여 유휴 노드를 선정하고, 작업을 재분배한다. Finally, there is an increase in CPU and memory usage due to the concentration of work on one node. In this case, priority is given to the idle node in consideration of the size of the memory, and then the work is distributed according to the CPU usage. Because of the job loss, there is a problem that the result value can not be credited in real-time stream data processing. Therefore, the idle node is selected considering the size of the memory, and the work is redistributed.

작업 재분배 또한 앞서 데이터 폭주로 인한 노드의 부하 발생 시 다른 노드들의 가용 메모리가 있는 경우와 동일하다. 새로 입력되는 작업을 위해 부하가 집중된 노드의 작업의 일부를 최악 적합 방법을 사용하여 유휴 노드에 분배하고, CPU 사용량의 부하 발생 시, 도 5의 방식을 사용하여 처리하면 된다. 이를 통해 메모리를 고려한 작업의 재분배와 CPU 사용량에 따른 작업의 재분배로 인해 작업의 손실과 지연을 방지 시킬 수 있다.Work redistribution is also the same as when there is memory available on other nodes in the event of node load due to data congestion. A part of the work of the node in which the load is concentrated for the newly inputted job is distributed to the idle node by using the worst-case adaptive method, and when the load of the CPU usage occurs, the processing of FIG. This can prevent the loss and delay of jobs due to memory redistribution and redistribution of work depending on CPU usage.

본 발명에서는 노드의 부하를 고려한 동적 잡 스케쥴링 기법을 제안하였다. 기존의 기법은 작업의 처리과정에서 발생하는 노드의 부하로 인한 작업 지연 및 손실의 문제가 있었다. 본 발명에서 제안하는 기법은 CPU 사용량, 유휴 메모리의 크기, 네트워크 부하를 고려하여 각 노드의 부하를 계산한 후, 노드의 우선순위를 부여하여 해당 작업을 분배한다. 또한, 주기적으로 새로운 작업이 발생 시, 노드의 부하가 발생하면 부하가 발생한 노드에서 처리 중인 작업이 소모하는 노드의 부하를 확인하여, 작업을 재분배하는 잡 스케쥴링 수행한다. In the present invention, a dynamic job scheduling scheme considering node load is proposed. The existing technique has a problem of delay and loss of work due to the load of nodes occurring in the process of the work. The technique proposed in the present invention calculates the load of each node in consideration of the CPU usage, the size of the idle memory, and the network load, assigns priorities of the nodes, and distributes the corresponding tasks. Also, when a new job occurs periodically, when a load of a node occurs, a load of the node consuming the job under processing is confirmed at the node where the load occurs, and job scheduling for redistributing the job is performed.

본 발명에서 제안하는 기법의 우수성을 입증하기 위해 기존 기법과 성능 평가를 수행한 결과, 본 발명에서 제안하는 기법이 기존 기법보다 우수한 성능을 보였다. 성능평가 결과, 본 발명에서 제안하는 기법이 기존 기법에 비해 데이터 처리 시간에서 약 15% 우수한 성능을 보이는 것으로 나타났다. 또한, 노드의 부하를 측정한 결과, 임계치에 가깝게 모든 노드가 비슷한 부하를 가지고 있는 것을 보였다. In order to prove the superiority of the technique proposed in the present invention, the existing technique and the performance evaluation were performed. As a result, the technique proposed by the present invention showed superior performance to the conventional technique. As a result of the performance evaluation, the technique proposed by the present invention showed about 15% better performance than the conventional technique in data processing time. In addition, the load of the node was measured and it was shown that all nodes close to the threshold have similar loads.

이상 본 발명을 몇 가지 바람직한 실시예를 사용하여 설명하였으나, 이들 실시예는 예시적인 것이며 한정적인 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 지닌 자라면 본 발명의 사상과 첨부된 특허청구범위에 제시된 권리범위에서 벗어나지 않으면서 다양한 변화와 수정을 가할 수 있음을 이해할 것이다.While the present invention has been described with reference to several preferred embodiments, these embodiments are illustrative and not restrictive. It will be understood by those skilled in the art that various changes and modifications may be made therein without departing from the spirit of the invention and the scope of the appended claims.

100 님버스 200 워커 노드
300 쥬키퍼 110 스케쥴러
120 부하 테이블 210 워커
220 N모니터
100 Names Bus 200 Worker Node
300 Jukipper 110 scheduler
120 Load table 210 Walker
220 N monitor

Claims (12)

분산 인-메모리(In-Memory) 환경에서 실시간 스트림 데이터 처리를 위한 동적 잡 스케쥴링 시스템에서의 동적 잡 스케쥴링 방법에서,
스트림 데이터가 입력되면, CPU 사용량, 유휴 메모리의 크기, 네트워크 부하를 고려하여 각 노드의 부하를 계산하는 단계;
계산된 각 노드의 부하에 따라 각 노드에 우선순위를 부여하여 작업을 분배하는 정적 잡 스케쥴링을 수행하는 단계;
분배 후 각 노드의 상태 정보 및 작업이 각 노드에서 소모하는 부하 정보를 부하 테이블에서 관리하는 단계; 및
상기 부하 테이블의 정보를 주기적으로 확인하여, 부하의 발생 원인을 탐색하고, 부하의 발생 원인에 따라 각 노드의 CPU 사용량, 메모리 사용량, 네트워크 부하를 이용하여 동적 잡 스케쥴링을 통해 작업을 재분배하는 단계를 포함하는 동적 잡 스케쥴링 방법.
In a dynamic job scheduling method in a dynamic job scheduling system for real-time stream data processing in a distributed in-memory environment,
When the stream data is inputted, calculating a load of each node in consideration of the CPU usage, the size of the idle memory, and the network load;
Performing static job scheduling for assigning priority to each node according to a load of each calculated node to distribute the job;
Managing status information of each node after the distribution and load information consumed by each node in the load table; And
Periodically checking the information of the load table, searching for the cause of the load, and redistributing the job through dynamic job scheduling using the CPU usage, memory usage, and network load of each node according to the cause of the load Wherein the dynamic scheduling method comprises:
청구항 1에 있어서,
상기 부하의 발생 원인이 작업 계산 복잡도로 인한 CPU 사용량의 증가에 따른 부하인 경우,
CPU의 사용량을 통해 노드의 부하를 구분하고, 상대적으로 부하가 적은 유휴 노드에 작업을 재분배할 수 있는지 확인하고, 재분배가 가능하면 해당 작업을 해당 유휴 노드에 재분배할 때 예상되는 처리량을 구하고, 그 결과 해당 유휴 노드에 부하가 발생하지 않는 것으로 판단되면 해당 작업을 해당 유휴 노드에 재분배하는 것을 특징으로 하는 동적 잡 스케쥴링 방법.
The method according to claim 1,
If the cause of the load is a load due to an increase in the CPU usage due to the computational complexity of the task,
It is possible to identify the load of the node through the CPU usage, to confirm that the work can be redistributed to the idle node with a relatively low load, to obtain the expected throughput when redistributing the job to the idle node if possible, And if it is determined that no load is generated in the corresponding idle node, re-distributing the corresponding job to the corresponding idle node.
청구항 1에 있어서,
상기 부하의 발생 원인이 데이터 폭주로 인해 발생한 부하인 경우,
가용 메모리가 있으면, 유휴 메모리의 양이 가장 큰 노드에 해당 작업을 재분배하는 것을 특징으로 하는 동적 잡 스케쥴링 방법.
The method according to claim 1,
If the cause of the load is a load caused by data congestion,
And if there is available memory, redistributing the job to the node having the largest amount of idle memory.
청구항 3에 있어서,
메모리 부하 노드의 작업 중 메모리 처리 비용이 가작 적은 작업을 선택하여, 메모리의 유휴량이 가장 큰 유휴 노드에 최악 적합(Worst-fit) 방식을 적용하여 작업을 재분배하며,
이때, 최악 적합 방식을 만족하는 노드가 없으면, 최적 적합을 만족하는 노드를 선택하여 작업을 재분배하는 것을 특징으로 하는 동적 잡 스케쥴링 방법.
The method of claim 3,
The workload is redistributed by applying a worst-fit scheme to the idle node having the largest idle amount of memory, by selecting a task whose memory processing cost is small during the operation of the memory load node,
Wherein if there is no node satisfying the worst-case adaptive scheme, the node satisfying the best fit is selected and the work is redistributed.
청구항 3에 있어서,
가용 메모리가 없으면, 작업의 데드라인을 확인하여 상대적으로 처리가 급한 작업과 처리가 급하지 않은 작업으로 구분하고, 처리가 급한 작업을 노드의 처리량과 메모리의 크기가 상대적으로 큰 노드에 재분배하고, 처리가 급하지 않은 작업을 노드의 처리량과 메모리의 크기가 상대적으로 작은 노드에 재분배하는 것을 특징으로 하는 동적 잡 스케쥴링 방법.
The method of claim 3,
If there is no available memory, the deadline of the job is identified, and the job is classified into a relatively urgent job and a non-urgent job. The urgent job is redistributed to a node having a relatively large throughput and memory size, And redistributing the unprocessed job to a node having a relatively small processing amount and memory size of the node.
청구항 1에 있어서,
상기 부하의 발생 원인이 한 노드에 작업이 집중되어 CPU와 메모리 사용량이 증가하는 것인 경우,
우선적으로 가용 메모리를 갖고 있는 유휴 노드에 대해 메모리의 크기가 큰 순서대로 우선 순위를 결정하여 작업을 재분배하고, 이후 CPU의 사용량에 따라 사용량이 비교적 적은 노드를 선택하여 작업을 재분배하는 것을 특징으로 하는 동적 잡 스케쥴링 방법.
The method according to claim 1,
If the cause of the load is that the work is concentrated on one node and the CPU and memory usage increase,
The priority is determined in descending order of the size of the memory for the idle nodes having the available memory, and the tasks are redistributed. Thereafter, the node having a relatively small usage amount is selected according to the amount of CPU usage, Dynamic Job Scheduling Method.
분산 인-메모리(In-Memory) 환경에서 실시간 스트림 데이터 처리를 위한 동적 잡 스케쥴링 시스템에서,
작업을 수행하는 워커(Worker)와, 부하를 확인하기 위한 N모니터(NMonitor)를 포함하여 구성되는 하나 이상의 워커 노드;
상기 워커노드의 상태정보를 저장하는 쥬키퍼 노드; 및
상기 쥬키퍼와 통신하며, 상기 워커 노드의 상태 정보와, 상기 워커 노드에서 수행 중인 작업 정보를 저장하기 위한 부하 테이블과, 상기 부하 테이블을 확인하여 스케쥴링(scheduling)을 진행하는 스케쥴러를 포함하여 이루어지는 님버스 노드를 포함하되,
상기 스케쥴러는 스트림 데이터가 입력되면, 상기 부하 테이블로부터 CPU 사용량, 유휴 메모리의 크기, 네트워크 부하를 고려하여 각 워커 노드의 부하를 계산하고, 계산된 각 노드의 부하에 따라 각 워커 노드에 우선순위를 부여하여 작업을 분배하는 정적 잡 스케쥴링을 수행하고, 상기 부하 테이블의 정보를 주기적으로 확인하여, 부하의 발생 원인을 탐색하고, 부하의 발생 원인에 따라 각 워커 노드의 CPU 사용량, 메모리 사용량, 네트워크 부하를 이용하여 동적 잡 스케쥴링을 통해 작업을 재분배하는 것을 특징으로 하는 동적 잡 스케쥴링 시스템.
In a dynamic job scheduling system for real-time stream data processing in a distributed in-memory environment,
At least one worker node configured to include a worker for performing an operation and an N monitor (NMonitor) for checking a load;
A jukebox node for storing status information of the worker node; And
And a scheduler for communicating with the jukipers, for storing status information of the worker node, job information being executed by the worker node, and a scheduler for checking the load table and performing scheduling. Bus node,
When the stream data is input, the scheduler calculates load of each worker node from the load table in consideration of CPU usage, idle memory size, and network load, and assigns priority to each worker node according to the calculated load of each node The CPU load of the worker node, the memory usage, and the network load of the worker node are determined according to the cause of the load, Wherein the job is redistributed through dynamic job scheduling using the dynamic job scheduling.
청구항 7에 있어서,
상기 부하의 발생 원인이 작업 계산 복잡도로 인한 CPU 사용량의 증가에 따른 부하인 경우,
상기 스케쥴러는 CPU의 사용량을 통해 워커 노드의 부하를 구분하고, 상대적으로 부하가 적은 유휴 워커 노드에 작업을 재분배할 수 있는지 확인하고, 재분배가 가능하면 해당 작업을 해당 유휴 워커 노드에 재분배할 때 예상되는 처리량을 구하고, 그 결과 해당 유휴 워커 노드에 부하가 발생하지 않는 것으로 판단되면 해당 작업을 해당 유휴 워커 노드에 재분배하는 것을 특징으로 하는 동적 잡 스케쥴링 시스템.
The method of claim 7,
If the cause of the load is a load due to an increase in the CPU usage due to the computational complexity of the task,
The scheduler identifies the load of the worker node through the amount of CPU usage, verifies whether the work can be redistributed to the idle worker node with a relatively low load, and when the redistribution is possible, And if it is determined that no load is generated in the corresponding idle worker node, re-distributes the corresponding job to the corresponding idle worker node.
청구항 7에 있어서,
상기 부하의 발생 원인이 데이터 폭주로 인해 발생한 부하인 경우,
상기 스케쥴러는 가용 메모리가 있으면, 유휴 메모리의 양이 가장 큰 워커 노드에 해당 작업을 재분배하는 것을 특징으로 하는 동적 잡 스케쥴링 시스템.
The method of claim 7,
If the cause of the load is a load caused by data congestion,
Wherein the scheduler redistributes the work to a worker node having a largest amount of idle memory if the available memory is available.
청구항 9에 있어서,
상기 스케쥴러는 메모리 부하 노드의 작업 중 메모리 처리 비용이 가작 적은 작업을 선택하여, 메모리의 유휴량이 가장 큰 유휴 워커 노드에 최악 적합(Worst-fit) 방식을 적용하여 작업을 재분배하며, 이때 최악 적합 방식을 만족하는 워커 노드가 없으면, 최적 적합을 만족하는 워커 노드를 선택하여 작업을 재분배하는 것을 특징으로 하는 동적 잡 스케쥴링 시스템.
The method of claim 9,
The scheduler selects a job having a small memory processing cost during the operation of the memory load node and redistributes the job by applying a worst-fit method to the idle worker node having the largest idle amount of memory. In this case, If there is no worker node that satisfies the best fit, selects a worker node that satisfies the best fit and redistributes the work.
청구항 9에 있어서,
상기 스케쥴러는 가용 메모리가 없으면, 작업의 데드라인을 확인하여 상대적으로 처리가 급한 작업과 처리가 급하지 않은 작업으로 구분하고, 처리가 급한 작업을 처리량과 메모리의 크기가 상대적으로 큰 워커 노드에 재분배하고, 처리가 급하지 않은 작업을 처리량과 메모리의 크기가 상대적으로 작은 워커 노드에 재분배하는 것을 특징으로 하는 동적 잡 스케쥴링 시스템.
The method of claim 9,
If the available memory is not available, the scheduler identifies the deadline of the task and divides it into a relatively urgent task and a non-urgent task. If the urgent task is redistributed to a worker node having a relatively large throughput and memory size And redistributes the unprocessed work to a worker node having a relatively small throughput and memory size.
청구항 7에 있어서,
상기 부하의 발생 원인이 한 워커 노드에 작업이 집중되어 CPU와 메모리 사용량이 증가하는 것인 경우,
상기 스케쥴러는 우선적으로 가용 메모리를 갖고 있는 유휴 워커 노드에 대해 메모리의 크기가 큰 순서대로 우선 순위를 결정하여 작업을 재분배하고, 이후 CPU의 사용량에 따라 사용량이 비교적 적은 워커 노드를 선택하여 작업을 재분배하는 것을 특징으로 하는 동적 잡 스케쥴링 시스템.
The method of claim 7,
If the work is concentrated on a worker node that causes the load, and the CPU and memory usage increase,
The scheduler preferentially allocates an idle worker node having available memory in descending order of size of memory, redistributing the work, and then selecting a worker node having a relatively small usage amount according to the amount of CPU usage, The dynamic scheduling system.
KR1020160175725A 2016-12-21 2016-12-21 Dynamic job scheduling system and method for supporting real-time stream data processing in distributed in-memory environment KR101886072B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160175725A KR101886072B1 (en) 2016-12-21 2016-12-21 Dynamic job scheduling system and method for supporting real-time stream data processing in distributed in-memory environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160175725A KR101886072B1 (en) 2016-12-21 2016-12-21 Dynamic job scheduling system and method for supporting real-time stream data processing in distributed in-memory environment

Publications (2)

Publication Number Publication Date
KR20180072295A true KR20180072295A (en) 2018-06-29
KR101886072B1 KR101886072B1 (en) 2018-08-08

Family

ID=62781095

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160175725A KR101886072B1 (en) 2016-12-21 2016-12-21 Dynamic job scheduling system and method for supporting real-time stream data processing in distributed in-memory environment

Country Status (1)

Country Link
KR (1) KR101886072B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109766363A (en) * 2019-01-08 2019-05-17 北京江融信科技有限公司 Stream data processing method, system, electronic equipment and storage medium
KR102073029B1 (en) * 2018-07-31 2020-02-05 동국대학교 산학협력단 Apparatus and method for assigning task, apparatus and method for requesting reallocation of task
KR20200094852A (en) * 2019-01-25 2020-08-10 전자부품연구원 Connected car big data acquisition device, system and method
CN111556343A (en) * 2020-03-30 2020-08-18 重庆厚齐科技有限公司 Video transmission system sharing intelligent node
CN114640680A (en) * 2020-11-30 2022-06-17 南宁富联富桂精密工业有限公司 Load balancing method and device and computer readable storage medium

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0737929A2 (en) * 1995-03-16 1996-10-16 Kabushiki Kaisha Toshiba Stream scheduling system for real time stream server
KR101289136B1 (en) 2008-03-18 2013-07-23 리서치 인 모션 리미티드 Dynamic scheduling overwriting of semi-persistent allocation in an uplink
KR20140060962A (en) * 2012-11-13 2014-05-21 주식회사 유투앤 System and method for providing multiple service using idle resource of network distributed file system
JP2014174597A (en) * 2013-03-06 2014-09-22 Kddi Corp In-memory distributed database, data distribution method, and program
KR20140137582A (en) * 2013-05-23 2014-12-03 한국전자통신연구원 Apparatus and method for managing processing tasks
KR20150062596A (en) * 2013-11-29 2015-06-08 주식회사 포스코아이씨티 System and method for distributing big data
CN105824618A (en) * 2016-03-10 2016-08-03 浪潮软件集团有限公司 Real-time message processing method for Storm

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0737929A2 (en) * 1995-03-16 1996-10-16 Kabushiki Kaisha Toshiba Stream scheduling system for real time stream server
KR101289136B1 (en) 2008-03-18 2013-07-23 리서치 인 모션 리미티드 Dynamic scheduling overwriting of semi-persistent allocation in an uplink
KR20140060962A (en) * 2012-11-13 2014-05-21 주식회사 유투앤 System and method for providing multiple service using idle resource of network distributed file system
JP2014174597A (en) * 2013-03-06 2014-09-22 Kddi Corp In-memory distributed database, data distribution method, and program
KR20140137582A (en) * 2013-05-23 2014-12-03 한국전자통신연구원 Apparatus and method for managing processing tasks
KR20150062596A (en) * 2013-11-29 2015-06-08 주식회사 포스코아이씨티 System and method for distributing big data
CN105824618A (en) * 2016-03-10 2016-08-03 浪潮软件集团有限公司 Real-time message processing method for Storm

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
복경수 외 6명. '빅데이터 환경에서 스트림 질의 처리를 위한 인메모리 기반 점진적 처리 기법'. 한국콘텐츠학회논문지 제16권 제2호, 2016.2, pp.163-173. *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102073029B1 (en) * 2018-07-31 2020-02-05 동국대학교 산학협력단 Apparatus and method for assigning task, apparatus and method for requesting reallocation of task
CN109766363A (en) * 2019-01-08 2019-05-17 北京江融信科技有限公司 Stream data processing method, system, electronic equipment and storage medium
KR20200094852A (en) * 2019-01-25 2020-08-10 전자부품연구원 Connected car big data acquisition device, system and method
US11609922B2 (en) 2019-01-25 2023-03-21 Korea Electronics Technology Institute Connected car big data acquisition device, system and method for storing data gathered in a single platform
CN111556343A (en) * 2020-03-30 2020-08-18 重庆厚齐科技有限公司 Video transmission system sharing intelligent node
CN114640680A (en) * 2020-11-30 2022-06-17 南宁富联富桂精密工业有限公司 Load balancing method and device and computer readable storage medium
CN114640680B (en) * 2020-11-30 2024-04-05 南宁富联富桂精密工业有限公司 Load balancing method, device and computer readable storage medium

Also Published As

Publication number Publication date
KR101886072B1 (en) 2018-08-08

Similar Documents

Publication Publication Date Title
KR101886072B1 (en) Dynamic job scheduling system and method for supporting real-time stream data processing in distributed in-memory environment
US10558498B2 (en) Method for scheduling data flow task and apparatus
US10474504B2 (en) Distributed node intra-group task scheduling method and system
US20150295970A1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
Sprunt et al. Aperiodic task scheduling for hard-real-time systems
US20200412835A1 (en) Scheduling method, scheduler, storage medium, and system
US9495214B2 (en) Dynamic resource allocations method, systems, and program
US10089142B2 (en) Dynamic task prioritization for in-memory databases
US9218213B2 (en) Dynamic placement of heterogeneous workloads
US7752628B2 (en) Method and apparatus for reassigning objects to processing units
US9286123B2 (en) Apparatus and method for managing stream processing tasks
US8818989B2 (en) Memory usage query governor
CN108549583B (en) Big data processing method and device, server and readable storage medium
KR101644800B1 (en) Computing system and method
US8627330B2 (en) Workload manager managing a workload of an enterprise data warehouse
KR101471749B1 (en) Virtual machine allcoation of cloud service for fuzzy logic driven virtual machine resource evaluation apparatus and method
CN109861850B (en) SLA-based stateless cloud workflow load balancing scheduling method
Kovalchuk et al. Deadline-driven resource management within urgent computing cyberinfrastructure
KR101630125B1 (en) Method for resource provisioning in cloud computing resource management system
CN109150759B (en) Progressive non-blocking opportunity resource reservation method and system
KR101595967B1 (en) System and Method for MapReduce Scheduling to Improve the Distributed Processing Performance of Deadline Constraint Jobs
Wang et al. Maintaining data temporal consistency in distributed real-time systems
US20080195447A1 (en) System and method for capacity sizing for computer systems
Guo Ant colony optimization computing resource allocation algorithm based on cloud computing environment
CN108429704B (en) Node resource allocation method and device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant