KR101783770B1 - 분산 환경에서 인-메모리 기반의 점진적 스트림 데이터 처리 시스템 및 방법 - Google Patents

분산 환경에서 인-메모리 기반의 점진적 스트림 데이터 처리 시스템 및 방법 Download PDF

Info

Publication number
KR101783770B1
KR101783770B1 KR1020160053652A KR20160053652A KR101783770B1 KR 101783770 B1 KR101783770 B1 KR 101783770B1 KR 1020160053652 A KR1020160053652 A KR 1020160053652A KR 20160053652 A KR20160053652 A KR 20160053652A KR 101783770 B1 KR101783770 B1 KR 101783770B1
Authority
KR
South Korea
Prior art keywords
data
node
memory
processing
time
Prior art date
Application number
KR1020160053652A
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 KR1020160053652A priority Critical patent/KR101783770B1/ko
Application granted granted Critical
Publication of KR101783770B1 publication Critical patent/KR101783770B1/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/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3349Reuse of stored results of previous queries
    • G06F17/30545
    • G06F17/30575
    • G06F17/30693

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 분산 환경에서 인-메모리 기반의 점진적 스트림 데이터 처리 시스템 및 방법에 관한 것으로서, 처음 데이터가 입력되면 데이터의 처리 결과를 메모리에 저장하게 하고 다음 데이터가 입력되면 데이터를 비교하여 중복된 데이터의 경우 기존에 처리된 결과를 메모리에서 불러와 재사용하는 데이터 처리 모듈, 각 노드의 부하 및 성능을 고려하여 처리할 데이터를 노드에 분배하는 데이터 분배 모듈 및 데이터의 처리 결과를 메모리에 저장하는 데이터 저장 모듈을 포함함으로써, 분산 인-메모리 환경에서 스트림 데이터의 점진적 처리와 노드의 부하 및 성능을 고려한 스케쥴링 기법을 통해 데이터의 처리 시간을 감소시킨다.

Description

