KR20120067133A - 서비스 제공 방법 및 장치 - Google Patents

서비스 제공 방법 및 장치 Download PDF

Info

Publication number
KR20120067133A
KR20120067133A KR1020100128579A KR20100128579A KR20120067133A KR 20120067133 A KR20120067133 A KR 20120067133A KR 1020100128579 A KR1020100128579 A KR 1020100128579A KR 20100128579 A KR20100128579 A KR 20100128579A KR 20120067133 A KR20120067133 A KR 20120067133A
Authority
KR
South Korea
Prior art keywords
task
data
service
tasks
plurality
Prior art date
Application number
KR1020100128579A
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 KR1020100128579A priority Critical patent/KR20120067133A/ko
Publication of KR20120067133A publication Critical patent/KR20120067133A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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

Abstract

본 발명에 따른 서비스 제공 방법 및 장치는, 적어도 하나의 서비스를 구성하고 복수의 노드들에 동적으로 분산 배치되는 복수의 태스크들의 실행 상태 정보를 수집하는 단계; 및 상기 수집된 복수의 태스크들의 실행 상태 정보에 기초하여 스케쥴링을 수행하는 단계를 포함하고, 상기 복수의 태스크들 각각은 적어도 하나의 입력 소스 및 출력 소스를 가지고, 입력 소스 별로 처리 대상이 되는 데이터의 단위 및 데이터 연산이 사용자에 의해 정의되어 있고, 상기 스케쥴링은 상기 정의된 데이터의 단위를 참조하여 적어도 하나의 태스크에 입력된 데이터의 적어도 일부를 삭제하거나 또는 적어도 하나의 복제 태스크에서 처리되도록 하는 것을 특징으로 한다. 본 발명은 특히 대규모 스트림 데이터의 준실시간 분석 및 가공 서비스를 효과적으로 제공할 수 있게 한다.

Description

서비스 제공 방법 및 장치{service providing method and device using the same}

본 발명은 서비스 제공 방법 및 장치에 관한 것으로서, 더욱 상세하게는 다양한 응용 환경을 고려한 대규모 스트림 데이터의 준실시간 분석 및 가공 서비스를 효과적으로 제공할 수 있는 서비스 제공 방법 및 장치에 관한 것이다.

유비쿼터스 컴퓨팅 환경의 도래 및 사용자 중심의 인터넷 서비스 시장의 급속한 발전으로 처리해야 할 데이터의 양이 빠르게 증가하고 있으며, 데이터의 종류 또한 더욱 다양해지고 있다. 이에 따라 대용량 데이터에 대한 준실시간 데이터 분석 및 가공 서비스를 제공하기 위하여 다양한 분산 데이터 처리 연구가 진행되고 있다.

이러한 다양한 분산 데이터 처리 연구 중의 하나로서, 도 1은 종래 기술에 따른 대용량 데이터의 처리를 위한 분산 병렬 처리 구조의 일 실시예를 보여주는 개략도이다.

도 1을 참조하면, 서비스(110)는 하나의 입력 소스(INPUT SOURCE1, 100)와 하나의 출력 소스(OUTPUT SOURCE1, 130)을 가지며, 입력 소스로부터의 데이터를 처리하는 주체인 다수의 노드들(NODE1~NODE5, 111-115)에 의해 실행된다.

서비스의 정의는 제공되는 연산자들을 조합하여 데이터 플로 그래프를 정의함으로써 가능한데, 여기서, 상기 데이터 플로 그래프는 상기 다수의 노드들(NODE1~NODE5, 111-115) 각각에 존재하는 다수의 데이터 처리 연산(OP1~OP5, 116~120) 정의와 이러한 다수의 데이터 처리 연산(OP1~OP5, 116~120) 사이의 데이터 흐름을 기술하는 DAG(Directed Acyclic Graph)으로 표현될 수 있다.

이와 같이, 이러한 서비스(110)는 클러스터 내의 상기 다수의 노드들(NODE1~NODE5, 111-115)에 분산 배치되어 병렬로 실행됨으로써, 특히 대용량 데이터에 대하여 상대적으로 빠른 서비스 지원을 가능하게 해준다.

상기 기술한 분산 병렬 처리 구조를 기초로 한 종래의 대용량 데이터 처리를 위한 분산 병렬 처리 시스템을 살펴보면 다음과 같다.

먼저, 잘 알려진 보레알리스(Borealis) 시스템은 스트림 데이터를 분산 병렬 처리하는 데 적합한 시스템으로서, 스트림 데이터 처리를 위한 다양한 연산자들, 예를 들어, Union, filter, Tumble, Join 등을 제공하고 있다. 보레알리스 시스템은 서비스를 구성하는 연산자들을 분산 노드들에 배치하여 병렬 수행시킴으로써, 대용량 스트림 데이터에 대한 분산 병렬 처리를 수행한다. 그러나, 정형화된 데이터의 처리만이 가능하고, 사용자의 서비스 정의가 제공되는 연산자의 조합을 통해서만 가능하기 때문에 복잡한 서비스 기술에는 한계가 있고, 서비스 특성에 따른 데이터 처리 연산의 사용자의 최적화 기술을 접목하기 어렵다는 데 문제가 있다.

한편, 맵리듀스(MapReduce) 시스템은 구글(Google)사에서 저비용 대규모 노드들로 구성된 클러스터 상에 저장된 대용량 데이터에 대한 분산 병렬 연산을 지원하기 위하여 제안한 분산 병렬 처리 시스템이다. 맵리듀스 시스템은 사용자가 Map 과 Reduce 연산을 정의할 수 있도록 지원하고, Map과 Reduce 연산을 다중 노드에 다중 태스크로 복제하여 대용량 데이터를 분산 병렬 처리되도록 한다.

드라이아드(Dryad) 시스템은 맵리듀스 시스템보다 확장된 데이터 플로 그래프 기반의 분산 병렬 처리 시스템이다. 드라이아드 시스템에서 사용자는 데이터 처리 연산을 버텍스(vertex)로 기술하고, 버텍스들 사이의 데이터 전달은 채널(channel)로 표현함으로써 서비스를 구성할 수 있다. 대체로, 버텍스는 노드에 대응하고, 채널은 엣지(edge) 또는 라인(line)에 대응한다고 볼 수 있다. 드라이아드 시스템은 사용자가 등록/정의한 서비스를 빠르게 실행하기 위하여 클러스터 내의 노드들의 부하 정보를 기초로 하여 동적으로 버텍스들을 분산 배치하여 대용량 데이터가 병렬로 처리되도록 한다.

한편, 하둡 온라인(Hadoop Online) 시스템은 드라이아드 시스템의 대용량 데이터에 대한 Map과 Reduce 연산이 모두 끝나야만 처리 결과를 얻을 수 있는 단점을 개선하여, 처리 중간에도 사용자가 처리 결과 데이터를 얻을 수 있도록 개선하였다.

