KR20140137582A - 스트림 처리 태스크 관리 장치 및 방법 - Google Patents

스트림 처리 태스크 관리 장치 및 방법 Download PDF

Info

Publication number
KR20140137582A
KR20140137582A KR1020130058255A KR20130058255A KR20140137582A KR 20140137582 A KR20140137582 A KR 20140137582A KR 1020130058255 A KR1020130058255 A KR 1020130058255A KR 20130058255 A KR20130058255 A KR 20130058255A KR 20140137582 A KR20140137582 A KR 20140137582A
Authority
KR
South Korea
Prior art keywords
task
memory
execution
tasks
frequency
Prior art date
Application number
KR1020130058255A
Other languages
English (en)
Other versions
KR101694287B1 (ko
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 KR1020130058255A priority Critical patent/KR101694287B1/ko
Priority to US14/225,661 priority patent/US9286123B2/en
Publication of KR20140137582A publication Critical patent/KR20140137582A/ko
Application granted granted Critical
Publication of KR101694287B1 publication Critical patent/KR101694287B1/ko

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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

Abstract

스트림 처리 태스크 객체로 인해 메모리 자원의 고갈 발생시 각 노드에서 수행되는 태스크들 간의 수행 빈도 분석을 바탕으로 태스크를 각 태스크의 수행 빈도 특성에 적합하게 메모리와 디스크 간에 효율적으로 배치하여 인메모리 관리 하에 실행하도록 한 스트림 처리 태스크 관리 장치 및 방법이 제시된다. 제시된 스트림 처리 태스크 관리 장치는 태스크 관리부의 요청에 의해 태스크들을 실행하고, 태스크들의 실행에 따른 메모리 부하 상태 및 태스크 수행 빈도 특성을 수집하고, 메모리 부하 상태를 근거로 메모리 부족 발생으로 판단하면 수행 빈도 특성을 근거로 수행 저빈도 태스크들을 검출하여 재배치 우선순위를 설정하고, 설정된 재배치 우선순위를 근거로 태스크들을 재배치한다.

Description

스트림 처리 태스크 관리 장치 및 방법{APPARATUS AND METHOD FOR MANAGING PROCESSING TASKS}
본 발명은 스트림 처리 태스크 관리 장치 및 방법에 관한 것으로, 더욱 상세하게는 폭증하는 데이터 스트림을 실시간으로 처리하고자 하는 스트림 처리 시스템에서 연속적으로 실행되는 대규모 스트림 처리 태스크를 수행 빈도에 따라 인메모리에 효율적으로 관리하는 스트림 처리 태스크 관리 장치 및 방법에 대한 것이다.
최근 빅 데이터 시대가 도래하면서 처리해야 할 데이터 스트림의 양이 빠르게 증가하고 있고, 데이터 스트림의 종류 또한 더욱 다양해지고 있다. 그에 따라, 대용량 데이터 스트림에 대한 실시간 데이터 분석 및 가공 서비스를 제공하기 위한 데이터 스트림 분산 병렬 처리 관련 연구가 활발히 진행되고 있다.
데이터 스트림 분산 병렬 처리 방법의 일례로 데이터 플로 기반 분산 병렬 처리 구조가 있다. 도 1에 도시된 바와 같이, 데이터 플로 기반 분산 병렬 처리 방법에서 서비스(100)는 입력 소스(110)를 입력받아 분산 병렬 처리를 수행하여 출력 소스(140)를 제공한다. 이때, 입력 데이터의 처리 방법은 데이터 스트림에 대한 질의 또는 처리 방법이 기술된 여러 연산들(121-125)의 정의와 이들 연산들 간의 데이터 흐름을 기술하는 DAG(Directed Acyclic Graph)로 표현된다. 이러한 서비스(100) 내의 연산들(121 내지 125)은 여러 개의 태스크(131 내지 135)로 분할되어 다중 노드로 구성된 클러스터 내의 여러 노드들(111 내지 115)에 분산 배치되어 실행이 된다.
일반적으로 태스크는 각 노드에서 각 노드의 태스크 관리 프로세스가 관리하는 개별 태스크 스레드 형태로 실행이 된다. 한번 실행이 되면 이후 스레드의 종료 없이 연속적으로 수행됨으로써 대용량 데이터 스트림의 빠른 병렬 처리를 연속적으로 수행하는 것이 가능하게 된다.
종래의 데이터 플로 기반 분산 병렬 처리 구조는 등록된 서비스의 태스크들이 입력되는 데이터 스트림을 바탕으로 연속적으로 수행된다. 이때, 응용 서비스에 따라 아주 많은 태스크들이 동시에 수행되는 경우 노드 내 생성 파일 개수가 고갈되거나, 스레드 간에 컨텍스트 스위칭 부하가 발생하는 등의 문제가 발생한다.
이와 같은 과도한 스레드 생성 문제를 해결하기 위해, 최근에 개발되는 분산 스트림 처리 시스템에서는 각 노드에는 태스크 관리 프로세스가 관리하는 일정 개수의 태스크 실행기 스레드만을 생성한다. 각 노드에 할당된 태스크는 스레드가 아닌 객체 형태로 태스크 객체 풀을 만들어 관리한다. 태스크 실행기 스레드가 다수의 태스크 풀로부터 태스크를 꺼내 와서 입력 데이터 스트림을 전달함으로써 각 노드에서 입력 데이터 스트림을 처리하게 하는 방법을 사용하고 있다.
여기서, 분산 스트림 처리 시스템을 이용하여 문장에 포함되는 단어의 개수를 계속 세는 단어 개수 계산 서비스를 예로 들어 설명하면 아래와 같다. 단어 개수 계산 서비스는 끊임없이 입력되는 문장으로부터 추출한 입력 단어들의 숫자를 세어, 입력 단어들의 최신 출현 개수를 세는 응용 서비스이다. 도 2에 도시된 바와 같이, 태스크(221 내지 225)는 문장에 포함된 입력 단어들(211 내지 219)로부터 각 단어들의 출현 개수를 카운트한다. 이때, 각 단어들의 현재까지의 출현 개수를 세는 태스크(221 내지 225)는 계속 메모리 내에 유지가 되고 있어야 계속 입력되는 전체 단어의 개수를 빠뜨리지 않고 셀 수 있게 된다.
이와 같이 태스크를 스레드가 아닌 객체(즉, 태스크 객체)로서 관리하는 경우에도 메모리에서 태스크 객체의 상태를 계속 유지해야한다. 이때, 하나의 응용 서비스 내에서도 수백만 개에 이르는 태스크 객체를 메모리에 유지해야 한다.
따라서, 데이터 분산 병렬 처리 시스템은 응용 서비스를 동시에 수백개 처리해야 하기 때문에 태스크 객체의 수가 급증하여 메모리에 모두 유지하기 어려운 문제가 발생한다. 특히 아주 제한된 메모리를 가진 컴퓨팅 노드에서는 연속적으로 수행되는 모든 태스크를 인메모리에 유지할 수 없는 상황이 발생하게 된다.
이때, 종래의 분산 병렬 처리 시스템들은 대규모 태스크 객체로 인해 메모리 자원의 고갈이 방지하기 위해 노드 내 자원의 증대 방법을 이용하고 있다. 즉, 분산 병렬 처리 시스템들은 문제가 되는 연산에 대해 메모리, CPU와 같은 노드의 자원을 더 많이 할당하거나, 입력 스트림을 선별적으로 버리거나 스트림 처리 태스크를 선별적으로 버리는 부하 차단(load shedding) 방법을 수행한다. 일례로, 미국발표논문(명칭: Distributed Stream Computing Platform, 게재지: Proceedings of the ICDM Workshops, 발표일: 2010.12.13, 관련부분: 170~177 페이지)이 있다.
분산 병렬 처리 시스템들은 연산을 구성하는 태스크 객체를 현재 수행 중인 노드에서 다른 노드로 이동시켜 수행하는 부하 이주(load migration) 방법을 수행한다. 일례로, 한국공개특허 제10-2013-0010314호(명칭: 폭증 데이터 스트림 처리 방법 및 장치)가 있다.
그러나, 노드 내 자원의 증대 방법은 서비스가 수행 중인 상황에서 온라인으로 적용하기 힘든 면이 있으며, 부하 차단과 같이 입력 데이터 스트림 또는 스트림 처리 태스크를 삭제하는 방법은 연속 질의 처리 결과의 정확도 저하를 초래한다는 문제점이 있다.
또한, 연산을 구성하는 태스크의 다른 노드로의 이동을 위해서는 다수의 노드를 필요로 하게 되므로 비용 측면에서 바람직하지 않은 문제가 있으며, 또한 대규모 태스크와 태스크 간에 데이터 전달 맵핑 관계를 다시 설정해 주어야 하는 문제점이 있다.
본 발명은 상기한 종래의 문제점을 해결하기 위해 제안된 것으로, 스트림 처리 태스크 객체로 인해 메모리 자원의 고갈 발생시 각 노드에서 수행되는 태스크들 간의 수행 빈도 분석을 바탕으로 태스크를 각 태스크의 수행 빈도 특성에 적합하게 메모리와 디스크 간에 효율적으로 배치하여 인메모리 관리 하에 실행하도록 한 스트림 처리 태스크 관리 장치 및 방법을 제공하는 것을 목적으로 한다. 즉, 본 발명은 자주 수행되는 태스크를 인메모리 관리하게 하는 방법을 통해서 메모리 제한적인 상황에서도 폭증 스트림 데이터의 손실 없이 그리고 스트림 처리 결과 정확도의 손실없이 실시간 폭증 스트림 데이터를 처리하도록 한 스트림 처리 태스크 관리 장치 및 방법을 제공하는 것을 목적으로 한다.
상기한 목적을 달성하기 위하여 본 발명의 실시예에 따른 스트림 처리 태스크 관리 장치는, 할당된 태스크들의 실행을 제어 및 관리하는 태스크 관리부; 및 태스크 관리부의 요청에 의해 태스크들을 실행하고, 태스크들의 실행에 따른 메모리 부하 상태 및 태스크 수행 빈도 특성을 수집하고, 메모리 부하 상태를 근거로 메모리 부족 발생으로 판단하면 수행 빈도 특성을 근거로 수행 저빈도 태스크들을 검출하여 재배치 우선순위를 설정하고, 설정된 재배치 우선순위를 근거로 태스크들을 재배치하는 태스크 실행부를 포함한다.
태스크 실행부는, 태스크의 실행에 따른 메모리 사용량을 포함하는 메모리 부하 상태, 및 태스크의 사용 빈도, 최근 수행 시간, 태스크 객체 크기를 포함하는 수행 빈도 특성을 수집한다.
태스크 실행부는, 수집한 메모리 부하 상태에 포함된 메모리 사용량이 기설정된 메모리량을 초과하면 메모리 부족 발생으로 판단한다.
태스크 실행부는, 수집한 태스크 수행 빈도 특성의 수행 빈도 또는 최근 수행 시간을 근거로 활동 태스크 풀에 포함된 활동 태스크들 중에서 수행 저빈도 태스크를 검출한다.
태스크 실행부는, 검출한 수행 저빈도 태스크들의 메모리 용량을 근거로 재배치 우선순위를 설정한다.
태스크 실행부는, 재배치 우선순위를 내림차순으로 정렬하여 태스크 재배치 정보를 생성하고, 태스크 재배치 정보에 포함된 재배치 우선순위에 따라 수행 저빈도 태스크를 메모리에서 삭제한다.
태스크를 저장하는 저장부를 더 포함하고, 태스크 실행부는, 삭제한 수행 저빈도 태스크를 저장부에 저장한다.
태스크 실행부는, 수집한 태스크 수행 빈도 특성을 근거로 태스크들을 활동 태스크 또는 수면 태스크로 설정하고, 활동 태스크로 설정된 태스크를 메모리에 로드하여 실행하고, 수면 태스크로 설정된 태스크를 저장부에 저장한다.
태스크 실행부는, 저장부로부터 검출한 수면 태스크를 메모리에 로드하여 실행하고, 실행된 수면 태스크의 실행이 완료되면 수면 태스크를 메모리에서 삭제한다.
태스크 실행부에서 활동 태스크로 설정된 태스크들과 태스크들의 목록을 관리하는 활동 태스크 풀; 및 태스크 실행부에서 수면 태스크로 설정된 태스크들의 목록을 관리하는 수면 태스크 풀을 더 포함하고, 저장부는 태스크 실행부에서 수면 태스크로 설정된 태스크들을 저장한다.
상기한 목적을 달성하기 위하여 본 발명의 실시예에 따른 스트림 처리 태스크 관리 방법은, 스트림 처리 태스크 관리 장치에 의해, 태스크의 실행에 따른 메모리 부하 상태 및 태스크 수행 빈도 특성을 수집하는 단계; 스트림 처리 태스크 관리 장치에 의해, 수집한 메모리 부하 상태를 근거로 메모리 부족 발생 여부를 판단하는 단계; 스트림 처리 태스크 관리 장치에 의해, 판단하는 단계에서 메모리 부족 발생으로 판단하면, 수집한 태스크 수행 빈도 특성을 근거로 수행 저빈도 태스크들을 검출하는 단계; 스트림 처리 태스크 관리 장치에 의해, 검출한 수행 저빈도 태스크들의 재배치 우선순위를 설정하는 단계; 스트림 처리 태스크 관리 장치에 의해, 설정된 재배치 우선순위를 근거로 태스크 재배치 정보를 생성하는 단계; 및 스트림 처리 태스크 관리 장치에 의해, 생성한 태스크 재배치 정보를 근거로 태스크를 재배치하는 단계를 포함한다.
수집하는 단계에서는, 스트림 처리 태스크 관리 장치에 의해, 태스크의 사용 빈도, 최근 수행 시간, 태스크 객체 크기를 포함하는 수행 빈도 특성을 수집한다.
수집하는 단계에서는, 태스크의 실행에 따른 메모리 사용량을 포함하는 메모리 부하 상태를 수집한다.
판단하는 단계에서는 스트림 처리 태스크 관리 장치에 의해, 수집된 메모리 사용량이 기설정된 메모리량을 초과하면 메모리 부족 발생으로 판단한다.
수행 저빈도 태스크들을 검출하는 단계에서는, 스트림 처리 태스크 관리 장치에 의해, 수집한 태스크 수행 빈도 특성의 수행 빈도 또는 최근 수행 시간을 근거로 활동 태스크 풀에 포함된 활동 태스크들 중에서 수행 저빈도 태스크를 검출한다.
재배치 우선순위를 설정하는 단계에서는, 스트림 처리 태스크 관리 장치에 의해, 검출한 수행 저빈도 태스크들의 메모리 용량을 근거로 재배치 우선순위를 설정한다.
태스크 재배치 정보를 생성하는 단계에서는, 스트림 처리 태스크 관리 장치에 의해, 재배치 우선순위를 내림차순으로 정렬하여 태스크 재배치 정보를 생성한다.
태스크를 재배치하는 단계에서는, 스트림 처리 태스크 관리 장치에 의해, 생성된 태스크 재배치 정보에 포함된 재배치 우선순위에 따라 수행 저빈도 태스크를 메모리에서 삭제하고, 삭제된 수행 저빈도 태스크를 저장한다.
스트림 처리 태스크 관리 장치에 의해, 수집하는 단계에서 수집한 태스크 수행 빈도 특성을 근거로 태스크를 활동 태스크 또는 수면 태스크를 설정하는 단계; 스트림 처리 태스크 관리 장치에 의해, 설정하는 단계에서 활동 태스크로 설정된 태스크를 메모리에 로드하는 단계; 및 스트림 처리 태스크 관리 장치에 의해, 설정하는 단계에서 수면 태스크로 설정된 태스크를 저장부에 저장하는 단계를 더 포함한다.
스트림 처리 태스크 관리 장치에 의해, 저장하는 단계에서 저장된 수면 태스크를 검출하는 단계; 스트림 처리 태스크 관리 장치에 의해, 검출한 수면 태스크를 메모리에 로드하여 실행하는 단계; 및 스트림 처리 태스크 관리 장치에 의해, 실행된 수면 태스크의 실행이 완료되면 수면 태스크를 메모리에서 삭제하는 단계를 포함한다.
본 발명에 의하면, 스트림 처리 태스크 관리 장치 및 방법은 대규모로 연속하여 수행되는 스트림 처리 태스크 객체로 인해 메모리 자원의 고갈 발생 시에 각 노드에서 수행되는 태스크들 간의 수행 빈도 분석을 바탕으로 태스크를 각 태스크의 수행 빈도 특성에 적합하게 메모리와 디스크 간에 효율적으로 배치하여 태스크를 인메모리 관리하에 실행하게 함으로써, 폭증 데이터 스트림에 대한 처리 시간을 감소시키고, 또한 메모리 제한적인 상황에서도 지속적으로 스트림 데이터 처리의 정확도 저하가 없이 성능을 보장할 수 있는 효과가 있다.
도 1 및 도 2는 종래의 데이터 스트림 분산 병렬 처리 시스템을 설명하기 위한 도면.
도 3은 본 발명의 실시예에 따른 본 발명의 실시예에 따른 스트림 처리 태스크 관리 장치를 포함하는 데이터 스트림 분산 병렬 처리 시스템을 설명하기 위한 블록도.
도 4는 도 3의 서비스 관리장치를 설명하기 위한 블록도.
도 5 내지 도 7은 본 발명의 실시예에 따른 본 발명의 실시예에 따른 스트림 처리 태스크 관리 장치를 설명하기 위한 도면.
도 8은 본 발명의 실시예에 따른 스트림 처리 태스크 관리 방법을 설명하기 위한 흐름도.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부 도면을 참조하여 설명하기로 한다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
이하, 본 발명의 실시예에 따른 스트림 처리 태스크 관리 장치를 포함하는 데이터 스트림 분산 병렬 처리 시스템을 첨부된 도면을 참조하여 상세하게 설명하면 아래와 같다. 도 3은 본 발명의 실시예에 따른 본 발명의 실시예에 따른 스트림 처리 태스크 관리 장치를 포함하는 데이터 스트림 분산 병렬 처리 시스템을 설명하기 위한 도면이고, 도 4는 도 3의 서비스 관리장치를 설명하기 위한 블록도이다. 도 5 내지 도 7은 본 발명의 실시예에 따른 본 발명의 실시예에 따른 스트림 처리 태스크 관리 장치를 설명하기 위한 도면이다.
도 3을 참조하면, 데이터 스트림 서비스(300)는 복수의 연산(즉, 연산1(320), 연산2(340), 연산3(360) 등)으로 구성되며, 연산들 간에는 데이터 스트림의 흐름을 가진다. 데이터 스트림 서비스(300)는 데이터 스트림 분산 병렬 처리 시스템(400; 즉, 서비스 관리장치(500)와 복수의 스트림 처리 태스크 관리 장치(600; 이하, '태스크 관리 장치(600)'라 함))에 의해 태스크 단위로 다중 노드들에 할당된다. 데이터 스트림 서비스(300)는 입출 스트림과 출력 스트림(740)을 연동하여 연속적으로 데이터 스트림을 병렬처리한다.
데이터 스트림 분산 병렬 처리 시스템(400)은 입력되는 입력 스트림(720)에 대해 데이터 스트림 서비스(300)에 포함된 복수의 연산들을 병렬 분할 처리하여 출력 스트림(740)을 출력한다. 이를 위해, 데이터 스트림 분산 병렬 처리 시스템(400)은 서비스 관리장치(500), 복수의 태스크 관리 장치(600)를 포함하여 구성된다. 이때, 데이터 스트림 분산 병렬 처리 시스템(400)이 소프트웨어로 구성되는 경우, 태스크 관리 장치(600)는 각 노드에 하나씩 실행되고 서비스 관리장치(500)는 별도의 노드 혹은 태스크 관리 장치(600)가 실행되는 노드에서 포함되어 실행될 수 있다. 여기서, 도 3에서는 태스크 관리 장치(600)가 3개로 구성되는 것으로 도시하였으나, 데이터 스트림 분산 병렬 처리 시스템(400)의 구성에 따라 태스크 관리 장치(600)의 개수를 다르게 구성할 수도 있다.
서비스 관리장치(500)는 데이터 스트림 서비스(300)를 관리한다. 즉, 서비스 관리장치(500)는 데이터 스트림 서비스(300)의 등록, 삭제 및 검색 등의 사용자 요청을 처리한다. 서비스 관리장치(500)는 태스크 관리 장치(600)를 통해 노드 내 자원 정보를 수집한다. 즉, 서비스 관리장치(500)는 태스크 관리 장치(600)에서 서비스에 포함된 연산이 처리됨에 따라 주기적으로 노드 내 자원 정보를 수집한다. 서비스 관리장치(500)는 데이터 스트림 서비스(300)에 포함된 연산의 처리를 위한 스케줄링 및 재스케줄링을 처리한다. 이를 위해, 도 4에 도시된 바와 같이, 서비스 관리장치(500)는 서비스 관리부(520), 모니터링부(540), 스케줄러부(560)를 포함하여 구성된다.
서비스 관리부(520)는 데이터 스트림 서비스(300)의 등록, 삭제 및 검색 등의 사용자 요청을 처리한다.
즉, 서비스 관리부(520)는 사용자로부터 서비스 등록 요청이 입력되면 해당 서비스를 구성하는 복수의 연산들을 복수의 태스크(즉, 분산 병렬 처리 태스크)로 분할한다. 서비스 관리부(520)는 분할한 태스크들을 복수의 태스크 관리 장치(600)에 분산할당을 스케줄러부(560)에게로 요청한다. 서비스 관리부(520)는 스케줄러부(560)에서 분산할당이 완료되면 해당 태스크들의 실행을 복수의 태스크 관리 장치(600)에게로 요청한다. 이때, 서비스 관리부(520)는 사용자로부터 서비스별, 연산별 혹은 태스크별 QoS 정보를 함께 입력받아 등록할 수도 있다. 여기서, QoS 정보는 입력 데이터의 처리율 등으로 정의될 수 있다.
서비스 관리부(520)는 사용자로부터 서비스 삭제 요청이 입력되면 해당 서비스를 구성하는 복수의 연산들에 대응되는 태스크들을 실행하고 있는 복수의 태스크 관리 장치(600)에게로 해당 태스크들의 실행 종료를 요청한다. 서비스 관리부(520)는 해당 서비스를 구성하는 복수의 연산들을 삭제한다. 서비스 관리부(520)는 분산할당된 태스크들을 삭제를 스케줄러부(560)에게로 요청한다.
모니터링부(540)는 태스크 관리 장치(600)를 통해 노드 내 자원 정보를 수집한다. 즉, 모니터링부(540)는 태스크 관리 장치(600)의 태스크 실행부(630)를 통해 주기적으로 태스크별 입력 부하량, 출력 부하량, 데이터 처리 성능 정보 및 노드별 자원 사용 상태 정보를 수집한다. 모니터링부(540)는 수집한 정보들은 근거로 데이터 스트림 서비스(300)의 QoS 정보 및 태스크 재배치 정보를 구축하고 분석한다.
모니터링부(540)는 서비스 처리 성능 임계치 만족 여부 및 서비스 처리 성능 변동 추이를 근거로 서비스 또는 서비스 내 태스크의 재스케줄링 여부를 결정한다. 즉, 모니터링부(540)는 사용자로부터 입력받은 서비스 처리 성능 임계치를 만족시키는지 여부를 검사하거나, 시간 흐름에 따른 서비스 처리 성능 변동 추이를 분석하여 서비스 혹은 서비스 내 태스크의 재스케줄링 여부를 결정한다. 모니터링부(540)는 결정한 재스케즐링 여부를 근거로 스케줄러부(560)에 재스케줄링을 요청한다.
모니터링부(540)는 태스크 관리 장치(600) 내의 태스크 실행부(630)로부터 특정 태스크의 재스케줄링 요청이 입력받을 수도 있다. 이때, 모니터링부(540)는 해당 태스크의 재스케줄링을 스케줄러부(560)에게로 요청한다.
스케줄러부(560)는 서비스 관리부(520) 또는 모니터링부(540)의 요청에 따라 태스크들의 스케줄링을 수행한다.
스케줄러부(560)는 서비스 관리부(520)로부터 서비스 등록에 따른 태스크들의 분산할당배치 요청을 수신하면 태스크의 스케줄링을 수행한다. 즉, 스케줄러부(560)는 기설정된 정책을 근거로 요청된 태스크들을 복수의 태스크 관리 장치(600)에게로 분산할당한다.
스케줄러부(560)는 모니터링부(540)로부터 서비스 또는 태스크들의 재스케줄링 요청을 수신하면 태스크의 스케줄링을 수행한다. 즉, 스케줄러부(560)는 기설정된 정책을 근거로 요청된 서비스 또는 태스크들을 복수의 태스크 관리 장치(600)에게로 재할당한다
이때, 스케줄러부(560)는 태스크의 분산할당배치 또는 재스케줄링 요청 시 모니터링부(540)에서 수집한 노드 내 자원 정보를 근거로 여유 자원을 가지는 태스크 관리 장치(600)를 선정한다. 스케줄러부(560)는 선정된 태스크 관리 장치(600)에 하나 이상의 태스크를 할당한다.
한편, 스케쥴러 모듈은 재스케줄링의 요청으로 태스크의 할당 자원 비율 조정 및 태스크의 이동, 태스크의 복제, 부하 차단(load shedding) 등의 정책을 결정한다.
태스크 관리 장치(600)는 태스크의 실행을 제어 및 관리한다. 이때, 태스크 관리 장치(600)는 태스크의 실행에 따른 자원 상태를 수집하여 관리한다. 이를 위해 도 5에 도시된 바와 같이, 태스크 관리 장치(600)는 태스크 관리부(610), 입력부(620), 태스크 실행부(630), 수면 태스크 풀(640), 활동 태스크 풀(650), 저장부(660)를 포함하여 구성된다.
태스크 관리부(610)는 태스크의 실행을 제어하고 관리한다. 즉, 태스크 관리부(610)는 서비스 관리장치(500)에서 분할할당된 태스크의 실행을 태스크 실행부(630)에게로 요청한다. 이때, 태스크 관리부(610)는 캐스크 실행모듈에서 실행되는 태스크의 스레드의 실행으로 요청하고, 해당 스레드의 실행 제어 및 관리를 수행한다.
입력부(620)는 태스크 실행부(630)의 입력 버퍼로 동작한다. 즉, 입력부(620)는 태스크 관리 장치(600) 또는 동일 태스크 관리 장치(600)에서 실행되는 태스크로부터 데이터 스트림을 입력받는다. 입력부(620)는 입력된 데이터 스트림을 태스크 실행부(630)에게로 전송한다.
태스크 실행부(630)는 태스크 관리부(610)의 요청에 따라 분할할당된 태스크를 실행한다. 즉, 태스크 실행부(630)는 할당받은 태스크에 대한 입력 데이터 스트림 소스 및 출력 데이터 스트림 소스를 바인딩한다. 태스크 실행부(630)는 할당된 태스크를 태스크 실행부(630)과는 별도의 스레드로서 실행시켜 연속적으로 수행한다.
태스크 실행부(630)는 태스크 실행에 따른 태스크 수행 빈도 특성을 수집한다. 이때, 태스크 실행부(630)는 태스크의 사용 빈도, 최근 수행 시간, 태스크 객체 크기를 포함하는 수행 빈도 특성을 수집한다.
태스크 실행부(630)는 태스크 관리 장치(600)별로 관리하는 전체 태스크를 사용 빈도에 따라 활동 태스크(760) 및 수면 태스크(780)로 설정하여 관리한다. 즉, 태스크 실행부(630)는 태스크 실행시 수집한 수행 빈도 특성의 사용 빈도를 근거로 태스크를 활동 태스크(760) 또는 수면 태스크(780)로 설정한다. 이때, 태스크 실행부(630)는 사용 빈도가 높은 태스크를 활동 태스크(760)로 설정하고, 사용 빈도가 낮은 태스크를 수면 태스크(780)로 설정한다. 여기서, 태스크 실행부(630)는 사용 빈도에 대한 기준값을 설정하고, 사용 빈도가 기준값 이상인 경우 활동 태스크(760)로 설정하고 기준값 미만인 경우 수면 태스크(780)로 설정할 수도 있다.
태스크 실행부(630)는 태스크의 실행에 따른 메모리 부하 상태를 수집한다. 즉, 태스크 실행부(630)는 태스크의 실행에 따른 메모리 사용량을 포함하는 메모리 부하 상태를 수집한다. 이때, 태스크 실행부(630)는 실행 중인 태스크들의 상태 및 지역 노드의 메모리 고갈 상태를 포함하는 메모리 부하 상태를 수집할 수도 있다.
태스크 실행부(630)는 수집한 메모리 부하 상태를 근거로 메모리 부족 발생 여부를 판단한다. 즉, 태스크 실행부(630)는 기수집된 메모리 사용량이 기설정된 메모리량을 초과하며 메모리 부족 발생으로 판단한다.
태스크 실행부(630)는 인메모리 스트림 처리 태스크 관리 기능들을 수행한다. 여기서, 인메모리 스트림 처리 태스크 관리 기능은 다양하게 있을 수 있으나 일실시예로 가능한 전체 태스크를 인메모리에 관리하고, 자주 수행되지 않는 태스크만을 메모리에서 제거했다가 다시 메모리에 올리는 태스크 스와핑(Task Swapping)과 기본적으로 자주 수행되는 태스크만을 메모리에 올려놓고 실행하고, 대부분의 태스크는 기본적으로 저장부(660)에 보관하는 태스크 캐싱(Task Cashing)이 있을 수 있다. 여기서, 태스크 스와핑과 태스크 캐싱은 실행 환경에 따라 장단점(도 7 참조)을 고려하여 선택적으로 설정될 수 있다.
태스크 실행부(630)는 메모리 부족 발생시 활동 태스크 풀(650)에 포함된 태스크들 중에서 수행 저빈도 태스크를 검출하여 재배치한다. 즉, 태스크 실행부(630)는 과도한 태스크의 실행으로 인메모리에 과도한 태스크 객체가 로드됨으로 인해 메모리 자원의 고갈이 발생하면 활동 태스크 풀(650)에 포함된 태스크들을 메모리 및 디스크 간에 재배치한다.
이를 위해, 태스크 실행부(630)는 수행 빈도 특성 및 태스크 크기를 근거로 수행 저빈도 태스크를 검출하여 태스크 재배치 정보를 생성한다. 즉, 태스크 실행부(630)는 활동 태스크 풀(650)에 포함된 활동 태스크(760)들 중에서 기수집한 수행 빈도 특성을 근거로 활동 태스크 풀(650)에 포함된 태스크들 중에서 수행 저빈도 태스크를 검출한다. 이때, 태스크 실행부(630)는 사용 빈도가 낮거나, 최근 수행 시간이 오래된 순서대로 수행 저빈도 태스크를 검출한다.
태스크 실행부(630)는 검출한 수행 저빈도 태스크들에 대한 우선순위를 설정한다. 즉, 태스크 실행부(630)는 검출한 수행 저빈도 태스크들의 크기(즉, 메모리를 차지하는 용량)를 근거로 우선순위를 설정한다. 이때, 태스크 실행부(630)는 메모리 용량이 큰 순서대로 우선순위를 설정한다.
태스크 실행부(630)는 설정된 우선순위에 따라 태스크 재배치 정보를 생성한다. 즉, 태스크 실행부(630)는 메모리 용량이 큰 순서대로 수행 저빈도 태스크들을 정렬하여 태스크 재배치 정보를 생성한다.
태스크 실행부(630)는 생성한 재배치 정보를 근거로 태스크를 재배치한다. 즉, 태스크 실행부(630)는 태스크 재배치 정보에 정렬된 순서대로 수행 저빈도 태스크들을 순차적으로 메모리에서 제거하여 저장부(660)에 저장한다. 이때, 태스크 실행부(630)는 소정의 메모리량이 확보될 때까지 수행 저빈도 태스크들을 메모리에서 제거한다.
수면 태스크 풀(640)은 태스크 실행부(630)에서 수면 태스크(780)로 설정된 태스크를 관리한다. 이때, 수면 태스크 풀(640)은 수면 태스크(780)로 설정된 태스크들의 목록을 관리한다. 즉, 수면 태스크 풀(640)은 수면 태스크(780)의 목록만을 관리하며, 수면 태스크(780)는 메모리에서 제거되어 저장부(660)에 저장된다.
활동 태스크 풀(650)은 태스크 실행부(630)에서 활동 태스크(760)로 설정된 태스크들과 활동 태스크(760)의 목록을 관리한다. 이때, 활동 태스크 풀(650)에서 관리하는 활동 태스크(760)들은 주기적으로(또는 자주) 실행되는 태스크이므로 메모리상에 로드하여 관리한다.
활동 태스크 풀(650)은 태스크 실행부(630)에서 실행한 수면 태스크(780)를 관리한다. 즉, 태스크 실행부(630)에서 저장부(660)에 저장된 수면 태스크(780)를 실행하면, 활동 태스크 풀(650)은 해당 수면 태스크(780)를 메모리상에 로드하여 관리한다.
저장부(660)는 수면 태스크(780)들을 저장한다. 즉, 저장부(660)는 수행빈도가 낮아 수면 태스크(780)로 구분된 태스크들을 저장한다.
이하, 본 발명의 실시예에 따른 스트림 처리 태스크 관리 방법을 첨부된 도면을 참조하여 상세하게 설명하면 아래와 같다. 도 8은 본 발명의 실시예에 따른 스트림 처리 태스크 관리 방법을 설명하기 위한 흐름도이다.
스크 관리 장치는 태스크의 실행에 따른 메모리 부하 상태를 수집한다(S100). 즉, 태스크 관리 장치(600)는 할당된 태스크를 연속적으로 실행시키면서, 태스크들의 메모리 사용량을 수집한다. 이때, 태스크 실행부(630)는 실행 중인 태스크들의 상태 및 지역 노드의 메모리 고갈 상태를 포함하는 메모리 부하 상태를 수집할 수도 있다.
태스크 관리 장치(600)는 태스크 실행에 따른 태스크 수행 빈도 특성을 수집한다(S200). 즉, 태스크 실행부(630)는 태스크의 사용 빈도, 최근 수행 시간, 태스크 객체 크기를 포함하는 수행 빈도 특성을 수집한다. 이때, 태스크 실행부(630)는 태스크 관리 장치(600)별로 관리하는 전체 태스크를 사용 빈도에 따라 활동 태스크(760) 및 수면 태스크(780)로 설정하여 관리한다. 즉, 태스크 실행부(630)는 태스크 실행시 수집한 수행 빈도 특성의 사용 빈도를 근거로 태스크를 활동 태스크(760) 또는 수면 태스크(780)로 설정한다. 이때, 태스크 실행부(630)는 사용 빈도가 높은 태스크를 활동 태스크(760)로 설정하고, 사용 빈도가 낮은 태스크를 수면 태스크(780)로 설정한다. 여기서, 태스크 실행부(630)는 사용 빈도에 대한 기준값을 설정하고, 사용 빈도가 기준값 이상인 경우 활동 태스크(760)로 설정하고 기준값 미만인 경우 수면 태스크(780)로 설정할 수도 있다. 여기서, 수행 빈도가 높은 활동 태스크(760)는 인메모리에 로드되어 실행되며, 활동 태스크 풀(650)에 의해 관리된다. 수행 빈도가 낮은 수면 태스크(780)는 저장부(660)에 저장되며, 수면 태스크 풀(640)에 의해 관리된다. 즉, 수행 빈도가 낮은 태스크는 별도의 저장부(660)에 저장하고, 해당 태스크의 실행이 필요할 때마다 저장부(660)에서 메모리로 로드하여 실행한 후 메모리에서 제거한다.
태스크 관리 장치(600)는 수집된 메모리 사용량을 시스템의 메모리량과 비교하여 메모리 부족 발생 여부를 판단한다. 이때, 수집된 메모리 사용량이 기설정된 메모리량을 초과하여 메모리 부족 발생으로 판단하면(S300; 예), 태스크 관리 장치(600)는 기수집한 태스크 수행 빈도 특성을 근거로 수행 저빈도 태스크를 검출한다(S400). 즉, 태스크 관리 장치(600)는 기수집한 태스크 수행 빈도 특성의 수행 빈도 또는 최근 수행 시간을 근거로 활동 태스크 풀(650)에 포함된 활동 태스크(760)들 중에서 수행 저빈도 태스크를 검출한다. 이때, 태스크 관리 장치(600)는 사용 빈도가 낮거나, 최근 수행 시간이 오래된 순서대로 수행 저빈도 태스크를 검출한다.
태스크 관리 장치(600)는 검출한 수행 저빈도 태스크들에 대한 재배치 우선순위를 설정한다(S500). 즉, 태스크 실행부(630)는 검출한 수행 저빈도 태스크들의 크기(즉, 메모리를 차지하는 용량)를 근거로 우선순위를 설정한다. 이때, 태스크 실행부(630)는 메모리 용량이 큰 순서대로 우선순위를 설정한다.
관리 장치는 기설정한 재배치 우선순위를 근거로 태스크 재배치 정보를 생성한다(S600). 즉, 태스크 실행부(630)는 메모리 용량이 큰 순서대로 수행 저빈도 태스크들을 정렬하여 태스크 재배치 정보를 생성한다.
태스크 관리 장치(600)는 기생성한 태스크 재배치 정보를 근거로 태스크 재배치를 시행한다(S700). 즉, 태스크 관리 장치(600)는 태스크 재배치 정보에 포함된 재배치 우선순위에 따라 메모리에서 삭제하고, 저장부(660)에 저장한다.
상술한 바와 같이, 스트림 처리 태스크 관리 장치 및 방법은 대규모로 연속하여 수행되는 스트림 처리 태스크 객체로 인해 메모리 자원의 고갈 발생 시에 각 노드에서 수행되는 태스크들 간의 수행 빈도 분석을 바탕으로 태스크를 각 태스크의 수행 빈도 특성에 적합하게 메모리와 디스크 간에 효율적으로 배치하여 태스크를 인메모리 관리하에 실행하게 함으로써, 폭증 데이터 스트림에 대한 처리 시간을 감소시키고, 또한 메모리 제한적인 상황에서도 지속적으로 스트림 데이터 처리의 정확도 저하가 없이 성능을 보장할 수 있는 효과가 있다.
이상에서 본 발명에 따른 바람직한 실시예에 대해 설명하였으나, 다양한 형태로 변형이 가능하며, 본 기술분야에서 통상의 지식을 가진자라면 본 발명의 특허청구범위를 벗어남이 없이 다양한 변형예 및 수정예를 실시할 수 있을 것으로 이해된다.
300: 데이터 스트림 서비스 320: 연산1
340: 연산2 360: 연산3
400: 데이터 스트림 분산 병렬 처리 시스템
500: 서비스 관리장치 520: 서비스 관리부
540: 모니터링부 560: 스케줄러부
600: 태스크 관리 장치 610: 태스크 관리부
620: 입력부 630: 태스크 실행부
640: 수면 태스크 풀 650: 활동 태스크 풀
660: 저장부 720: 입력 스트림
740: 출력 스트림 760: 활동 태스크
780: 수면 태스크

Claims (20)

  1. 할당된 태스크들의 실행을 제어 및 관리하는 태스크 관리부; 및
    상기 태스크 관리부의 요청에 의해 태스크들을 실행하고, 상기 태스크들의 실행에 따른 메모리 부하 상태 및 태스크 수행 빈도 특성을 수집하고, 상기 메모리 부하 상태를 근거로 메모리 부족 발생으로 판단하면 상기 수행 빈도 특성을 근거로 수행 저빈도 태스크들을 검출하여 재배치 우선순위를 설정하고, 상기 설정된 재배치 우선순위를 근거로 태스크들을 재배치하는 태스크 실행부를 포함하는 것을 특징으로 하는 스트림 처리 태스크 관리 장치.
  2. 청구항 1에 있어서,
    상기 태스크 실행부는,
    태스크의 실행에 따른 메모리 사용량을 포함하는 메모리 부하 상태, 및 태스크의 사용 빈도, 최근 수행 시간, 태스크 객체 크기를 포함하는 수행 빈도 특성을 수집하는 것을 특징으로 하는 스트림 처리 태스크 관리 장치.
  3. 청구항 1에 있어서,
    상기 태스크 실행부는,
    상기 수집한 메모리 부하 상태에 포함된 메모리 사용량이 기설정된 메모리량을 초과하면 메모리 부족 발생으로 판단하는 것을 특징으로 하는 스트림 처리 태스크 관리 장치.
  4. 청구항 1에 있어서,
    상기 태스크 실행부는,
    상기 수집한 태스크 수행 빈도 특성의 수행 빈도 또는 최근 수행 시간을 근거로 활동 태스크 풀에 포함된 활동 태스크들 중에서 수행 저빈도 태스크를 검출하는 것을 특징으로 하는 스트림 처리 태스크 관리 장치.
  5. 청구항 1에 있어서,
    상기 태스크 실행부는,
    상기 검출한 수행 저빈도 태스크들의 메모리 용량을 근거로 재배치 우선순위를 설정하는 것을 특징으로 하는 스트림 처리 태스크 관리 장치.
  6. 청구항 1에 있어서,
    상기 태스크 실행부는, 상기 재배치 우선순위를 내림차순으로 정렬하여 태스크 재배치 정보를 생성하고, 상기 태스크 재배치 정보에 포함된 재배치 우선순위에 따라 수행 저빈도 태스크를 메모리에서 삭제하는 것을 특징으로 하는 스트림 처리 태스크 관리 장치.
  7. 청구항 6에 있어서,
    태스크를 저장하는 저장부를 더 포함하고,
    상기 태스크 실행부는, 상기 삭제한 수행 저빈도 태스크를 상기 저장부에 저장하는 것을 특징으로 하는 스트림 처리 태스크 관리 장치.
  8. 청구항 1에 있어서,
    상기 태스크 실행부는,
    상기 수집한 태스크 수행 빈도 특성을 근거로 태스크들을 활동 태스크 또는 수면 태스크로 설정하고, 상기 활동 태스크로 설정된 태스크를 메모리에 로드하여 실행하고, 상기 수면 태스크로 설정된 태스크를 저장부에 저장하는 것을 특징으로 하는 스트림 처리 태스크 관리 장치.
  9. 청구항 8에 있어서,
    상기 태스크 실행부는,
    상기 저장부로부터 검출한 수면 태스크를 메모리에 로드하여 실행하고, 상기 실행된 수면 태스크의 실행이 완료되면 상기 수면 태스크를 메모리에서 삭제하는 것을 특징으로 하는 스트림 처리 태스크 관리 장치.
  10. 청구항 8에 있어서,
    상기 태스크 실행부에서 활동 태스크로 설정된 태스크들과 상기 태스크들의 목록을 관리하는 활동 태스크 풀; 및
    상기 태스크 실행부에서 수면 태스크로 설정된 태스크들의 목록을 관리하는 수면 태스크 풀을 더 포함하고,
    상기 저장부는 상기 태스크 실행부에서 수면 태스크로 설정된 태스크들을 저장하는 것을 특징으로 하는 스트림 처리 태스크 관리 장치.
  11. 스트림 처리 태스크 관리 장치에 의해, 태스크의 실행에 따른 메모리 부하 상태 및 태스크 수행 빈도 특성을 수집하는 단계;
    상기 스트림 처리 태스크 관리 장치에 의해, 상기 수집한 메모리 부하 상태를 근거로 메모리 부족 발생 여부를 판단하는 단계;
    상기 스트림 처리 태스크 관리 장치에 의해, 상기 판단하는 단계에서 메모리 부족 발생으로 판단하면, 상기 수집한 태스크 수행 빈도 특성을 근거로 수행 저빈도 태스크들을 검출하는 단계;
    상기 스트림 처리 태스크 관리 장치에 의해, 상기 검출한 수행 저빈도 태스크들의 재배치 우선순위를 설정하는 단계;
    상기 스트림 처리 태스크 관리 장치에 의해, 상기 설정된 재배치 우선순위를 근거로 태스크 재배치 정보를 생성하는 단계; 및
    상기 스트림 처리 태스크 관리 장치에 의해, 상기 생성한 태스크 재배치 정보를 근거로 태스크를 재배치하는 단계를 포함하는 것을 특징으로 하는 스트림 처리 태스크 관리 방법.
  12. 청구항 11에 있어서,
    상기 수집하는 단계에서는,
    상기 스트림 처리 태스크 관리 장치에 의해, 태스크의 사용 빈도, 최근 수행 시간, 태스크 객체 크기를 포함하는 수행 빈도 특성을 수집하는 것을 특징으로 하는 스트림 처리 태스크 관리 방법.
  13. 청구항 11에 있어서,
    상기 수집하는 단계에서는,
    태스크의 실행에 따른 메모리 사용량을 포함하는 메모리 부하 상태를 수집하는 것을 특징으로 하는 스트림 처리 태스크 관리 방법.
  14. 청구항 13에 있어서,
    상기 판단하는 단계에서는
    상기 스트림 처리 태스크 관리 장치에 의해, 상기 수집된 메모리 사용량이 기설정된 메모리량을 초과하면 메모리 부족 발생으로 판단하는 것을 특징으로 하는 스트림 처리 태스크 관리 방법.
  15. 청구항 11에 있어서,
    상기 수행 저빈도 태스크들을 검출하는 단계에서는,
    상기 스트림 처리 태스크 관리 장치에 의해, 상기 수집한 태스크 수행 빈도 특성의 수행 빈도 또는 최근 수행 시간을 근거로 활동 태스크 풀에 포함된 활동 태스크들 중에서 수행 저빈도 태스크를 검출하는 것을 특징으로 하는 스트림 처리 태스크 관리 방법.
  16. 청구항 11에 있어서,
    상기 재배치 우선순위를 설정하는 단계에서는,
    상기 스트림 처리 태스크 관리 장치에 의해, 상기 검출한 수행 저빈도 태스크들의 메모리 용량을 근거로 재배치 우선순위를 설정하는 것을 특징으로 하는 스트림 처리 태스크 관리 방법.
  17. 청구항 11에 있어서,
    상기 태스크 재배치 정보를 생성하는 단계에서는,
    상기 스트림 처리 태스크 관리 장치에 의해, 상기 재배치 우선순위를 내림차순으로 정렬하여 태스크 재배치 정보를 생성하는 것을 특징으로 하는 스트림 처리 태스크 관리 방법.
  18. 청구항 11에 있어서,
    상기 태스크를 재배치하는 단계에서는,
    상기 스트림 처리 태스크 관리 장치에 의해, 상기 생성된 태스크 재배치 정보에 포함된 재배치 우선순위에 따라 수행 저빈도 태스크를 메모리에서 삭제하고, 상기 삭제된 수행 저빈도 태스크를 저장하는 것을 특징으로 하는 스트림 처리 태스크 관리 방법.
  19. 청구항 11에 있어서,
    상기 스트림 처리 태스크 관리 장치에 의해, 상기 수집하는 단계에서 수집한 태스크 수행 빈도 특성을 근거로 태스크를 활동 태스크 또는 수면 태스크를 설정하는 단계;
    상기 스트림 처리 태스크 관리 장치에 의해, 상기 설정하는 단계에서 활동 태스크로 설정된 태스크를 메모리에 로드하는 단계; 및
    상기 스트림 처리 태스크 관리 장치에 의해, 상기 설정하는 단계에서 수면 태스크로 설정된 태스크를 저장부에 저장하는 단계를 더 포함하는 것을 특징으로 하는 스트림 처리 태스크 관리 방법.
  20. 청구항 19에 있어서,
    상기 스트림 처리 태스크 관리 장치에 의해, 상기 저장하는 단계에서 저장된 수면 태스크를 검출하는 단계;
    상기 스트림 처리 태스크 관리 장치에 의해, 상기 검출한 수면 태스크를 메모리에 로드하여 실행하는 단계; 및
    상기 스트림 처리 태스크 관리 장치에 의해, 상기 실행된 수면 태스크의 실행이 완료되면 상기 수면 태스크를 메모리에서 삭제하는 단계를 포함하는 것을 특징으로 하는 스트림 처리 태스크 관리 방법.
KR1020130058255A 2013-05-23 2013-05-23 스트림 처리 태스크 관리 장치 및 방법 KR101694287B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130058255A KR101694287B1 (ko) 2013-05-23 2013-05-23 스트림 처리 태스크 관리 장치 및 방법
US14/225,661 US9286123B2 (en) 2013-05-23 2014-03-26 Apparatus and method for managing stream processing tasks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130058255A KR101694287B1 (ko) 2013-05-23 2013-05-23 스트림 처리 태스크 관리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20140137582A true KR20140137582A (ko) 2014-12-03
KR101694287B1 KR101694287B1 (ko) 2017-01-23

Family

ID=51936302

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130058255A KR101694287B1 (ko) 2013-05-23 2013-05-23 스트림 처리 태스크 관리 장치 및 방법

Country Status (2)

Country Link
US (1) US9286123B2 (ko)
KR (1) KR101694287B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180072295A (ko) * 2016-12-21 2018-06-29 세림티에스지(주) 분산 인 메모리 환경에서 실시간 스트림 데이터 처리를 위한 동적 잡 스케쥴링 시스템 및 방법
US10133757B2 (en) 2015-10-20 2018-11-20 Samsung Sds Co., Ltd. Method for managing data using in-memory database and apparatus thereof

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9798892B2 (en) * 2013-03-15 2017-10-24 Live Nation Entertainment, Inc. Prioritized link establishment for data transfer using task scheduling
US10657278B2 (en) 2013-03-15 2020-05-19 Live Nation Entertainment, Inc. Prioritized link establishment for data transfer using task scheduling
KR101694287B1 (ko) * 2013-05-23 2017-01-23 한국전자통신연구원 스트림 처리 태스크 관리 장치 및 방법
US10831348B1 (en) * 2013-12-13 2020-11-10 Google Llc Ranking and selecting task components based on frequency of completions
US9606833B2 (en) * 2014-04-09 2017-03-28 Samsung Electronics Co., Ltd Method and apparatus for providing a preemptive task scheduling scheme in a real time operating system
CN106156185B (zh) * 2015-04-20 2019-12-13 阿里巴巴集团控股有限公司 一种业务请求执行状态的查询方法、装置及系统
US10133827B2 (en) 2015-05-12 2018-11-20 Oracle International Corporation Automatic generation of multi-source breadth-first search from high-level graph language
US9948746B2 (en) * 2015-06-15 2018-04-17 International Business Machines Corporation Request processing according to degradation monitoring
US10127025B2 (en) 2015-07-22 2018-11-13 Oracle International Corporation Optimization techniques for high-level graph language compilers
US10810257B2 (en) 2015-08-27 2020-10-20 Oracle International Corporation Fast processing of path-finding queries in large graph databases
US20210208929A1 (en) * 2015-11-20 2021-07-08 N.Io Innovation, Llc System And Method For Providing Configurable Communications For A Software Platform On A Per Service Basis
US10528561B2 (en) 2015-11-25 2020-01-07 International Business Machines Corporation Dynamic block intervals for pre-processing work items to be processed by processing elements
US9971570B2 (en) * 2015-12-15 2018-05-15 Oracle International Corporation Automated generation of memory consumption aware code
CN105653362A (zh) * 2015-12-23 2016-06-08 北京奇虎科技有限公司 用于管理定时任务的方法和设备
US10540398B2 (en) 2017-04-24 2020-01-21 Oracle International Corporation Multi-source breadth-first search (MS-BFS) technique and graph processing system that applies it
US10585945B2 (en) 2017-08-01 2020-03-10 Oracle International Corporation Methods of graph-type specialization and optimization in graph algorithm DSL compilation
US10795672B2 (en) 2018-10-31 2020-10-06 Oracle International Corporation Automatic generation of multi-source breadth-first search from high-level graph language for distributed graph processing systems
CN111813536A (zh) * 2019-04-11 2020-10-23 华为技术有限公司 任务处理方法、装置、终端以及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050015768A1 (en) * 2002-12-31 2005-01-20 Moore Mark Justin System and method for providing hardware-assisted task scheduling
KR20060135697A (ko) * 2004-01-08 2006-12-29 코닌클리케 필립스 일렉트로닉스 엔.브이. 멀티-프로세서 시스템에서의 자원 관리
KR20110049957A (ko) * 2009-11-06 2011-05-13 서강대학교산학협력단 사용기록 기반의 동적 스케줄링 방법, 장치 및 그 기록 매체

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1388265B1 (en) * 2001-05-14 2013-07-24 Telefonaktiebolaget L M Ericsson (publ) Method for protecting against overload of a packet switching network node of a communication network
US7155716B2 (en) * 2002-03-08 2006-12-26 Intel Corporation Weighted and prioritized task scheduler
US20060168571A1 (en) * 2005-01-27 2006-07-27 International Business Machines Corporation System and method for optimized task scheduling in a heterogeneous data processing system
US7565654B2 (en) * 2006-01-10 2009-07-21 National Instruments Corporation Programmatic control of tasks in a programmable logic controller
US7756911B2 (en) * 2006-06-09 2010-07-13 International Business Machines Corporation Method and system for executing a task and medium storing a program therefor
US20090313631A1 (en) * 2008-06-11 2009-12-17 Fabio De Marzo Autonomic workload planning
JP5213539B2 (ja) * 2008-06-19 2013-06-19 キヤノン株式会社 画像処理装置及び画像処理装置のメモリ管理方法
US8495033B2 (en) 2011-03-10 2013-07-23 International Business Machines Corporation Data processing
KR101752699B1 (ko) 2011-07-18 2017-07-03 한국전자통신연구원 폭증 데이터 스트림 처리 방법 및 장치
KR101694287B1 (ko) * 2013-05-23 2017-01-23 한국전자통신연구원 스트림 처리 태스크 관리 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050015768A1 (en) * 2002-12-31 2005-01-20 Moore Mark Justin System and method for providing hardware-assisted task scheduling
KR20060135697A (ko) * 2004-01-08 2006-12-29 코닌클리케 필립스 일렉트로닉스 엔.브이. 멀티-프로세서 시스템에서의 자원 관리
KR20110049957A (ko) * 2009-11-06 2011-05-13 서강대학교산학협력단 사용기록 기반의 동적 스케줄링 방법, 장치 및 그 기록 매체

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10133757B2 (en) 2015-10-20 2018-11-20 Samsung Sds Co., Ltd. Method for managing data using in-memory database and apparatus thereof
KR20180072295A (ko) * 2016-12-21 2018-06-29 세림티에스지(주) 분산 인 메모리 환경에서 실시간 스트림 데이터 처리를 위한 동적 잡 스케쥴링 시스템 및 방법

Also Published As

Publication number Publication date
US20140351820A1 (en) 2014-11-27
KR101694287B1 (ko) 2017-01-23
US9286123B2 (en) 2016-03-15

Similar Documents

Publication Publication Date Title
KR101694287B1 (ko) 스트림 처리 태스크 관리 장치 및 방법
US20190303200A1 (en) Dynamic Storage-Aware Job Scheduling
KR100586283B1 (ko) 동적 쓰레드 풀 조정 방법
KR101827369B1 (ko) 데이터 스트림 분산 병렬 처리 서비스 관리 장치 및 방법
JP5744909B2 (ja) アクセラレータ・リソースを動的に管理するための方法、情報処理システム、およびコンピュータ・プログラム
US8595743B2 (en) Network aware process scheduling
US20120222043A1 (en) Process Scheduling Using Scheduling Graph to Minimize Managed Elements
JP5865820B2 (ja) 情報処理装置、プログラム、およびジョブ制御方法
KR101013073B1 (ko) 태스크 분배 및 병렬 처리 시스템과 그 방법
CN103516536A (zh) 基于线程数量限制的服务器业务请求并行处理方法及系统
JP4992408B2 (ja) ジョブ割当プログラム、方法及び装置
CN107273200B (zh) 一种针对异构存储的任务调度方法
Singh An algorithm to reduce the time complexity of earliest deadline first scheduling algorithm in real-time system
Liu et al. Preemptive hadoop jobs scheduling under a deadline
US20220195434A1 (en) Oversubscription scheduling
CN110914805A (zh) 用于分层任务调度的计算系统
Yazdanov et al. EHadoop: Network I/O aware scheduler for elastic MapReduce cluster
Thamsen et al. Continuously improving the resource utilization of iterative parallel dataflows
JP2007328413A (ja) 負荷分散方法
Cardellini et al. Towards hierarchical autonomous control for elastic data stream processing in the fog
Yang et al. Elastic executor provisioning for iterative workloads on apache spark
Sudarsan et al. Scheduling resizable parallel applications
KR101752699B1 (ko) 폭증 데이터 스트림 처리 방법 및 장치
KR102638531B1 (ko) 컴퓨팅 장치 및 컴퓨팅 장치의 동작 방법
WO2023039711A1 (en) Efficiency engine in a cloud computing architecture

Legal Events

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