분산 환경에서 인-메모리 기반의 점진적 스트림 데이터 처리 시스템 및 방법{IN-MEMORY BASED INCREMENTAL STREAM PROCESSING SYSTEM AND METHOD IN DISTRIBUTED INVIRONMENTS}
본 발명은 점진적 스트림 데이터 처리 시스템 및 방법에 관한 것으로, 더욱 상세하게는 제안하는 기법에서는 데이터의 중복 처리를 피하기 위해 데이터가 입력되면 처리 결과를 메모리에 저장하고 동일한 데이터가 입력되었을 때 해시 키 값으로 데이터를 비교하여 기존에 처리된 데이터를 메모리에서 불러와 재사용하며, 분산 노드에서 작업 지연을 계산하여 노드의 부하를 파악하고 데이터 처리 시간을 계산하여 노드의 성능을 고려한 잡 스케쥴링 기법을 수행하는 분산 환경에서 인-메모리 기반의 점진적 스트림 데이터 처리 시스템 및 방법에 관한 것이다.
최근 IT기술의 발전과 함께 다양한 정보 채널의 등장으로 생성 및 유통되는 정보량이 기하급수적으로 증가하고 있다. 이와 함께 기존 정보 처리 기술을 통해 데이터 저장, 관리, 분석이 어려워짐에 따라 빅데이터(big data)의 중요성이 증가되고 있다. 빅데이터는 거대한 데이터 양(volume), 빠른 데이터 유통 및 이용 속도(velocity), 데이터 다양성(variety)의 특징을 가지고 있으며 새로운 가치 창출을 위한 다양한 분석 및 처리 기법들에 대한 연구가 진행되고 있다. 최근 소셜 네트워크, 위치기반 서비스, M2M 기술에 대한 활용이 증가되면서 대용량의 스트림 데이터 처리에 대한 관심이 집중되고 있다. 스트림 데이터는 각종 장비, 응용 서비스 등에서 지속적으로 데이터가 발생되기 때문에 실시간 데이터 수집 및 처리 방법이 요구된다. 예를 들어, 사건, 사고, 장애 및 시설물 관리 등 다양한 분야에서 방대한 양의 데이터들이 생성되고 있으며 이렇게 생성된 데이터는 모니터링과 같은 실시간 시스템에 이용되고 있다.
빅데이터를 처리하기 위한 대표적인 플랫폼으로는 하둡(Hadoop)이 있다. 하둡은 대용량의 데이터를 분산 처리하고 관리하기 위해 사용되며 대용량 데이터의 저장소인 하둡 파일 시스템(HDFS)과 데이터를 처리하기 위한 맵리듀스(Mapreduce)로 구성된다. 대용량의 데이터를 분산 처리하기 위한 맵리듀스는 데이터를 여러 조각으로 나누어서 처리하는 단계인 맵(Map) 단계와 처리 결과를 모아서 결과를 출력하는 리듀스(Reduce)단계로 나누어져 처리된다. 스트림 데이터는 데이터가 일괄적으로 입력되는 것이 아니라 실시간으로 입력되기 때문에 일괄 배치 처리 시스템인 하둡으로 스트림 데이터를 처리하는데 어려움이 있어 스트림 데이터 처리를 위한 새로운 기법이 필요하다.
실시간으로 입력되는 스트림 데이터를 분석하여 현재 어떤 일이 발생하고 있는지 지속적으로 분석하여 확인하고 대응할 수 있도록 하기 위해 실시간 분석 및 처리가 요구되며 이를 위해 실시간 스트림 데이터를 빠르게 처리하여 분석하는 많은 연구가 진행되고 있다. 스트림 데이터 처리의 경우 슬라이딩 윈도우를 이용한 처리를 하는데, 타임 윈도우가 겹쳐서 처리되는 질의 타입의 경우 기존 슬라이딩 윈도우의 처리에서는 중복으로 데이터를 처리하기 때문에 성능이 저하된다. 따라서 스트림 데이터에서 기존의 처리 결과를 저장하고 재사용하는 점진적인 질의 처리가 필요하다. 점진적 질의의 대표적인 예로 “현재 위치를 기준으로 반경 10km 범위 안에 있는 주유소를 검색 한다”와 같은 질의를 예로 들 수 있다. 1km 이동하였을 때 일부 데이터가 겹치게 되지만 기존 기법에서는 이와 같은 질의의 경우 사람이 이동할 때마다 계속 결과를 업데이트 하여 처리 시간 및 연산 비용의 문제가 발생할 수 있다. 스트림 데이터 처리 과정에서 처리 결과를 메모리에 저장하고 변경된 위치 부분만 재계산하여 결과를 업데이트 하면 중복 계산을 피해 처리 시간 및 연산 비용을 줄일 수 있다.
실시간 스트림 데이터 처리 방식에는 분산 인메모리 처리 방식인 스파크와 스톰이 있으며 이러한 기존 기법에서는 과거에 처리한 데이터를 저장하는 재사용 기법을 사용하지 않으며 시간이 오래 걸린다는 문제점을 가지고 있다. 따라서 기존에 처리한 데이터를 저장하고 동일한 데이터가 입력되었을 때 재사용하는 점진적인 처리 기법이 필요하다. 또한, 분산 환경에는 노드마다 성능의 차이가 있어 작업의 부하가 심한 노드에는 작업의 할당을 줄여야 하며 성능이 좋은 노드에서는 작업을 빠르게 처리하기 때문에 더 많은 작업을 할당하는 잡 스케쥴링 기법이 필요하다. 기존 기법에서는 재사용 데이터를 고려하지 않아 점진적인 처리에 맞는 노드의 부하와 성능을 고려한 스케쥴링 기법이 필요하다. 맵리듀스 기법과 슬라이더(Slider) 기법에서는 점진적인 처리를 위한 연구를 수행하였다. 하지만 분산 환경에서 노드의 실시간 부하 및 성능을 고려하지 않아 성능 향상에 어려움이 있다. 따라서 스트림 데이터의 점진적 질의 처리 기법이 요구되며 분산 환경에서 효과적인 점진적인 질의 처리를 위한 실시간 노드 부하와 성능을 고려한 스케쥴링 기법이 요구된다.
기존 기법에서는 분산 환경에서 노드의 성능과 부하를 고려하지 않은 스트림 데이터의 점진적인 처리로 작업 할당 과정에서 문제가 있었는 바, 본 발명에서는 분산 인메모리 환경에서 스트림 데이터의 점진적 처리 기법을 제안한다.
대한민국 공개특허공보 제10-2011-0069338호(공개일 2011.06.23) 대한민국 공개특허공보 제10-2013-0095910호(공개일 2013.08.29)
따라서, 본 발명은 상기한 종래 기술의 문제점을 해결하기 위해 이루어진 것으로서, 본 발명의 목적은 작업 지연 계산을 통한 노드의 부하와 처리 속도 계산을 통한 노드의 성능을 고려하여 데이터를 처리하며 기존 결과를 메모리에 저장하고 재사용하는 점진적 질의 처리로 데이터의 처리 시간과 비용을 감소시키는 분산 환경에서 인-메모리 기반의 점진적 스트림 데이터 처리 시스템 및 방법을 제공하는데 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 분산 환경에서 인-메모리 기반의 점진적 스트림 데이터 처리 시스템은, 처음 데이터가 입력되면 데이터의 처리 결과를 메모리에 저장하게 하고 다음 데이터가 입력되면 데이터를 비교하여 중복된 데이터의 경우 기존에 처리된 결과를 메모리에서 불러와 재사용하는 데이터 처리 모듈, 각 노드의 부하 및 성능을 고려하여 처리할 데이터를 노드에 분배하는 데이터 분배 모듈 및 데이터의 처리 결과를 메모리에 저장하는 데이터 저장 모듈을 포함한다.
한편, 본 발명의 분산 환경에서 인-메모리 기반의 점진적 스트림 데이터 처리 방법은, 처음 스트림 데이터가 입력되면, 데이터 처리 모듈에 의해 해시 키 값을 생성하고, 데이터 분배 모듈에 의해 노드의 부하 및 성능을 고려하여 처리할 데이터를 노드에 분배하며, 데이터 저장 모듈에 의해 데이터 처리 결과를 메모리에 저장하는 단계, 이후 스트림 데이터가 입력되면, 상기 데이터 처리 모듈에 의해 해시 키 값을 생성하고, 기존 해시 키 값과 비교하여 메모리에 기존 처리 결과가 저장되어 있는지 확인하는 단계, 해시 키 값이 기존 해시 키 값과 동일하면, 상기 데이터 처리 모듈이 상기 메모리에서 처리 결과를 가져와 재사용하고, 해시 키 값이 기존 해시 키 값과 동일하지 않으면, 상기 데이터 분배 모듈이 노드의 부하 및 성능을 고려하여 처리할 데이터를 노드에 분배하며 데이터 저장 모듈에 의해 데이터 처리 결과를 메모리에 저장하는 단계를 포함한다.
상술한 바와 같이, 본 발명에 의한 분산 환경에서 인-메모리 기반의 점진적 스트림 데이터 처리 시스템 및 방법은 분산 인-메모리 환경에서 스트림 데이터의 점진적 처리와 노드의 부하 및 성능을 고려한 스케쥴링 기법을 통해 데이터의 처리 시간을 감소시킬 수 있다.
도 1은 본 발명의 점진적 스트림 데이터 처리 시스템이 적용되는 분산 인-메모리 환경을 나타내는 전체 구성도이다.
도 2는 도 1과 같은 분산 인-메모리 환경에 적용되는 본 발명에 따른 데이터 스트림 처리 시스템의 전체 구성을 개략적으로 나타낸 블록도이다.
도 3은 데이터 처리 모듈이 본 발명의 바람직한 실시예에 따라 분산 인-메모리 환경에서 입력 데이터를 비교하는 과정을 나타낸다.
도 4는 데이터 처리 모듈이 본 발명의 바람직한 실시예에 따라 분산 인-메모리 환경에서 점진적으로 데이터를 처리하는 과정을 나타낸다.
도 5는 본 발명의 점진적 스트림 데이터 처리 시스템이 적용되는 분산 인-메모리 환경에서의 마스터 노드와 슬레이브 노드에 대한 예시적인 시나리오를 나타낸다.
도 6은 데이터 분배 모듈이 본 발명의 바람직한 실시예에 따라 기존 노드와 복제본 노드 비교를 통해 데이터를 분배하는 과정을 나타낸다.
도 7은 본 발명의 바람직한 실시예에 따라 복제본 노드를 통해 데이터를 처리하는 과정을 나타낸다.
도 8은 도 1과 같은 분산 인-메모리 환경에 적용되는 본 발명에 따른 데이터 스트림 처리 방법의 전체 흐름을 개략적으로 나타낸 흐름도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다.
이하 본 발명의 점진적 스트림 데이터 처리 시스템에 대하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 점진적 스트림 데이터 처리 시스템이 적용되는 분산 인-메모리 환경을 나타내는 전체 구성도이다.
도 1을 참조하면, 본 발명의 점진적 스트림 데이터 처리 시스템 및 방법이 적용되는 분산 메모리 환경은 하나의 마스터 노드와 여러 개의 슬레이브 노드로 구성된다. 마스터 노드에서는 전체 슬레이브 노드를 관리하며 슬레이브 노드에서는 실제 데이터가 처리되고 저장된다. 슬레이브에서 데이터가 처리되면 처리 결과는 노드의 메모리에 저장하며 해당 정보는 마스터 노드에서 관리한다. 또한 마스터 노드에서 각 슬레이브 노드의 성능 및 실시간 부하 상태를 확인한다. 작업 지연을 계산하여 작업이 많은 노드를 피하고 데이터 처리 시간 계산을 통한 노드의 성능을 고려하여 데이터를 할당한다. 데이터의 처리 결과는 메모리에 저장하고 동일한 데이터가 입력되었을 때 중복 처리하지 않고 처리 결과를 메모리에서 가져와 재사용하여 데이터 처리 시간을 감소시킨다. 기존 데이터와 새로 입력되는 스트림 데이터는 해시 키 값을 비교하여 메모리에 기존에 처리 결과가 저장되어 있는지 확인한다. 해시 키 값 비교 과정에서 동일한 데이터가 없다면 데이터를 노드에 할당하여 처리하며 처리된 결과는 병합되어 최종 출력된다.
도 2는 도 1과 같은 분산 인-메모리 환경에 적용되는 본 발명에 따른 데이터 스트림 처리 시스템의 전체 구성을 개략적으로 나타낸 블록도이다.
도 2에 도시된 바와 같이, 본 발명에 따른 데이터 스트림 처리 시스템은
처음 데이터가 입력되면 데이터의 처리 결과를 메모리에 저장하게 하고 다음 데이터가 입력되면 데이터를 비교하여 중복된 데이터의 경우 기존에 처리된 결과를 메모리에서 불러와 재사용하는 데이터 처리 모듈(110), 각 노드의 부하 및 성능을 고려하여 처리할 데이터를 노드에 분배하는 데이터 분배 모듈(120) 및 데이터의 처리 결과를 메모리에 저장하는 데이터 저장 모듈(130)을 포함하여 이루어질 수 있다.
먼저, 데이터 처리 모듈(110)은 처음 데이터가 입력되면 데이터의 처리 결과를 메모리에 저장하게 하고 다음 데이터가 입력되면 데이터를 비교하여 중복된 데이터의 경우 기존에 처리된 결과를 메모리에서 불러와 재사용함으로써 중복된 데이터의 중복 처리를 피해 데이터의 처리 속도 및 연산 비용을 감소시켜 실시간 처리가 가능하다.
보다 구체적으로, 데이터 처리 모듈(110)은 처음으로 스트림 데이터가 입력되면 해시 키 값을 생성하여 임시 큐에 <키, 값> 형태로 저장한다. 이때 입력 데이터의 키는 해시 키(Hash key)이며 데이터는 값(value)에 해당한다. 데이터는 도 5를 참조하여 보다 상세하게 설명될 데이터 분배 모듈(120)에 의해 각 노드에 할당되어 처리되고, 처리 결과는 도 6 및 도 7을 참조하여 보다 상세하게 설명될 데이터 저장 모듈(130)에 의해 메모리에 저장하며 데이터는 마스터 노드에 의해 관리된다. 그 후, 데이터 처리 모듈(110)은 다음 스트림 데이터가 입력되면 해시 키 값을 생성하여 임시 큐에 저장한 후 마스터 노드에 있는 해시 키 정보와 데이터 비교과정을 거친다. 해시 키 값이 동일하면 데이터 처리 모듈(110)은 같은 데이터로 판단하고 해당 결과가 저장되어 있는 메모리에서 데이터를 불러와 재사용한다. 동일한 해시 키가 존재하지 않는다면 데이터는 데이터 분배 모듈(120)에 의해 노드에 할당되어 처리된다. 즉, 본 발명의 데이터 처리 모듈(110)은 점진적인 처리를 위해 해시 키 값을 통해 데이터를 비교한 후 그 결과에 따라 데이터 스트림을 처리한다.
도 3은 데이터 처리 모듈이 본 발명의 바람직한 실시예에 따라 분산 인-메모리 환경에서 입력 데이터를 비교하는 과정을 나타낸다.
도 3에 도시된 바와 같이, 데이터 처리 모듈(110)은 스트림 데이터가 입력되면 해시 키 값을 생성하고 임시 큐에 <키, 값> 형태로 저장한다. 처음 입력된 스트림 데이터의 해시 키 값이 3d9417a4b...이고 다음 입력된 스트림 데이터의 해시 키 값이 45e3809bc...인 경우, 데이터 처리 모듈(110)은 임시 큐에 해당 데이터를 저장한 후 마스터 노드에 저장되어 있는 해시 키 값 비교를 통해 기존에 처리된 결과가 저장되어 있는 노드를 확인한다. 마스터 노드에 저장되어 있는 정보를 보면 3d9417a4b...의 해시 키 값의 데이터 처리 결과는 1번 노드에 저장되어 있으며 45e3809bc...의 해시 키 값의 데이터 처리 결과는 4번 노드에 저장되어 있음을 확인할 수 있다. 3d9417a4b...의 해시 키 값의 데이터를
Figure 112016041847410-pat00001
이라고 하고 45e3809bc...의 해시 키 값의 데이터를
Figure 112016041847410-pat00002
라고 한다면, 데이터 처리 모듈(110)은 처리 결과가 저장되어 있는 노드를 확인한 후 해당 노드에 접근하여 필요한 데이터를 불러와 처리하며 이를 통해 점진적인 데이터 처리를 수행한다.
도 4는 데이터 처리 모듈이 본 발명의 바람직한 실시예에 따라 분산 인-메모리 환경에서 점진적으로 데이터를 처리하는 과정을 나타낸다.
도 4를 참조하면, 초기 입력 데이터로 시간(
Figure 112016041847410-pat00003
)에 4개의 데이터(
Figure 112016041847410-pat00004
,
Figure 112016041847410-pat00005
,
Figure 112016041847410-pat00006
,
Figure 112016041847410-pat00007
)가 입력되고 그 처리 결과가 저장되어 있지 않으며 다음 시간(
Figure 112016041847410-pat00008
)에 2개의 데이터가 처음과 동일한 데이터(
Figure 112016041847410-pat00009
,
Figure 112016041847410-pat00010
,
Figure 112016041847410-pat00011
,
Figure 112016041847410-pat00012
)가 입력되어 처리 결과의 재사용이 필요하다. 도 4a에 도시된 바와 같이, 처음 시간(
Figure 112016041847410-pat00013
)에 데이터(
Figure 112016041847410-pat00014
,
Figure 112016041847410-pat00015
,
Figure 112016041847410-pat00016
,
Figure 112016041847410-pat00017
)가 입력되면, 데이터는 도 5를 참조하여 보다 상세하게 설명될 데이터 분배 모듈(120)에 의해 각 노드에 할당되어 처리된다.
Figure 112016041847410-pat00018
,
Figure 112016041847410-pat00019
,
Figure 112016041847410-pat00020
,
Figure 112016041847410-pat00021
의 처리 결과를 각각
Figure 112016041847410-pat00022
,
Figure 112016041847410-pat00023
,
Figure 112016041847410-pat00024
,
Figure 112016041847410-pat00025
라고 하면, 데이터가 처리된 이후 처리 결과를 재사용하기 위해 도 6 및 도 7을 참조하여 보다 상세하게 설명될 데이터 저장 모듈(130)에 의해 메모리에 결과 값을 저장한다. 그 이후 시간(
Figure 112016041847410-pat00026
)에 데이터(
Figure 112016041847410-pat00027
,
Figure 112016041847410-pat00028
,
Figure 112016041847410-pat00029
,
Figure 112016041847410-pat00030
)가 입력되면, 데이터 처리 모듈(110)은 도 4b에 도시된 바와 같이
Figure 112016041847410-pat00031
,
Figure 112016041847410-pat00032
는 기존에 처리된 데이터이며 처리 결과가 메모리에 저장되어 있기 때문에 다시 처리하지 하지 않고 처리 결과인
Figure 112016041847410-pat00033
,
Figure 112016041847410-pat00034
를 메모리에서 불러와 중복 처리를 피한다. 하지만
Figure 112016041847410-pat00035
,
Figure 112016041847410-pat00036
는 기존에 처리되지 않았기 때문에 메모리에 처리 결과가 없으므로 데이터 분배 모듈(120)에 의해 노드에 할당되어 처리된다.
다음으로, 데이터 분배 모듈(120)은 각 노드의 작업 지연을 실시간으로 파악하여 어느 노드에 부하가 발생하는지 확인하고 각 노드의 처리 시간을 계산하여 노드의 성능을 파악하고, 각 노드의 부하 및 성능을 고려하여 처리할 데이터를 노드에 분배한다.
도 5는 본 발명의 점진적 스트림 데이터 처리 시스템이 적용되는 분산 인-메모리 환경에서의 마스터 노드와 슬레이브 노드에 대한 예시적인 시나리오를 나타낸다.
도 5를 참조하면, 본 발명의 점진적 스트림 데이터 처리 시스템이 적용되는 예시적인 분산 인-메모리 환경은 한 개의 마스터 노드와 4개의 슬레이브 노드로 구성되어 있으며 마스터 노드에서는 각 슬레이브 노드의 정보를 가지고 있다. 노드 1에는 처리해야 할 작업이 4개가 있으며 노드 2는 1개, 노드 3은 3개, 노드 4는 2개의 처리해야 할 작업을 가지고 있다. 또한 성능을 보면 1번 노드의 성능이 가장 좋은 것을 확인할 수 있으며 4번 노드의 성능이 가장 좋지 않은 것을 확인 할 수 있다. 본 발명의 데이터 분배 모듈(120)은 이러한 정보를 마스터 노드에서 실시간으로 확인한다.
그리고, 데이터 분배 모듈(120)은 라운드 로빈 스케쥴링 기법으로 데이터를 각 노드에 할당한다. 데이터가 할당되어 처리되면 데이터 분배 모듈(120)에서는 데이터의 처리 속도를 확인하고 작업 지연이 있어 부하가 생기는 노드를 확인한다. 노드의 처리 속도는 데이터가 처리되면 각 노드에서 일정 데이터 단위가 처리되는데 걸리는 평균 시간을 계산한다. 수학식 1은 이미 완료된 작업의 처리 시간을 이용하여 평균 작업의 처리 시간을 측정하는 식이다. i 는 노드, k 는 작업을 의미하며, ATi 는 평균 작업 완료 시간, Ttaski는 작업이 처리 되는 시간을 나타낸다.
Figure 112016041847410-pat00041
노드 작업 지연으로 생긴 부하는 각 노드에 실시간으로 작업을 확인하여 작업 지연이 적은 노드에 데이터를 할당해야 한다. 수학식 2는 i 노드에서 할당된 작업의 수를 측정하는 식이다.
Figure 112016041847410-pat00043
마지막으로 작업 할당을 위해서 데이터 분배 모듈(120)은 메모리에서 저장된 처리 결과를 재사용하기 위해 데이터를 받아오는데 걸리는 네트워크 시간을 측정해야 한다. 처리 결과를 재사용하기 위해 데이터를 받아오는데 걸리는 시간을 Tit 라고 한다. 수학식 3의 JS는 노드의 성능, 실시간 부하, 네트워크 시간을 종합적으로 나타낸 것이다.
Figure 112017019727828-pat00097
한편, 본 발명의 분산 인-메모리 환경에서는 인-메모리 기반 처리로 휘발성의 문제가 있어 데이터 처리 모듈(110)은 데이터의 복제본을 만들어 놓는다. 이 복제본은 데이터 처리로도 사용될 수 있다. 이에, 데이터 분배 모듈(120)은 기존 노드에 부하가 존재 할 경우 기존 노드와 복제본 노드 비교를 통해 어느 곳에서 작업을 수행하는 것이 효율적인지 판단한다. 기존 노드에서 데이터를 처리하는 시간을 Tα, 복제본 노드에서 데이터를 처리하는 시간을 Trep이라고 할 때 수학식 4를 만족할 경우 복제본 노드에서 처리하며 만족하지 않을 경우 기존 노드에서 데이터를 처리한다. 이때, Tα = Sαi + T, Trep = Srepi + T 이다.
Figure 112017019727828-pat00092
도 6은 데이터 분배 모듈이 본 발명의 바람직한 실시예에 따라 기존 노드와 복제본 노드 비교를 통해 데이터를 분배하는 과정을 나타낸다.
도 6에 도시된 바와 같이, 작업(
Figure 112016041847410-pat00056
)이 노드 1에 할당되었을 때, 노드 1에는 원본 처리결과인
Figure 112016041847410-pat00057
이 저장되어 있고 노드 2에
Figure 112016041847410-pat00058
의 복제본이 메모리에 저장되어 있다. 노드 1에서는 데이터 부하가 많이 발생하여 데이터를 처리하는데 시간 오래 걸리기 때문에 데이터 분배 모듈(120)은 데이터 처리 모듈(110)이 복제본이 있는 노드 2에서 작업(
Figure 112016041847410-pat00059
)의 처리 결과를 불러와 처리하게 한다. 이와 같이, 본 발명의 데이터 분배 모듈(120)은 노드의 작업 지연을 계산하여 노드의 부하를 파악하고 처리 시간을 계산하여 성능을 고려한 잡 스케쥴링 기법을 통해 분산 노드에 데이터를 효과적으로 분배하여 데이터 처리 속도를 향상시킨다.
마지막으로, 데이터 저장 모듈(130)은 LRU(Least Recently Used) 기법을 사용하여 메모리를 관리를 한다. LRU 기법은 최근의 용이 가장 적은 것부터 데이터를 버리는 방식이다. 과거에 사용했던 데이터 중에서 가장 오래된 데이터 순으로 버리게 되는데 메모리에서 삭제한 데이터는 영구적으로 삭제하는 것이 아니라 디스크에 저장해두어 필요한 경우 가져다 쓸 수 있게 한다.
데이터 저장 모듈(130)은 메모리에 데이터를 저장하면 효과적이지만 메모리의 휘발성 문제가 생겨 데이터의 안전성, 낮은 대역폭을 위해 데이터를 복제한다. 첫 번째 복제본은 클라이언트와 같은 노드에 유지한다. 같은 노드에 유지하면 낮은 대역폭의 장점을 가지고 있지만 그 노드에 장애가 발생하였을 때 그 데이터는 손실되게 된다. 두 번째 복제본은 외부 렉에 유지하고 세 번째 복제본은 두 번째와 같은 렉의 다른 노드에 유지한다. 따라서 복제본을 통해 데이터를 잃어버리지 않을 것이다. 또한 본 발명에서는 위에서 설명한 바와 같이 데이터 처리 모듈(110)이 윈도우의 재사용을 위해 메모리에 처리된 데이터를 저장하고 재사용하는데 기존에 처리된 데이터는 데이터 저장 모듈(130)에 의해 각 노드에 저장되어있다. 이때, 데이터 처리 모듈(110)은 저장된 노드에서 데이터를 사용하는 것이 지역성을 만족하기 때문에 가장 효과적인 처리 방법이지만 데이터가 저장되어있는 노드에서 처리가 불가능 할 경우 다른 노드에서 데이터에 접근하여 처리할 수 있다.
도 7은 본 발명의 바람직한 실시예에 따라 복제본 노드를 통해 데이터를 처리하는 과정을 나타낸다.
상술한 데이터 분배 모듈(120)이 데이터(
Figure 112016041847410-pat00060
,
Figure 112016041847410-pat00061
,
Figure 112016041847410-pat00062
,
Figure 112016041847410-pat00063
)를 각 노드에 할당했을 때 노드 4에서
Figure 112016041847410-pat00064
의 데이터를 처리해야 한다. 하지만 노드 3에
Figure 112016041847410-pat00065
의 처리 결과인
Figure 112016041847410-pat00066
가 저장되어 있어 노드 4에서 처리 결과인
Figure 112016041847410-pat00067
를 필요로 하게 된다. 노드 3에 기존 처리 결과인
Figure 112016041847410-pat00068
가 저장되어 있지만 노드 4에서 불러와 사용할 수 있어 메모리의 공유가 가능하다.
그러면, 여기서 상기와 같이 구성된 시스템을 이용한 본 발명의 데이터 스트림 처리 방법에 대해 설명하기로 한다. 이를 상세히 설명하면 다음과 같다.
도 8은 도 1과 같은 분산 인-메모리 환경에 적용되는 본 발명에 따른 데이터 스트림 처리 방법의 전체 흐름을 개략적으로 나타낸 흐름도이다.
도 8에 도시된 바와 같이, 처음 스트림 데이터가 입력되면(단계 S810) 데이터 처리 모듈(110)은 해시 키 값을 생성하고(단계 S820) 데이터 분배 모듈(120)은 데이터 처리를 위해 노드의 부하와 성능을 계산하여 가장 빠른 처리를 수행할 것으로 예상되는 노드에 데이터를 우선 할당한다(S830). 데이터를 할당하여 각 노드에서 데이터를 처리하면 데이터 저장 모듈(130)은 처리 결과를 메모리에 저장한다(단계 S840).
이후 스트림 데이터가 입력되면(단계 S850) 데이터 처리 모듈(110)은 해시 키 값을 생성하고(단계 S860) 기존에 저장되어 있던 해시 키 값과 비교하여 메모리에 기존에 처리 결과가 저장되어 있는지 확인한다(단계 S870). 단계 S870 판단 결과, 해시 키 값이 동일하면 데이터 처리 모듈(110)은 동일한 데이터가 입력된 것으로 판단하여 메모리에서 처리 결과를 가져와 재사용하여 데이터의 중복 처리를 피한다(단계 S872). 단계 S870 판단 결과, 동일한 해시 키 값이 발견되지 않으면 데이터 분배 모듈(120)에 의해 데이터를 노드에 할당하여 처리하고(단계 S874) 처리된 결과를 데이터 저장 모듈(130)에 의해 저장하며(단계 S876) 처리된 결과들은 병합하여 최종 출력할 수 있다(단계 880).
이상에서 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다.
110; 데이터 처리 모듈
120; 데이터 분배 모듈
130; 데이터 저장 모듈

Claims (5)

  1. 처음 데이터가 입력되면 데이터의 처리 결과를 메모리에 저장하게 하고 다음 데이터가 입력되면 데이터를 비교하여 중복된 데이터의 경우 기존에 처리된 결과를 메모리에서 불러와 재사용하는 데이터 처리 모듈;
    각 노드의 부하 및 성능을 고려하여 처리할 데이터를 노드에 분배하는 데이터 분배 모듈; 그리고
    데이터의 처리 결과를 메모리에 저장하는 데이터 저장 모듈을 포함하며,
    상기 데이터 분배 모듈은 식
    Figure 112017019727828-pat00093
    에 의해 평균 작업 완료 시간을 측정하되, 상기 식에서 i 는 노드, k 는 작업, Ttaski 는 작업이 처리되는 시간을 나타내고, 식
    Figure 112017019727828-pat00094
    에 의해 노드에 할당된 작업의 수를 측정하고, 메모리에서 저장된 처리 결과를 재사용하기 위해 데이터를 받아오는데 걸리는 네트워크 시간 Tit를 측정하며, 식
    Figure 112017019727828-pat00095
    (단,
    Figure 112017019727828-pat00096
    )에 의해 노드의 성능, 실시간 부하, 네트워크 시간을 종합적으로 고려하여 처리할 데이터를 노드에 분배하며,
    이때, ATi는 평균 작업 완료시간, Si는 노드에 할당된 작업의 수, JS는 노드의 성능, 실시간 부하, 네트워크시간을 종합적으로 나타낸 것을 특징으로 하는 분산 환경에서 인-메모리 기반의 점진적 스트림 데이터 처리 시스템.
  2. 제1항에서,
    상기 데이터 처리 모듈은 처음으로 데이터가 입력되면 해시 키 값을 생성하여 임시 큐에 저장하고, 다음 스트림 데이터가 입력되면 해시 키 값을 생성하고 임시 큐에 저장한 후 해당 데이터의 해시 키 값이 임시 큐에 저장된 해시 키 값들 중 하나와 동일한 경우 기존에 처리된 결과를 메모리에서 불러와 재사용하고 해당 데이터의 해시 키 값이 임시 큐에 저장된 어떤 해시 키 값과도 동일하지 않은 경우 상기 데이터 분배 모듈에 의해 할당된 노드에서 데이터가 처리되게 하는 분산 환경에서 인-메모리 기반의 점진적 스트림 데이터 처리시스템.
  3. 삭제
  4. 제1항에서,
    상기 데이터 처리 모듈은 데이터의 복제본을 만들고, 상기 데이터 분배 모듈은 식 Tα < Trep 를 만족할 경우 복제본 노드에서 데이터를 처리하며 만족하지 않을 경우 기존 노드에서 데이터를 처리하되, Tα는 기존 노드에서 데이터를 처리하는 시간으로서, Trep는 복제본 노드에서 데이터를 처리하는 시간인 분산 환경에서 인-메모리 기반의 점진적 스트림 데이터 처리 시스템.
  5. 삭제