그러나 맵리듀스, 드라이아드, 하둡 온라인 시스템 모두 스트림 데이터가 아닌 클러스터 내의 파일에 저장되어 있는 저장 데이터만을 처리 대상으로 하고, 고정된 Map과 Reduce 연산만을 제공하고, 응용에서 처리 결과를 획득할 수 있는 다양한 방법을 지원하지 않는다는 문제점이 있다.

그러므로, 종래의 기술로는 다양한 응용 환경을 고려한 대규모 스트림 데이터의 준실시간 분석 및 가공 서비스를 효과적으로 제공할 수 없다.

본 발명은 상기한 바와 같은 일반적인 기술의 문제점을 해결하기 위하여 안출된 것으로서, 다양한 응용 환경을 고려한 대규모 스트림 데이터의 준실시간 분석 및 가공 서비스를 효과적으로 제공할 수 있는 서비스 제공 방법 및 장치를 제공하는 데에 그 목적이 있다.

본 발명의 다른 목적은 사용자가 정의한 데이터 처리 연산들을 동적으로 다수의 노드들에 분산 배치하여 병렬적으로 데이터 처리를 연속적으로 수행시킬 수 있는 서비스 제공 방법 및 장치를 제공하는 데에 그 목적이 있다.

상기의 기술적 과제를 해결하기 위한 본 발명의 일 양태로서, 서비스 제공 방법은, 적어도 하나의 서비스를 구성하고 복수의 노드들에 동적으로 분산 배치되는 복수의 태스크들의 실행 상태 정보를 수집하는 단계; 및 상기 수집된 복수의 태스크들의 실행 상태 정보에 기초하여 스케쥴링을 수행하는 단계를 포함하고, 상기 복수의 태스크들 각각은 적어도 하나의 입력 소스 및 출력 소스를 가지고, 입력 소스 별로 처리 대상이 되는 데이터의 단위 및 데이터 처리 연산이 사용자에 의해 정의되어 있고, 상기 스케쥴링은 상기 정의된 데이터의 단위를 참조하여 적어도 하나의 태스크에 입력된 데이터의 적어도 일부를 삭제하거나 또는 적어도 하나의 복제 태스크에서 처리되도록 하는 것을 특징으로 한다.

여기서, 상기 스케쥴링은, 상기 복수의 태스크들 각각에 정의된 데이터 분할 개수, 데이터 분할 방법과 같은 데이터 분할 관련 정보에 기초하여 수행되거나, 또는 상기 복수의 태스크들 각각에 정의된 삭제 데이터의 양, 삭제 데이터 선별 기준과 같은 데이터 삭제 관련 정보에 기초하여 수행된다.

나아가, 상기 스케쥴링 단계는, 상기 수집된 복수의 태스크들의 실행 상태 정보에 기초하여 서비스 품질을 만족시키지 못하는 서비스가 존재하는지 여부를 판단하는 단계, 만약 존재한다면 그 원인이 되는 태스크를 선별하는 단계, 및 상기 선별된 태스크에 대하여 스케쥴링을 수행하는 단계를 더 포함할 수 있다.

이 때, 상기 선별된 태스크에 대한 스케쥴링은, 상기 복수의 태스크들의 자원 사용 상태 정보에 따라 입력된 데이터의 적어도 일부가 삭제되거나, 상기 선별된 태스크의 적어도 하나의 복제태스크에서 처리될 수 있다.

상기의 기술적 과제를 해결하기 위한 본 발명의 다른 일 양태로서, 서비스 제공 장치는, 적어도 하나의 서비스를 구성하고 복수의 노드들에 동적으로 분산 배치되는 복수의 태스크들의 실행 상태 정보를 수집하는 서비스 실행기 관리 모듈; 및 상기 수집된 복수의 태스크들의 실행 상태 정보에 기초하여 스케쥴링을 수행하는 스케쥴링 및 배치 모듈을 포함하고, 상기 복수의 태스크들 각각은 적어도 하나의 입력 소스 및 출력 소스를 가지고, 입력 소스 별로 처리 대상이 되는 데이터의 단위 및 데이터 처리 연산이 사용자에 의해 정의되어 있고, 상기 스케쥴링은 상기 정의된 데이터의 단위를 참조하여 적어도 하나의 태스크에 입력된 데이터의 적어도 일부를 삭제하거나 또는 적어도 하나의 복제 태스크에서 처리되도록 하는 것을 특징으로 한다.

여기서, 상기 스케쥴링은, 상기 복수의 태스크들 각각에 정의된 데이터 분할 개수, 데이터 분할 방법과 같은 데이터 분할 관련 정보에 기초하여 수행되거나, 또는 상기 복수의 태스크들 각각에 정의된 삭제 데이터의 양, 삭제 데이터 선별 기준과 같은 데이터 삭제 관련 정보에 기초하여 수행될 수 있다.

나아가, 상기 스케쥴링 및 배치 모듈은, 상기 수집된 복수의 태스크들의 실행 상태 정보에 기초하여 서비스 품질을 만족시키지 못하는 서비스가 존재하는지 여부를 판단하고, 만약 존재한다면 그 원인이 되는 태스크를 선별하여, 상기 선별된 태스크에 대하여 스케쥴링을 수행할 수 있다.

이 때, 상기 선별된 태스크에 대한 스케쥴링은, 상기 복수의 태스크들의 자원 사용 상태 정보에 따라 입력된 데이터의 적어도 일부가 삭제되거나, 상기 선별된 태스크의 적어도 하나의 복제 태스크에서 처리될 수 있다.

한편, 상기 서비스 제공 장치는, 데이터 분산 처리 전반을 제어하는 서비스 관리 모듈; 및 태스크 오류 시에 태스크를 복구하여 재수행하는 태스크 복구 모듈을 더 포함할 수 있다.

이에 더하여, 상기 복수의 노드들 각각은 하나의 태스크 실행기를 포함하고, 상기 태스크 실행기는, 상기 복수의 노드들 각각에 위치하는 적어도 하나의 태스크들에 대한 실행 상태 정보 및 자원 사용 상태 정보를 수집하여 상기 데이터 분산 처리 장치로 전달하고, 상기 서비스 제공 장치의 스케쥴링 수행에 따라 상기 적어도 하나의 태스크들의 실행을 제어할 수 있다.

또한, 상기 태스크 실행기는, 상기 서비스 제공 장치의 스케쥴링 수행과는 별도로 스케쥴링을 수행하여 그 실행을 제어할 수 있다.

여기서, 상기 태스크 실행기에서의 스케쥴링은, 각 태스크 별로 설정된 서비스 품질을 만족시키기 위해 태스크 실행 순서를 변경할 수 있다. .

상기의 기술적 과제를 해결하기 위한 본 발명의 또 다른 일 양태로서, 서비스 제공 방법은, 사용자가 정의한 서비스에 대한 실행 요청을 전송하는 단계; 및 상기 실행 요청에 따라 실행된 서비스를 제공받는 단계를 포함하고, 상기 서비스의 실행은, 상기 서비스를 구성하고 복수의 노드들에 동적으로 분산 배치되는 복수의 태스크들의 실행 상태 정보를 수집하는 단계; 및 상기 수집된 복수의 태스크들의 실행 상태 정보에 기초하여 스케쥴링을 수행하는 단계를 포함하고, 상기 복수의 태스크들 각각은 적어도 하나의 입력 소스 및 출력 소스를 가지고, 입력 소스 별로 처리 대상이 되는 데이터의 단위 및 데이터 처리 연산이 정의되어 있고, 상기 스케쥴링은 상기 정의된 데이터의 단위를 참조하여 적어도 하나의 태스크에 입력된 데이터의 적어도 일부를 삭제하거나 또는 적어도 하나의 복제 태스크에서 처리되도록 하는 것을 특징으로 한다.

본 발명은 다음과 같은 효과가 있다.

첫째, 본 발명의 구성에 따르면, 다양한 응용 환경 및 그로부터 발생하는 다양한 형식을 가지는 대용량의 스트림 데이터 및 저장 데이터에 대한 분산 연속 처리 서비스를 지원할 수 있게 된다.

둘째, 네트워크 환경의 변화 혹은 입력 데이터의 폭증으로 인하여 처리 성능이 감소되는 것을 최소화할 수 있다.

셋째, 다양한 응용 환경 하의 사용자는 비정형 스트림 데이터에 대한 처리는 물론 자신이 지정한 서비스 품질을 보장하는 서비스를 제공받을 수 있게 된다.

도 1은 종래 기술에 따른 대용량 데이터의 처리를 위한 분산 병렬 처리 구조의 일 실시예를 보여주는 개략도이다.
도 2는 본 발명에 따른 대용량 데이터의 처리를 위한 분산 병렬 처리 구조의 일 실시예를 보여주는 개략도이다.
도 3은 본 발명에 따른 대용량 데이터의 처리를 위한 분산 병렬 처리 구조의 다른 실시예를 보여주는 개략도이다.
도 4a 내지 도 4c 각각은 본 발명의 일 실시예에 따른 도 3의 서비스 관리자, 태스크 실행기 및 태스크의 기능 블록도이다.
도 5는 본 발명의 일 실시예에 따라 사용자 정의 서비스가 등록되고 실행되는 과정을 보여주는 대략적인 흐름도이다.
도 6은 본 발명의 일시예에 따라 태스크에서 수행되는 실행 과정을 보여주는 흐름도이다.
도 7은 본 발명의 일시예에 따라 서비스 관리자에서 수행되는 전역 스케쥴링의 과정을 보여주는 흐름도이다.

이하의 실시예들은 본 발명의 구성요소들과 특징들을 소정 형태로 결합한 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려될 수 있다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및/또는 특징들을 결합하여 본 발명의 실시예를 구성할 수도 있다. 본 발명의 실시예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는 다른 실시예의 대응하는 구성 또는 특징과 교체될 수 있다.

본 발명의 실시예들은 다양한 수단을 통해 구현될 수 있다. 예를 들어, 본 발명의 실시예들은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다.

하드웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 하나 또는 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.

펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드는 메모리 유닛에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리 유닛은 상기 프로세서 내부 또는 외부에 위치하여, 이미 공지된 다양한 수단에 의해 상기 프로세서와 데이터를 주고 받을 수 있다.

이하의 설명에서 사용되는 특정(特定) 용어들은 본 발명의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 본 발명의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다.

이하, 첨부된 도면들을 참조하여, 본 발명에 따른 실시예들에 대하여 상세하게 설명하기로 한다.

도 2는 본 발명에 따른 대용량 데이터의 처리를 위한 분산 병렬 처리 구조의 일 실시예를 보여주는 개략도이다.

도 2를 참조하면, 본 발명에 따른 데이터 처리 시스템(210)은 클러스터 내의 다수의 노드들(NODE1~NODE7, 211-217)로 구성되고, 데이터 처리 연산이 사용자에 의해 정의된 태스크들(TASK1~TASK6, 221-224, 및 231-232)의 조합으로 구성된 서비스들(220, 230)을 실행하기 위해 대용량의 스트림 데이터 및/또는 저장 데이터를 분산 병렬 처리하는 시스템이다.

상기에서 언급한 바와 유사하게, 서비스(220, 230)의 정의는데이터 플로 그래프를 정의함으로써 가능한데, 여기서 상기 데이터 플로 그래프는 상기 다수의 노드들(NODE1~NODE7, 211~217) 각각에 존재하는 다수의 데이터 처리 연산에 대응하는 다수의 태스크(TASK1~TASK6, 221~224, 231, 232) 정의와 이러한 다수의 태스크들 사이의 데이터 흐름을 기술하는 DAG(Directed Acyclic Graph)으로 표현될 수 있다.

상기 데이터 처리 시스템(210)의 적어도 하나의 서비스 입력 소스(INPUT SOURCE1, INPUT SOURCE2, 200, 201) 및/또는 적어도 하나의 서비스 출력 소스(OUTPUT SOURCE1, OUTPUT SOURCE2, 240, 241)로는, 파일 또는 네트워크 소스는 물론, 사용자 정의 입출력 소스일 수 있고, 상기 적어도 하나의 서비스 입력 소스(200,201) 및/또는 상기 적어도 하나의 서비스 출력 소스(240,241)로 입출력되는 데이터의 형식은 구분자 기반의 레코드, 키-값 레코드, 행(CR) 기반의 텍스트, 파일, 및/또는 사용자 정의 입출력 형식일 수 있다.

상기 다수의 태스크들(221~224, 231, 232) 각각은 적어도 하나의 입력 및 출력 소스를 가질 수 있다. 여기서, 보통 태스크들의 입력 소스는 선행 태스크이고 출력 소스는 후행 태스크가 되는데, 경우에 따라서는 서비스 입출력 소스가 태스크의 입출력 소스일 수 있다. 예를 들어, 상기 서비스 입출력 소스 중 적어도 하나(200-201, 240-241)가 상기 다수의 태스크들(221, 224, 231, 232) 중 적어도 하나의 입력 소스 및/또는 출력 소스일 수 있다. 또한, 상기 다수의 태스크들(221~224, 231, 232)은 범용적인 개발 언어로 정의될 수 있는데, 이때 그 정의는, 입력 소스별로 처리 대상이 되는 스트림 데이터의 단위, 즉 데이터 윈도우에 대한 정의를 포함할 수 있다. 여기서, 데이터 윈도우는 시간 단위 및/또는 데이터 단위로 설정될 수 있는데, 소정의 시간 간격 또는 데이터 개수 또는 이벤트 개수일 수 있고, 나아가, 다음 데이터 처리의 데이터 윈도우 구성을 위한 슬라이딩(sliding) 단위도 함께 설정될 수 있다.

한편, 상기 다수의 태스크들(221~224, 231, 232)의 정의는 예를 들어, 입력 데이터의 폭증에 대비하여 데이터 분할 관련 정보를 포함할 수 있다. 상기 데이터 분할 관련 정보는, 예를 들어, 데이터의 분할 방법, 데이터의 분할 개수, 및/또는 데이터 분할 방법에 대한 가이드 정보일 수 있다. 여기서, 상기 데이터 분할 방법에는 랜덤(random), 라운드로빈(round robin), 해쉬(hash) 등의 분할 방법 중 하나일 수 있다.

또는, 상기 다수의 태스크들(221~224, 231, 232)의 정의는 예를 들어, 입력 데이터의 폭증에 대비하여 강제 부하 감소(load shedding)에 관련된 정보, 즉 데이터 삭제 관련 정보를 포함할 수 있다. 상기 데이터 삭제 관련 정보는, 예를 들어, 삭제 데이터의 양, 및/또는 삭제 데이터 선별 기준일 수 있는데, 삭제를 허용할 수 있는 입력 데이터의 비율이나, 데이터 삭제 방법을 포함할 수 있다. 상기 데이터 삭제 방법은, 예를 들어, 데이터 윈도우로 바인딩되는 데이터 전체를 삭제하는 방법과 데이터 윈도우 내의 일부 데이터를 삭제하는 방법이 있을 수 있다.

한편, 사용자는 예를 들어, 서비스(230) 정의 시에 기 실행 중인 서비스(220)의 특정 태스크(221)를 포함한 태스크들 간의 데이터 흐름을 정의할 수 있다. 이는 데이터의 연산 처리 결과를 공유함으로써, 상기 데이터 처리 시스템(210) 내의 리소스 사용을 최적화하기 위한 것이다.

상기 사용자 정의 서비스(220,230)는 도 1에서 설명한 바와 유사하게, 서비스(220, 230)를 구성하는 상기 다수의 태스크들(221~224, 231,232)이 클러스터 내의 상기 다수의 노드들(221~217)에 의해 동적으로 분산 배치되어 실행된다. 이때, 상기 다수의 태스크들의 동적 분산 배치는 상기 클러스터를 구성하는 상기 다수의 노드들의 부하 정보를 참조하여 수행된다. 상기 노드의 부하 정보는, CPU, 메모리(Memory), 네트워크 대역폭(network bandwidth) 등의 사용률을 포함한 시스템 부하 정보 및/또는 노드 상에서 실행중인 태스크들의 데이터 입력률, 처리률, 그리고 예상 QoS 정보의 만족도 등의 서비스 부하 정보가 될 수 있다.

또한, 태스크 공유 여부에 따라서, 특정 태스크(221)는 처리 결과를 후행 태스크들(222, 232) 모두에게 동일하게 전달함으로써, 동일한 데이터에 대한 연산이 불필요하게 중복 수행되지 않도록 지원한다.

나아가, 서비스 실행 이후 예를 들어 스트림 데이터의 폭증이 발생하는 경우, 스트림 데이터를 태스크 복제(223)를 통해 상기 다수의 노드들 중 일부의 노드들(213, 214)에서 병렬로 처리되게 함으로써, 서비스 처리 성능이 감소되는 것을 최소화시킨다. 이때, 서비스 정의 내의 해당 태스크에 관련된 데이터 분할 개수, 데이터 분할 방법과 같은 데이터 분할 관련 정보를 참조하여 동적으로 최적의 태스크 복제 개수가 결정될 수 있다.

도 3는 본 발명에 따른 대용량 데이터의 처리를 위한 분산 병렬 처리 구조의 다른 실시예를 보여주는 개략도이다. 다만, 도 2는 서비스 정의 관점에서 도시된 도면이고, 도 3은 서비스 실행 관점에서 도시된 도면인 점에서 차이가 있을 뿐, 서로 상충되거나 양립불가하지 않음에 유의해야 한다.

도 3을 참조하면, 데이터 처리 시스템(300)은 하나의 서비스 관리자(Service Manager, 301)와 n개의 태스크 실행기(Task Executor1~n, 302~304)로 구성되고, 이들은 분산 노드들(미도시)에서 각각 실행될 수 있다.

상기 서비스 관리자(301)는 각 분산 노드에서 수행중인 상기 태스크 실행기(302~304)의 가동 상태, 상기 각 태스크 실행기(302~304)에서 관리하는 태스크의 실행 상태 정보 및/또는 해당 분산 노드의 자원 사용 상태 정보 등을 포함하는 부하 정보를 모니터링 또는 수집한다. 상기 서비스 관리자(301)는 사용자가 정의한 서비스에 대한 실행 요청이 들어오면 상기 수집된 부하 정보를 기초로 하여 해당 서비스의 태스크들을 실행시킬 태스크 실행기들(302~304)를 결정하고 태스크를 배치시킴으로써 서비스를 실행시킨다. 또한, 상기 서비스 관리자(301)는 상기 수집된 부하 정보를 기초로 전체 태스크의 실행을 스케쥴링한다.

상기 태스크 실행기(302~304)는 상기 서비스 관리자(301)로부터 할당 받은 태스크들(305~311)을 실행시키고, 상기 태스크들(305~311)의 실행 상태를 모니터링하여 상기 태스크들(305~311)의 실행을 스케쥴링한다.

한편, 상기 태스크 실행기(302~304)를 통해 실행되는 상기 태스크들(305~311)은 외부 입력 소스(INPUT SOURCE1, 320)로부터 데이터를 입력받아 태스크를 수행하고 발생하는 결과를 외부 출력 소스(OUTPUT SOURCE1, 330)에 전달한다. 예를 들어, 태스크2(306)의 경우 상기 외부 입력 소스(320)로부터 데이터를 입력받아 연산을 수행하고, 그 결과를 후행 태스크인 태스크3(307)에게 전달한다. 태스크3(307)는 태스크2로부터 입력받은 결과 데이터를 대상으로 연산을 수행한 후 이를 태스크 M(310)에게 전달한다. 한편, 태스크M(310)은 연산을 수행한 결과를 상기 외부 출력 소스(330)에 전달한다.

도 4a 내지 도 4c 각각은 본 발명의 일 실시예에 따른 도 3의 서비스 관리자, 태스크 실행기 및 태스크의 기능 블록도이다.

도 4a를 참조하면, 서비스 관리자(400)는 통신 모듈(401), 인터페이스 모듈(402), 서비스 실행기 관리 모듈(403), 서비스 관리 모듈(404), 서비스 품질 관리 모듈(405), 전역 스케쥴링 및 배치 모듈(406), 태스크 복구 모듈(407), 및 메타 데이터 관리 모듈(408)을 포함하여 구성될 수 있다.

여기서, 상기 통신 모듈(401)은 데이터 처리 시스템의 사용자 및 태스크 실행기(410)와의 통신을 담당하고, 상기 인터페이스 모듈(402)은, 상기 사용자가 응용 프로그램 및 콘솔에서 본 발명에 따른 데이터 처리 시스템의 가동, 중지와 같이 운영 관리할 수 있는 인터페이스와 본 발명에 따른 데이터 처리 서비스를 정의 및 관리할 수 있는 인터페이스를 제공한다.

상기 서비스 실행기 관리 모듈(403)은 가동된 태스크 실행기의 실행 상태 정보를 수집하여, 오류 상태인지 여부를 탐지하여 전역 스케쥴링이 동작되도록 전역 스케쥴링 & 배치 모듈(406)에 알린다.

상기 서비스 관리 모듈(404)는 사용자가 정의한 서비스가 데이터 플로에 따라 여러 개의 태스크로 분리되어 여러 노드에서 분산 수행되는 전반적인 과정, 예를 들어, 서비스 검증, 등록, 실행, 중지, 변경, 삭제 등을 제어한다. 또한, 수행중인 태스크의 실행 상태 정보를 수집하여, 오류 상태 또는 원활하지 못한 실행 상태(지속적인 QoS 불만족 상태)인지 여부를 탐지하여 전역 스케쥴링이 동작되도록 전역 스케쥴링 & 배치 모듈(406)에 알린다.

상기 서비스 품질 관리 모듈(405)은 서비스별 서비스 품질 목표를 최대한 보장하기 위하여, QoS 정보를 관리한다. 여기서, QoS 정보는, 예를 들어 서비스의 정확도, 서비스의 지연 정도 및 허용 가능한 서비스 만족도 등이 될 수 있다.

상기 전역 스케쥴링 및 배치 모듈(406)은 QoS 정보, 서버 및 서비스 실행 상태 정보를 기반으로 사용자가 설정한 QoS를 최대한 만족시킬 수 있도록 태스크들(420)이 여러 태스크 실행기들(410)에 분산 배치되어 실행되도록 스케쥴링을 수행한다. 상기 스케쥴링은, 입력된 데이터의 적어도 일부가 삭제되거나, 다른 태스크에서 처리되도록 하는 것을 포함할 수 있는데, 예를 들어 태스크 분배, 이동 및 복제, 태스크의 수행 시간 조절 및 입력 데이터의 삭제를 통한 강제 부하 감소 등일 수 있다.

상기 태스크 복구 모듈(407)은 상기 태스크 실행기(410)의 오류, 상기 태스크(420) 오류 시에 태스크를 복구하여 재수행하는 기능을 담당한다. 선택적으로 기존 수행 중이던 태스크 데이터를 복구하여 재수행하는 기능을 포함할 수 있다. 한편, 서비스 관리자의 오류 복구는, 서비스 관리자를 active-standby mode 형태로 이중화하거나, 또는 다수의 후보 서비스 관리자들 중 중재기를 통해 하나의 마스터 서비스 관리자를 선정하는 방식을 통해 수행되어, 본 발명과 같이 데이터 플로 분산 연속 처리 시스템의 서비스가 중단되는 일이 없도록 한다. 상기 서비스 관리자의 복구 모듈의 구조와 기능에 관해서는 설명을 생략한다.

마지막으로, 상기 메타 데이타 관리 모듈(408)은 서비스 정보, QoS 정보, 서버 정보 등의 메타 데이터를 저장 및/또는 관리한다.

도 4b를 참조하면, 상기 태스크 실행기(410)는 통신 모듈(411), 태스크 관리 모듈(412) 및 지역 스케쥴링 모듈(413)을 포함하여 구성된다.

상기 통신 모듈(411)은 상기 태스크 실행기(410)가 관리하는 태스크들 중 적어도 실행중인 태스크들로부터 실행 상태 정보를 전달받고, 상기 전달받은 실행 상태 정보 및/또는 적어도 상기 태스크들이 수행되고 있는 노드의 자원 사용 상태 정보를 상기 서비스 관리자(400)에게 전달하는 데 사용된다.

상기 태스크 관리 모듈(412)은 상기 서비스 관리자(400)로부터 할당받은 태스크를 실행하며, 상기 적어도 실행중인 태스크(420)들의 상기 실행 상태 정보와 상기 태스크 실행기(410)의 자원 사용 상태 정보를 수집한다.

상기 지역 스케쥴링 모듈(413)은 예를 들어, 상기 서비스 관리자(400)로부터 전달받은 지역 QoS 정보 및/또는 태스크 실행 상태 제어 명령을 기초로 하여, 실행할 태스크들의 실행을 제어한다. 여기서, 상기 지역 QoS 정보는 상기 태스크 실행기(410)가 관리하는 태스크들에만 관련된 서비스 품질 정보로서 상기에서 언급한 (전역) QoS 정보와 유사하게 데이터 처리률, 처리 지연 시간 등이 될 수 있으며, 상기 실행 상태 제어 명령은 새로운 태스크 실행, 실행 중인 태스크의 중지, 태스크에 할애한 시스템 자원(예를 들어, 메모리, CPU 등) 변경 정보 및/또는 태스크의 입력 데이터 삭제를 통한 강제 부하 감소 등이 될 수 있다.

상기 지역 스케쥴링 모듈(413)은 지역 스케쥴링 정보를 관리하고, 태스크 수준에서의 QoS 만족 여부를 점검한다. 즉, 상기 지역 스케쥴링 모듈(413)은 태스크의 실행 상태 정보를 모니터링 또는 수집하여, 지역 QoS을 최대한 만족시키기 위하여 상기 서비스 관리자(410)에 의한 스케쥴링에 더하여, 이와는 별도로 상기 태스크 실행기(410)가 독자적으로 태스크들 중 적어도 일부에 대하여 스케쥴링을 수행하여 그 실행을 제어할 수도 있는데, 예를 들어, 실행중인 태스크의 실행 순서를 결정하는 독자적인 스케쥴링 등을 수행할 수 있다.

도 4c를 참조하면, 상기 태스크(420)는 통신 모듈(421), 연속 처리 태스크 모듈(422), 스트림 입출력 관리 모듈(423), 강제 부하 감소 모듈(424), 스트림 분할 및 병합 모듈(425), 및 태스크 복구 정보 관리 모듈(426)을 포함하여 구성된다.

상기 통신 모듈(421)은 상기 태스크(420)를 관리하는 태스크 실행기(410)에 해당 태스크의 실행 상태 정보를 전달하고, 상기 태스크 실행기(410)로부터 지역 스케쥴링 정보를 받기 위한 통신을 담당한다.

상기 연속 처리 태스크 모듈(422)은 상기 스트림 입출력 관리 모듈(423)을 통해 입력되는 데이터를 바탕으로 사용자가 정의한 데이터 처리 연산을 실행하고 그 실행 결과를 스트림 입출력 관리 모듈(423)을 통해 다음 태스크 또는 외부 출력 소스로 출력한다. 상기 스트림 입출력 관리 모듈(423)은 파일, TCP 등을 포함하는 사용자 정의 입출력 소스, 및 태스크들 사이의 입출력 채널, 입출력 데이터 형식 및 입출력 데이터에 대한 데이터 윈도우를 관리한다.

