KR20190048790A - 공간 데이터를 분산 처리하는 시스템 및 방법 - Google Patents

공간 데이터를 분산 처리하는 시스템 및 방법 Download PDF

Info

Publication number
KR20190048790A
KR20190048790A KR1020170144004A KR20170144004A KR20190048790A KR 20190048790 A KR20190048790 A KR 20190048790A KR 1020170144004 A KR1020170144004 A KR 1020170144004A KR 20170144004 A KR20170144004 A KR 20170144004A KR 20190048790 A KR20190048790 A KR 20190048790A
Authority
KR
South Korea
Prior art keywords
load
cluster
clusters
spatial
predetermined number
Prior art date
Application number
KR1020170144004A
Other languages
English (en)
Other versions
KR101980699B1 (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 KR1020170144004A priority Critical patent/KR101980699B1/ko
Publication of KR20190048790A publication Critical patent/KR20190048790A/ko
Application granted granted Critical
Publication of KR101980699B1 publication Critical patent/KR101980699B1/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
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/5061Partitioning or combining of resources

Abstract

분산 처리 시스템이 일정 수의 데이터 처리 모듈들을 이용하여 공간 데이터를 분산 처리하는 방법으로서, 특정 지역과 관련된 공간 데이터를 수신하는 단계, 상기 특정 지역을 분할하는 상기 일정 수의 클러스터들을 생성하는 단계, 상기 일정 수의 데이터 처리 모듈들 각각과 상기 일정 수의 클러스터 각각을 대응시키는 단계, 상기 공간 데이터에 포함된 공간 정보들의 상기 특정 지역 내 분포를 기초로, 공간 정보 처리에 예상되는 각 클러스터의 부하를 계산하는 단계, 각 클러스터의 부하를 기초로 인접한 클러스터 간에 인접 영역을 이전하여 각 클러스터의 부하를 조정하는 단계, 그리고 상기 일정 수의 데이터 처리 모듈들 각각에게 대응된 클러스터 내 공간 정보들의 처리를 요청하는 단계를 포함한다.

Description

공간 데이터를 분산 처리하는 시스템 및 방법{System and method for distributed processing spatial data}
본 발명은 공간 데이터를 분산 처리하는 기술에 관한 것이다.
최근 스마트 디바이스들이 급속하게 보급됨에 따라 처리를 요하는 빅데이터들이 실시간으로 생산되고 있고, 빅데이터의 대부분은 공간 정보를 지닌 데이터 즉, 공간 데이터를 포함한다.
생산된 대규모의 공간 데이터를 실시간으로 처리하기 위해, 분산 처리 시스템이 주로 활용된다. 분산 처리 시스템은 데이터 병렬화를 이용하여, 실시간으로 입력되는 공간 데이터를 다수의 하위 데이터로 나누고, 하위 데이터를 클러스터 내 작업자들에게 분배하여 병렬적으로 처리한다. 데이터 병렬화에서, 하위 데이터로 나누는 방법을 그룹핑 스키마(Grouping scheme)라고 지칭하며, 일반적으로 각각의 데이터의 대표 속성값인 키(Key)를 기준으로 나누는 키 그룹핑(Key Grouping) 방식이 주로 사용된다.
다만, 공간 데이터를 기존의 분산 처리 시스템으로 처리하는 경우, 공간 데이터는 실시간으로 변화하고 편중된 분포를 보이므로, 공간 정보가 집중된 셀을 처리하는 작업자에게 과도한 부하가 가해진다. 이러한 현상으로 인해 분산 처리 시스템 내 병목현상이 발생하고, 이는 결국 시스템 전체의 성능 및 속도를 저하시킨다.
이를 해결하기 위해, 키 그룹핑 방식에서 편중된 키 분포에 대응하기 위한 방안들이 제시된바 있다. 그러나, 이들은 공간 데이터의 특성을 감안하지 않아 직접적인 적용이 어려운 문제점이 있다.
본 발명이 해결하고자 하는 과제는 공간 데이터에 포함된 공간 정보의 분포에 따라 공간 데이터를 분산 처리하는 시스템 및 방법을 제공하는 것이다.
본 발명의 한 실시예에 따른 분산 처리 시스템이 일정 수의 데이터 처리 모듈들을 이용하여 공간 데이터를 분산 처리하는 방법은 특정 지역과 관련된 공간 데이터를 수신하는 단계, 상기 특정 지역을 분할하는 상기 일정 수의 클러스터들을 생성하는 단계, 상기 일정 수의 데이터 처리 모듈들 각각과 상기 일정 수의 클러스터 각각을 대응시키는 단계, 상기 공간 데이터에 포함된 공간 정보들의 상기 특정 지역 내 분포를 기초로, 공간 정보 처리에 예상되는 각 클러스터의 부하를 계산하는 단계, 각 클러스터의 부하를 기초로 인접한 클러스터 간에 인접 영역을 이전하여 각 클러스터의 부하를 조정하는 단계, 그리고 상기 일정 수의 데이터 처리 모듈들 각각에게 대응된 클러스터 내 공간 정보들의 처리를 요청하는 단계를 포함한다.
상기 각 클러스터의 부하를 조정하는 단계는 전체 공간 정보 처리에 예상되는 전체 부하를 상기 일정 수로 나눠 평균 부하를 결정하는 단계, 그리고 각 클러스터의 부하가 상기 평균 부하보다 작거나 같아지도록 인접한 클러스터 간에 인접 영역을 이전하여 각 클러스터의 부하를 조정하는 단계를 포함한다.
상기 일정 수의 클러스터들을 생성하는 단계는 상기 공간 데이터에 포함된 공간 정보들의 상기 특정 지역 내 분포에 따라 상기 특정 지역을 복수의 단위 셀들로 분할하는 단계, 그리고 상기 복수의 단위 셀들을 인접한 단위 셀끼리 클러스터링하여 상기 특정 지역을 분할하는 상기 일정 수의 클러스터들을 생성하는 단계를 포함하고, 상기 각 클러스터의 부하를 조정하는 단계는 전체 공간 정보 처리에 예상되는 전체 부하를 상기 일정 수로 나눠 평균 부하를 결정하는 단계, 그리고 각 클러스터의 부하가 상기 평균 부하보다 작거나 같아지도록 인접한 클러스터 간에 적어도 하나의 단위 셀을 이전하여 각 클러스터의 부하를 조정하는 단계를 포함한다.
분산 처리 시스템이 일정 수의 데이터 처리 모듈들을 이용하여 공간 데이터를 분산 처리하는 방법은 미리 설정된 주기마다 각 데이터 처리 모듈의 부하 불균형 정도를 결정하는 단계, 그리고 상기 불균형 정도가 미리 설정된 임계치를 초과하는 경우, 인접한 클러스터 간에 인접 영역을 이전하여 각 클러스터의 부하를 재조정하는 단계를 더 포함한다.
본 발명의 한 실시예에 따른 공간 데이터를 일정 수의 데이터 처리 모듈을 이용하여 분산 처리하는 분산 처리 시스템은 특정 지역과 관련된 공간 데이터를 수신하고, 상기 공간 데이터에 포함된 공간 정보들의 상기 특정 지역 내 분포를 분석하는 공간 정보 분포 분석부, 그리고 상기 공간 정보들의 특정 지역 내 분포를 기초로 상기 특정 지역을 분할하는 상기 일정 수의 클러스터들을 생성하고, 상기 일정 수의 데이터 처리 모듈 각각과 상기 일정 수의 클러스터 각각을 대응시키는 공간 데이터 분할부를 포함하며, 상기 데이터 처리 모듈은 대응하는 클러스터 내 공간 정보들을 각각 처리한다.
상기 공간 정보 분포 분석부는 적어도 하나의 공간 정보들을 포함하는 복수의 단위 셀들로 상기 특정 지역을 분할하고, 상기 복수의 단위 셀들의 분포를 통해 상기 공간 정보들의 특정 지역 내 분포를 분석한다.
상기 공간 데이터 분할부는 전체 공간 정보 처리에 예상되는 전체 부하를 상기 일정 수로 나눠 평균 부하를 결정하고, 상기 복수의 단위 셀들을 인접한 단위 셀끼리 클러스터링하여 상기 특정 지역을 분할하는 상기 일정 수의 클러스터들을 생성하고, 각 클러스터 내 공간 정보 처리에 예상되는 각 클러스터의 부하가 상기 평균 부하보다 작거나 같아지도록 인접한 클러스터 간에 적어도 하나의 단위 셀을 이전한다.
공간 데이터를 일정 수의 데이터 처리 모듈을 이용하여 분산 처리하는 분산 처리 시스템은 부하 불균형 결정부를 더 포함하고, 상기 부하 불균형 결정부는 미리 설정된 주기마다 각 데이터 처리 모듈의 부하 불균형 정도를 결정하고, 상기 불균형 정도가 미리 설정된 임계치를 초과하는 경우, 인접한 클러스터 간에 적어도 하나의 단위 셀을 이전하여 각 클러스터의 부하를 재조정한다.
본 발명에 따르면, 시스템에 입력되는 공간 데이터에 포함된 공간 정보의 분포에 대응하여 공간 데이터를 분산 처리함으로써, 분산 처리 시스템 내 부하 불균형 정도를 효과적으로 감소시킨다.
본 발명에 따르면, 분산 처리 시스템의 부하 균형도가 향상됨으로써, 시스템의 성능을 최대한 활용할 수 있게 되는바, 시간당 처리량을 증대시키고 처리 지연 시간을 감소시킨다.
도 1은 본 발명의 실시예에 따른 분산 처리 시스템의 구조도이다.
도 2는 본 발명의 실시예에 따른 분산 처리 시스템이 공간 데이터를 분산 처리하는 방법을 나타낸 도면이다.
도 3은 본 발명의 실시예에 따른 공간 데이터와 관련된 특정 지역을 공간 정보에 따라 복수의 셀로 분할하는 방법을 나타낸 도면이다.
도 4는 본 발명의 실시예에 따른 클러스터 간에 단위 셀 이전 작업을 수행하는 예시적인 방법을 나타낸 도면이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 도면을 참조로 하여 본 발명의 실시예에 따른 분산 처리 시스템 및 분산 처리 방법에 대해 설명한다.
도 1은 본 발명의 실시예에 따른 분산 처리 시스템의 구조도이다.
도 1을 참고하면, 분산 처리 시스템(100)은 공간 정보 분포 분석부(110), 공간 데이터 분할부(120), 분산 처리부(130) 및 부하 불균형 결정부(140)를 포함한다.
공간 정보 분포 분석부(110)는 특정 지역과 관련된 공간 데이터를 수신하고, 공간 데이터에 포함된 공간 정보들의 특정 지역 내 분포를 분석한다. 공간 데이터는 빅데이터에 포함된 데이터 스트림을 지칭할 수 있고, 본 발명의 실시예에서는 빅데이터의 형태나 빅데이터를 입력하는 입력 수단을 어느 하나로 한정하여 설명하지 않는다.
구체적으로, 공간 정보 분포 분석부(110)는 공간 데이터에 포함된 공간 정보에 따라 특정 지역 그리드에 분할 기법을 적용하여 특정 지역을 적어도 하나의 공간 정보를 포함하는 복수의 단위 셀들로 분할하고, 복수의 단위 셀들의 분포를 통해 공간 정보의 분포를 분석한다.
예를 들면, 공간 정보 분포 분석부(110)는 공간 데이터에 대한 특정 지역 그리드에 공간 정보를 기준으로 쿼드트리(Quad tree)를 적용하고, 계층적으로 분할된 노드들이 BH 알고리즘(Barnes and Hut algorithm)의 조건을 만족할 때까지 리프 노드(Leaf node)들을 재귀적으로 판별하여 그룹화 할 수 있다. 공간 정보에 따라 특정 지역을 복수의 단위 셀들로 분할하는 방법은 도 3에서 구체적으로 설명한다.
최종적으로 결정된 복수의 노드들은 복수의 단위 셀을 의미하며, 단위 셀 각각은 적어도 하나의 공간 정보를 포함한다. 예를 들면, 단위 셀 각각이 모두 동일한 공간 정보를 포함하도록 분할 기법이 적용될 수 도 있고, 공간 정보를 처리하는데 요구되는 부하가 균일하도록 특정 지역 그리드에 분할 기법이 적용될 수 도 있다.
분할 과정이 공간 정보를 기준으로 수행되는 바, 최종적으로 결정된 복수의 노드들의 분포, 즉, 복수의 단위 셀의 분포는 공간 데이터에 포함된 공간 정보의 분포를 나타낼 수 있다.
공간 데이터 분할부(120)는 공간 정보들의 특정 지역 내 분포를 기초로 특정 지역을 분할하는 일정 수의 클러스터들을 생성한다.
구체적으로, 공간 데이터 분할부(120)는 공간 데이터에 포함된 전체 공간 정보를 처리하는데 필요한 전체 부하(L)를 분산 처리부(130)의 복수의 분할 데이터를 각각 분산 처리하는 복수의 데이터 처리 모듈의 수(N)으로 나눠, 공간 데이터에 대한 평균 부하(Lavg)를 결정한다. 즉, 평균 부하(Lavg)는 수학식 1과 같이 표현될 수 있다.
[수학식 1]
Lavg=L/N
또한, 공간 데이터 분할부(120)는 복수의 단위 셀들을 인접한 단위 셀끼리 클러스터링하여 특정 지역을 분할하는 일정 수의 클러스터들을 생성한다.
예를 들면, 공간 데이터 분할부(120)는 복수의 단위 셀 각각을 샘플링하여 초기 중심점들을 추출하고, 단위 셀 각각과 추출된 초기 중심점을 기반으로 k-Means 클러스터링을 수행하여 복수의 단위 셀들을 그룹화함으로써, 적어도 하나 이상의 단위 셀을 포함하는 일정 수의 클러스터들을 생성할 수 있다. k-Means 클러스터링을 수행하여 데이터를 클러스터링하는 방법은 이미 알려진 사항으로, 본 발명의 실시예에서는 상세한 설명을 생략한다.
이 때 생성된 클러스터들은 공간적으로 인접한 단위 셀들을 최적으로 묶어주는 공간 지역성 조건은 잘 만족할 수 있으나, 각 클러스터에 포함된 공간 정보의 수가 균일하지 않아 부하 불균형 문제를 야기할 수 있다.
따라서, 공간 데이터 분할부(120)는 각 클러스터 내 공간 정보 처리에 예상되는 각 클러스터의 부하가 평균 부하보다 작거나 같아지도록 인접한 클러스터 간에 적어도 하나의 단위 셀을 이전한다.
구체적으로, 공간 데이터 분할부(120)는 특정 클러스터의 부하가 평균 부하보다 큰 경우, 상기 특정 클러스터보다 부하가 작은 최인접 클러스터로 양 클러스터간 최인접 단위 셀을 이전한다.
반대로, 특정 클러스터의 부하가 평균 부하보다 작은 경우, 상기 특정한 클러스터보다 부하가 큰 최인접 클러스터에서 양 클러스터간 최인접 단위 셀을 이전받는다.
공간 데이터 분할부(120)는 각 클러스터들의 부하가 평균 부하보다 작거나 같아질 때까지, 부하가 높은 클러스터 순으로, 상기 작업을 반복 수행할 수 있다.
클러스터 간에 단위 셀 이전 작업을 수행하는 예시적인 방법은 도 4를 통해 설명한다.
공간 데이터 분할부(120)는 단위 셀 이전 작업이 완료된 일정 수의 클러스터 각각을 분산 처리부(130) 내 일정 수의 데이터 처리 모듈 각각과 대응시킨다.
분산 처리부(130)는 복수의 데이터 처리 모듈을 이용하여 각 데이터 처리 모듈에 대응하는 클러스터를 각각 분산 처리한다.
구체적으로, 분산 처리부(130)는 공간 정보를 처리하는 작업자(worker)를 분산 처리 모듈로서 포함할 수 있으며, 상기 작업자를 통해 분할된 복수의 클러스터들을 각각 처리한다.
부하 불균형 결정부(140)는, 공간 데이터가 1차적으로 분산 처리된 이후, 분산 처리부(130)가 기존에 결정된 복수의 클러스터들로서 시스템(100)에 입력되는 공간 데이터를 지속적으로 분산 처리할 때, 미리 설정된 시간 마다 분산 처리부(130)의 복수의 데이터 처리 모듈의 부하 불균형 정도를 결정한다.
구체적으로, 부하 불균형 결정부(140)는 수학식 2를 이용하여, 복수의 데이터 처리 모듈의 부하 불균형 정도를 결정할 수 있다.
[수학식 2]
LI=(MAX(Li)-Lavg)/L
부하 불균형(LI)은 분산 처리부(130) 내 복수의 데이터 처리 모듈의 부하 중 최대 부하(MAX(Li))에서 평균 부하(Lavg)를 뺀 값을 공간 데이터에 포함된 전체 공간 정보를 처리하는데 필요한 전체 부하(L)로 나눈 값으로 정의될 수 있다.
또한, 부하 불균형 결정부(140)는 부하 불균형 정도가 미리 설정된 임계치를 초과하는 경우, 인접한 클러스터 간에 적어도 하나의 단위 셀을 이전하여 각 클러스터의 부하를 재조정한다.
한 실시예에서, 부하 불균형 결정부(140)는 부하 불균형 정도가 미리 설정된 임계치를 초과하는 경우, 공간 데이터 분할부(120)에 클러스터 재설정을 요청할 수 있고, 이 경우 공간 데이터 분할부(120)는 새로운 평균 부하를 결정하고 각 클러스터의 부하가 새로운 평균 부하에 근접하도록 클러스터 간 단위 셀 이전 작업을 재수행할 수 있다.
다른 실시예에서, 부하 불균형 결정부(140)는 부하 불균형 정도가 미리 설정된 임계치를 초과하는 경우, 공간 정보 분포 분석부(110)에 공간 정보의 재분석을 요청할 수 있으며, 이 경우 공간 정보 분포 분석부(110) 및 공간 데이터 분할부(120)는 새로운 공간 정보에 기초하여 상기 작업을 반복 수행할 수 있다.
또한, 분산 처리부(130)는 데이터 처리 모듈을 이용하여 재결정된 복수의 클러스터들을 각각 분산 처리한다.
도 2는 본 발명의 실시예에 따른 분산 처리 시스템이 공간 데이터를 분산 처리하는 방법을 나타낸 도면이다.
도 2를 참고하면, 분산 처리 시스템(100)은 특정 지역과 관련된 공간 데이터를 수신하고(S100), 특정 지역을 분할하는 일정 수의 클러스터들을 생성한다(S101).
한 실시예에서, 분산 처리 시스템(100)은 특정 지역을 모두 동일한 크기의 클러스터들로 분할하거나, 각각 다른 크기의 클러스터들로 분할하여 일정 수의 클러스터들을 생성할 수 있으며, 어느 한 방법에 한정되지 않는다.
다른 실시예에서, 분산 처리 시스템(100)은 공간 데이터에 포함된 공간 정보들의 특정 지역 내 분포에 따라 특정 지역을 복수의 단위 셀들로 분할하고, 복수의 단위 셀들을 인접한 단위 셀끼리 클러스터링하여 특정 지역을 분할하는 일정 수의 클러스터들을 생성할 수 있다.
또한, 분산 처리 시스템(100)은 공간 데이터에 포함된 공간 정보를 처리하는데이터 처리 모듈들과 클러스터를 각각 대응시킨다(S103).
예를 들면, 분산 처리 시스템(100)은 클러스터의 크기와 무관하게 데이터 처리 모듈과 동일한 수의 클러스터로 특정 지역을 분할하고, 일대일 대응된 데이터 처리 모듈과 클러스터를 각각 대응시킬 수 있다.
분산 처리 시스템(100)은 공간 데이터에 포함된 공간 정보들의 특정 지역 내 분포를 기초로, 공간 정보 처리에 예상되는 각 클러스터의 부하를 계산한다(S105).
도 2에서는 단계 S105가 S103 이후에 수행되는 것으로 도시되었으나, S101 단계에서 클러스터가 생성된 이후 단계 S103 이전에 수행되어도 무방하다.
분산 처리 시스템(100)은 각 클러스터의 부하를 기초로 인접한 클러스터 간에 인접 영역을 이전하여 각 클러스터의 부하를 조정한다(S107).
구체적으로, 분산 처리 시스템(100)은 전체 공간 정보 처리에 예상되는 전체 부하를 일정 수로 나눠 평균 부하를 결정한다.
이 후, 분산 처리 시스템(100)은 각 클러스터의 부하가 평균 부하보다 작거나 같아지도록 인접한 클러스터 간에 인접 영역을 이전하여 각 클러스터의 부하를 조정한다.
예를 들면, 분산 처리 시스템(100)은 각 클러스터의 부하가 평균 부하에 근접하도록 인접 클러스터 간에 공간 정보를 상호 이전하여 각 클러스터의 부하를 조정할 수 있다.
또한, 특정 지역을 복수의 단위 셀들로 분할한 예시에서, 분산 처리 시스템(100)은 각 클러스터의 부하가 평균 부하보다 작거나 같아지도록 인접한 클러스터 간에 적어도 하나의 단위 셀을 이전하여 각 클러스터의 부하를 조정할 수 있다.
분산 처리 시스템(100)은 각 클러스터의 부하 조정이 완료되면, 일정 수의 데이터 처리 모듈들 각각에게 대응된 클러스터 내 공간 정보들의 처리를 요청한다(S109).
공간 데이터가 분산 처리된 이후, 분산 처리 시스템(100)은 각 데이터 처리 모듈의 부하 불균형(LI, Load Imbalance) 정도를 결정한다(S111).
한 실시예에서, 분산 처리 시스템(100)은 미리 설정된 주기마다 각 데이터 처리모듈의 부하 불균형 정도를 결정할 수 있다.
다른 실시예에서, 분산 처리 시스템(100)은 새로운 공간 정보가 시스템(100)에 입력될 때마다 각 데이터 처리 모듈의 부하 불균형 정도를 결정할 수 있다.
또 다른 실시예에서, 분산 처리 시스템(100)은 공간 데이터에 포함된 공간 정보의 분포에 변화가 있는 경우에 각 데이터 처리 모듈의 부하 불균형 정도를 결정할 수 있다.
분산 처리 시스템(100)이 부하 불균형 정도를 결정하는 방법은 도 1에서 설명하였으므로, 도 2에서는 그 설명을 생략한다.
또한, 분산 처리 시스템(100)은 결정된 부하 불균형 정도가 미리 설정된 임계치를 초과하는지 결정한다(S113).
만일 결정된 부하 불균형 정도가 미리 설정된 임계치를 초과하는 경우, 분산 처리 시스템(100)은 단계 S107에서 결정된 각 클러스터 간에 인접 영역을 이전하여 각 클러스터의 부하를 재조정한다(S115). 이 경우, 분산 처리 시스템(100)은 전체 공간 정보를 처리하는데 필요한 부하를 상기 복수의 분산 처리 모듈의 수로 나눠 평균 부하를 재결정하고, 각 클러스터에 포함된 공간 정보를 처리하는데 필요한 부하가 평균 부하보다 작거나 같아지도록 단계 S107에서 결정된 클러스터들 중 인접한 클러스터 간에 단위 셀 이전 작업을 재수행한다. 또한, 분산 처리 시스템(100)은 복수의 데이터 처리 모듈들에게 각각에 대응하는 클러스터 내 공간 정보를 처리할 것을 요청한다.
반대로, 결정된 부하 불균형 정도가 미리 설정된 임계치보다 작거나 같은 경우, 분산 처리 시스템(100)은 기존에 설정된 클러스터로서 공간 데이터를 분산 처리한다(S117).
도 3은 본 발명의 실시예에 따른 공간 데이터와 관련된 특정 지역을 공간 정보에 따라 복수의 셀로 분할하는 방법을 나타낸 도면이다.
도 3에서는 쿼드트리 인덱스와 BH 알고리즘을 사용하여 공간 데이터와 관련된 특정 지역을 복수의 단위 셀로 분할하는 방법을 도시하였으나, 반드시 이와 같이 한정되는 것은 아니다.
도 3을 참고하면, 특정 지역 그리드의 루트 노드(root node)부터 BH 알고리즘을 적용한다. 구체적으로, 알고리즘을 적용하는 노드의 폭(s)과 루트 노드의 무게중심으로부터 알고리즘을 적용하는 노드의 무게중심까지의 거리(d)의 비가 일정한 조건을 만족하는지를 검사한다. 이는 수학식 3으로 나타낼 수 있다.
[수학식 3]
s/d < BH Theta
수학식 3에서, BH Theta는 상수로서 BH 알고리즘이 적용되는 분야에 따라 사용자 임의로 설정될 수 있다. 예를 들면, 사용자는 BH Theta를 "1"로 설정할 수 있다.
알고리즘을 적용한 노드가 수학식 3의 조건을 만족하는 경우, 해당 노드를 하나의 단위 셀로 정의한다. 만일 조건을 만족하지 않는 경우, 하위 노드들에 대해 상기 조건을 만족할 때까지 재귀적으로 동일한 작업을 수행한다. 이러한 과정을 거쳐 수학식 3의 조건을 만족하는 복수의 단위 셀들을 결정할 수 있고, 결국 공간 데이터와 관련된 특정 지역을 복수의 단위 셀들로 분할할 수 있다. 이 때, 각각의 단위 셀들은 일정수 이하의 공간 정보를 포함하게 된다.
도 4는 본 발명의 실시예에 따른 클러스터 간에 단위 셀 이전 작업을 수행하는 예시적인 방법을 나타낸 도면이다.
도 4에서, 단위 셀 간은 가는 점선으로 구분되며, 클러스터 간은 굵은 실선으로 구분된다.
도 4를 참고하면, 도 3의 방법으로 결정된 복수의 단위 셀들에 대해 k-Means 클러스터링을 수행하여 복수의 단위 셀들이 그룹화된 복수의 클러스터들을 결정한다. 복수의 클러스터들 각각은 적어도 하나의 단위 셀을 포함하고, 셀의 중복이 없는 집합을 의미한다.
상기 설명한 바와 같이, 최초 결정된 복수의 클러스터들은 공간적으로 인접한 하위 셀들을 최적으로 묶어주는 공간 지역성 조건은 잘 만족할 수 있으나, 각각의 클러스터에 포함된 공간 정보의 수가 균일하지 않아 부하 불균형 문제를 야기할 수 있다. 따라서, 복수의 클러스터들 각각의 부하가 균형화되기 위해선, 클러스터간 단위 셀 이전 작업이 필요하다.
이를 위해, 최초 결정된 클러스터 각각에 포함된 공간 정보를 처리하는데 필요한 부하가 평균 부하보다 작거나 같아지도록, 가장 많은 부하를 가진 클러스터 순으로 검사하여 해당 클러스터의 부하가 평균 부하보다 작거나 같아질 때까지 클러스터 간에 단위 셀 이전 작업을 수행할 수 있다.
예를 들면, 도 4에 도시된 복수의 클러스터들의 초기 세트에서, 가장 많은 부하를 가진 제4 클러스터부터 시작하여 제1 클러스터, 제3 클러스터 및 제2 클러스터 순으로 단위 셀 이전 작업을 수행한다.
이 경우, 각 클러스터는 자신의 부하가 평균 부하보다 큰 경우 자신보다 적은 부하를 가진 최인접 클러스터에 양 클러스터간 최인접 단위 셀을 이전하고, 자신의 부하가 평균 부하보다 작은 경우 자신보다 큰 부하를 가진 최인접 클러스터로부터 양 클러스터간 최인접 단위 셀을 이전받는다.
즉, 제4 클러스터는 제2 클러스터 및 제3 클러스터 중에서 공간 정보를 기준으로 제2 클러스터를 최인접 클러스터로 결정하고, 제2 클러스터에 양 클러스터간 최인접 단위 셀을 이전할 수 있다. 상기 작업은 제4 클러스터의 부하가 평균 부하보다 작거나 같아질 때까지 수행될 수 있다.
제1 클러스터에 대해서도 동일한 작업을 수행하며, 그 결과 제2 클러스터로 하나의 단위 셀이 이전하게 된다.
제3 클러스터의 경우, 자신의 부하가 평균 부하보다 작으므로 자신보다 부하가 큰 클러스터인 제2 클러스터와 제4 클러스터 중에서 공간 정보를 기준으로 제2 클러스터를 최인접 클러스터로 결정하고, 제2 클러스터로부터 양 클러스터간 최인접 단위 셀을 이전받는다. 상기 작업은 제3 클러스터의 부하가 평균 부호에 같아질 때까지 수행될 수 있다.
제2 클러스터의 경우 상기 이전 작업으로 인해 평균 부하와 동일한 부하를 갖게 된바, 제2 클러스터에 대해서는 키 이전 작업을 수행하지 않는다.
상기 조건에 따라 단위 셀 이전 작업이 수행된 복수의 클러스터들은 인접한 단위 셀들을 균형있게 그룹핑한 복수의 클러스터들의 최종 세트로 정의된다.
본 발명에 따르면, 본 발명에 따르면, 시스템에 입력되는 공간 데이터에 포함된 공간 정보의 분포에 대응하여 공간 데이터를 분산 처리함으로써, 분산 처리 시스템 내 부하 불균형 정도를 효과적으로 감소시킨다. 또한, 본 발명에 따르면, 분산 처리 시스템의 부하 균형도가 향상됨으로써, 시스템의 성능을 최대한 활용할 수 있게 되는바, 시간당 처리량을 증대시키고 처리 지연 시간을 감소시킨다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (8)

  1. 분산 처리 시스템이 일정 수의 데이터 처리 모듈들을 이용하여 공간 데이터를 분산 처리하는 방법으로서,
    특정 지역과 관련된 공간 데이터를 수신하는 단계,
    상기 특정 지역을 분할하는 상기 일정 수의 클러스터들을 생성하는 단계,
    상기 일정 수의 데이터 처리 모듈들 각각과 상기 일정 수의 클러스터 각각을 대응시키는 단계,
    상기 공간 데이터에 포함된 공간 정보들의 상기 특정 지역 내 분포를 기초로, 공간 정보 처리에 예상되는 각 클러스터의 부하를 계산하는 단계,
    각 클러스터의 부하를 기초로 인접한 클러스터 간에 인접 영역을 이전하여 각 클러스터의 부하를 조정하는 단계, 그리고
    상기 일정 수의 데이터 처리 모듈들 각각에게 대응된 클러스터 내 공간 정보들의 처리를 요청하는 단계
    를 포함하는 공간 데이터 분산 처리 방법.
  2. 제1항에서,
    상기 각 클러스터의 부하를 조정하는 단계는
    전체 공간 정보 처리에 예상되는 전체 부하를 상기 일정 수로 나눠 평균 부하를 결정하는 단계, 그리고
    각 클러스터의 부하가 상기 평균 부하보다 작거나 같아지도록 인접한 클러스터 간에 인접 영역을 이전하여 각 클러스터의 부하를 조정하는 단계
    를 포함하는 공간 데이터 분산 처리 방법.
  3. 제1항에서,
    상기 일정 수의 클러스터들을 생성하는 단계는
    상기 공간 데이터에 포함된 공간 정보들의 상기 특정 지역 내 분포에 따라 상기 특정 지역을 복수의 단위 셀들로 분할하는 단계, 그리고
    상기 복수의 단위 셀들을 인접한 단위 셀끼리 클러스터링하여 상기 특정 지역을 분할하는 상기 일정 수의 클러스터들을 생성하는 단계를 포함하고,
    상기 각 클러스터의 부하를 조정하는 단계는
    전체 공간 정보 처리에 예상되는 전체 부하를 상기 일정 수로 나눠 평균 부하를 결정하는 단계, 그리고
    각 클러스터의 부하가 상기 평균 부하보다 작거나 같아지도록 인접한 클러스터 간에 적어도 하나의 단위 셀을 이전하여 각 클러스터의 부하를 조정하는 단계
    를 포함하는 공간 데이터 분산 처리 방법.
  4. 제1항에서,
    미리 설정된 주기마다 각 데이터 처리 모듈의 부하 불균형 정도를 결정하는 단계, 그리고
    상기 불균형 정도가 미리 설정된 임계치를 초과하는 경우, 인접한 클러스터 간에 인접 영역을 이전하여 각 클러스터의 부하를 재조정하는 단계
    를 더 포함하는 공간 데이터 분산 처리 방법.
  5. 공간 데이터를 일정 수의 데이터 처리 모듈을 이용하여 분산 처리하는 분산 처리 시스템으로서,
    특정 지역과 관련된 공간 데이터를 수신하고, 상기 공간 데이터에 포함된 공간 정보들의 상기 특정 지역 내 분포를 분석하는 공간 정보 분포 분석부, 그리고
    상기 공간 정보들의 특정 지역 내 분포를 기초로 상기 특정 지역을 분할하는 상기 일정 수의 클러스터들을 생성하고, 상기 일정 수의 데이터 처리 모듈 각각과 상기 일정 수의 클러스터 각각을 대응시키는 공간 데이터 분할부를 포함하며,
    상기 데이터 처리 모듈은 대응하는 클러스터 내 공간 정보들을 각각 처리하는 분산 처리 시스템.
  6. 제5항에서,
    상기 공간 정보 분포 분석부는
    적어도 하나의 공간 정보들을 포함하는 복수의 단위 셀들로 상기 특정 지역을 분할하고, 상기 복수의 단위 셀들의 분포를 통해 상기 공간 정보들의 특정 지역 내 분포를 분석하는 분산 처리 시스템.
  7. 제6항에서,
    상기 공간 데이터 분할부는
    전체 공간 정보 처리에 예상되는 전체 부하를 상기 일정 수로 나눠 평균 부하를 결정하고,
    상기 복수의 단위 셀들을 인접한 단위 셀끼리 클러스터링하여 상기 특정 지역을 분할하는 상기 일정 수의 클러스터들을 생성하고,
    각 클러스터 내 공간 정보 처리에 예상되는 각 클러스터의 부하가 상기 평균 부하보다 작거나 같아지도록 인접한 클러스터 간에 적어도 하나의 단위 셀을 이전하는 분산 처리 시스템.
  8. 제7항에서,
    부하 불균형 결정부를 더 포함하고,
    상기 부하 불균형 결정부는
    미리 설정된 주기마다 각 데이터 처리 모듈의 부하 불균형 정도를 결정하고,
    상기 불균형 정도가 미리 설정된 임계치를 초과하는 경우, 인접한 클러스터 간에 적어도 하나의 단위 셀을 이전하여 각 클러스터의 부하를 재조정하는 분산 처리 시스템.
KR1020170144004A 2017-10-31 2017-10-31 공간 데이터를 분산 처리하는 시스템 및 방법 KR101980699B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170144004A KR101980699B1 (ko) 2017-10-31 2017-10-31 공간 데이터를 분산 처리하는 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170144004A KR101980699B1 (ko) 2017-10-31 2017-10-31 공간 데이터를 분산 처리하는 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20190048790A true KR20190048790A (ko) 2019-05-09
KR101980699B1 KR101980699B1 (ko) 2019-05-22

Family

ID=66546713

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170144004A KR101980699B1 (ko) 2017-10-31 2017-10-31 공간 데이터를 분산 처리하는 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101980699B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102213817B1 (ko) * 2019-10-16 2021-02-09 주식회사 포스웨이브 인메모리 기반의 분산 처리 시스템에서의 공간 분할 시스템 및 그 방법
CN114500546A (zh) * 2022-01-25 2022-05-13 中国农业银行股份有限公司 基于负载均衡集群的通信消息发送方法、装置及设备
KR20220116976A (ko) * 2021-02-16 2022-08-23 재단법인대구경북과학기술원 바이오 데이터를 분산 병렬 처리하는 방법 및 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013050975A (ja) * 2010-12-28 2013-03-14 Giken Shoji International Co Ltd 地域特性を利用したプロファイリングシステム
JP2015530636A (ja) * 2012-12-20 2015-10-15 中国科学院近代物理研究所 粒子流動のシミュレーションシステム及びその方法
KR101721114B1 (ko) * 2016-06-27 2017-03-30 서울대학교산학협력단 위치정보가 포함된 포인트 데이터를 다축척의 웹 지도상에 클러스터링하기 위하여 격자의 크기를 결정하는 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013050975A (ja) * 2010-12-28 2013-03-14 Giken Shoji International Co Ltd 地域特性を利用したプロファイリングシステム
JP2015530636A (ja) * 2012-12-20 2015-10-15 中国科学院近代物理研究所 粒子流動のシミュレーションシステム及びその方法
KR101721114B1 (ko) * 2016-06-27 2017-03-30 서울대학교산학협력단 위치정보가 포함된 포인트 데이터를 다축척의 웹 지도상에 클러스터링하기 위하여 격자의 크기를 결정하는 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
윤수식 외 1명. 'ASKG: 실시간 공간 빅데이터 스트림 분산 처리를 위한 적응적 공간 키 그룹핑'. 한국정보과학회 2017년 한국컴퓨터종합학술대회 논문집, 2017.06., pp.203-205.* *
정원일. '분산 공간 데이터 스트림 처리에서 질의 영역의 겹침을 고려한 공간 연산 배치 기법'. 한국산학기술학회논문지 제13권 제6호, 2012.06., pp.2713-2719.* *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102213817B1 (ko) * 2019-10-16 2021-02-09 주식회사 포스웨이브 인메모리 기반의 분산 처리 시스템에서의 공간 분할 시스템 및 그 방법
KR20220116976A (ko) * 2021-02-16 2022-08-23 재단법인대구경북과학기술원 바이오 데이터를 분산 병렬 처리하는 방법 및 시스템
CN114500546A (zh) * 2022-01-25 2022-05-13 中国农业银行股份有限公司 基于负载均衡集群的通信消息发送方法、装置及设备
CN114500546B (zh) * 2022-01-25 2024-04-30 中国农业银行股份有限公司 基于负载均衡集群的通信消息发送方法、装置及设备

Also Published As

Publication number Publication date
KR101980699B1 (ko) 2019-05-22

Similar Documents

Publication Publication Date Title
KR101980699B1 (ko) 공간 데이터를 분산 처리하는 시스템 및 방법
EP3092779B1 (en) System and method for zoning in software defined networks
CN111314123B (zh) 一种面向时延和能耗的电力物联网工作负载分配方法
CN112148484B (zh) 一种基于耦合度的微服务在线分配方法与系统
Xu et al. Dynamic deployment of virtual machines in cloud computing using multi-objective optimization
CN104936186B (zh) 基于布谷鸟搜索算法的认知无线电网络频谱分配方法
CN105446979A (zh) 数据挖掘方法和节点
CN102799486A (zh) 一种MapReduce系统中的数据采样和划分方法
CN108572873A (zh) 一种解决Spark数据倾斜问题的负载均衡方法及装置
JP2011170774A (ja) 決定木生成装置、決定木生成方法、及びプログラム
CN104702691A (zh) 分布式负载均衡方法和装置
WO2018166249A1 (zh) 一种网络业务传输的方法及系统
Shi et al. A multipopulation coevolutionary strategy for multiobjective immune algorithm
KR101580202B1 (ko) 대규모 데이터를 위한 서포트 벡터 머신 이진 트리 구조 갱신 장치 및 방법
CN108182243A (zh) 一种基于Spark的分布式进化算法岛模型并行化方法
WO2017148246A1 (zh) 一种数据配置方法和装置
Li et al. GAP: Genetic algorithm based large-scale graph partition in heterogeneous cluster
CN107122242B (zh) 一种有效提升分布式运算性能的大数据均衡切片方法
CN113867736B (zh) 部署方案生成方法及装置
CN112328332B (zh) 一种面向云计算环境的数据库配置优化方法
Sen et al. Distributed training for deep learning models on an edge computing network using shielded reinforcement learning
Guan et al. An airway network flow assignment approach based on an efficient multiobjective optimization framework
US6778999B2 (en) Method for distributing a set of objects in computer application
CN111580968B (zh) 基于雾计算的医疗云平台负载自动均衡方法、系统及介质
Prakash et al. Simplified node decomposition and platoon head selection: a novel algorithm for node decomposition in vehicular ad hoc networks

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