KR1020160053652A 2016-05-01 2016-05-01 분산 환경에서 인-메모리 기반의 점진적 스트림 데이터 처리 시스템 및 방법 KR101783770B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160053652A KR101783770B1 (ko) 2016-05-01 2016-05-01 분산 환경에서 인-메모리 기반의 점진적 스트림 데이터 처리 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160053652A KR101783770B1 (ko) 2016-05-01 2016-05-01 분산 환경에서 인-메모리 기반의 점진적 스트림 데이터 처리 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR101783770B1 true KR101783770B1 (ko) 2017-10-11

Family

ID=60139255

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160053652A KR101783770B1 (ko) 2016-05-01 2016-05-01 분산 환경에서 인-메모리 기반의 점진적 스트림 데이터 처리 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101783770B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210004175A (ko) * 2019-07-03 2021-01-13 강원대학교산학협력단 바이너리 베르누이 샘플링의 분산 처리 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101076808B1 (ko) 2003-09-30 2011-10-25 삼성전자주식회사 객체 지향 프로그램의 동적 메모리 관리 방법 및 장치
JP2012242975A (ja) * 2011-05-17 2012-12-10 Nippon Telegr & Teleph Corp <Ntt> 分散並列処理キャッシュ装置及び方法及び資源管理ノード及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101076808B1 (ko) 2003-09-30 2011-10-25 삼성전자주식회사 객체 지향 프로그램의 동적 메모리 관리 방법 및 장치
JP2012242975A (ja) * 2011-05-17 2012-12-10 Nippon Telegr & Teleph Corp <Ntt> 分散並列処理キャッシュ装置及び方法及び資源管理ノード及びプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
최기태 외 5명. ‘분산 메모리 환경에서 부하 분산을 위한 캐시 관리 기법’. 2014 한국정보과학회 제41회 정기총회 및 동계학술발표회, 2014.12., pp.222-224.*
최기태 외 5명. ‘분산 인-메모리 환경에서 부하 분산을 위한 데이터 복제와 이주 기법’. 정보과학회 컴퓨팅의 실제 논문지 제22권 제1호, 2016.01., pp.44-49.*

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210004175A (ko) * 2019-07-03 2021-01-13 강원대학교산학협력단 바이너리 베르누이 샘플링의 분산 처리 시스템
KR102283818B1 (ko) * 2019-07-03 2021-07-29 강원대학교산학협력단 바이너리 베르누이 샘플링의 분산 처리 시스템