상기 강제 부하 감소 모듈(424)은 해당 태스크를 관리하는 상기 태스크 실행기(410)의 상기 지역 스케쥴링 모듈(413)의 제어에 따라 태스크의 데이터 윈도우에 바인딩된 스트림 데이터 중 적어도 일부를 예를 들어, 강제로 삭제하는 것에 의해 부하를 감소시키는 기능을 제공한다.

상기 스트림 분할 및 병합 모듈(425)은 하나의 태스크가 적어도 하나의 복제 태스크로 복제되어 복수의 노드들에서 병렬로 수행될 필요가 있는 경우, 상기 태스크의 입력 데이터 스트림을 데이터 윈도우 단위로 분할하여 상기 태스크를 포함한 상기 적어도 하나의 복제 태스크에 전달하는 기능을 제공하고, 상기 태스크 및 상기 적어도 하나의 복제 태스크에서 연산을 수행하여 출력된 데이터 스트림들을 통합하는 기능을 제공한다. 여기서, 상기 적어도 하나의 복제된 태스크는 동일한 노드들에 존재할 수도 있고, 또는 그 각각이 서로 다른 노드들에 존재할 수도 있다.

상기 태스크 복구 정보 관리 모듈(426)은 태스크의 장애 복구에 대비하여 처리 중이던 태스크에 바인딩된 스트림 데이터 윈도우에 대해 최종 결과를 산출하기 전까지 데이터 복구를 위해 필요한 정보를 저장 및 관리하는 기능을 제공한다.

도 5는 본 발명의 일 실시예에 따라 사용자 정의 서비스가 등록되고 실행되는 과정을 보여주는 대략적인 흐름도이다.

본 발명에 따른 데이터 처리 시스템에 사용자 정의에 의해 성립된 새로운 서비스가 등록(501)되면, 하나의 클러스터를 구성하는 다수의 노드들의 자원 사용 상태 정보 및/또는 상기 다수의 노드들 각각에서 실행중인 기 실행 태스크들의 실행 상태 정보 등을 기초로 하여 새로운 서비스를 구성하는 태스크들을 할당할 적어도 하나의 노드 및/또는 이에 따른 적어도 하나의 태스크 실행기를 선정한다(502). 선정된 노드 상의 태스크 실행기 및/또는 선정된 태스크 실행기에 태스크를 할당하여 분산 배치하고 실행한다(503). 그후 주기적으로 입력되는 태스크의 실행 상태 정보를 기초로 하여 서비스 관리자는 상기 사용자 정의에 의해 성립된 새로운 서비스를 보다 빨리 실행시키기 위해 동적으로 태스크들의 스케쥴링을 계속적으로 수행한다(504).

여기서, 상기 태스크들 중 적어도 하나의 태스크에서의 동작은 도 6을 참조로 하여 설명한다. 도 6에 도시된 바와 같이, 태스크는 적어도 하나의 입력 소스로부터 데이터 윈도우가 모두 구성되었는지를 검사한다(601). 만약 데이터 윈도우가 모두 구성되었다면, 사용자 정의 태스크를 수행하고(602), 그렇지 않은 경우에는 대기한다(600). 사용자 정의 태스크 수행을 통해 연산 결과가 발생하면, 적어도 하나의 출력 소스에 전달한다(603). 이때, 태스크의 복구를 가능하게 하고, 실행 상태 정보를 제공하기 위하여 해당 태스크의 실행 상태 정보를 저장한다(604).

도 7은 본 발명의 일시예에 따라 서비스 관리자에서 수행되는 전역 스케쥴링의 과정을 보여주는 흐름도이다.

서비스 관리자는 주기적으로 적어도 하나의 태스크들의 실행 상태 정보를 수집한다(701). 상기 수집된 정보를 기초로 하여 사용자가 정의한 QoS를 만족시키지 못하는 서비스가 존재하는지 여부를 검사한다(702). 모든 서비스가 QoS를 만족하는 경우 다음 태스크들의 실행 상태 정보를 수집하고(701), QoS를 만족시키지 못하는 서비스가 존재한다면, 이를 유발하는 태스크가 어떤 태스크인지 선별하여(703), 선별된 태스크에 대한 스케쥴링을 수행한다(704).

여기서, 상기 서비스 품질을 만족시키지 못하는 원인이 되는 선별된 태스크의 스케쥴링은 예를 들어, 다음과 같은 과정을 거쳐 수행될 수 있다. 우선 상기 선별된 태스크의 실행에 필요한 만큼 시스템 자원을 더 사용할 수 있도록 스케쥴링한다. 만약 상기 선별된 태스크가 실행중인 해당 노드에 여유 자원이 없는 경우에는 적어도 상기 태스크의 원활한 실행이 가능한 만큼의 여유 자원을 가진 다른 노드를 검색한다. 만약 여유 자원을 가진 다른 노드가 발견되면, 해당 태스크를 기 실행되고 있는 해당 노드로부터 여유 자원을 가진 다른 노드로 이동시킨다. 만약 여유 자원을 가진 다른 노드를 발견하지 못한 경우에는 입력 데이터 스트림을 분할하여 상기 선별된 태스크를 다수의 다른 분산 노드들에 복제하여 복제된 다른 분산 노드들에서 실행되게 함으로써, 다수의 노드들의 자원을 나눠서 사용할 수 있도록 스케쥴링한다. 한편, 태스크의 이동 및 복제도 가능하지 않은 경우에는 상기에서 기술한 바와 같은 강제 부하 감소 방법을 상기 선별된 태스크에 적용할 수 있다.

여기서, 사용자 정의 서비스를 제공하는 장치의 적어도 일부로서의, 서비스 관리자, 적어도 하나의 태스크 실행기, 적어도 하나의 태스크, 적어도 하나의 노드들을 포함하여 구성되는 본 발명에 따른 데이터 처리 시스템의 각 구성요소들 및 그 하부 구성요소들의 기능 및 구조에 대한 설명 또한 본 발명에 따른 서비스 제공 방법에 그대로 채용될 수 있다.

본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다. 또한, 특허청구범위에서 명시적인 인용 관계가 있지 않은 청구항들을 결합하여 실시예를 구성하거나 출원 후의 보정에 의해 새로운 청구항으로 포함시킬 수 있다.

본 발명의 서비스 제공 장치 및 방법은, 예를 들어, 인터넷 서비스를 포함한 다양한 응용 환경에서 실시간 개인화 서비스 혹은 추천 서비스, CCTV 기반 안전 서비스 등과 같이, 대용량 스트림 데이터를 실시간으로 분석, 가공할 필요가 있는 기술 분야에는 어디든 적용가능하다.

300 : 데이터 처리 시스템 301 : 서비스 관리자
302~304 : 태스크 실행기 305~311 : 태스크
320 : 외부 입력 소스 330 : 외부 출력 소스

