KR20120072252A - 분산 데이터 스트림 처리 시스템에서 연속 처리 태스크를 병렬 처리하기 위한 장치 및 그 방법 - Google Patents

분산 데이터 스트림 처리 시스템에서 연속 처리 태스크를 병렬 처리하기 위한 장치 및 그 방법 Download PDF

Info

Publication number
KR20120072252A
KR20120072252A KR1020100134090A KR20100134090A KR20120072252A KR 20120072252 A KR20120072252 A KR 20120072252A KR 1020100134090 A KR1020100134090 A KR 1020100134090A KR 20100134090 A KR20100134090 A KR 20100134090A KR 20120072252 A KR20120072252 A KR 20120072252A
Authority
KR
South Korea
Prior art keywords
processing
task
parallel
data stream
continuous
Prior art date
Application number
KR1020100134090A
Other languages
English (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 KR1020100134090A priority Critical patent/KR20120072252A/ko
Priority to US13/329,610 priority patent/US20120167103A1/en
Publication of KR20120072252A publication Critical patent/KR20120072252A/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

본 발명에 의한 분산 데이터 스트림 처리 시스템에서 연속 처리 태스크를 병렬 처리하기 위한 장치 및 그 방법이 개시된다.
본 발명에 따른 분산 데이터 스트림 처리 시스템은 입력되는 데이터 스트림에 대한 연속 처리 태스크의 병렬 처리에 대한 필요 여부를 판단하고 병렬 처리가 필요한 경우 데이터 스트림 분할 및 상기 데이터 스트림을 처리하기 위한 연속 처리 태스크를 다수의 분산처리 노드에 할당하여 처리할 것을 지시하는 제어 노드; 및 상기 제어 노드의 지시에 따라 입력되는 상기 데이터 스트림을 분할하고 그 분할된 상기 데이터 스트림과 이를 처리하기 위한 연속 처리 태스크를 각각 할당하여 처리하고 그 처리한 결과를 통합하는 다수의 분산처리 노드를 포함하는 것을 특징으로 한다.
이를 통해, 본 발명은 대용량 데이터 및 질의의 과부하로 인하여 특정 연산에 집중되는 부하를 분산시키고, 이러한 부하의 감소로 인하여 데이터 스트림의 실시간 처리를 보장하고 로드 쉐딩으로 인한 데이터 스트림의 손실을 줄일 수 있다는 이점이 있다.

Description

분산 데이터 스트림 처리 시스템에서 연속 처리 태스크를 병렬 처리하기 위한 장치 및 그 방법{APPARATUS FOR PROCESSING CONTINUOUS PROCESSING TASK IN DISTRIBUTED DATA STREAM PROCESSING SYSTEM AND METHOD THEREOF}
본 발명은 분산 데이터 스트림 처리 시스템에 관한 것으로서, 특히, 데이터 스트림의 병렬 처리에 대한 필요 여부를 판단한 후에 그 판단한 결과에 따라 데이터 스트림을 분할하고 그 분할된 데이터 스트림을 다수의 연속 처리 태스크에 할당함으로써, 효율적인 병렬 처리가 가능하도록 하는 분산 데이터 스트림 처리 시스템에서 연속 처리 태스크를 병렬 처리하기 위한 장치 및 그 방법에 관한 것이다.
새로운 데이터가 빠르고 연속적으로 무한히 발생하는 데이터 스트림 환경에서 연속 질의를 처리하기 위한 데이터 스트림 처리 시스템이 개발되었다. 데이터 스트림 처리 시스템에서 질의는 데이터 스트림을 처리하기 위한 여러 연속 처리 태스크(연산)으로 구성되며, 이러한 연속 처리 태스크들이 빠르게 연속적으로 입력되는 데이터를 처리할 수 있어야 하며, 이를 위해 이러한 연속 처리 태스크들은 데이터를 특정 단위(윈도우)로 처리한다.
또한, 비주기적으로 폭증하는 데이터 스트림을 처리하기 위해 다수의 노드를 이용하여 연속 질의를 분산 처리할 수 있는 분산 데이터 스트림 처리 시스템이 개발되었다. 분산 데이터 스트림 처리 시스템은 데이터 스트림에 대한 연속 질의 처리를 위해 질의를 구성하는 여러 연속 처리 태스크를 하나 이상의 노드를 활용하여 분산하여 처리한다.
도 1은 종래 기술에 따른 분산 데이터 처리 시스템의 동작 원리를 설명하기 위한 예시도이다.
도 1에 도시한 바와 같이, 종래 기술에 따른 분산 데이터 처리 시스템에서 연속 질의를 구성하는 연속 처리 태스크를 다수의 노드에 분산하여 처리하고 있다.
그러나 분산 데이터 스트림 처리 시스템에서 입력되는 데이터 스트림의 폭증으로 인해 특정 태스크가 단일 노드에서 처리하기 힘든 경우가 발생하며, 이로 인해 연속 질의 처리의 지연 및 분산 데이터 스트림 처리 시스템의 정지 및 오류가 발생할 수 있다.
이러한 문제점을 해결하기 위한 방법으로 기존의 분산 데이터 스트림 처리 시스템에서는 데이터 스트림을 선별적으로 버리는 로드 쉐딩(load shedding) 방법을 이용하고 있지만, 이러한 방법 역시 처리 결과의 정확도가 저하될 수 있는 문제점이 있다.
따라서 이러한 종래 기술의 문제점을 해결하기 위한 것으로, 본 발명의 목적은 데이터 스트림을 처리하기 위한 연속 처리 태스크의 병렬 처리에 대한 필요 여부를 판단한 후에 병렬 처리가 필요한 경우, 데이터 스트림을 분할하고 그 분할된 데이터 스트림을 처리하기 위해 다수의 노드에 할당된 연속 처리 태스크에서 처리함으로써, 연속 처리 태스크 병렬 처리가 가능하도록 하는 분산 데이터 스트림 처리 시스템에서 연속 처리 태스크를 병렬 처리하기 위한 장치 및 그 방법을 제공하는데 있다.
상기 목적을 달성하기 위하여, 본 발명의 한 관점에 따른 분산 데이터 스트림 처리 시스템은 입력되는 데이터 스트림에 대한 연속 처리 태스크의 병렬 처리에 대한 필요 여부를 판단하고 병렬 처리가 필요한 경우 데이터 스트림 분할 및 상기 데이터 스트림을 처리하기 위한 연속 처리 태스크를 다수의 분산처리 노드에 할당하여 처리할 것을 지시하는 제어 노드; 및 상기 제어 노드의 지시에 따라 입력되는 상기 데이터 스트림을 분할하고 그 분할된 상기 데이터 스트림과 이를 처리하기 위한 연속 처리 태스크를 각각 할당하여 처리하고 그 처리한 결과를 통합하는 다수의 분산처리 노드를 포함하는 것을 특징으로 한다.
바람직하게, 상기 제어 노드는 일정한 데이터 스트림의 양에 대해 특정 연속 처리 태스크를 단일 노드에서 처리하는 비용과 다수의 노드에서 병렬 처리하는 비용을 비교하고 그 비교한 결과에 따라 태스크의 병렬 처리 여부를 판단하는 것을 특징으로 한다.
필요에 따라, 상기 제어 노드는 다음의 수학식
Figure pat00001
을 만족하는 경우에 연속 처리 태스크의 병렬 처리가 필요하다고 판단하되, 여기서, W는 입력되는 데이터 스트림의 양을 나타내고, T1은 단일 노드의 데이터 전송 비용을 나타내며, C1은 단일 노드의 데이터 처리 비용을 나타내며, T2는 다수 노드들의 데이터 전송 비용을 나타내고, C2는 다수 노드들에서의 데이터 처리 비용을 나타내며, 및 M은 처리 결과를 통합하는 비용을 나타내는 것을 특징으로 한다.
본 발명의 다른 한 관점에 따른 연속 처리 태스크를 병렬 처리하기 위한 장치는 데이터 스트림을 입력 받거나 상기 데이터 스트림에 대한 처리 결과를 송신하는 송수신부; 입력받는 상기 데이터 스트림에 대한 연속 처리 태스크의 병렬 처리 여부에 따라 상기 데이터 스트림을 분할하는 분할부; 및 그 분할된 상기 데이터 스트림과 이를 처리하기 위한 연속 처리 태스크의 병렬 태스크를 다수의 분산처리 노드에 할당하여 처리하는 처리부를 포함하는 것을 특징으로 한다.
바람직하게, 상기 연속 처리 태스크의 병렬 처리 여부는 일정한 데이터 스트림의 양에 대해 특정 연속 처리 태스크를 단일 노드에서 처리하는 비용과 다수의 노드에서 병렬 처리하는 비용을 비교하고 그 비교한 결과에 따라 판단하는 것을 특징으로 한다.
필요에 따라, 상기 연속 처리 태스크의 병렬 처리 여부는 다음의 수학식
Figure pat00002
을 만족하는 경우에 필요하다고 판단하되, 여기서, W는 입력되는 데이터 스트림의 양을 나타내고, T1은 단일 노드의 데이터 전송 비용을 나타내며, C1은 단일 노드의 데이터 처리 비용을 나타내며, T2는 다수 노드들의 데이터 전송 비용을 나타내고, C2는 다수 노드들에서의 데이터 처리 비용을 나타내며, 및 M은 처리 결과를 통합하는 비용을 나타내는 것을 특징으로 한다.
필요에 따라, 상기 분할부는 상기 데이터 스트림을 데이터 스트림의 최소 단위인 레코드나 연속 처리 태스크 처리의 기본 단위인 윈도우를 기준으로 분할하는 것을 특징으로 한다.
필요에 따라, 상기 분할부는 다수의 입력 소스로부터 입력되는 데이터 스트림을 통합한 후에 분할하거나, 입력되는 상기 데이터 스트림을 각각 분할하는 것을 특징으로 한다.
필요에 따라, 상기 처리부는 상기 다수의 분산처리 노드에 연속 처리 태스크의 병렬 태스크를 미리 분산 배치한 후에 분할된 상기 데이터 스트림을 각 분산처리 노드의 병렬 태스크에 전달하여 처리하거나, 분할된 상기 데이터 스트림을 다수의 분산처리 노드에 분산 저장한 후에 각 분산처리 노드에 연속 처리 태스크의 병렬 태스크를 배치하여 처리하는 것을 특징으로 한다.
필요에 따라, 상기 처리부는 상기 데이터 스트림을 입력되는 순서대로 연속 처리 태스크에 할당하거나, 입력되는 순서와 상관없이 연속 처리 태스크에 할당하는 것을 특징으로 한다.
또한, 본 발명에 따른 연속 처리 태스크를 병렬 처리하기 위한 장치는 상기 다수의 분산처리 노드로부터 연속 처리 태스크의 병렬처리 결과를 제공받아 제공받은 상기 연속 처리 태스크의 병렬처리 결과를 사용자에게 전달하거나 다음 연속 처리 태스크의 입력으로 전달하는 통합부를 더 포함하는 것을 특징으로 한다.
본 발명의 또 다른 한 관점에 따른 연속 처리 태스크를 병렬 처리하기 위한 방법은 (a) 입력되는 데이터 스트림에 대한 연속 처리 태스크의 병렬 처리에 대한 필요 여부를 판단하는 단계; (b) 그 판단한 결과에 따라 상기 데이터 스트림을 분할하는 단계; 및 (c) 그 분할된 상기 데이터 스트림과 이를 처리하기 위한 연속 처리 태스크의 병렬 태스크를 다수의 분산처리 노드에 할당하여 처리하는 단계를 포함하는 것을 특징으로 한다.
바람직하게, 상기 (a) 단계는 일정한 데이터 스트림의 양에 대해 특정 연속 처리 태스크를 단일 노드에서 처리하는 비용과 다수의 노드에서 병렬 처리하는 비용을 비교하고 그 비교한 결과에 따라 연속 처리 태스크의 병렬 처리 여부를 판단하는 것을 특징으로 한다.
필요에 따라, 상기 (a) 단계는 다음의 수학식
Figure pat00003
을 만족하는 경우에 연속 처리 태스크의 병렬 처리가 필요하다고 판단하되, 여기서, W는 입력되는 데이터 스트림의 양을 나타내고, T1은 단일 노드의 데이터 전송 비용을 나타내며, C1은 단일 노드의 데이터 처리 비용을 나타내며, T2는 다수 노드들의 데이터 전송 비용을 나타내고, C2는 다수 노드들에서의 데이터 처리 비용을 나타내며, 및 M은 처리 결과를 통합하는 비용을 나타내는 것을 특징으로 한다.
필요에 따라, 상기 (b) 단계는 상기 데이터 스트림을 데이터 스트림의 최소 단위인 레코드나 태스크 처리의 기본 단위인 윈도우를 기준으로 분할하는 것을 특징으로 한다.
필요에 따라, 상기 (b) 단계는 다수의 입력 소스로부터 입력되는 데이터 스트림을 통합한 후에 분할하거나, 입력되는 상기 데이터 스트림을 각각 분할하는 것을 특징으로 한다.
필요에 따라, 상기 (c) 단계는 상기 다수의 분산처리 노드에 연속 처리 태스크의 병렬 태스크를 미리 분산 배치한 후에 분할된 상기 데이터 스트림을 각 분산처리 노드의 병렬 태스크에 전달하여 처리하거나, 분할된 상기 데이터 스트림을 다수의 분산처리 노드에 분산 할당한 후에 각 분산처리 노드에 연속 처리 태스크의 병렬 태스크를 배치하는 것을 특징으로 한다.
필요에 따라, 상기 (c) 단계는 상기 데이터 스트림을 입력되는 순서대로 병렬 태스크에 전달하거나, 입력되는 순서와 상관없이 병렬 태스크에 전달하는 것을 특징으로 한다.
이를 통해, 본 발명은 데이터 스트림을 처리하기 위한 연속 처리 태스크의 병렬 처리에 대한 필요 여부를 판단한 후에 그 판단한 결과에 따라 데이터 스트림을 분할하고 그 분할된 데이터 스트림을 처리하기 위한 연속 처리 태스크를 다수의 노드에 할당함으로써, 대용량 데이터 및 질의의 과부하로 인하여 특정 태스크에 집중되는 부하를 분산시킬 수 있는 효과가 있다.
또한, 본 발명은 데이터 스트림을 처리하기 위한 연속 처리 태스크를 다수의 노드에 할당하여 특정 노드에 집중되는 부하를 분산시키기 때문에 데이터 스트림의 실시간 처리를 보장하고 로드 쉐딩으로 인한 데이터 스트림의 손실을 줄일 수 있는 효과가 있다.
도 1은 종래 기술에 따른 분산 데이터 처리 시스템의 동작 원리를 설명하기 위한 예시도이다.
도 2는 본 발명의 실시예에 따른 분산 데이터 스트림 처리 시스템을 나타내는 예시도이다.
도 3은 도 2에 도시된 분산처리 노드(200)의 상세한 구성을 나타내는 예시도이다.
도 4는 본 발명의 실시예에 따른 데이터 스트림을 분할하는 원리를 설명하기 위한 예시도이다.
도 5는 본 발명의 실시예에 따른 연속 처리 태스크를 분산처리 노드에 할당하는 원리를 설명하기 위한 예시도이다.
도 6은 본 발명의 실시예에 따른 데이터 스트림을 연속 처리 태스크에 전달하는 원리를 설명하기 위한 예시도이다.
도 7은 본 발명의 실시예에 따른 연속 처리 태스크의 병렬처리 결과를 전달하는 원리를 설명하기 위한 예시도이다.
도 8은 본 발명의 실시예에 따른 연속 처리 태스크를 병렬 처리하기 위한 방법을 나타내는 예시도이다.
이하에서는, 본 발명의 실시예에 따른 분산 데이터 스트림 처리 시스템에서 연속 처리 태스크를 병렬 처리하기 위한 장치 및 그 방법을 도 1 내지 도 8을 참조하여 설명한다.
즉, 본 발명은 데이터 스트림을 처리하기 위한 연속 처리 태스크의 병렬 처리에 대한 필요 여부를 판단한 후에 병렬 처리가 필요한 경우 데이터 스트림을 분할하고 그 분할된 데이터 스트림을 처리하기 위한 연속 처리 태스크를 다수의 노드에 할당하여 특정 노드에 과중하게 할당되지 않도록 연속 처리 태스크를 병렬 처리하기 위한 방안을 제안한다.
도 2는 본 발명의 실시예에 따른 분산 데이터 스트림 처리 시스템을 나타내는 예시도이다.
도 2에 도시한 바와 같이, 본 발명에 따른 분산 데이터 스트림 처리 시스템은 제어 노드(100), 및 다수의 분산처리 노드(200) 등을 포함하여 구성될 수 있다.
제어 노드(100)는 대용량의 데이터 스트림을 처리를 제어하기 위한 노드로써, 데이터 스트림에 대한 연속 처리 태스크의 병렬 처리 여부를 판단하고 지시할 수 있다. 즉, 제어 노드(100)는 입력되는 데이터 스트림에 대한 연속 처리 태스크의 병렬 처리에 대한 필요 여부를 판단한 후 병렬 처리가 필요한 경우에 데이터 스트림을 분할하고 그 분할된 데이터 스트림을 처리하기 위한 연속 처리 태스크를 다수의 분산처리 노드에 할당하여 처리할 것을 다수의 분산처리 노드에 지시할 수 있다.
이때, 본 발명은 모든 데이터 스트림에 대한 연속 처리 태스크를 병렬 처리하지 않고 해당 노드의 메모리 과부하 또는 처리 지연 등을 고려한 질의 처리 성능이 분산 병렬 처리함으로써 연속 질의 처리 비용을 저하시킬 수 있는 대용량의 데이터 스트림을 처리하는 경우에만 데이터 스트림에 대한 연속 처리 태스크를 병렬 처리하고자 한다. 그래서 분산 데이터 스트림 처리 시스템에서는 연속 처리 태스크를 병렬 처리하기 전에 병렬 처리가 필요한지를 판단해야 하는데 이를 설명한다.
제어 노드(100)는 데이터 스트림에 대한 연속 처리 태스크의 병렬 처리의 필요 여부를 판단할 수 있다. 이러한 병렬 처리의 필요 여부는 일정한 데이터량 W에 대해 특정 태스크를 단일 노드에서 처리하는 비용과 다수의 노드에서 병렬 처리하는 비용을 비교하여 판단할 수 있다.
즉, 제어 노드(100)는 다음의 [수학식 1]을 만족하는 경우에 병렬 처리가 필요하다고 판단할 수 있다.
Figure pat00004
여기서, 좌측 항목은 단일 노드에서의 처리 비용 합으로 T1은 단일 노드의 데이터 전송 비용을 나타내고, 및 C1은 단일 노드의 데이터 처리 비용을 나타내는데, 이때 C1은 단일 노드에서의 처리로 인한 메모리 과부하 및 처리 지연 등으로 인해 소모되는 모든 비용을 포함할 수 있다. 그리고, 우측 항목은 다수 노드의 처리 비용 합으로 T2는 다수 노드들의 데이터 전송 비용을 나타내고, C2는 다수 노드들에서의 데이터 처리 비용을 나타내며, 및 M은 처리 결과를 통합하는 비용을 나타낼 수 있다.
제어 노드(100)는 앞의 [수학식 1]을 만족하는 경우 즉, 일정한 데이터량 W에 대해 특정 연속 처리 태스크를 단일 노드에서 처리하는 비용이 다수의 노드에서 병렬 처리하는 비용보다 높은 경우에 데이터 스트림에 대한 연속 처리 태스크의 병렬 처리가 필요하다고 판단할 수 있다.
이때, 병렬 처리의 지속 여부에 대한 판단을 내리기 위해 필요한 연산 비용이 클 수 있으므로 분산 데이터 스트림 처리 시스템의 스케쥴링 및 최적화를 담당하는 부분에서 주기적으로 판단하여 병렬 처리가 필요없을 때까지 수행하는 것이 바람직하다.
분산처리 노드(200)는 제어 노드(100)로부터 지시에 따라 데이터 스트림을 분할하고 연속 처리 태스크를 할당하여 처리하고 그 처리한 결과를 통합하여 전달할 수 있다. 특히, 제어 노드(100)의 지시에 따라 데이터 스트림 분할하거나 분할된 데이터 스트림을 처리하기 위한 연속 처리 태스크를 다수의 분산처리 노드에 할당하는 역할은 서로 다른 분산처리 노드(200)에서 처리 또는 수행할 수 있다.
도 3은 도 1에 도시된 분산처리 노드(200)의 상세한 구성을 나타내는 예시도이다.
도 3에 도시한 바와 같이, 본 발명에 따른 분산처리 노드(200)는 송수신부(210), 분할부(220), 처리부(230), 및 통합부(240) 등을 포함하여 구성될 수 있다.
송수신부(210)는 데이터 스트림을 수신 받거나 데이터 스트림에 대한 처리 결과를 송신할 수 있다.
분할부(220)는 데이터 스트림에 대한 연속 처리 태스크의 병렬 처리가 필요하다고 판단되면, 데이터 스트림을 분할할 수 있다. 여기서, 데이터 스트림은 데이터 스트림의 최소 단위인 레코드나 연속 처리 태스크 처리의 기본 단위인 윈도우를 기준으로 분할할 수 있다.
물론, 레코드를 기준으로 사용할 경우 해당 연속 처리 태스크가 레코드 단위의 처리가 가능해야 할 것이다.
이때, 연속 처리 태스크의 입력이 여러 개가 존재할 수 있을 뿐 아니라 데이터 스트림의 입력 소스도 여러 개가 존재할 수 있다. 따라서 분할부(220)는 데이터 스트림을 분할하되, 여러 가지 방법으로 분할하는데 이를 도 4를 참조하여 설명한다.
도 4는 본 발명의 실시예에 따른 데이터 스트림을 분할하는 원리를 설명하기 위한 예시도이다.
도 4에 도시한 바와 같이, 그림 (a)에서는 2개의 입력 소스로부터 입력되는 데이터 스트림을 통합한 후에 분할하는 방법을 보여주고 있는데, 이러한 방법은 데이터 스트림을 통합하기 위한 별도의 처리 또는 프로세스가 필요하나 한번만 데이터 스트림을 분할해주면 된다.
반면, 그림 (b)에서는 2개의 입력 소스로부터 입력되는 데이터 스트림을 각각 분할하는 방법을 보여주고 있는데, 이러한 방법은 입력 소스의 개수가 많을수록 전달을 위한 네트워크 채널 등이 많아지지만, 구현이 간단하다.
따라서 입력 소스의 개수가 작은 경우에는 그림 (a)와 같이 데이터 스트림을 통합한 후 분할하는 방법이 더 유리할 수 있다. 그러나 이러한 데이터 스트림을 분할하는 방법은 입력 소스와 네트워크 트래픽 등을 고려하여 설정하는 것이 바람직하다.
처리부(230)는 분할된 데이터 스트림을 처리하기 위한 연속 처리 태스크를 다수의 분산처리 노드에 할당하여 처리하는데, 데이터 스트림을 처리하기 위한 연속 처리 태스크를 다수의 분산처리 노드에 먼저 배치한 후에 분할된 데이터 스트림을 각 연속 처리 태스크에 전달하거나, 데이터 스트림을 특정 분산처리 노드에 저장한 후 해당 분산처리 노드에 해당 데이터 스트림을 처리할 연속 처리 태스크를 할당할 수 있다.
도 5는 본 발명의 실시예에 따른 연속 처리 태스크를 분산처리 노드에 할당하는 원리를 설명하기 위한 예시도이다.
도 5에 도시한 바와 같이, 그림 (a)에서는 다수의 분산처리 노드에 연속 처리 태스크를 미리 분산 배치한 후에 분할된 데이터 스트림을 각 분산처리 노드의 연속 처리 태스크에 할당하는 방법을 보여주고 있다.
반면, 그림 (b)에서는 데이터 스트림을 다수의 분산처리 노드에 분산 할당한 후에 각 분산처리 노드에 연속 처리 태스크를 배치하는 방법을 보여주고 있다. 이러한 방법은 연속 처리 태스크 배치 전에 분할된 데이터 스트림을 저장하고 연속 처리 태스크를 배치하여 처리해주는 부분에 대한 고려가 필요하나 그림 (a)의 방법에 비해 확장성이 뛰어나며 노드의 자원 활동도가 높다.
그러나 그림 (a)의 방법은 그림 (b)의 방법에 비해 구현이 간단하며 처리 속도가 빠르다.
따라서 이러한 분할된 데이터 스트림을 처리하기 위한 연속 처리 태스크를 다수의 분산처리 노드에 할당하는 방법은 자원 활용도, 및 처리 속도 등을 고려하여 설정하는 것이 바람직하다.
도 6은 본 발명의 실시예에 따른 데이터 스트림을 연속 처리 태스크에 전달하는 원리를 설명하기 위한 예시도이다.
도 6에 도시한 바와 같이, 그림 (a)에서는 데이터 스트림을 입력되는 순서대로 병렬 태스크에 전달하는 방법으로서, 예컨대, 첫번째 데이터 스트림 1부터 마지막 데이터 스트림 7까지가 3개의 병렬 태스크에 순서대로 할당되는 것을 보여주고 있다.
반면, 그림 (b)에서는 데이터 스트림의 입력되는 순서와 상관없이 병렬 태스크에 전달하는 방법으로서, 예컨대, 첫번째 데이터 스트림 1부터 마지막 데이터 스트림 7까지가 3개의 병렬 태스크에 입력되는 순서와 상관없이 할당되는 것을 보여주고 있다.
통합부(240)는 다수의 분산처리 노드로부터 연속 처리 태스크의 병렬처리 결과를 제공받아 통합한 후 연속 처리 태스크의 병렬처리 결과를 사용자에게 전달되거나 다음 태스크의 입력으로 전달할 수 있다.
도 7은 본 발명의 실시예에 따른 태스크의 병렬처리 결과를 전달하는 원리를 설명하기 위한 예시도이다.
도 7에 도시한 바와 같이, 그림 (a)에서는 다수의 분산처리 노드로부터 연속 처리 태스크의 병렬처리 결과를 제공받아 제공받은 연속 처리 태스크의 병렬처리 결과를 통합한 후 출력으로 전송하는 방법을 보여주고 있다.
이때, 연속 처리 태스크의 병렬처리 결과는 다수의 분산처리 노드로부터 병렬 태스크에서의 처리 결과를 제공받는 순서에 상관없이 입력의 순서대로 재구성이 필요한 경우 이를 처리해 줄 수 있어야 한다. 즉, 데이터 스트림을 분할하는 방법을 고려하여 필요에 따라 출력을 재구성해야 한다.
반면, 그림 (b)에서는 다수의 분산처리 노드로부터 태스크의 병렬처리 결과를 제공받아 제공받은 연속 처리 태스크의 병렬처리 결과를 그대로 출력하는 방법을 보여주고 있다. 이러한 방법은 연속 처리 태스크의 병렬처리 결과의 통합을 출력을 받는 부분에서 처리해 주어야 한다.
도 8은 본 발명의 실시예에 따른 태스크를 병렬 처리하기 위한 방법을 나타내는 예시도이다.
도 8에 도시한 바와 같이, 본 발명에 따른 제어 노드는 분산처리 노드에서 대용량으로 데이터 스트림을 입력받는 경우(S810), 입력되는 데이터 스트림에 대한 연속 처리 태스크의 병렬 처리에 대한 필요 여부를 판단할 수 있다(S820). 즉, 제어 노드는 일정한 데이터 스트림의 양에 대해 특정 태스크를 단일 노드에서 처리하는 비용과 다수의 노드에서 병렬 처리하는 비용을 비교하고 그 비교한 결과에 따라 연속 처리 태스크의 병렬 처리 여부를 판단할 수 있다.
다음으로, 제어 노드는 그 판단한 결과로 입력되는 데이터 스트림에 대한 연속 처리 태스크의 병렬 처리가 필요하다고 판단되면, 상기 데이터 스트림을 분할하여 병렬 처리하라고 지시할 수 있다. 반면, 제어 노드는 그 판단한 결과로 입력되는 데이터 스트림에 대한 연속 처리 태스크의 병렬 처리가 필요 없다고 판단되면 기존에 처리하던 데로 처리하라고 지시할 수 있다.
이때, 분산처리 노드는 제어 노드의 지시에 따라 데이터 스트림을 분할한다(S830). 다수의 입력 소스로부터 입력되는 데이터 스트림을 통합한 후에 분할하거나 다수의 입력 소스로부터 입력되는 상기 데이터 스트림을 각각 분할할 수 있다.
다음으로, 분산처리 노드는 그 분할된 상기 데이터 스트림을 처리하기 위한 병렬 태스크를 다수의 분산처리 노드에 할당할 수 있다(S840).
이때, 분산처리 노드는 다수의 분산처리 노드에 병렬 태스크를 미리 분산 배치한 후에 분할된 데이터 스트림을 각 분산처리 노드의 태스크에 전달하거나, 분할된 데이터 스트림을 다수의 분산처리 노드에 분산 저장한 후에 각 분산처리 노드에 태스크를 배치하여 처리 할 수 있다.
또한, 분산처리 노드는 분할된 데이터 스트림을 입력되는 순서대로 연속 처리 태스크에 할당하거나, 분할된 데이터 스트림을 입력되는 순서와 상관없이 태스크에 할당할 수 있다.
다음으로, 분산처리 노드는 다수의 분산처리 노드로부터 태스크의 병렬처리 결과를 제공받아 제공받은 태스크의 병렬처리 결과를 출력할 수 있다(S850). 즉, 분산처리 노드는 연속 처리 태스크의 병렬처리 결과를 사용자에게 전달하거나 다음 연속 처리 태스크의 입력으로 전달할 수 있다.
이와 같이, 본 발명은 데이터 스트림을 처리하기 위한 연속 처리 태스크의 병렬 처리에 대한 필요 여부를 판단한 후에 그 판단한 결과에 따라 데이터 스트림을 분할하고 그 분할된 데이터 스트림을 처리하기 위한 연속 처리 태스크를 다수의 노드에 할당함으로써, 대용량 데이터 및 질의의 과부하로 인하여 특정 연산에 집중되는 부하를 분산시킬 수 있다.
뿐만 아니라, 본 발명은 데이터 스트림을 처리하기 위한 연속 처리 태스크를 다수의 노드에 할당하여 대용량 데이터 및 질의의 과부하로 인하여 특정 노드에 집중되는 부하를 분산시키기 때문에, 이러한 부하의 감소로 인하여 데이터 스트림의 실시간 처리를 보장하고 로드 쉐딩으로 인한 데이터 스트림의 손실을 줄일 수 있다는 이점이 있다.
본 발명에 의한 분산 데이터 스트림 처리 시스템에서 연속 처리 태스크를 병렬 처리하기 위한 장치 및 그 방법이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 제어 노드
200: 분산처리 노드
210: 송수신부
220: 분할부
230: 처리부
240: 통합부

Claims (18)

  1. 입력되는 데이터 스트림에 대한 연속 처리 태스크의 병렬 처리에 대한 필요 여부를 판단하고 병렬 처리가 필요한 경우 데이터 스트림 분할 및 상기 데이터 스트림을 처리하기 위한 연속 처리 태스크를 다수의 분산처리 노드에 할당하여 처리할 것을 지시하는 제어 노드; 및
    상기 제어 노드의 지시에 따라 입력되는 상기 데이터 스트림을 분할하고 그 분할된 상기 데이터 스트림과 이를 처리하기 위한 연속 처리 태스크를 각각 할당하여 처리하고 그 처리한 결과를 통합하는 다수의 분산처리 노드
    를 포함하는 것을 특징으로 하는 분산 데이터 스트림 처리 시스템.
  2. 제1 항에 있어서,
    상기 제어 노드는,
    일정한 데이터 스트림의 양에 대해 특정 연속 처리 태스크를 단일 노드에서 처리하는 비용과 다수의 노드에서 병렬 처리하는 비용을 비교하고 그 비교한 결과에 따라 태스크의 병렬 처리 여부를 판단하는 것을 특징으로 하는 분산 데이터 스트림 처리 시스템.
  3. 제1 항에 있어서,
    상기 제어 노드는,
    다음의 수학식
    Figure pat00005
    을 만족하는 경우에 연속 처리 태스크의 병렬 처리가 필요하다고 판단하되, 여기서, W는 입력되는 데이터 스트림의 양을 나타내고, T1은 단일 노드의 데이터 전송 비용을 나타내며, C1은 단일 노드의 데이터 처리 비용을 나타내며, T2는 다수 노드들의 데이터 전송 비용을 나타내고, C2는 다수 노드들에서의 데이터 처리 비용을 나타내며, 및 M은 처리 결과를 통합하는 비용을 나타내는 것을 특징으로 하는 분산 데이터 스트림 처리 시스템.
  4. 데이터 스트림을 입력 받거나 상기 데이터 스트림에 대한 처리 결과를 송신하는 송수신부;
    입력받는 상기 데이터 스트림에 대한 연속 처리 태스크의 병렬 처리 여부에 따라 상기 데이터 스트림을 분할하는 분할부; 및
    그 분할된 상기 데이터 스트림과 이를 처리하기 위한 연속 처리 태스크의 병렬 태스크를 다수의 분산처리 노드에 할당하여 처리하는 처리부
    를 포함하는 것을 특징으로 하는 연속 처리 태스크를 병렬 처리하기 위한 장치.
  5. 제4 항에 있어서,
    상기 연속 처리 태스크의 병렬 처리 여부는,
    일정한 데이터 스트림의 양에 대해 특정 연속 처리 태스크를 단일 노드에서 처리하는 비용과 다수의 노드에서 병렬 처리하는 비용을 비교하고 그 비교한 결과에 따라 판단하는 것을 특징으로 하는 연속 처리 태스크를 병렬 처리하기 위한 장치.
  6. 제4 항에 있어서,
    상기 연속 처리 태스크의 병렬 처리 여부는,
    다음의 수학식
    Figure pat00006
    을 만족하는 경우에 필요하다고 판단하되, 여기서, W는 입력되는 데이터 스트림의 양을 나타내고, T1은 단일 노드의 데이터 전송 비용을 나타내며, C1은 단일 노드의 데이터 처리 비용을 나타내며, T2는 다수 노드들의 데이터 전송 비용을 나타내고, C2는 다수 노드들에서의 데이터 처리 비용을 나타내며, 및 M은 처리 결과를 통합하는 비용을 나타내는 것을 특징으로 하는 연속 처리 태스크를 병렬 처리하기 위한 장치.
  7. 제4 항에 있어서,
    상기 분할부는,
    상기 데이터 스트림을 데이터 스트림의 최소 단위인 레코드나 연속 처리 태스크 처리의 기본 단위인 윈도우를 기준으로 분할하는 것을 특징으로 하는 연속 처리 태스크를 병렬 처리하기 위한 장치.
  8. 제4 항에 있어서,
    상기 분할부는,
    다수의 입력 소스로부터 입력되는 데이터 스트림을 통합한 후에 분할하거나, 입력되는 상기 데이터 스트림을 각각 분할하는 것을 특징으로 하는 연속 처리 태스크를 병렬 처리하기 위한 장치.
  9. 제4 항에 있어서,
    상기 처리부는,
    상기 다수의 분산처리 노드에 연속 처리 태스크의 병렬 태스크를 미리 분산 배치한 후에 분할된 상기 데이터 스트림을 각 분산처리 노드의 병렬 태스크에 전달하여 처리하거나,
    분할된 상기 데이터 스트림을 다수의 분산처리 노드에 분산 저장한 후에 각 분산처리 노드에 연속 처리 태스크의 병렬 태스크를 배치하여 처리하는 것을 특징으로 하는 연속 처리 태스크를 병렬 처리하기 위한 장치.
  10. 제9 항에 있어서,
    상기 처리부는,
    상기 데이터 스트림을 입력되는 순서대로 연속 처리 태스크에 할당하거나, 입력되는 순서와 상관없이 연속 처리 태스크에 할당하는 것을 특징으로 하는 연속 처리 태스크를 병렬 처리하기 위한 장치.
  11. 제4 항에 있어서,
    상기 다수의 분산처리 노드로부터 연속 처리 태스크의 병렬처리 결과를 제공받아 제공받은 상기 연속 처리 태스크의 병렬처리 결과를 사용자에게 전달하거나 다음 연속 처리 태스크의 입력으로 전달하는 통합부
    를 더 포함하는 것을 특징으로 하는 연속 처리 태스크를 병렬 처리하기 위한 장치.
  12. (a) 입력되는 데이터 스트림에 대한 연속 처리 태스크의 병렬 처리에 대한 필요 여부를 판단하는 단계;
    (b) 그 판단한 결과에 따라 상기 데이터 스트림을 분할하는 단계; 및
    (c) 그 분할된 상기 데이터 스트림과 이를 처리하기 위한 연속 처리 태스크의 병렬 태스크를 다수의 분산처리 노드에 각각 할당하여 처리하는 단계
    를 포함하는 것을 특징으로 하는 연속 처리 태스크를 병렬 처리하기 위한 방법.
  13. 제12 항에 있어서,
    상기 (a) 단계는,
    일정한 데이터 스트림의 양에 대해 특정 연속 처리 태스크를 단일 노드에서 처리하는 비용과 다수의 노드에서 병렬 처리하는 비용을 비교하고 그 비교한 결과에 따라 연속 처리 태스크의 병렬 처리 여부를 판단하는 것을 특징으로 하는 연속 처리 태스크를 병렬 처리하기 위한 방법.
  14. 제12 항에 있어서,
    상기 (a) 단계는,
    다음의 수학식
    Figure pat00007
    을 만족하는 경우에 연속 처리 태스크의 병렬 처리가 필요하다고 판단하되, 여기서, W는 입력되는 데이터 스트림의 양을 나타내고, T1은 단일 노드의 데이터 전송 비용을 나타내며, C1은 단일 노드의 데이터 처리 비용을 나타내며, T2는 다수 노드들의 데이터 전송 비용을 나타내고, C2는 다수 노드들에서의 데이터 처리 비용을 나타내며, 및 M은 처리 결과를 통합하는 비용을 나타내는 것을 특징으로 하는 연속 처리 태스크를 병렬 처리하기 위한 방법.
  15. 제12 항에 있어서,
    상기 (b) 단계는,
    상기 데이터 스트림을 데이터 스트림의 최소 단위인 레코드나 태스크 처리의 기본 단위인 윈도우를 기준으로 분할하는 것을 특징으로 하는 연속 처리 태스크를 병렬 처리하기 위한 방법.
  16. 제12 항에 있어서,
    상기 (b) 단계는,
    다수의 입력 소스로부터 입력되는 데이터 스트림을 통합한 후에 분할하거나, 입력되는 상기 데이터 스트림을 각각 분할하는 것을 특징으로 하는 연속 처리 태스크를 병렬 처리하기 위한 방법.
  17. 제12 항에 있어서,
    상기 (c) 단계는,
    상기 다수의 분산처리 노드에 연속 처리 태스크의 병렬 태스크를 미리 분산 배치한 후에 분할된 상기 데이터 스트림을 각 분산처리 노드의 병렬 태스크에 전달하여 처리하거나,
    분할된 상기 데이터 스트림을 다수의 분산처리 노드에 분산 할당한 후에 각 분산처리 노드에 연속 처리 태스크의 병렬 태스크를 배치하는 것을 특징으로 하는 연속 처리 태스크를 병렬 처리하기 위한 방법.
  18. 제17 항에 있어서,
    상기 (c) 단계는,
    상기 데이터 스트림을 입력되는 순서대로 병렬 태스크에 전달하거나, 입력되는 순서와 상관없이 병렬 태스크에 전달하는 것을 특징으로 하는 연속 처리 태스크를 병렬 처리하기 위한 방법.

KR1020100134090A 2010-12-23 2010-12-23 분산 데이터 스트림 처리 시스템에서 연속 처리 태스크를 병렬 처리하기 위한 장치 및 그 방법 KR20120072252A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100134090A KR20120072252A (ko) 2010-12-23 2010-12-23 분산 데이터 스트림 처리 시스템에서 연속 처리 태스크를 병렬 처리하기 위한 장치 및 그 방법
US13/329,610 US20120167103A1 (en) 2010-12-23 2011-12-19 Apparatus for parallel processing continuous processing task in distributed data stream processing system and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100134090A KR20120072252A (ko) 2010-12-23 2010-12-23 분산 데이터 스트림 처리 시스템에서 연속 처리 태스크를 병렬 처리하기 위한 장치 및 그 방법

Publications (1)

Publication Number Publication Date
KR20120072252A true KR20120072252A (ko) 2012-07-03

Family

ID=46318657

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100134090A KR20120072252A (ko) 2010-12-23 2010-12-23 분산 데이터 스트림 처리 시스템에서 연속 처리 태스크를 병렬 처리하기 위한 장치 및 그 방법

Country Status (2)

Country Link
US (1) US20120167103A1 (ko)
KR (1) KR20120072252A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170127881A (ko) * 2016-05-13 2017-11-22 한국전자통신연구원 고속 분산 저장 장치 및 방법

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9100904B2 (en) * 2012-09-13 2015-08-04 First Principles, Inc. Data stream division to increase data transmission rates
JP6183374B2 (ja) * 2012-10-31 2017-08-23 日本電気株式会社 データ処理システム、データ処理方法およびプログラム
US20150067273A1 (en) * 2013-08-30 2015-03-05 Microsoft Corporation Computation hardware with high-bandwidth memory interface
KR20150092586A (ko) * 2014-02-05 2015-08-13 한국전자통신연구원 데이터 플로 기반 대규모 데이터 스트림 처리 방법 및 장치
CN105335376B (zh) 2014-06-23 2018-12-07 华为技术有限公司 一种流处理方法、装置及系统
WO2019140567A1 (zh) * 2018-01-17 2019-07-25 新联智慧信息技术(深圳)有限公司 大数据的分析方法及系统
US10826801B1 (en) 2019-07-31 2020-11-03 Bank Of America Corporation Multi-level data channel and inspection architectures
US11115310B2 (en) 2019-08-06 2021-09-07 Bank Of America Corporation Multi-level data channel and inspection architectures having data pipes in parallel connections
US11470046B2 (en) 2019-08-26 2022-10-11 Bank Of America Corporation Multi-level data channel and inspection architecture including security-level-based filters for diverting network traffic

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004054680A (ja) * 2002-07-22 2004-02-19 Fujitsu Ltd 並列効率計算方法
US7617503B2 (en) * 2004-09-15 2009-11-10 Verigy (Singapore) Pte. Ltd. Method and apparatus for determining which of two computer processes should perform a function X
US7788635B2 (en) * 2005-07-15 2010-08-31 Sony Computer Entertainment Inc. Technique for processing a computer program
US7831972B2 (en) * 2005-11-03 2010-11-09 International Business Machines Corporation Method and apparatus for scheduling jobs on a network
CN101242337B (zh) * 2007-02-08 2010-11-10 张永敏 一种计算机网络的内容发布方法及系统
US8365172B2 (en) * 2008-05-07 2013-01-29 International Business Machines Corporation Horizontal scaling of stream processing
JP5149840B2 (ja) * 2009-03-03 2013-02-20 株式会社日立製作所 ストリームデータ処理方法、ストリームデータ処理プログラム、および、ストリームデータ処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170127881A (ko) * 2016-05-13 2017-11-22 한국전자통신연구원 고속 분산 저장 장치 및 방법

Also Published As

Publication number Publication date
US20120167103A1 (en) 2012-06-28

Similar Documents

Publication Publication Date Title
KR20120072252A (ko) 분산 데이터 스트림 처리 시스템에서 연속 처리 태스크를 병렬 처리하기 위한 장치 및 그 방법
US10567213B1 (en) Systems and methods for selecting specific code segments in conjunction with executing requested tasks
CN102388381B (zh) 用于分配共享存储资源的系统和方法
KR102181640B1 (ko) 재구성가능한 분산 처리
CN108363615A (zh) 用于可重构处理系统的任务分配方法和系统
CN101211277A (zh) 选择子os的一个执行计划的方法与使用该方法的虚拟机监视器
Wang et al. A throughput optimal algorithm for map task scheduling in mapreduce with data locality
EP3274859B1 (en) Cluster computing service assurance apparatus and method
CN103777950A (zh) 一种对aos遥测数据解析的网格化方法
Luo et al. Online makespan minimization in MapReduce-like systems with complex reduce tasks
CN105786447A (zh) 服务器处理数据的方法、装置及服务器
KR101656706B1 (ko) 고성능 컴퓨팅 환경에서의 작업 분배 시스템 및 방법
KR102032895B1 (ko) 기능 유닛들 간의 기능 로직 공유 장치, 방법 및 재구성 가능 프로세서
WO2017045640A1 (zh) 一种数据中心内关联流的带宽调度方法及装置
Park et al. Efficient strong scaling through burst parallel training
CN113366464A (zh) 用于在数据库中嵌入流处理执行的系统
Anta et al. Scheduling dynamic parallel workload of mobile devices with access guarantees
JP2008128785A (ja) 並列信号処理装置
CN104506452A (zh) 一种报文处理方法及装置
Fan et al. Shuffle scheduling for MapReduce jobs based on periodic network status
Bolodurina et al. The optimization of traffic management for cloud application and services in the virtual data center
Timmermans et al. Scheduling with state-dependent machine speed
KR101577265B1 (ko) 자원 관리 장치 및 그 동작 방법
Ludwig et al. Scheduling of datacompression on distributed systems with time-and event-triggered messages
JP5937042B2 (ja) Tdmネットワークシステム及びそのスケジューリング方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid