KR101752699B1 - 폭증 데이터 스트림 처리 방법 및 장치 - Google Patents

폭증 데이터 스트림 처리 방법 및 장치 Download PDF

Info

Publication number
KR101752699B1
KR101752699B1 KR1020110071031A KR20110071031A KR101752699B1 KR 101752699 B1 KR101752699 B1 KR 101752699B1 KR 1020110071031 A KR1020110071031 A KR 1020110071031A KR 20110071031 A KR20110071031 A KR 20110071031A KR 101752699 B1 KR101752699 B1 KR 101752699B1
Authority
KR
South Korea
Prior art keywords
task
data stream
service
processing
tasks
Prior art date
Application number
KR1020110071031A
Other languages
English (en)
Other versions
KR20130010314A (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 KR1020110071031A priority Critical patent/KR101752699B1/ko
Publication of KR20130010314A publication Critical patent/KR20130010314A/ko
Application granted granted Critical
Publication of KR101752699B1 publication Critical patent/KR101752699B1/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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

Abstract

본 발명에 따른 폭증 데이터 스트림 처리 방법 및 장치가 개시된다. 본 발명에 따른 폭증 데이터 스트림 처리 방법은 데이터 스트림의 폭증을 처리하기 위한 데이터 스트림 처리 방법으로, 데이터 스트림 처리 서비스를 수행하는 태스크들의 실행 상태 정보를 수집하는 제 1 단계 상기 태스크의 실행 상태 정보에 기초하여, 상기 서비스가 미리 정해진 처리 성능 조건을 만족하지 못한다고 판단되는 경우, 실행중인 태스크 중 상기 서비스의 처리 성능 저하의 원인이 되는 태스크를 판별하는 제 2 단계 및 상기 판별된 태스크로 입력되는 데이터 스트림을 분할하여 병렬 처리될 수 있도록 상기 서비스내의 태스크를 동적으로 재구성하는 제 3단계를 포함하여 구성된다. 본 발명에 따른 폭증 데이터 스트림 처리 방법 및 장치를 사용하면, 폭증 데이터 스트림의 데이터 처리 연산을 동적으로 다중 복제하고, 데이터 스트림을 분할하여 복제된 연산에서 분산 처리토록 하여, 데이터가 병렬 처리되도록 함으로써, 처리 결과의 정확도를 유지하면서 성능의 저하가 없는 데이터 처리를 가능하게 한다.

Description

폭증 데이터 스트림 처리 방법 및 장치{METHOD FOR PROCESSING EXPLODING DATA STREAM AND APPARATUS FOR THE SAME}
본 발명은 폭증 데이터 스트림 처리 방법 및 장치에 관한 것으로, 좀 더 상세하게는 폭증 데이터 스트림을 분산 배치함으로써 서비스 처리 성능을 유지할 수 있는 데이터 스트림 처리 방법 및 장치에 관한 것이다.
데이터의 효과적인 활용이 경쟁력 확보에 주요한 요인이나, 데이터 폭증은 유용한 정보를 얻는 데 필요한 처리 시간의 지연을 야기하게 된다. 각종 데이터 서비스를 위해 분석할 데이터의 양이 급증하고 있으며, 텍스트, 영상, 오디오 등 비정형 데이터에 대한 실시간 분석 필요성이 증대하고 있다. 따라서, 대량의 폭증하는 데이터에 대한 실시간 분석 처리 환경을 제공하기 위해 분산 병렬 컴퓨팅 기술과 데이터 스트림 연속 처리 기술이 활용되고 있다.
도 1은 종래의 데이터 스트림의 분산 병렬 처리 구조를 보여주는 개념도이다.
도 1을 참조하면 종래의 데이터 스트림의 병렬처리를 위한 서비스(90)는 입력 데이터 스트림 소스(10)와 출력 데이터 스트림 소스(30)를 가지며, 입력 데이터 스트림의 처리는 데이터 스트림에 대한 질의를 구성하는 여러 연산들(16-20)과 이들 연산들(16-20) 간의 데이터 흐름을 기술하는 DAG(Directed Acyclic Graph)로 표현될 수 있다. 이러한 서비스(90)내의 연산들(16-20)은 클러스터 내의 여러 노드(11-15)에 분산 배치되어 연속적으로 수행됨으로써 대용량 데이터 스트림의 병렬 처리에 따른 빠른 서비스 지원이 가능하다.
이와 같은 병렬 처리 구조를 바탕으로 한 종래의 분산 데이터 스트림 처리 시스템은 등록된 서비스의 연산들이 입력 데이터 스트림에 대하여 연속적으로 수행될 수 있다. 그러나, 데이터 스트림이 폭증하는 경우, 가용 자원의 부족으로 인하여 연속적인 질의 처리의 지연은 물론 분산 데이터 스트림 처리 시스템이 오작동하거나 정지되는 문제점이 있다.
이를 해결하기 위하여, 종래의 분산 데이터 스트림 처리 시스템은 문제가 되는 연산을 수행중인 노드에 메모리, CPU 등과 같은 자원을 더 많이 할당하거나, 입력 스트림을 선별적으로 버리는 로드 쉐딩(load shedding)을 수행하거나 또는 해당 연산을 현재 수행 중인 노드에서 다른 노드로 이동시켜서 수행되도록 하는 방법을 채택하고 있다.
그러나 노드 내 자원의 증대 및 연산의 노드 이동 방법은 입력 데이터 스트림의 폭증으로 인하여, 특정 연산이 단일 노드에서 처리되기 힘든 경우에는 해결 방법이 될 수 없으며, 로드 쉐딩과 같은 데이터 스트림의 삭제는 연속 질의 처리 결과의 정확도를 저하시키는 문제점이 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 데이터 처리 성능 및 연속 질의 처리 결과의 정확도를 유지할 수 있는 폭증 데이터 스트림 처리 방법을 제공하는 것이다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 데이터 처리 성능 및 연속 질의 처리 결과의 정확도를 유지할 수 있는 폭증 데이터 스트림 처리 장치를 제공하는 것이다.
상기 목적을 달성하기 위하여 본 발명은 데이터 스트림의 폭증을 처리하기 위한 데이터 스트림 처리 방법으로, 데이터 스트림 처리 서비스를 수행하는 태스크들의 실행 상태 정보를 수집하는 제 1 단계, 상기 태스크의 실행 상태 정보에 기초하여, 상기 서비스가 미리 정해진 처리 성능 조건을 만족하지 못한다고 판단되는 경우, 실행중인 태스크 중 상기 서비스의 처리 성능 저하의 원인이 되는 태스크를 판별하는 제 2 단계 및 상기 판별된 태스크로 입력되는 데이터 스트림을 분할하여 병렬 처리될 수 있도록 상기 서비스내의 태스크를 동적으로 재구성하는 제 3단계를 포함하는 것을 특징으로 하는 데이터 스트림 처리 방법을 제공한다.
여기서, 상기 제 3 단계는, 상기 판별된 태스크의 실행 상태 정보에 기초하여 상기 판별된 태스크를 복제할 필요가 있다고 판단하는 경우, 상기 판별된 태스크를 종료하고 소정의 수로 복제한 후, 분할 태스크를 생성하여 상기 복제된 태스크의 선행 태스크로 할당하고, 상기 분할 태스크는 상기 판별된 태스크의 입력 데이터 스트림을 분할하여 상기 분할된 각 입력 데이터 스트림을 상기 복제된 태스크에 할당하는 것을 특징으로 한다.
여기서, 상기 분할 태스크는 상기 판별된 태스크의 입력 데이터 스트림 소스별로 생성되고, 상기 소스별 입력 데이터 스트림을 상기 복제된 태스크의 수만큼 분할하는 것을 특징으로 한다.
여기서, 상기 제 3 단계는, 상기 분할된 입력 데이터 스트림의 처리 결과인 출력 데이터 스트림들을 병합하는 병합 태스크를 동적으로 구축하여 상기 복제된 태스크들의 후행 태스크로 할당하는 단계를 더 포함하는 것을 특징으로 한다.
여기서, 상기 병합 태스크는 상기 판별된 태스크의 출력 데이터 스트림 소스별로 생성되며, 적어도 1개의 입력 데이터 스트림 소스로부터 입력되는 입력 데이터 스트림을 시간 순서에 맞추어 병합하여 1개의 데이터 스트림으로 출력하는 것을 특징으로 한다.
여기서, 상기 제 3 단계에서 동적으로 재 구성된 태스크들은 노드의 자원 사용 및 태스크의 처리 성능 정보를 바탕으로 다중 노드에 분산 할당되어 병렬 실행되는 것을 특징으로 한다.
상기의 다른 목적을 달성하기 위하여 본 발명은, 데이터 스트림의 폭증을 처리하기 위한 데이터 스트림 처리 장치로서, 데이터 스트림 처리 서비스에 대한 요청에 따라 태스크를 할당하고 스케줄링하되, 상기 서비스가 미리 정해진 서비스 처리 성능 조건을 만족하지 못하는 경우, 상기 데이터 스트림을 분할하여 병렬 처리할 수 있도록 상기 서비스내의 태스크를 동적으로 재구성하는 서비스 관리부 및 상기 태스크를 할당 받아 상기 태스크를 실행시키는 태스크 실행부를 포함하는 것을 특징으로 하는 데이터 스트림 처리 장치를 제공한다.
여기서, 상기 서비스 관리부는, 상기 서비스에 대한 QoS(Quality of Service) 정보를 포함하는 요청 정보와 상기 서비스에 할당된 태스크 정보를 관리하는 서비스 관리 모듈, 상기 서비스에 할당된 각 태스크에 대한 실행상태 정보를 수집하고, 상기 수집된 태스크들의 실행 상태 정보를 기초로, 상기 서비스가 상기 QoS(Quality of Service)의 처리 성능 임계치를 만족하지 못한다고 판단되는 경우, 상기 서비스의 처리 성능 저하의 원인이 되는 태스크를 판별하는 QoS 모니터링 모듈 및 상기 판별된 태스크로 입력되는 데이터 스트림을 분할하여 병렬 처리될 수 있도록 상기 서비스내의 태스크를 동적으로 재구성하는 스케줄링 모듈을 포함하고, 상기 스케줄링 모듈은, 상기 판별된 태스크의 실행 상태 정보에 기초하여, 상기 태스크를 복제할 필요가 있다고 판단하는 경우, 상기 판별된 태스크를 종료하고, 상기 판별된 태스크를 소정의 수로 복제한 후, 분할 태스크를 생성하여 상기 복제된 태스크의 선행 태스크로 할당하고, 상기 분할 태스크는 상기 판별된 태스크의 입력 데이터 스트림을 분할하여 상기 분할된 각 입력 데이터 스트림을 상기 복제된 태스크에 할당하는 것을 특징으로 한다.
여기서, 상기 분할 태스크는 상기 판별된 태스크의 입력 데이터 스트림 소스별로 생성되고, 상기 소스별 입력 데이터 스트림을 상기 복제된 태스크의 수만큼 분할하는 것을 특징으로 한다.
여기서, 상기 스케줄링 모듈은 상기 분할된 입력 데이터 스트림들의 처리 결과인 출력 데이터 스트림들을 병합하는 병합 태스크를 동적으로 구축하여 상기 복제된 태스크들의 후행 태스크로 할당하는 것을 특징으로 한다.
여기서, 상기 병합 태스크는 상기 판별된 태스크의 출력 데이터 스트림 소스별로 생성되며, 적어도 1개의 입력 데이터 스트림 소스로부터 입력되는 입력 데이터 스트림을 시간 순서에 맞추어 병합하여 1개의 데이터 스트림으로 출력하는 것을 특징으로 한다.
여기서, 상기 태스크 실행부는, 상기 할당받은 태스크에 대하여 입력 데이터 스트림 소스 및 출력 데이터 스트림 소스를 바인딩하여 실행시키는 태스크 관리 모듈 및 상기 실행중인 태스크의 실행 정보를 수집하여 상기 서비스 관리부로 전송하는 지역 모니터링 모듈을 포함하는 것을 특징으로 한다.
본 발명에 따른 폭증 데이터 스트림 처리 방법 및 장치를 사용하면, 폭증 데이터 스트림의 데이터 처리 연산을 동적으로 다중 복제하고, 데이터 스트림을 분할하여 복제된 연산에서 분산 처리토록 하여, 데이터가 병렬 처리되도록 함으로써, 처리 결과의 정확도를 유지하면서 성능의 저하가 없는 데이터 처리를 가능하게 한다.
도 1은 종래의 데이터 스트림의 분산 병렬 처리구조를 보여주는 개념도이다.
도 2는 본 발명의 일 실시예에 따른 데이터 스트림의 병렬 처리 과정을 보여주는 시퀀스차트이다.
도 3은 본 발명의 일 실시예에 따른 데이터 스트림의 병렬 처리 장치를 보여주는 개념도이다.
도 4는 본 발명의 일 실시예에 따른 데이터 스트림 병렬 처리 시스템의 실행구조를 보여주는 개념도이다.
도 5는 본 발명의 일 실시예에 따른 데이터 스트림 서비스를 구성하는 태스크의 구조를 보여주는 개념도이다.
도 6은 본 발명의 일 실시예에 따른 데이터 스트림의 병렬처리를 위한 태스크의 동적 재구성의 예를 보여주는 개념도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부한 도면들을 참조하여 상세하게 설명한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
본 발명에 따른 폭증 데이터를 처리하기 위하여 데이터 스트림을 분할하는 방법이 제시된다. 특히 본 발명은 분할된 데이터 스트림을 병렬 처리하기 위하여 분할전의 데이터 스트림을 처리하도록 예정되었던 태스크를 여러 개로 복제하여 분할된 스트림을 처리하도록 하는 방법을 제안한다.
먼저 본 발명의 일 실시예에 따른 폭증 데이터 스트림 처리 방법에 따른 과정과 장치에 대해서 설명하고, 상기 데이터 스트림의 처리와 관련된 태스크 및 시스템의 개념적 구조를 데이터 스트림 처리 방법 및 장치와 연관하여 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른 데이터 스트림의 병렬 처리 과정을 보여주는 시퀀스차트이다.
도 2를 참조하면 본 발명의 일 실시예에 따른 데이터 스트림의 병렬 처리 과정은 태스크의 실행상태정보 수집 단계(S110), 성능저하 원인 태스크 판별단계 (S120) 및 판별된 태스크의 복제 필요성에 따른 태스크의 동적 재구성 단계 (S130) 또는 자원 추가할당 단계(S140)를 포함하여 구성된다.
도 2를 참조하면 본 발명의 일 실시예에 따른 데이터 스트림의 병렬처리 과정은 다음과 같이 설명될 수 있다.
태스크의 실행상태정보 수집 단계(S110)는 데이터 스트림 처리 서비스를 수행하는 태스크들의 실행 상태 정보를 수집하는 단계이다.
성능저하 원인 태스크 판별단계 (S120)는 태스크의 실행 상태 정보에 기초하여, 서비스가 미리 정해진 처리 성능 조건을 만족하지 못한다고 판단되는 경우, 실행중인 태스크 중 서비스의 처리 성능 저하의 원인이 되는 태스크를 판별하는 단계이다.
태스크의 동적 재구성 단계 (S130)는 서비스의 처리 성능 저하의 원인이 된다고 판별된 태스크에 대하여 입력되는 데이터 스트림을 분할하여 해당 스트림이 병렬 처리될 수 있도록 서비스내의 태스크를 동적으로 재구성하는 단계이다.
또한 태스크의 동적 재구성 단계 (S130)는 태스크 복제단계(S131), 데이터 스트림 분할단계(S133), 데이터 스트림의 병렬처리 단계(S135) 및 데이터 스트림 병합단계(S137)로 나뉘어 질 수 있다.
태스크 복제단계(S131)는 서비스 성능저하의 원인이 된다고 판별된 태스크의 실행 상태 정보를 참조하여, 성능 저하의 원인이 되는 태스크를 복제할 필요가 있다고 판단한 경우, 즉 해당 태스크의 로드를 분산시키기 위하여, 해당 태스크에게 할당된 데이터 스트림을 분할하여 병렬 처리할 수 있도록, 복수의 태스크로 복제하는 것이 바람직하다고 판단하는 경우, 해당 태스크를 종료하고 소정의 수로 복제한다. 예를 들어 태스크 1이 성능 저하의 원인이 되는 태스크라고 판별된 경우, 태스크의 실행정보를 참조하여 해당 태스크를 3개로 복제하여 복제된 태스크1-1, 태스크 1-2 및 태스크 1-3을 생성할 수 있다.
입력데이터 스트림 분할단계(S133)는 성능 저하의 원인이 되는 태스크에 할당되었던 입력 데이터 스트림을 분할하여 복제된 태스크에 할당하는 단계이다. 즉 분할 태스크를 생성하여 복제된 태스크의 선행 태스크로 할당하면, 분할 태스크는 성능저하의 원인이라고 판별된 태스크의 입력 데이터 스트림을 분할하여 분할된 각 입력 데이터 스트림을 복제된 태스크에 할당한다.
예를 들어 태스크 1이 3개로 태스크로 복제된 경우, 해당 태스크에 처리되도록 할당된 입력데이터 스트림 A를 스트림 A-1, A-2, A-3으로 분할하고 각각 태스크 1-1, 태스크 1-2, 태스크 1-3에 할당하여, 각 복제된 태스크에서 병렬 처리(S135) 할 수 있도록 함으로써 서비스 처리 성능을 향상시킬 수 있다. 이때, 데이터 스트림은 윈도우 단위로 분할할 수 있다.
한편, 분할 태스크는 성능저하의 원인이라고 판별된 태스크의 입력 데이터 스트림 소스별로 생성되고, 소스별 입력 데이터 스트림은 복제된 태스크의 수만큼 분할할 수 있다.
태스크의 복제 필요성 여부, 복제될 수, 데이터 스트림의 분할 수는 태스크의 실행정보를 참조하여 결정될 수 있다.
데이터 스트림 병합단계(S137)는 분할된 입력 데이터 스트림의 병렬처리 결과인 출력 데이터 스트림들을 병합하여 처리하는 단계이다. 즉, 상기 출력 데이터 스트림들을 병합하는 병합 태스크가 동적으로 구축되고 복제된 태스크들의 후행 태스크로 할당된다. 이때, 병합 태스크는 판별된 태스크의 출력 데이터 스트림 소스별로 생성될 수 있고, 1개 이상의 입력 데이터 스트림 소스로부터 입력되는 입력 데이터 스트림을 시간 순서에 맞추어 병합하여 1개의 데이터 스트림으로 출력할 수 있다.
데이터 스트림의 분할 및 병합에 대한 좀 더 상세한 설명은 후술하기로 한다.
자원 추가할당 단계(S140)는 서비스의 처리 성능 저하의 원인이 된다고 판별된 태스크에 대하여 복제 필요성 여부를 판단하여 복제할 필요성은 없다고 판단한 경우 해당 태스크에 추가적인 자원을 할당하거나 해당 태스크를 다른 노드로 이동하여 서비스 처리 성능을 향상시킬 수 있도록 하는 단계이다.
한편, 위에 설명된 것처럼 동적으로 재 구성된 태스크들은 노드의 자원 사용 및 태스크의 처리 성능 정보를 바탕으로 다중 노드에 분산 할당하여 병렬 실행될 수 있다.
도 3은 본 발명의 일 실시예에 따른 데이터 스트림의 병렬 처리 장치를 보여주는 개념도이다.
도 3을 참조하면 본 발명의 일 실시예에 따른 데이터 스트림의 병렬 처리 장치는 서비스 관리부(311) 및 태스크 실행부(321)를 포함하여 구성되는 것을 알 수 있다.
또한 도 3을 참조하면 서비스 관리부(311)는 서비스 관리 모듈(312), QoS 모니터링 모듈(313), 스케줄링 모듈(314)을 포함하여 구성되고, 태스크 실행부(321, 331, 341)는 태스크 관리 모듈(322)과 지역 모니터링 모듈(323)을 포함하여 구성되는 것을 알 수 있다.
서비스 관리부(311)는 데이터 스트림 처리 서비스에 대한 요청에 따라 태스크를 할당하고 스케줄링 하되, 서비스가 미리 정해진 서비스 처리 성능 조건을 만족하지 못하는 경우, 데이터 스트림을 분할하여 병렬 처리할 수 있도록 서비스내의 태스크를 동적으로 재구성하는 부분으로. 서비스 관리 모듈(312), QoS 모니터링 모듈(313), 스케줄링 모듈(314)을 포함하여 구성된다.
여기서, 서비스 관리 모듈(312)은 서비스에 대한 QoS(Quality of Service) 정보를 포함하는 요청 정보와 상기 서비스에 할당된 태스크 정보를 관리하는 부분이다.
한편, QoS 모니터링 모듈(313)운 서비스에 할당된 각 태스크에 대한 실행상태 정보를 수집하고, 수집된 태스크들의 실행 상태 정보를 기초로, 서비스가 상기 QoS(Quality of Service)의 처리 성능 임계치를 만족하지 못한다고 판단되는 경우, 서비스의 처리 성능 저하의 원인이 되는 태스크를 판별하는 부분이다.
또한, 스케줄링 모듈(314)은 성능저하의 원인으로 판별된 태스크로 입력되는 데이터 스트림을 분할하여 병렬 처리될 수 있도록 서비스내의 태스크를 동적으로 재구성하는 부분이다.
특히, 스케줄링 모듈(314)은 판별된 태스크의 실행 상태 정보에 기초하여, 상기 태스크를 복제할 필요가 있다고 판단하는 경우, 성능저하의 원인으로 판별된 태스크를 종료하고, 소정의 수로 복제한 후, 분할 태스크(402)를 생성하여 복제된 태스크(4331-4333)의 선행 태스크로 할당한다. 이때, 분할 태스크(402)는 판별된 태스크의 입력 데이터 스트림을 분할하여 분할된 각 입력 데이터 스트림을 복제된 태스크(4331-4333)에 할당하게 되는데, 분할 태스크는 판별된 태스크의 입력 데이터 스트림 소스별로 생성되고, 소스별 입력 데이터 스트림을 복제된 태스크의 수만큼 분할할 수 있다.
또한, 스케줄링 모듈은 분할된 입력 데이터 스트림들의 처리 결과인 출력 데이터 스트림들을 병합하는 병합 태스크(406)를 동적으로 구축하여 복제된 태스크들의 후행 태스크로 할당한다. 이때, 병합 태스크(407)는 판별된 태스크의 출력 데이터 스트림 소스별로 생성되며, 1개 이상의 입력 데이터 스트림 소스로부터 입력되는 입력 데이터 스트림을 시간 순서에 맞추어 병합하여 1개의 데이터 스트림으로 출력할 수 있다.
태스크 실행부(321)는 태스크를 할당 받아서 실행시키는 부분으로 태스크 관리 모듈(322)과 지역 모니터링 모듈(323)을 포함하여 구성된다.
태스크 관리 모듈(322)은 할당 받은 태스크에 대하여 입력 데이터 스트림 소스 및 출력 데이터 스트림 소스를 바인딩 하여 실행시키는 부분이다.
지역 모니터링 모듈(323)은 실행중인 태스크의 실행 정보를 수집하여 서비스 관리부로 전송하는 부분이다.
도 4는 본 발명의 일 실시예에 따른 데이터 스트림 병렬 처리 시스템의 실행구조를 보여주는 개념도이다.
도 4를 참조하면 본 발명의 일 실시예에 따른 데이터 스트림 병렬 처리 시스템의 실행구조는 데이터 스트림 처리 서비스(300), 연산의 처리를 위하여 배치된 다수의 노드(310-340), 입력 데이터 스트림 소스(350), 출력 데이터 스트림 소스(360)를 포함하여 구성된다.
데이터 스트림 서비스(300)는 여러 개의 태스크(301,302, 303)로 구성되는데, 도 3에 나타난 것처럼, 태스크2(302)는 태스크1(301)으로부터 데이터 스트림을 입력 받아서 처리하고, 그 처리 결과는 다시 태스크3(303)의 입력 데이터 스트림이 되는 데이터 스트림의 연속처리 구조이다.
또한 도 4를 참조하면 본 발명의 일 실시예에 따른 데이터 스트림 처리 서비스를 위한 노드(310-340)에는 각각 서비스 관리부(311) 또는 태스크 실행부(321-341)가 할당될 수 있다.
태스크 실행부는 각 노드에 하나씩 할당되어 실행되는데 비해서, 서비스 관리부는(311)는 별도의 노드(310)가 할당되거나 태스크 실행부가 실행되는 노드(320, 330, 340)에서 실행될 수 있다.
서비스 관리부(311)는 서비스 관리 모듈(312), QoS 모니터링 모듈(313), 스케줄링 모듈(314)을 포함한다.
서비스 관리 모듈(312 )은 서비스(300)의 등록, 삭제 및 검색 등의 사용자 요청을 처리한다. 이때 서비스 등록은 서비스(300)를 구성하는 태스크들(301, 302, 303)을 다수의 태스크 실행부(321, 331, 341)에 분산 할당하여 실행하는 것을 포함하며, 서비스 삭제는 다중 노드에서 실행 중인 관련 태스크들(324, 332, 342)의 실행을 종료하고 관련 정보를 모두 삭제하는 것을 의미한다.
한편, 서비스 등록 시에 사용자는 서비스별 혹은 태스크 별 QoS(Quality of Service)정보를 함께 등록할 수 있으며, QoS는 입력 데이터의 처리율 등으로 정의될 수 있다. QoS 모니터링 모듈(313)은 태스크 실행부(321, 331, 341)의 로컬 모니터링 모듈(323)을 통해 주기적으로 태스크 별 데이터 처리 성능 정보 및 노드별 자원 사용 상태 정보를 수집하여 서비스의 QoS 정보를 구축하고 분석한다.
QoS 모니터링 모듈(313)은 사용자로부터 요청 받은 서비스 처리 성능 임계치의 만족 여부를 검사하거나 시간 흐름에 따른 서비스 처리 성능 변동 추이를 분석함으로써, 서비스 혹은 서비스 내 태스크의 재 스케줄링 여부를 결정하고 이를 스케줄링 모듈(314)에 요청한다.
한편, QoS 모니터링 모듈(313)은 태스크 실행부(321, 331, 341) 내의 지역 모니터링 모듈(323) 로부터 특정 태스크의 재 스케줄링 요청이 있을 경우, 이를 스케줄링 모듈(314)에 전달할 수도 있다.
스케쥴링 모듈(314)은 서비스 관리 모듈(312)로부터의 서비스 등록에 따른 태스크 배치 요청이 있거나, QoS 모니터링 모듈(313)로부터의 서비스 혹은 태스크의 재 스케줄링 요청이 있으면 태스크의 스케줄링을 수행한다.
또한 스케쥴링 모듈(314)은 태스크의 배치 요청 시에, QoS 모니터링 모듈(314)에서 관리하는 노드 내 자원 정보를 바탕으로 여유 자원을 가지는 노드를 선정하고 해당 태스크 실행부에 하나 이상의 태스크를 할당할 수 있다. 한편, 스케줄링 모듈(314)은 재 스케줄링의 요청으로 태스크의 할당 자원 비율 조정 및 태스크의 이동, 태스크의 복제, 로드 쉐딩 등과 같은 정책을 결정한다.
특히, 입력 데이터 스트림의 폭증에 의해 수행 노드 내 자원 증대 혹은 태스크의 데이터 처리 성능을 보장할 만한 노드가 존재치 않을 경우, 해당 태스크를 다중 복제하여 여러 분산 노드에 할당하여 병렬 실행토록 할 수 있다.
태스크 실행부(321, 331, 341)은 태스크 관리 모듈(322)과 지역 모니터링 모듈(323)로 구성될 수 있다.
태스크 관리 모듈(322)은 서비스 관리부(311)의 스케줄링 모듈(314) 로부터 태스크를 할당 받아 이에 대한 입력 데이터 스트림 소스 및 출력 데이터 스트림 소스를 바인딩하고, 태스크를 연속적으로 실행시킨다.
한편 태스크 관리모듈(322)은 스케줄러(314)부터 받은 태스크 실행의 중지, 태스크 실행의 자원 증대 등의 여러 제어 명령들을 해당 태스크를 대상으로 수행한다. 지역 모니터링 모듈(323)은 실행 중인 태스크들의 자원 할당 및 사용 상태 정보, 데이터 스트림 처리 성능 정보를 주기적으로 수집하여, 서비스 관리부(311)의 QoS 모니터링 모듈(313)에 전송한다.
따라서, 서비스(300)는 서비스 관리부(311)와 태스크 실행부(321, 331, 341)에 의해 태스크(324, 332, 342) 단위로 다중 노드들(321, 331, 341)에 할당되고, 입출력 서비스 소스(350, 360)와 연동하여 연속적으로 데이터 스트림을 병렬 처리할 수 있다.
도 5는 본 발명의 일 실시예에 따른 데이터 스트림 서비스를 구성하는 태스크의 구조를 보여주는 개념도이다.
도 5를 참조하면 본 발명의 일 실시예에 따른 데이터 스트림 서비스를 구성하는 태스크(200)의 구조는 복수의 입력부(210, 220), 연산부(230), 복수의 출력부(240, 250) 및 선택부(260)를 포함하여 구성되는 것을 알 수 있다.
서비스를 구성하는 태스크(200)는 기본적으로 복수개(N)의 입력 데이터 스트림을 받아 처리할 수 있고, 입력 데이터 스트림을 받는 입력부(210)는 입력기(211), 입력 포맷터(212), 윈도우바인더(213)를 포함하여 구성될 수 있다.
입력기(211)는 태스크의 입력 데이터 스트림의 소스에 대한 정보로서, 네트워크 통신 정보(예를 들면 TCP), 메모리 통신의 경우 메모리 주소, 파일 통신의 경우에는 관련 디렉토리 및 파일 이름 정보 등의 다양한 스트림 데이터 소스 정보를 저장할 수 있다.
한편 해당 태스크의 입력 데이터 스트림 소스가 서비스의 입력 데이터 스트림 소스와 동일한 경우에는 최초 서비스 등록 시에 입력 데이터 스트림 소스에 대한 정보가 구축되나, 선행 태스크가 입력 데이터 스트림 소스가 되어, 선행 태스크로부터 처리 결과를 입력으로 받는 경우에는 서비스 등록 이후 태스크 배치 시에 동적으로 구축된다.
입력 포맷터(212)는 입력 데이터 스트림의 형식에 관한 정보를 정의한다. 예를 들면, 구분자 혹은 길이 지시자 기반 레코드, 고정 길이 레코드, 사용자 정의 형식 등을 표현할 수 있다.
윈도우 바인더(213)는 태스크가 한번 실행될 때 태스크의 입력 데이터 스트림 소스로부터 들어오는 데이터 스트림 처리량을 규정하기 위한 것으로, 데이터의 개수 혹은 시간을 바탕으로 정의될 수 있다.
연산부(230)는 복수(N)개의 입력 데이터 스트림 소스로부터 유입되는 데이터 스트림을 바탕으로 연산을 수행하여 처리 결과를 산출한다. 이때 데이터 스트림 처리 연산에 대한 정의는 사용자가 직접 정의하거나, 데이터 스트림 처리 시스템에 등록된 연산을 지정하도록 할 수 있다.
한편, 태스크는 데이터 스트림 처리 연산 결과로써 복수(M)개의 출력 데이터 스트림을 발생시킬 수 있는데, 태스크의 출력부(240)는 네트워크, 메모리, 파일 등의 데이터 전송 방법을 포함하는 출력 데이터 스트림 소스 정보를 저장하는 출력기(241)와 데이터 스트림 형식을 나타내는 출력 포맷터(242)를 가질 수 있다. 입력 데이터 스트림 소스와 마찬가지로 태스크의 출력 데이터 스트림 소스가 서비스의 출력 데이터 스트림 소스에 해당하는 경우, 서비스 정의 시에 규정될 수 있으나 후행 태스크가 출력 데이터 스트림 소스가 되는 경우에는 태스크의 분산 배치 정보를 바탕으로 동적으로 구축된다.
또한, 태스크는 데이터 스트림의 폭증 시에 태스크의 복제를 위한 정보를 선택부(260)에 저장할 수 있다. 선택부(260)에 저장될 수 있는 정보로는 복제 가능 여부, 복제 가능 시에 가장 적절한 복제 태스크의 개수, 복제에 따른 데이터 스트림의 분할 방법 등이 될 수 있다. 이때, 데이터 스트림의 분할 방법으로는 라운드로빈(round robin), 랜덤(random), 범위(range) 기반 등이 사용될 수 있다.
도 6은 본 발명의 일 실시예에 따른 데이터 스트림의 병렬처리를 위한 태스크의 동적 재구성의 예를 보여주는 개념도이다.
도 6을 참조하면 데이터 스트림 서비스 내 태스크들이 연속적으로 실행되는 도중에 데이터 스트림이 폭증하는 경우, 태스크들이 복제를 통하여 데이터 스트림의 병렬 실행을 지원하도록 동적으로 구성되는 것을 알 수 있다. 즉 서비스(400) 내에서 태스크2(403)의 입력 데이터 스트림이 폭증(410)하는 경우, 태스크2(403)가 3개로 복제되어 태스크2_A(4331), 태스크2_B(4332), 태스크2_C(4333)가 생성된 것을 보여준다.
한편, 데이터 스트림 폭증으로 인한 병렬 실행을 위하여, 기 설정된 태스크 2의 복제 정보를 바탕으로 분할 태스크(402)가 동적으로 구성된다. 분할 태스크(402)는 태스크1(401)로부터 태스크2(403)로 전송되던 데이터 스트림(410)을 태스크2_A(4331), 태스크2_B(4332), 태스크2_C(4333)로 분할하여 전송한다.
기본적으로 분할 태스크의 데이터 스트림 처리 연산은 입력되는 데이터의 시간적인 순서를 유지시켜 주어야 하기 때문에, 윈도우 기반으로 데이터 스트림을 분할하고 분할된 데이터 스트림을 라운드 로빈(round robin) 방식과 같이 순차적으로 균등하게 태스크2_A(4331), 태스크2_B(4332), 태스크2_C(4333)로 전송한다. 또한, 기 설정된 복제 정보를 참조하여 랜덤 방식으로 데이터 분할을 수행할 수도 있다.
분할 태스크(402)는 복제하고자 하는 태스크2(403)의 입력 데이터 스트림 소스별로 1개씩 구축되는 데, 이는 분할 태스크(402)가 복수의 입력 데이터 스트림 소스로부터의 오는 데이터 스트림을 다루게 된다면, 데이터 소스별 데이터의 발생 빈도 차이로 인하여, 특정 입력 데이터 스트림 소스로부터 유입되는 데이터의 오버플로우를 발생시킬 수 있기 때문이다.
따라서, 분할 태스크(402)에는 1개의 입력 데이터 스트림 소스와 복수의 출력 데이터 스트림 소스를 포함하도록 구성될 수 있으며, 이때 출력 데이터 스트림 소스의 수는 복제된 태스크 수와 동일 할 수 있다. 즉 분할 태스크(402)는 유입되는 입력 데이터 스트림을 복제된 태스크 수만큼 분할하는 연산을 수행하므로 출력 데이터 스트림은 복제된 태스크 수와 동일하게 되는 것이다.
예를 들어, 도 6 의 분할 태스크(402)는 1개의 입력 데이터 스트림 소스와 3개의 출력 데이터 스트림 소스를 포함한다. 한편, 분할 태스크(402)의 입력 데이터 스트림 소스(401)는 복제 대상이 되는 태스크2(403)의 입력 데이터 스트림 소스의 입력기, 입력 포맷터, 윈도우바인더 정보를 그대로 가질 수 있다. 분할 태스크(402)의 각 출력 데이터 스트림 소스는 출력 포맷터를 위한 별도의 정의를 갖지 않으며, 출력기 정보는 복제된 태스크인 태스크2_A(4331), 태스크2_B(4332), 태스크2_C(4333)의 배치 정보를 바탕으로 동적으로 구축될 수 있다. 분할 태스크(402)는 입력 데이터 스트림 소스와의 전송 비용을 최소화하는 배치가 되도록 스케줄링 될 수 있다.
병합 태스크(406)는 복제 대상 태스크2(403)의 각 출력 데이터 스트림 소스 별로 1개씩 구축된다. 한편, 병합 태스크(406)의 입력 데이트 스트림 소스는 복제된 태스크(4331, 4332, 4333)의 수인 3만큼의 입력 데이터 스트림 소스를 갖는다. 병합 태스크(406)는 복제된 태스크(4331, 4332, 4333)의 배치 정보에 따라 입력기가 동적으로 구축되며, 입력 포맷터 및 윈도우바인더 정보는 별도로 구축되지 않을 수 있다.
병합 태스크(406)의 데이터 처리 연산은 복제된 태스크들(4331, 4332, 4333)로부터 들어오는 입력 데이터 스트림을 시간적인 순서에 맞추어 병합하는 것이다. 병합 태스크(406)의 출력기는 후행 태스크인 태스크3(407)의 배치 정보를 바탕으로 동적으로 구축된다.
복제된 태스크인 태스크2_A(4331), 태스크2_B(4332), 태스크2_C(4333)의 각 입력기는 분할 태스크(402)의 배치 정보를 바탕으로 하는 입력 데이터 스트림 소스에 대한 정보를 기초로 동적으로 구축된다. 한편, 입력 포맷터는 분할 태스크(402)에서 처리되는 경우에는 별도 설정을 하지 않을 수 있다. 또한, 윈도우 바인더에 스트림 분할을 위한 슬라이딩의 크기를 윈도우 크기로 하도록 정의하여 저장함으로써 이전 윈도우 내의 데이터 재사용이 없도록 할 수 있다.
태스크2_A(4331), 태스크2_B(4332), 태스크2_C(4333)의 데이터 처리 결과를 전송 받을 각 출력 데이터 스트림 소스는 해당 병합 태스크의 동적 배치 정보를 바탕으로 구축된다.
도 6을 통하여 설명된 것처럼 폭증하는 입력 데이터 스트림(410)을 갖는 태스크2(403)를 다수 개의 태스크(4331, 4332, 4333)로 복제하여 다중 노드에 배치하여 실행시킴으로써, 서비스의 정확도는 저하시키지 않으면서도 폭증 데이터 스트림을 분할하여 병렬 처리토록 하여 서비스의 처리 성능을 보장할 수 있다. 다만 이때, 서비스 내 태스크의 실행 구조 변경 시에 관련 태스크들의 일시적인 실행 중지 혹은 관련 태스크의 입출력 데이터 스트림의 버퍼링이 필요할 수 있다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (12)

  1. 데이터 스트림의 폭증을 처리하기 위한 데이터 스트림 처리 방법으로,
    데이터 스트림 처리 서비스를 수행하는 태스크들의 실행 상태 정보를 수집하는 제 1 단계;
    상기 태스크의 실행 상태 정보에 기초하여, 상기 서비스가 미리 정해진 처리 성능 조건을 만족하지 못한다고 판단되는 경우, 실행중인 태스크 중 상기 서비스의 처리 성능 저하의 원인이 되는 태스크를 판별하는 제 2 단계; 및
    상기 판별된 태스크로 입력되는 데이터 스트림을 분할하여 병렬 처리될 수 있도록 상기 서비스내의 태스크를 동적으로 재구성하는 제 3단계를 포함하고,
    상기 제 3 단계는,
    상기 판별된 태스크를 종료하고 소정의 수로 복제한 후, 분할 태스크를 생성하여 상기 복제된 태스크의 선행 태스크로 할당하고,
    상기 분할 태스크는 상기 판별된 태스크의 입력 데이터 스트림을 분할하여 상기 분할된 각 입력 데이터 스트림을 상기 복제된 태스크에 할당하는 태스크인, 데이터 스트림 처리 방법.
  2. 제 1항에 있어서,
    상기 제 3 단계는, 상기 판별된 태스크의 실행 상태 정보에 기초하여 상기 판별된 태스크를 복제할 필요가 있다고 판단하는 경우에 수행되는, 데이터 스트림 처리 방법.
  3. 제 1항에 있어서,
    상기 분할 태스크는 상기 판별된 태스크의 입력 데이터 스트림 소스별로 생성되고, 상기 소스별 입력 데이터 스트림을 상기 복제된 태스크의 수만큼 분할하는 것을 특징으로 하는 데이터 스트림 처리 방법.
  4. 제 1항에 있어서,
    상기 제 3 단계는,
    상기 분할된 입력 데이터 스트림의 처리 결과인 출력 데이터 스트림들을 병합하는 병합 태스크를 동적으로 구축하여 상기 복제된 태스크들의 후행 태스크로 할당하는 단계를 더 포함하는 것을 특징으로 하는 데이터 스트림 처리 방법.
  5. 제 4항에 있어서,
    상기 병합 태스크는 상기 판별된 태스크의 출력 데이터 스트림 소스별로 생성되며, 적어도 1개의 입력 데이터 스트림 소스로부터 입력되는 입력 데이터 스트림을 시간 순서에 맞추어 병합하여 1개의 데이터 스트림으로 출력하는 것을 특징으로 하는 데이터 스트림 처리 방법.
  6. 제 1항에 있어서,
    상기 제 3 단계에서 동적으로 재 구성된 태스크들은 노드의 자원 사용 및 태스크의 처리 성능 정보를 바탕으로 다중 노드에 분산 할당되어 병렬 실행되는 것을 특징으로 하는 데이터 스트림 처리 방법.
  7. 데이터 스트림의 폭증을 처리하기 위한 데이터 스트림 처리 장치로서,
    데이터 스트림 처리 서비스에 대한 요청에 따라 태스크를 할당하고 스케줄링하되, 상기 서비스가 미리 정해진 서비스 처리 성능 조건을 만족하지 못하는 경우, 실행중인 태스크 중 상기 서비스의 처리 성능 저하의 원인이 되는 태스크를 판별하고, 판별된 태스크로 입력되는 데이터 스트림을 분할하여 병렬 처리할 수 있도록 상기 서비스내의 태스크를 동적으로 재구성하는 서비스 관리부; 및
    상기 요청에 따른 태스크를 할당 받아 실행시키는 태스크 실행부를 포함하고,
    상기 서비스 관리부는,
    상기 판별된 태스크를 종료하고, 상기 판별된 태스크를 소정의 수로 복제한 후, 분할 태스크를 생성하여 상기 복제된 태스크의 선행 태스크로 할당하는 스케줄링 모듈을 포함하고,
    상기 분할 태스크는 상기 판별된 태스크의 입력 데이터 스트림을 분할하고 분할된 각 입력 데이터 스트림을 상기 복제된 태스크에 할당하는 태스크인, 데이터 스트림 처리 장치.
  8. 제 7항에 있어서,
    상기 서비스 관리부는,
    상기 서비스에 대한 QoS(Quality of Service) 정보를 포함하는 요청 정보와 상기 서비스에 할당된 태스크 정보를 관리하는 서비스 관리 모듈; 및
    상기 서비스에 할당된 각 태스크에 대한 실행상태 정보를 수집하고, 상기 수집된 태스크들의 실행 상태 정보를 기초로, 상기 서비스가 상기 QoS(Quality of Service)의 처리 성능 임계치를 만족하지 못한다고 판단되는 경우, 상기 서비스의 처리 성능 저하의 원인이 되는 태스크를 판별하는 QoS 모니터링 모듈을 포함하고,
    상기 스케줄링 모듈은, 상기 판별된 태스크의 실행 상태 정보에 기초하여, 상기 태스크를 복제할 필요가 있다고 판단하는 경우에 상기 판별된 태스크의 종료와 복제 및 상기 분할 태스크의 생성과 할당을 수행하는, 데이터 스트림 처리 장치.
  9. 제 7항에 있어서,
    상기 분할 태스크는 상기 판별된 태스크의 입력 데이터 스트림 소스별로 생성되고, 상기 소스별 입력 데이터 스트림을 상기 복제된 태스크의 수만큼 분할하는태스크인 것을 특징으로 하는 데이터 스트림 처리 장치.
  10. 제 8항에 있어서,
    상기 스케줄링 모듈은 상기 분할된 입력 데이터 스트림들의 처리 결과인 출력 데이터 스트림들을 병합하는 병합 태스크를 동적으로 구축하여 상기 복제된 태스크들의 후행 태스크로 할당하는 것을 특징으로 하는 데이터 스트림 처리 장치.
  11. 제 10항에 있어서,
    상기 병합 태스크는 상기 판별된 태스크의 출력 데이터 스트림 소스별로 생성되며, 적어도 1개의 입력 데이터 스트림 소스로부터 입력되는 입력 데이터 스트림을 시간 순서에 맞추어 병합하여 1개의 데이터 스트림으로 출력하는 것을 특징으로 하는 데이터 스트림 처리 장치.
  12. 제 7항에 있어서
    상기 태스크 실행부는,
    상기 할당받은 태스크에 대하여 입력 데이터 스트림 소스 및 출력 데이터 스트림 소스를 바인딩하여 실행시키는 태스크 관리 모듈; 및
    상기 태스크 관리 모듈에 의해 실행중인 태스크의 실행 정보를 수집하여 상기 서비스 관리부로 전송하는 지역 모니터링 모듈을 포함하는 것을 특징으로 하는 데이터 스트림 처리 장치
KR1020110071031A 2011-07-18 2011-07-18 폭증 데이터 스트림 처리 방법 및 장치 KR101752699B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110071031A KR101752699B1 (ko) 2011-07-18 2011-07-18 폭증 데이터 스트림 처리 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110071031A KR101752699B1 (ko) 2011-07-18 2011-07-18 폭증 데이터 스트림 처리 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20130010314A KR20130010314A (ko) 2013-01-28
KR101752699B1 true KR101752699B1 (ko) 2017-07-03

Family

ID=47839588

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110071031A KR101752699B1 (ko) 2011-07-18 2011-07-18 폭증 데이터 스트림 처리 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101752699B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101694287B1 (ko) 2013-05-23 2017-01-23 한국전자통신연구원 스트림 처리 태스크 관리 장치 및 방법
KR102097296B1 (ko) * 2016-09-07 2020-04-06 한국전자통신연구원 실시간 스트림 처리를 위한 적응형 역압 방법 및 그 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010204880A (ja) * 2009-03-03 2010-09-16 Hitachi Ltd ストリームデータ処理方法、ストリームデータ処理プログラム、および、ストリームデータ処理装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010204880A (ja) * 2009-03-03 2010-09-16 Hitachi Ltd ストリームデータ処理方法、ストリームデータ処理プログラム、および、ストリームデータ処理装置

Also Published As

Publication number Publication date
KR20130010314A (ko) 2013-01-28

Similar Documents

Publication Publication Date Title
KR101827369B1 (ko) 데이터 스트림 분산 병렬 처리 서비스 관리 장치 및 방법
CN109684065B (zh) 一种资源调度方法、装置及系统
US20140379722A1 (en) System and method to maximize server resource utilization and performance of metadata operations
US9286123B2 (en) Apparatus and method for managing stream processing tasks
Cheng et al. Adaptive scheduling of parallel jobs in spark streaming
WO2016078008A1 (zh) 调度数据流任务的方法和装置
US20150199214A1 (en) System for distributed processing of stream data and method thereof
US20140047095A1 (en) System and method for tuning a cloud computing system
CN112449750A (zh) 日志数据收集方法、日志数据收集装置、存储介质和日志数据收集系统
US20140047084A1 (en) System and method for modifying a hardware configuration of a cloud computing system
US20200174844A1 (en) System and method for resource partitioning in distributed computing
KR101013073B1 (ko) 태스크 분배 및 병렬 처리 시스템과 그 방법
US20140047079A1 (en) System and method for emulating a desired network configuration in a cloud computing system
EP3285187B1 (en) Optimized merge-sorting of data retrieved from parallel storage units
CN102662731A (zh) 服务提供方法以及使用该方法的装置
CN112148468B (zh) 一种资源调度方法、装置、电子设备及存储介质
Tolosana-Calasanz et al. Resource management for bursty streams on multi-tenancy cloud environments
CN103491024A (zh) 一种面向流式数据的作业调度方法及装置
WO2024021489A1 (zh) 一种任务调度方法、装置及Kubernetes调度器
JP2016024612A (ja) データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置
Choi et al. An enhanced data-locality-aware task scheduling algorithm for hadoop applications
Liu et al. Optimizing shuffle in wide-area data analytics
US8903871B2 (en) Dynamic management of log persistence
KR101752699B1 (ko) 폭증 데이터 스트림 처리 방법 및 장치
US10824640B1 (en) Framework for scheduling concurrent replication cycles

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