Claims (15)

  1. 적어도 하나의 서비스를 구성하고 복수의 노드들에 동적으로 분산 배치되는 복수의 태스크들의 실행 상태 정보를 수집하는 단계; 및
    상기 수집된 복수의 태스크들의 실행 상태 정보에 기초하여 스케쥴링을 수행하는 단계를 포함하고,
    상기 복수의 태스크들 각각은 적어도 하나의 입력 소스 및 출력 소스를 가지고, 입력 소스 별로 처리 대상이 되는 데이터의 단위 및 데이터 처리 연산이 사용자에 의해 정의되어 있고, 상기 스케쥴링은 상기 정의된 데이터의 단위를 참조하여 적어도 하나의 태스크에 입력된 데이터의 적어도 일부를 삭제하거나 또는 적어도 하나의 복제 태스크에서 처리되도록 하는 것을 특징으로 하는 서비스 제공 방법.
  2. 제 1 항에 있어서,
    상기 스케쥴링은, 상기 복수의 태스크들 각각에 정의된 데이터 분할 개수, 데이터 분할 방법과 같은 데이터 분할 관련 정보에 기초하여 수행되는 것을 특징으로 하는 서비스 제공 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 스케쥴링은, 상기 복수의 태스크들 각각에 정의된 삭제 데이터의 양, 삭제 데이터 선별 기준과 같은 데이터 삭제 관련 정보에 기초하여 수행되는 것을 특징으로 하는 서비스 제공 방법.
  4. 제 1 항에 있어서,
    상기 스케쥴링 단계는, 상기 수집된 복수의 태스크들의 실행 상태 정보에 기초하여 서비스 품질을 만족시키지 못하는 서비스가 존재하는지 여부를 판단하는 단계,
    만약 존재한다면 그 원인이 되는 태스크를 선별하는 단계, 및
    상기 선별된 태스크에 대하여 스케쥴링을 수행하는 단계를 더 포함하는 것을 특징으로 하는 서비스 제공 방법.
  5. 제 4 항에 있어서,
    상기 선별된 태스크에 대한 스케쥴링은, 상기 복수의 태스크들의 자원 사용 상태 정보에 따라 입력된 데이터의 적어도 일부가 삭제되거나, 상기 선별된 태스크 또는 상기 선별된 태스크의 적어도 하나의 복제 태스크에서 처리될 수 있는 것을 특징으로 하는 서비스 제공 방법.
  6. 적어도 하나의 서비스를 구성하고 복수의 노드들에 동적으로 분산 배치되는 복수의 태스크들의 실행 상태 정보를 수집하는 서비스 실행기 관리 모듈; 및
    상기 수집된 복수의 태스크들의 실행 상태 정보에 기초하여 스케쥴링을 수행하는 스케쥴링 및 배치 모듈을 포함하고,
    상기 복수의 태스크들 각각은 적어도 하나의 입력 소스 및 출력 소스를 가지고, 입력 소스 별로 처리 대상이 되는 데이터의 단위 및 데이터 처리 연산이 사용자에 의해 정의되어 있고, 상기 스케쥴링은 상기 정의된 데이터의 단위를 참조하여 적어도 하나의 태스크에 입력된 데이터의 적어도 일부를 삭제하거나 또는 적어도 하나의 복제 태스크에서 처리되도록 하는 것을 특징으로 하는 서비스 제공 장치.
  7. 제 6 항에 있어서,
    상기 스케쥴링은, 상기 복수의 태스크들 각각에 정의된 데이터 분할 개수, 데이터 분할 방법과 같은 데이터 분할 관련 정보에 기초하여 수행되는 것을 특징으로 하는 서비스 제공 장치.
  8. 제 6 항에 있어서,
    상기 스케쥴링은, 상기 복수의 태스크들 각각에 정의된 삭제 데이터의 양, 삭제 데이터 선별 기준과 같은 데이터 삭제 관련 정보에 기초하여 수행되는 것을 특징으로 하는 서비스 제공 장치.
  9. 제 6 항에 있어서,
    상기 스케쥴링 및 배치 모듈은, 상기 수집된 복수의 태스크들의 실행 상태 정보에 기초하여 서비스 품질을 만족시키지 못하는 서비스가 존재하는지 여부를 판단하고, 만약 존재한다면 그 원인이 되는 태스크를 선별하여, 상기 선별된 태스크에 대하여 스케쥴링을 수행하는 것을 특징으로 하는 서비스 제공 장치.
  10. 제 9 항에 있어서,
    상기 선별된 태스크에 대한 스케쥴링은, 상기 복수의 태스크들의 자원 사용 상태 정보에 따라 입력된 데이터의 적어도 일부가 삭제되거나, 상기 선별된 태스크의 적어도 하나의 복제 태스크에서 처리될 수 있는 것을 특징으로 하는 서비스 제공 장치.
  11. 제 6 항에 있어서,
    데이터 분산 처리 전반을 제어하는 서비스 관리 모듈; 및
    태스크 오류 시에 태스크를 복구하여 재수행하는 태스크 복구 모듈을 더 포함하는 것을 특징으로 하는 서비스 제공 장치.
  12. 제 6 항에 있어서,
    상기 복수의 노드들 각각은 하나의 태스크 실행기를 포함하고,
    상기 태스크 실행기는, 상기 복수의 노드들 각각에 위치하는 적어도 하나의 태스크들에 대한 실행 상태 정보 및 자원 사용 상태 정보를 수집하여 상기 서비스 제공 장치로 전달하고, 상기 서비스 제공 장치의 스케쥴링 수행에 따라 상기 적어도 하나의 태스크들의 실행을 제어하는 것을 특징으로 하는 서비스 제공 장치.
  13. 제 12 항에 있어서,
    상기 태스크 실행기는, 상기 서비스 제공 장치의 스케쥴링 수행과는 별도로 스케쥴링을 수행하여 그 실행을 제어할 수 있는 것을 특징으로 하는 서비스 제공 장치.
  14. 제 13 항에 있어서,
    상기 태스크 실행기에서의 스케쥴링은, 각 태스크 별로 설정된 서비스 품질을 만족시키기 위해 태스크 실행 순서를 변경하는 것을 특징으로 하는 서비스 제공 장치.
  15. 사용자가 정의한 서비스에 대한 실행 요청을 전송하는 단계; 및
    상기 실행 요청에 따라 실행된 서비스를 제공받는 단계를 포함하고,
    상기 서비스의 실행은,
    상기 서비스를 구성하고 복수의 노드들에 동적으로 분산 배치되는 복수의 태스크들의 실행 상태 정보를 수집하는 단계; 및
    상기 수집된 복수의 태스크들의 실행 상태 정보에 기초하여 스케쥴링을 수행하는 단계를 포함하고,
    상기 복수의 태스크들 각각은 적어도 하나의 입력 소스 및 출력 소스를 가지고, 입력 소스 별로 처리 대상이 되는 데이터의 단위 및 데이터 처리 연산이 사용자에 의해 정의되어 있고, 상기 스케쥴링은 상기 정의된 데이터의 단위를 참조하여 적어도 하나의 태스크에 입력된 데이터의 적어도 일부를 삭제하거나 또는 적어도 하나의 복제 태스크에서 처리되도록 하는 것을 특징으로 하는 서비스 제공 방법.