Similar Documents

Publication Publication Date Title
KR101885688B1 (ko) 낮은 지연속도 데이터 액세스를 위한 데이터 스트림의 분할
CN104683405B (zh) 在车联网中集群服务器分发地图匹配任务的方法和装置
Bao et al. Managing massive trajectories on the cloud
CN108512672B (zh) 业务编排方法、业务管理方法及装置
US10705872B2 (en) Predictive virtual server scheduling and optimization of dynamic consumable resources to achieve priority-based workload performance objectives
CN106326239A (zh) 分布式文件系统及其文件元信息管理方法
KR101886072B1 (ko) 분산 인 메모리 환경에서 실시간 스트림 데이터 처리를 위한 동적 잡 스케쥴링 시스템 및 방법
CN109196807B (zh) 网络节点以及操作网络节点以进行资源分发的方法
CN113515364B (zh) 一种数据迁移的方法及装置、计算机设备和存储介质
US20130111490A1 (en) Managing resources for maintenance tasks in computing systems
CN107451176B (zh) 数据复制方法及其装置
EP2778921B1 (en) A method and a system for distributed processing of a dataset
US20140214775A1 (en) Scalable data deduplication
KR101783770B1 (ko) 분산 환경에서 인-메모리 기반의 점진적 스트림 데이터 처리 시스템 및 방법
CN105095515A (zh) 支持快速查询Map-Reduce输出结果的分桶方法、装置及设备
Bogatyrev et al. Priority maintenance with replication of wait-critical requests
CN110457307B (zh) 元数据管理系统、用户集群创建方法、装置、设备和介质
CN113127472B (zh) 一种针对大上报量的司机数量实时去重统计的方法及系统
He et al. GLAD: A Grid and Labeling Framework with Scheduling for Conflict-Aware $ k $ k NN Queries
US10255306B2 (en) Deduplicated data processing hierarchical rate control in a data deduplication system
Mahéo et al. Customised shortest paths using a distributed reverse oracle
CN104102557A (zh) 一种基于聚类的云计算平台数据备份方法
US20160147838A1 (en) Receiving node, data management system, data management method and strage medium
EP3807752A1 (en) Volatile account identification and isolation and resource management in distributed data storage systems
CN109951506B (zh) 一种存储集群性能的评估方法及设备

Legal Events

Date Code Title Description
GRNT Written decision to grant