KR1020100128579A 2010-12-15 2010-12-15 서비스 제공 방법 및 장치 KR20120067133A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100128579A KR20120067133A (ko) 2010-12-15 2010-12-15 서비스 제공 방법 및 장치

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020100128579A KR20120067133A (ko) 2010-12-15 2010-12-15 서비스 제공 방법 및 장치
US13/325,301 US20120158816A1 (en) 2010-12-15 2011-12-14 Service providing method and device using the same
CN2011104190001A CN102662731A (zh) 2010-12-15 2011-12-15 服务提供方法以及使用该方法的装置

Publications (1)

Publication Number Publication Date
KR20120067133A true KR20120067133A (ko) 2012-06-25

Family

ID=46235824

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100128579A KR20120067133A (ko) 2010-12-15 2010-12-15 서비스 제공 방법 및 장치

Country Status (3)

Country Link
US (1) US20120158816A1 (ko)
KR (1) KR20120067133A (ko)
CN (1) CN102662731A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140090891A (ko) * 2013-01-10 2014-07-18 삼성전자주식회사 분산 컴퓨팅 환경에서의 서비스 실행 설정 방법 및 컴퓨팅 장치

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8949305B1 (en) * 2011-07-15 2015-02-03 Scale Computing, Inc. Distributed dynamic system configuration
WO2013157093A1 (ja) * 2012-04-18 2013-10-24 株式会社日立製作所 計算機システムの運用作業処理の生成支援システム
US9336058B2 (en) 2013-03-14 2016-05-10 International Business Machines Corporation Automated scheduling management of MapReduce flow-graph applications
KR20150030332A (ko) * 2013-09-12 2015-03-20 삼성전자주식회사 데이터 분산 처리 시스템 및 이의 동작 방법
CN103942034A (zh) * 2014-03-21 2014-07-23 深圳华大基因科技服务有限公司 任务调度方法及实现该方法的电子装置
US9582189B2 (en) 2014-04-25 2017-02-28 International Business Machines Corporation Dynamic tuning of memory in MapReduce systems
US9575778B2 (en) * 2014-05-20 2017-02-21 Via Alliance Semiconductor Co., Ltd. Dynamically configurable system based on cloud-collaborative experimentation
US20170201434A1 (en) * 2014-05-30 2017-07-13 Hewlett Packard Enterprise Development Lp Resource usage data collection within a distributed processing framework
CN104486378B (zh) * 2014-11-26 2019-08-13 中国建设银行股份有限公司 一种集群控制方法及装置
CN104598320B (zh) * 2015-01-30 2018-11-30 北京正奇联讯科技有限公司 基于分布式系统的任务执行方法及系统
US9936042B2 (en) 2015-08-28 2018-04-03 Qualcomm Incorporated Local retrieving and caching of content to small cells
US9781246B2 (en) 2015-08-28 2017-10-03 Qualcomm Incorporated Augmenting reality using a small cell
US20170091016A1 (en) * 2015-09-30 2017-03-30 Sap Portals Israel Ltd Continual execution in a computing system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020035580A (ko) * 2000-06-27 2002-05-11 요트.게.아. 롤페즈 스케줄을 결정하는 방법, 스케줄러 및, 시스템
KR100617717B1 (ko) * 2004-12-15 2006-08-28 삼성전자주식회사 무선망에서의 스케줄링 방법
CN1665315A (zh) * 2005-04-15 2005-09-07 北京邮电大学 在多业务环境下基于业务控制点的智能网过载的控制方法
US7698391B2 (en) * 2005-05-16 2010-04-13 Oracle International Corporation Performing a provisioning operation associated with a software application on a subset of the nodes on which the software application is to operate
US8381220B2 (en) * 2007-10-31 2013-02-19 International Business Machines Corporation Job scheduling and distribution on a partitioned compute tree based on job priority and network utilization
US20100186017A1 (en) * 2009-01-21 2010-07-22 Raghavendra Eeratta System and method for medical image processing
US20100333094A1 (en) * 2009-06-24 2010-12-30 Mark Restall Job-processing nodes synchronizing job databases

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140090891A (ko) * 2013-01-10 2014-07-18 삼성전자주식회사 분산 컴퓨팅 환경에서의 서비스 실행 설정 방법 및 컴퓨팅 장치

Also Published As

Publication number Publication date
CN102662731A (zh) 2012-09-12
US20120158816A1 (en) 2012-06-21

Similar Documents

Publication Publication Date Title
Ismail et al. Evaluation of docker as edge computing platform
Venugopal et al. A grid service broker for scheduling distributed data-oriented applications on global grids
AU2011312029B2 (en) Automatic replication of virtual machines
JP5926864B2 (ja) クラウドコンピューティングシステムをコンフィギュアするためのシステム及び方法
Trushkowsky et al. The SCADS Director: Scaling a Distributed Storage System Under Stringent Performance Requirements.
Jalaparti et al. Network-aware scheduling for data-parallel jobs: Plan when you can
US10282231B1 (en) Monitoring and automatic scaling of data volumes
Coutinho et al. Elasticity in cloud computing: a survey
US8701108B2 (en) Apparatus and method for controlling live-migrations of a plurality of virtual machines
KR102013004B1 (ko) 확장 가능한 환경에서의 동적 로드 밸런싱 기법
US9565260B2 (en) Account state simulation service for cloud computing environments
US20130254196A1 (en) Cost-based optimization of configuration parameters and cluster sizing for hadoop
Jayalath et al. From the cloud to the atmosphere: Running MapReduce across data centers
US20140047342A1 (en) System and method for allocating a cluster of nodes for a cloud computing system based on hardware characteristics
KR101891506B1 (ko) 하나 이상의 클라우드 시스템 상에 애플리케이션들을 이식 가능하게 배치하기 위한 방법들 및 시스템들
US9720989B2 (en) Dynamic partitioning techniques for data streams
TWI353525B (en) Apparatus, system, and method for autonomic contro
US9262231B2 (en) System and method for modifying a hardware configuration of a cloud computing system
US8296419B1 (en) Dynamically modifying a cluster of computing nodes used for distributed execution of a program
US8321558B1 (en) Dynamically monitoring and modifying distributed execution of programs
US8839035B1 (en) Cloud-based test execution
US8260840B1 (en) Dynamic scaling of a cluster of computing nodes used for distributed execution of a program
CN103414761B (zh) 一种基于Hadoop架构的移动终端云资源调度方法
US8418181B1 (en) Managing program execution based on data storage location
Rao et al. Performance issues of heterogeneous hadoop clusters in cloud computing

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination