KR20160072305A - 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 시스템 및 방법 - Google Patents

동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 시스템 및 방법 Download PDF

Info

Publication number
KR20160072305A
KR20160072305A KR1020140179105A KR20140179105A KR20160072305A KR 20160072305 A KR20160072305 A KR 20160072305A KR 1020140179105 A KR1020140179105 A KR 1020140179105A KR 20140179105 A KR20140179105 A KR 20140179105A KR 20160072305 A KR20160072305 A KR 20160072305A
Authority
KR
South Korea
Prior art keywords
cluster
data
query
sub
frequency
Prior art date
Application number
KR1020140179105A
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 KR1020140179105A priority Critical patent/KR20160072305A/ko
Publication of KR20160072305A publication Critical patent/KR20160072305A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • G06F16/1794Details of file format conversion
    • 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/23Updating
    • 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/36Creation of semantic tools, e.g. ontology or thesauri

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 시스템 및 방법에 관한 것으로서, 요청된 질의 중에서 질의 빈도수가 높은 질의 데이터를 기반으로 그룹화한 클러스터를 생성하는 클러스터 생성부, 상기 클러스터를 제외한 나머지 데이터에 대해 상기 클러스터에 비해 질의 빈도수가 낮은 질의 데이터를 기반으로 그룹화한 서브 클러스터를 생성하는 서브 클러스터 생성부 및 파티션 크기 및 데이터 사용 빈도수를 고려하여 상기 클러스터와 상기 서브 클러스터를 파티션으로 재분할하는 그래프 분할부를 포함함으로써, 특정 서버에 대한 데이터 집중을 해결하고 서버들간에 효율적인 부하 분산을 지원할 수 있다.

Description

동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 시스템 및 방법{Partitioning System and Method for Distributed Storage of Large Scale Semantic Web Data in Dynamic Environments}
본 발명은 데이터 분할 방법에 관한 것으로, 더욱 상세하게는 빈번하게 사용되는 특정 데이터를 기반으로 클러스터(Cluster)와 서브 클러스터(Sub-cluster)를 생성하고 생성된 클러스터와 서브 클러스터는 분산된 서버의 부하 및 데이터의 크기를 고려하여 다수 서버에 데이터를 적절하게 분배함으로써, 지속적인 데이터 변경 및 추가로 인한 서버에 대한 데이터 집중을 해결하고 서버들간에 효율적인 부하 분산을 수행하는 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 시스템 및 방법에 관한 것이다.
1990년대 월드 와이드 웹(W3:World Wide Web)이 창시된 이래로 웹 기술은 끊임없이 발전되고 있으며 웹 이용자 수와 정보의 양이 증가로 인해 다양한 정보를 웹을 통해 얻을 수 있게 되었다. 일반적인 웹은 정보 리소스간의 하이퍼링크 관계를 통해 사용자의 검색 요구에 적합한 정보를 쉽게 제공할 수 있었지만 정확한 정보 검색과 정보의 의미 있는 해석이 어렵다는 한계에 직면하게 되었다. 즉, 사용자의 다양한 요구를 만족시킬 수 있고 보다 정확한 검색을 지원하는 차세대 웹이 필요하게 되었다. 차세대 웹의 대안으로 시맨틱 웹(Semantic Web)이 각광받고 있다. 시맨틱 웹은 정보들 사이에 의미 있는 관계를 정의하고, 추론 등을 통해 새로운 지식을 생성할 수 있다.
시맨틱 웹에서 메타데이터와 온톨로지가 담당하고 있는 역할이 중요한 만큼 웹 데이터를 형식적으로 기술하기 위해 W3C에서는 RDF(Resource Description Framework)를 제안하였다. RDF는 정보 리소스의 의미와 다른 정보 리소스와의 의미적 관계를 표현할 수 있는 메타데이터를 기술하는 언어로 주어(subject), 서술어(predicate), 목적어(object)의 트리플 구조로 구성된 문장이다. 즉, 주어, 서술어, 목적어를 통해 RDF 문서를 사용하면 컴퓨터가 정보 리소스들 사이의 관계를 파악하여 보다 효율적이고 정확한 데이터를 처리할 수 있다. 최근, 빅데이터 시대의 도래와 함께 시맨틱 웹의 확산으로 RDF 데이터가 지속적으로 증가되고 있다. 예를 들어, 국내에서 매일 생산되는 기상 데이터는 1.6TB(Terabyte)이며, 1년이면 584TB의 대규모의 데이터가 증가한다. 이와 함께, 대규모 RDF 데이터를 단일 서버에서 처리할 경우 처리 용량과 속도 측면에서 성능 저하되어 다수 사용자에 대한 서비스 제공이 어려워진다. 그러므로, 다수의 서버를 이용하여 데이터를 저장 관리하기 위한 RDF 데이터 분할 기법이 필요하다.
최근, RDF 분할 기법을 위해 분산 서버 환경에서 그래프 데이터를 효율적으로 저장 및 관리 하는 연구가 진행되었다. 기존 그래프 분할 기법 METIS[G. Karypis, and V. Kumar, "A fast and high quality multilevel scheme for partitioning irregular graphs," Journal of SIAM : Scientific and Statistical Computing, 1998]는 그래프 데이터의 품질을 보장하기 위해 그래프 압축(Graph Coarsening), 그래프 분할(Graph Partitioning), 그래프 확장(Graph Un-Coarsening)의 세 단계로 구성된 처리 과정을 통해 그래프 데이터 분할을 수행한다. 하지만 이런 기존 기법은 분할하는 규칙이 정해진 알고리즘을 통해 그래프 데이터가 분할되기 때문에 계속해서 변화하는 사용자의 다양한 질의 요구에 대한 모든 상황을 만족시킬 수 없다. 예를 들어, 그림 1은 분할된 간선을 기준으로 빈번하게 요청되는 질의 패턴으로서, 그림 1와 같이 그래프 데이터가 A, B, C, D의 4개의 구성된 분산 서버 환경에 분산 저장되어 있다고 가정하자. 이때, 분할된 간선을 기준으로 다른 서버간의 조인 연산이 발생하는 질의(Q1, Q3, Q4)와 조인 연산이 발생하지 않는 질의(Q2)의 패턴이 나타났다. 서버들 사이에 그림 1의 질의(Q2)와 같이 조인 연산이 발생하지 않는 질의는 저 비용으로 빠른 응답을 제공할 수 있지만 그림 1의 질의(Q1, Q3, Q4)와 같이 조인 연산이 발생하는 질의의 요청이 증가하는 경우 서버들 사이에 통신비용이 증가되어 질의 응답 시간이 지연되는 문제점이 발생한다.
[그림 1]
Figure pat00001
이러한 문제점을 해결하기 위해, SPAR[J. Pujol, V. Erramilli, G. Siganos, X. Yang, N. Laoutaris, P. Chhabra, and P. Rodriguez, "The little engine(s) that could: Scaling online social networks," Proc. of the ACM SIGCOMM 2010 conference 2010]은 데이터 지역성(Data Locality)을 높이고, 네트워크 부하(Network Load)를 최소화하기 위해 동일한 서버에 데이터 복제를 수행한다. 또한, SEDGE[S. Yang, X. Yan, B. Zong, and A. Khan, "Towards effective partition management for large graphs," Proc. of the 2012 ACM SIGMOD International Conference on Management of Data, 2012]는 데이터 지역성(Data Locality)을 높이고, 서버간에 통신비용을 최소화하기 위해 그래프 데이터의 재분할을 수행하며, 서버간의 부하 분산(Load Balancing)을 수행하기 위해 데이터 복제를 수행한다. 하지만, 지속적으로 그래프 데이터의 추가 및 변경이 발생하는 환경에서 기존 기법을 적용하면 다음과 같이 2가지 문제점이 발생한다. 첫째, 지속적인 데이터의 추가로 인해 특정 서버에 데이터 집중 현상이 발생하여 병렬 시스템으로써의 성능이 저하된다. 둘째, 데이터 복제로 인해 복제된 데이터에 대해 추가적인 비용이 발생한다. 즉, 복제된 데이터에 대해서 추가적으로 데이터의 추가 및 변경이 발생한 경우, 원본 데이터 또한 복제된 데이터에도 반복해서 작업을 수행해야 하는 불필요한 비용이 발생한다. 지속적으로 데이터의 추가 및 변경이 발생하는 환경을 동적 RDF 데이터 환경이라고 정의한다. 따라서, 기존 기법은 처리 용량과 부하 분산(Load Balancing)이 이루어지지 않아 동적 RDF 데이터 환경에 적용하기에는 적합하지 않다.
이에, 본 발명에서는 지속적으로 데이터의 추가 및 변경이 발생하는 동적 환경에서 부하 분산을 지원하는 RDF 동적 분할 기법을 제안한다.
대한민국 등록특허공보 제10-14004990000호(공고일 2014.06.19.) 대한민국 등록특허공보 제10-10570730000호(공개일 2010.09.06.)
따라서, 본 발명은 상기한 종래 기술의 문제점을 해결하기 위해 이루어진 것으로서, 본 발명의 목적은 계속해서 변화하는 사용자의 다양한 질의 요구를 충족시키기 위해 사용자에 의해 빈번하게 사용되는 특정 데이터를 기반으로 클러스터와 서브 클러스터를 생성하고 생성된 클러스터와 서브 클러스터는 처리 용량 문제를 해결하기 위해 생성되는 파티션의 크기와 분산 서버에서 서버간의 데이터 사용 빈도수의 평균을 고려하여 그래프 분할을 수행함으로써, 병렬 시스템의 장점을 극대화하면서 빠른 질의 응답을 제공할 수 있는 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 시스템 및 방법을 제공하는데 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 시스템은, 요청된 질의 중에서 질의 빈도수가 높은 질의 데이터를 기반으로 그룹화한 클러스터를 생성하는 클러스터 생성부, 상기 클러스터를 제외한 나머지 데이터에 대해 상기 클러스터에 비해 질의 빈도수가 낮은 질의 데이터를 기반으로 그룹화한 서브 클러스터를 생성하는 서브 클러스터 생성부 및 파티션 크기 및 데이터 사용 빈도수를 고려하여 상기 클러스터와 상기 서브 클러스터를 파티션으로 재분할하는 그래프 분할부를 포함한다.
한편, 본 발명의 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 방법은, 클러스터 생성부가 요청된 질의 중에서 질의 빈도수가 높은 데이터를 기반으로 그룹화한 클러스터를 생성하는 단계, 서브 클러스터 생성부가 상기 클러스터를 제외한 나머지 데이터에 대해 상기 클러스터에 비해 질의 빈도수가 낮은 데이터를 기반으로 그룹화한 서브 클러스터를 생성하는 단계 및 그래프 분할부가 파티션의 크기 및 데이터 사용 빈도수를 고려하여 상기 클러스터와 상기 서브 클러스터를 파티션으로 재분할하는 단계를 포함한다.
상술한 바와 같이, 본 발명에 의한 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 시스템 및 방법에 따르면, 빈번하게 사용되는 질의 데이터를 기반으로 클러스터를 생성하고 데이터의 크기를 고려하여 여러 서버에 적절하게 분배 및 분할을 수행함으로써, 특정 서버에 대한 데이터 집중을 해결하고 서버들간에 효율적인 부하 분산을 지원할 수 있다.
도 1은 본 발명의 일 실시예에 따른 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 시스템을 개략적으로 나타낸 블록 구성도이다.
도 2는 본 발명의 일 실시예에 따른 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 방법의 전체 처리 과정을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 방법을 통해 재분할된 결과를 나타내는 그림이다.
도 4는 본 발명의 일 실시예에 따른 클러스터 정보 관리 데이터베이스에 저장된 클러스터 정보 관리 테이블을 예시한다.
도 5는 본 발명의 일 실시예에 따른 클러스터 생성 단계를 통해 생성된 클러스터를 예시한다.
도 6은 본 발명의 일 실시예에 따른 클러스터 생성 단계의 동작 과정을 설명하기 위한 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 서브 클러스터 생성 단계를 통해 생성된 서브 클러스터를 예시한다.
도 8은 본 발명의 일 실시예에 따른 서브 클러스터 생성 단계의 동작 과정을 설명하기 위한 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 그래프 분할 단계를 통해 분할된 파티션을 예시한다.
도 10은 본 발명의 일 실시예에 따른 그래프 분할 단계의 동작 과정을 설명하기 위한 흐름도이다.
이하, 본 발명의 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 시스템에 대하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
본 명세서에서는 편의를 위해 기본적으로 METIS 기법을 통해 대규모의 RDF 그래프 데이터가 분산 저장되어 있다고 가정한다.
도 1은 본 발명의 일 실시예에 따른 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 시스템을 개략적으로 나타낸 블록 구성도이다.
도 1을 참조하면, 본 발명의 일 실시에에 따른 데이터 분할 시스템은, 요청된 질의를 분석하여 질의 빈도수가 높은 질의 데이터를 기반으로 그룹화를 수행하여 클러스터(C)를 생성하는 클러스터 생성부(100), 클러스터(C)에 비해 질의 빈도수가 낮은 질의 데이터를 기반으로 그룹화를 수행하여 서브 클러스터(S)를 생성하는 서브 클러스터 생성부(200) 및 클러스터와 서브 클러스터를 파티션으로 그룹화하고 재분할하는 그래프 분할부(300)를 포함하여 이루어진다. 추가로, 각 질의에 따른 클러스터의 빈도수와 용량 정보를 저장하는 클러스터 정보 관리 데이터베이스(DB; database)(400)를 더 포함할 수 있다. 이때, 질의 빈도수란 질의 데이터의 사용 빈도수를 의미한다.
클러스터 생성부(100)는 요청된 질의를 분석하여 질의 빈도수가 높은 질의 데이터를 기반으로 그룹화를 수행하여 클러스터(C)를 생성한다. 이렇게 생성된 클러스터(C)는 분산 서버의 총 서버의 수만큼 생성되며, 분산 서버 환경에서 부하 분산을 수행하기 위한 기준점이 된다. 또한, 질의에 사용되는 데이터를 동일한 서버에 저장하여 질의 처리 과정 중 통신 비용을 최소화하여 빠른 질의 응답을 제공할 수 있다.
서브 클러스터 생성부(200)는 클러스터(C)에 비해 질의 빈도수가 낮은 질의 데이터를 기반으로 그룹화를 수행하여 서브 클러스터(S)를 생성한다. 이렇게 생성된 서브 클러스터(S)는 분산 서버 환경에서 클러스터(C)만으로 부하 분산을 수행하는데 부족한 기준점을 맞추기 위해 활용된다. 즉, 부하 분산의 효율성을 높이기 위해 활용되는 조각들이다. 또한, 서브 클러스터(S)는 2가지 용도로 활용된다. 첫째, 클러스터(C)의 데이터와 관련성이 있는 데이터라면 클러스터(C)와 같이 그룹화한다. 데이터 관련성이 있다면 향후 질의와 함께 사용될 가능성이 높기 때문이다. 이때, 데이터 관련성은 노드(subject)와 노드(object)에 연결된 간선(edge, predicate)의 수에 기반한다. 둘째, 부하 분산을 효과적으로 수행하기 위해 클러스터(C)를 기준으로 빈도수가 적은 서브 클러스터(S)를 각 서버에 적절하게 분배하여 그룹화한다.
그래프 분할부(300)는 클러스터 생성부(100)와 서브 클러스터 생성부(200)를 통해 각각 클러스터(C)와 서브 클러스터(S)가 생성되면 파티션의 크기 및 데이터 사용 빈도수를 고려하여 클러스터와 서브 클러스터를 각 파티션으로 그룹화한다. 이를 통해, 본 발명에 따르면 동적 RDF 데이터 환경으로 인해 발생하는 데이터 복제와 집중 현상의 문제점을 해결할 수 있다.
클러스터 정보 관리 데이터베이스(DB; database)(400)는 각 질의에 따른 클러스터의 빈도수와 용량 정보를 저장한다. 이는, 클러스터 생성부(100), 서브 클러스터 생성부(200) 및 그래프 분할부(300)에서 각각 클러스터, 서브 클러스터, 파티션으로 그룹화할 때 기준이 되는 정보로 활용이 된다.
그러면, 여기서 상기와 같이 구성된 시스템을 이용한 본 발명의 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 방법에 대해 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 방법의 전체 처리 과정을 설명하기 위한 흐름도이다.
도 2를 참조하면, 본 발명의 일 실시에에 따른 데이터 분할 방법은 동적 환경에서 서버간 통신비용이 많이 발생하는 특정 질의에 의해 부하가 발생할 경우 서버 부하를 처리하기 위해 아래와 같은 3단계 과정을 통해 데이터 분할을 수행한다.
먼저, 클러스터 생성부(100)는 효과적인 부하 분산을 수행하기 위해 질의 빈도수가 높은 데이터를 기반으로 클러스터(C)를 생성한다(단계 1).
다음으로, 서브 클러스터 생성부(200)는 각 서버들의 부하 분산 균형을 맞추기 위해 1단계에서 생성된 클러스터(C)를 제외한 나머지 데이터에 대해 클러스터에 비해 질의 빈도수가 낮은 데이터를 기반으로 서브 클러스터(S)를 생성한다(단계 2).
이어서, 그래프 분할부(300)는 마지막 3단계에서 1단계와 2단계에서 생성한 클러스터(C)와 서브 클러스터(S)를 파티션의 크기 및 데이터 사용 빈도수를 고려하여 그룹화하고 재분할을 수행한다(단계 3).
도 3은 본 발명의 일 실시예에 따른 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 방법을 통해 재분할된 결과를 나타내는 그림이다.
먼저, 도 3a를 참조하면, 도 3a는 그래프 데이터가 A, B, C, D 4개의 서버로 구성된 분산 서버 환경에 분산 저장된 구조로서, 클러스터(CA, CB, CC, CD, CE)는 질의 빈도수가 높은 것을, 서브 클러스터(SA, SB, SC, SD)는 클러스터에 비해 질의 빈도수가 적은 것을 나타낸다. 도 3b는 도 3a에서 빈번하게 요청되는 특정 질의에 부하가 발생하였을 때, 통계정보(도 4)를 기반으로 재분할된 결과를 나타낸다. 본 발명에서 각 파티션은 클러스터를 기준으로 서브 클러스터를 추가 및 분배함으로써 특정 서버에 대한 데이터 집중을 해결하고 서버들간에 효율적인 부하 분산을 수행할 수 있다.
도 4는 본 발명의 일 실시예에 따른 클러스터 정보 관리 데이터베이스에 저장된 클러스터 정보 관리 테이블을 예시한다.
본 발명은 RDF 데이터 환경에서 효율적인 그래프 데이터의 분할을 수행하기 위해 클러스터 정보 관리 DB(400)에서 통계정보를 관리한다. 마스터 서버(master server)와 슬레이브 서버(slave server)로 구성된 분산 서버 시스템에서 사용자에 의해 질의가 요청될 때, 마스터 서버의 클러스터 정보 관리 DB(400)는 도 4와 같은 통계정보를 실시간으로 관리한다. 도 4를 참조하면, 클러스터 정보 관리 DB(400)는 RDF 데이터가 분산 저장되어 있는 시스템의 서버(Server), 사용자에 의해 요청된 질의(Query), 질의 빈도수(Freq), 질의의 크기(Size/Vertex_Count)의 통계정보를 나타낸다. 이러한 통계정보는 다음과 같이 2가지 목적을 달성하기 위해 사용된다. 첫째, 사용자의 다양한 질의 요구를 충족시키면서 부하 분산을 수행하기 위해서 클러스터 생성 단계(단계 1), 서브 클러스터 생성 단계(단계 2)에서 도 4의 질의 빈도수(Freq)에 따라 질의 데이터를 그룹화하기 위한 기준 정보로 사용된다. 둘째, 종래 기법에서 동적 RDF 데이터 환경으로 인해 발생하는 데이터 집중 현상의 문제점을 해결하기 위해 본 발명의 그래프 분할 단계(단계 3)에서 질의 빈도수(Freq)와 질의의 크기(Size)를 기반으로 그래프 분할을 수행한다.
이하, 상술한 각 단계들에 대해서 보다 상세하게 설명하기로 한다.
1. 클러스터 생성 단계
동적 분산 환경에서 사용자에 의해 요청되는 질의를 빠르게 처리하기 위해서는 서버간에 조인 연산 및 통신비용을 최소화하고 사용자에 의해 빈번하게 요청되었던 질의는 향후 요청될 가능성을 예상하여 동일한 서버에 저장 및 관리할 수 있도록 분산 저장해야 한다. 따라서, 본 발명의 클러스터 생성부(100)는 클러스터 생성 단계(단계 1)에서 사용자에 의해 요청되고, 질의 빈도수가 높은 질의를 기반으로 그룹화하여 클러스터(C)를 생성한다. 클러스터(C)는 사용자에 의해 요청되는 질의를 기반으로 그룹화 되고, 질의 데이터의 그룹 또는 질의 빈도수가 높은 그룹을 의미한다. 특히, 본 발명의 클러스터 생성 단계(단계 1)에서는 계속해서 변화하는 사용자의 다양한 요구를 충족시키기 위해 사용자에 의해 빈번하게 사용되는 질의를 기반으로 클러스터를 생성한다. 즉, 클러스터 생성부(100)는 본 단계에서 분산 서버 시스템의 마스터 서버에서 관리되는 통계정보를 기반으로 그룹화를 수행한다. 그리고, 이러한 클러스터는 전술한 바와 같이 서버간의 균형된 부하 분산을 수행하기 위해 각 서버에서의 기준점으로 사용되며, 서버의 수만큼 생성된다. 이를 통해, 다른 서버에 분산 저장되어 있는 질의 데이터를 동일한 서버에 그룹화함으로써 요청되는 질의 처리 중 발생하는 통신 비용을 최소화 할 수 있고 빠른 질의 응답을 제공할 수 있다.
도 5는 본 발명의 일 실시예에 따른 클러스터 생성 단계를 통해 생성된 클러스터를 예시한다. 도 5를 참조하면, 본 발명의 클러스터 생성부(100)는 사용자에 의해 빈번하게 요청된 질의 중 서버의 수만큼 클러스터(CA, CB, CD, CCE(CC+CE))를 생성한다. 도 5의 내에 있는 표는 클러스터 집합의 일부분을 나타내는 통계정보(도 4)로서, 클러스터를 생성할 때는 통계정보에서의 질의의 크기(Size/Vertex_Count) 정보가 활용되지 않기 때문에 이를 제외하고 나타낸 표이다. 또한, 통계정보를 질의 빈도수(Freq)를 기준으로 내림차순으로 정렬한 것과 같다. 즉, 질의 빈도수가 높은 질의를 기반으로 클러스터로 생성된 결과이다. 다만, 클러스터는 분산 서버의 수만큼 생성되므로 질의 CC와 CE의 경우 기본적으로 서브 클러스터에 해당되지만, 본 발명에서 클러스터 생성부(100)는 CC의 빈도수의 균형을 맞추기 위해 CE를 같이 그룹화함으로써 클러스터로 생성한다.
도 6은 본 발명의 일 실시예에 따른 클러스터 생성 단계의 동작 과정을 설명하기 위한 흐름도이다. 도 6을 참조하면, 클러스터 생성부(100)는 단계 S110에서 클러스터의 번호(CN)가 서버의 수(CntServer)보다 작은지 판단한다. 단계 S110 판단 결과, 클러스터의 번호(CN)가 서버의 수(CntServer)보다 작으면 클러스터의 번호(CN)를 증가시키고 클러스터(CN)를 생성하며(S120), 클러스터의 번호(CN)가 서버의 수(CntServer)보다 크면 클러스터 생성 단계를 종료한다. 다음으로, 단계 S130에서 클러스터 생성부(100)는 질의 데이터의 번호(QDN)가 질의 데이터의 집합의 수(CntQuery_data)보다 작은지 판단하고, 질의 데이터의 번호(QDN)를 증가시킨다. 단계 S130 판단 결과, 질의 데이터의 번호(QDN)가 질의 데이터의 집합의 수(CntQuery_data)보다 작으면 다음 단계 S140으로 진행하고, 질의 데이터의 번호(QDN)가 질의 데이터의 집합의 수(CntQuery_data)보다 크면 단계 S110으로 되돌아간다. 단계 S140에서는 클러스터 생성부(100)가 생성하고 있는 클러스터의 빈도수(Freq_ClusterCN)가 허용 빈도수가 높은 질의를 기준으로 계산한 질의 빈도수의 평균(FreqAvg)보다 작은지 판단한다. 단계 S140 판단 결과, 클러스터의 빈도수(Freq_ClusterCN)가 질의 빈도수의 평균(FreqAvg)보다 작으면 단계 S150으로 진행하여 클러스터(CN)에 질의 데이터(QDN)를 추가하고 단계 S130으로 되돌아가며, 클러스터의 빈도수(Freq_ClusterCN)가 질의 빈도수의 평균(FreqAvg)보다 크면 단계 S110으로 되돌아간다. 이러한 과정을 통해, 본 발명에서 클러스터는 서버의 수만큼 생성되며, 통계 정보를 기반으로 사용 빈도수가 높은 질의를 기준으로 질의 빈도수의 평균(FreqAvg)을 계산하여 각 서버에 기준이 되는 클러스터를 생성한다.
2. 서브 클러스터 생성 단계
동적 분산 환경에서 각 서버의 균형된 부하 분산을 수행하기 위해서는 분산 서버의 질의 빈도수 평균값을 기준으로 통계정보의 질의 빈도수(Freq)를 활용해야 한다. 분산 서버의 질의 빈도수 평균값이란 분산 서버에서 데이터를 분할하면서 균형된 부하 분산을 수행하기 위해 기준이 되는 질의 빈도수 평균값으로써 통계정보의 질의 빈도수를 기준으로 계산되는 평균값을 의미한다. 즉, 각 서버는 하나의 클러스터(C)가 사용이 되고, 클러스터의 빈도수를 기준으로 질의 빈도수가 낮은 서브 그룹을 질의 빈도수 평균값만큼 더함으로써 분산 서버의 부하 분산을 수행한다. 따라서, 본 발명의 서브 클러스터 생성부(200)는 상기 클러스터 생성 단계에서 생성된 클러스터를 제외한 질의 빈도수가 낮은 질의를 기반으로 그룹화하여 서브 클러스터(S)를 생성한다.
본 발명의 서브 클러스터(S)는 클러스터(C)와 마찬가지로 질의를 기반으로 그룹화 되지만 클러스터(C)에 비해 질의 빈도수가 낮은 서브 그룹을 의미한다. 이를 통해 각 서버의 균형된 부하 분산을 수행하기 위해, 본 발명의 서브 클러스터 생성부(200)는 각 서버에 클러스터(C)를 기준으로 서브 클러스터(S)를 추가적으로 분배하여 효과적인 부하 분산을 수행한다. 즉, 서브 클러스터(S)는 부하 분산의 효율성을 높이기 위해 사용되는 서브 그룹으로 사용된다. 또한, 서브 클러스터(S)는 상기 클러스터 생성 단계에서 생성된 클러스터(C)를 기준으로 연결된 간선을 통해 거리의 홉 수를 계산하고, 사용자가 지정한 임계 값에 허용되는 범위에 따라 분배를 한다. 추가로, 서브 클러스터 생성부(200)는 서버간의 통신비용을 최소화하기 위해 사용자에 의해 한번도 요청되지 않은 데이터는 그룹화를 수행하지 않는다. 이를 통해 본 발명에 의하면, 기존 분할된 그래프 데이터 구조가 깨지는 것을 방지 및 보존할 수 있으며, 향후 사용자에 의해 요청될 수 있는 질의의 범위도 예측하여 분배함으로써 추가적인 재분할 비용을 줄일 수 있다.
도 7은 본 발명의 일 실시예에 따른 서브 클러스터 생성 단계를 통해 생성된 서브 클러스터를 예시한다. 도 7을 참조하면, 본 발명의 서브 클러스터 생성부(200)는 클러스터 생성 단계에서 클러스터를 생성한 후 해당 서브 클러스터 생성 단계를 통해, 클러스터(CA, CB, CC, CD, CE)를 제외한 나머지 질의 데이터를 기반으로 클러스터의 데이터와 관련이 있는 데이터의 집합인 서브 클러스터(SA, SB, SC, SD)를 생성한다. 여기서, 클러스터의 데이터와 관련이 있는 데이터는 클러스터를 기준으로 간선으로 연결된 서브 클러스터를 의미한다. 본 발명에 따르면, 이를 통해 향후 사용자에 의해 요청될 수 있는 질의의 범위를 예측하여 분배함으로써 추가적인 재분할 비용을 줄일 수 있는 장점을 얻을 수 있다.
도 8은 본 발명의 일 실시예에 따른 서브 클러스터 생성 단계의 동작 과정을 설명하기 위한 흐름도이다. 도 8을 참조하면, 서브 클러스터 생성부(200)는 단계 S210에서 서브 클러스터의 번호(SN)가 클러스터 생성 단계에서 생성된 클러스터 집합의 수(CntClusters)보다 작은지 판단한다. 단계 S210 판단 결과, 서브 클러스터의 번호(SN)가 클러스터 생성 단계에서 생성된 클러스터 집합의 수(CntClusters)보다 작으면 서브 클러스터의 번호(SN)를 증가시키고 서브 클러스터(SN)를 생성하며(S220), 서브 클러스터의 번호(SN)가 클러스터 생성 단계에서 생성된 클러스터 집합의 수(CntClusters)보다 크면 서브 클러스터 생성 단계를 종료한다. 다음으로, 단계 S230에서 서브 클러스터 생성부(200)는 질의 데이터의 번호(QDN)가 각 클러스터에 2홉 이내에 간선(edge)으로 연결된 질의 데이터 집합의 수(Cnt_QD_2HCSN)보다 작은지 판단하고, 질의 데이터의 번호(QDN)를 증가시킨다. 단계 S230 판단 결과, 질의 데이터의 번호(QDN)가 질의 데이터 집합의 수(Cnt_QD_2HCSN)보다 작으면 다음 단계 S240으로 진행하여 서브 클러스터(SN)에 질의 데이터(QDN)를 추가하고 단계 S230으로 되돌아가며, 질의 데이터의 번호(QDN)가 질의 데이터 집합의 수(Cnt_QD_2HCSN)보다 크면 단계 S210으로 되돌아간다.
3. 그래프 분할 단계
본 발명의 일 실시예에 따른 그래프 분할 단계는 통해 동적 RDF 데이터 환경으로 인해 특정 서버에 데이터 집중 현상의 문제점을 해결하기 위해 파티션의 크기를 고려한다. 또한, 기존 동적 분할 기법에서의 데이터 복제의 궁극적인 목적인 부하 분산의 문제점을 해결하기 위해 분산 서버의 질의 빈도수 평균값을 계산한다. 즉, 본 발명의 그래프 분할부(300)는 상기 클러스터 생성 단계에서 통계정보의 각 질의 빈도수(Freq)를 기반으로 클러스터 C = {C1, C2, ..., Ci}를 생성하고, 상기 서브 클러스터 생성 단계에서 서브 클러스터 S = {S1, S2, ..., Sj}를 생성한 후, 마지막 그래프 분할 단계에서 생성된 클러스터(C)와 서브 클러스터(S)를 활용하여 통계 정보의 질의 빈도수(Freq)와 질의 크기(Size/Vertex_Count)를 기반으로 서버 분할을 수행한다. 그래프 분할부(300)는 각 서버를 하나의 클러스터(C)를 기준으로 간선(edge)으로 연결된 서브 클러스터(S)를 분배하여 파티션 Pk = {Ci, Sj, Sj+1, ...}으로 그룹화를 수행한다. 이때, 그래프 분할부(300)는 데이터 집중 현상을 해결하기 위해 파티션 크기(P_Size)를 수학식 1과 수학식 2의 허용 범위로 제한하며, 효과적인 부하 분산을 수행하기 위해 클러스터(C)의 빈도수를 기준으로 서브 클러스터(S)의 빈도수를 수학식 3만큼 더함으로써 그래프 데이터 분할을 수행한다.
보다 구체적으로, 본 발명의 그래프 분할은 기존 기법에서의 데이터 집중 현상의 문제점을 해결하기 위해 파티션 크기를 고려한다. 따라서, 파티션의 최소 크기(P_Sizemin)과 최대 크기(P_Sizemax)를 제안한다. 수학식 1은 각 서버에 최소 저장되어야 할 파티션의 최소 크기(P_Sizemin)를 나타내고, 수학식 2는 각 서버에 최대 저장해야 할 파티션의 최대 크기(P_Sizemax)를 나타낸다. Nodecnt는 분산 서버 시스템에서의 서버 수, Sizefull of Dataset는 분산 서버에 저장된 데이터 또는 저장해야 하는 데이터 셋트(Dataset)의 전체 크기, 수학식 1의 α와 수학식 2의 β는 사용자가 사용 환경의 목적에 따라 임의로 지정할 수 있는 임계 값이다. 또한, 데이터 또는 데이터 셋트의 크기는 RDF 언어에서 주어(subject)와 목적어(object)로 표현할 수 있는데, 주어와 목적어를 각각 하나의 노드(node)로 구분하여 노드의 수를 카운트하여 계산한다.
[수학식 1]
Figure pat00002
[수학식 2]
Figure pat00003
분산 서버의 효과적인 부하 분산을 수행하기 위해 분산 서버의 질의 빈도수 평균값을 고려한다. 따라서, 질의 빈도수 평균값(AVG_Freqserver)을 제안한다. 수학식 3은 그래프 분할 단계 수행 과정 중 클러스터(C)와 서브 클러스터(S)를 그룹화 할 수 있게 기준으로 설정되는 값을 나타낸다. 이때, Nodecnt는 분산 서버 시스템에서의 서버 수, Query_Freqsum은 통계정보에서의 질의 빈도수의 합을 의미한다.
[수학식 3]
Figure pat00004
추가로, 본 발명에서는 그래프 분할(데이터 이동)의 통신비용을 최소화 하기 위해 클러스터를 기준으로 간선으로 연결되어 있지 않거나 거리가 멀리 있는 서브 클러스터와는 동일한 서버(파티션)로 그룹화를 수행하지 않는다. 예를 들어, 도 7에서 CB를 기준으로 SB의 경우는 간선으로 연결이 안되어 있을 뿐만 아니라 SB를 동일한 서버(파티션)로 그룹화를 수행할 경우 기존 그래프의 구조가 붕괴되기 때문이다.
도 9는 본 발명의 일 실시예에 따른 그래프 분할 단계를 통해 분할된 파티션을 예시하는 것으로서, 도 7의 클러스터 CB를 중심으로 한 서버 C와 B의 일부분을 나타내며, 도 3a와 같이 클러스터와 서브 클러스터를 생성한 후 도 3b처럼 서버 C의 파티션을 생성하는 과정을 나타낸다. 도 9a는 본 발명의 일 실시예에 따른 데이터 분할 방법의 3단계 중 1, 2 단계를 수행한 결과이다. 도 9b는 마지막 3단계를 수행하는 과정으로 클러스터(CB)를 기준으로 수학식 1, 수학식 2 및 수학식 3에 허용되는 파티션 크기로 데이터 관련성이 있는 서브 클러스터(SD)를 추가하여 서버 C의 파티션을 생성한다.
예를 들어, 4개의 분산 서버 환경에 10M개의 노드가 저장되어 있고, 수학식 1의 α = 0.5, 수학식 2의 β = 1.2로 가정한다. 이에, 수학식 1은 P_Sizemin = 10,000,000/4*0.5 = 1,250,000, 수학식 2는 P_Sizemax = 10,000,000/4*1.2 = 3,000,000로 계산된다. 또한, 수학식 3은 Avg_Freqserver = (47+50+25+57+22+13+7+3+10)/4 = 58.5로 계산된다. 즉, 각 서버에 저장할 수 있는 노드의 수는 1,250,000~3,000,000개, 각 서버의 파티션 빈도수 합은 질의 평균 빈도수 58.5를 기준으로 제한된다. 도 4의 통계정보를 참조하면 CB는 1,800,000개의 데이터를 SD는 800,000개의 데이터를 나타낸다. 따라서 도 9는, 수학식 1과 수학식 2의 허용범위 내에서 CB를 기준으로 간선으로 연결된 서브 클러스터 중 SD를 같이 그룹화하여 분할된 결과를 나타낸다. 이때, 도 7에서의 SC는 SD를 기준으로 간선으로 연결된 서브 클러스터지만 이런 경우, 수학식 1과 수학식 2의 허용범위를 초과하고, 수학식 3을 기준으로 질의 빈도수(부하)가 C서버에 집중되는 문제점이 발생하므로 SC는 그룹화를 수행하지 않는다.
도 10은 본 발명의 일 실시예에 따른 그래프 분할 단계의 동작 과정을 설명하기 위한 흐름도이다. 도 10을 참조하면, 그래프 분할부(300)는 단계 S310에서 파티션, 클러스터, 서브 클러스터를 나타내는 번호(PCSN)가 클러스터의 수(CntServer)보다 작은지 판단한다. 단계 S310 판단 결과, 파티션, 클러스터, 서브 클러스터의 번호(PCSN)가 클러스터의 수(CntClusters)보다 작으면 파티션, 클러스터, 서브 클러스터의 번호(PCSN)를 증가시키고 파티션(PartitionPCSN)을 생성하며 파티션(PartitionPCSN)에 클러스터(ClustersPSCN)를 추가하고(S320), 파티션, 클러스터, 서브 클러스터의 번호(PCSN)가 클러스터의 수(CntClusters)보다 크면 해당 그래프 분할 단계를 종료한다. 다음으로, 단계 S330에서 그래프 분할부(300)는 서브 클러스터의 번호(SN)가 서브 클러스터 생성 단계에서 생성된 서브 클러스터 집합의 수(Cnt_Sub_clustersPSCN)보다 작은지 판단하고, 서브 클러스터의 번호(SN)를 증가시킨다. 단계 S330 판단 결과, 서브 클러스터의 번호(SN)가 서브 클러스터 생성 단계에서 생성된 서브 클러스터 집합의 수(Cnt_Sub_clustersPSCN)보다 작으면 다음 단계 S340으로 진행하고, 서브 클러스터의 번호(SN)가 서브 클러스터 생성 단계에서 생성된 서브 클러스터 집합의 수(Cnt_Sub_clustersPSCN)보다 크면 단계 S310으로 되돌아간다. 단계 S340에서는 그래프 분할부(300)가 파티션의 크기(Size_PartitionPCSN)가 각 서버에 최소 저장되어야 할 파티션의 최소 크기(P_Sizemin)보다 크고 각 서버에 최대 저장되어야 할 파티션의 최대 크기(P_Sizemax)보다 작은지 및 파티션의 빈도수(Freq_PartitionPCSN)가 질의 빈도수 평균값(AVG_Freqserver)보다 작은지 판단한다. 단계 S340 판단 결과, 파티션의 크기(Size_PartitionPCS)가 각 서버에 저장되어야 할 파티션의 허용범위(P_Sizemin, P_Sizemax) 이내이고 파티션의 빈도수(Freq_PartitionPCSN)가 질의 빈도수 평균값(AVG_Freqserver)보다 작으면 다음 단계 S350으로 진행하여, 파티션(PartitionPCSN)에 서브 클러스터(Sub_clustersPSCN_SN)를 추가한 후 단계 S330으로 되돌아가고, 파티션의 크기(Size_PartitionPCS)가 각 서버에 저장되어야 할 파티션의 허용범위(P_Sizemin, P_Sizemax)를 벗어나거나 파티션의 빈도수(Freq_PartitionPCSN)가 질의 빈도수 평균값(AVG_Freqserver)보다 크면 단계 S310으로 되돌아간다.
이와 같이, 해당 그래프 분할 단계에서는 클러스터 생성 단계에서 생성된 각 클러스터를 기준으로 서브 클러스터 생성 단계에서 생성된 각 서브 클러스터를 적절하게 분배하여 그룹화를 수행한다. 이때, 데이터 집중 현상을 해결하면서 효과적인 부하 분산을 위해 파티션 크기는 수학식 1의 P_Sizemin과 수학식 2의 P_Sizemax의 허용범위의 크기로, 파티션의 빈도수는 수학식 3의 Avg_Freqserver로 제한되어 생성된다.
이상에서 몇 가지 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것이 아니고 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다.
100 : 클러스터 생성부
200 : 서브 클러스터 생성부
300 : 그래프 분할부
400 : 클러스터 정보 관리 데이터베이스

Claims (7)

  1. 요청된 질의 중에서 질의 빈도수가 높은 질의 데이터를 기반으로 그룹화한 클러스터를 생성하는 클러스터 생성부,
    상기 클러스터를 제외한 나머지 데이터에 대해 상기 클러스터에 비해 질의 빈도수가 낮은 질의 데이터를 기반으로 그룹화한 서브 클러스터를 생성하는 서브 클러스터 생성부 및
    파티션 크기 및 데이터 사용 빈도수를 고려하여 상기 클러스터와 상기 서브 클러스터를 파티션으로 재분할하는 그래프 분할부를 포함하는, 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 시스템.
  2. 청구항 제1항에서,
    각 질의에 따른 클러스터의 빈도수와 용량 정보를 저장하는 클러스터 정보 관리 데이터베이스(DB; database)를 더 포함하는, 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 시스템.
  3. 클러스터 생성부가 요청된 질의 중에서 질의 빈도수가 높은 데이터를 기반으로 그룹화한 클러스터를 생성하는 단계,
    서브 클러스터 생성부가 상기 클러스터를 제외한 나머지 데이터에 대해 상기 클러스터에 비해 질의 빈도수가 낮은 데이터를 기반으로 그룹화한 서브 클러스터를 생성하는 단계 및
    그래프 분할부가 파티션의 크기 및 데이터 사용 빈도수를 고려하여 상기 클러스터와 상기 서브 클러스터를 파티션으로 재분할하는 단계를 포함하는, 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 방법.
  4. 청구항 제3항에서,
    상기 클러스터를 생성하는 단계는,
    상기 클러스터 생성부가,
    ⒜ 클러스터의 번호가 서버의 수보다 작은지 판단하는 단계,
    ⒝ 상기 ⒜단계 판단 결과, 상기 클러스터의 번호가 상기 서버의 수보다 작으면 상기 클러스터의 번호를 증가시키고 클러스터를 생성하고, 상기 클러스터의 번호가 상기 서버의 수보다 크면 해당 클러스터 생성 단계를 종료하는 단계,
    ⒞ 질의 데이터의 번호가 질의 데이터의 집합의 수보다 작은지 판단하고, 질의 데이터의 번호를 증가시키는 단계,
    ⒟ 상기 ⒞단계 판단 결과, 상기 질의 데이터의 번호가 상기 질의 데이터의 집합의 수보다 작으면 ⒠단계로 진행하고, 상기 질의 데이터의 번호가 상기 질의 데이터의 집합의 수보다 크면 ⒜단계로 되돌아는 단계,
    ⒠ 생성하고 있는 상기 클러스터의 빈도수가 허용 빈도수가 높은 질의를 기준으로 계산한 질의 빈도수의 평균보다 작은지 판단하는 단계,
    ⒡ 상기 ⒠단계 판단 결과, 상기 클러스터의 빈도수가 상기 질의 빈도수의 평균보다 작으면 상기 클러스터에 질의 데이터를 추가하고 ⒞단계로 되돌아가며, 상기 클러스터의 빈도수가 상기 질의 빈도수의 평균보다 크면 ⒜단계으로 되돌아가는 단계를 포함하는, 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 방법.
  5. 청구항 제3항에서,
    상기 서브 클러스터를 생성하는 단계는,
    상기 서브 클러스터 생성부가
    ⒢ 서브 클러스터의 번호가 클러스터 생성 단계에서 생성된 클러스터 집합의 수보다 작은지 판단하는 단계,
    ⒣ 상기 ⒢단계 판단 결과, 상기 서브 클러스터의 번호가 상기 클러스터 집합의 수보다 작으면 상기 서브 클러스터의 번호를 증가시키고 서브 클러스터를 생성하며, 상기 서브 클러스터의 번호가 상기 클러스터 집합의 수보다 크면 해당 서브 클러스터 생성 단계를 종료하는 단계,
    ⒤ 질의 데이터의 번호가 각 클러스터에 2홉 이내에 간선(edge)으로 연결된 질의 데이터 집합의 수보다 작은지 판단하고, 상기 질의 데이터의 번호를 증가시키는 단계 및
    ⒥ 상기 ⒤단계 판단 결과, 상기 질의 데이터의 번호가 상기 질의 데이터 집합의 수보다 작으면 상기 서브 클러스터에 상기 질의 데이터를 추가하고 ⒤단계로 되돌아가며, 상기 질의 데이터의 번호가 상기 질의 데이터 집합의 수보다 크면 ⒢단계로 되돌아가는 단계를 포함하는, 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 방법.
  6. 청구항 제3항에서,
    상기 파티션으로 재분할하는 단계는,
    상기 그래프 분할부가,
    ⒦ 파티션, 클러스터, 서브 클러스터를 나타내는 번호가 클러스터 생성 단계에서 생성된 클러스터의 수보다 작은지 판단하는 단계,
    ⒧ 상기 ⒦단계 판단 결과, 상기 파티션, 클러스터, 서브 클러스터의 번호가 상기 클러스터의 수보다 작으면 상기 파티션, 클러스터, 서브 클러스터의 번호를 증가시키고 파티션을 생성하며 상기 파티션에 클러스터를 추가하고, 상기 파티션, 클러스터, 서브 클러스터의 번호가 상기 클러스터의 수보다 크면 해당 그래프 분할 단계를 종료하는 단계,
    ⒨ 서브 클러스터의 번호가 서브 클러스터 생성 단계에서 생성된 서브 클러스터의 수보다 작은지 판단하고, 서브 클러스터의 번호를 증가시키는 단계,
    ⒩ 상기 ⒨단계 판단 결과, 상기 서브 클러스터의 번호가 상기 서브 클러스터의 수보다 작으면 ⒪단계로 진행하고, 상기 서브 클러스터의 번호가 상기 서브 클러스터의 수보다 크면 ⒦단계로 되돌아가는 단계,
    ⒪ 파티션의 크기가 각 서버에 저장되어야 할 파티션의 허용범위 이내인지 및 파티션의 빈도수가 질의 빈도수 평균값보다 작은지 판단하는 단계 및
    ⒫ 상기 ⒪단계 판단 결과, 상기 허용범위 이내이고 상기 파티션의 빈도수가 상기 질의 빈도수 평균값보다 작으면 파티션에 서브 클러스터를 추가한 후 ⒨단계로 되돌아가고, 상기 파티션의 크기가 상기 허용범위를 벗어나거나 상기 파티션의 빈도수가 상기 질의 빈도수 평균값보다 크면 ⒦단계로 되돌아가는 단계를 포함하는, 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 방법.
  7. 청구항 제6항에서,
    상기 각 서버에 저장되어야 할 파티션의 허용범위는 각 서버에 최소 저장되어야 할 파티션의 최소 크기(P_Sizemin)(수학식 1) 이상 각 서버에 최대 저장되어야 할 파티션의 최대 크기(P_Sizemax)(수학식 2) 이하이고,
    상기 질의 빈도수 평균값(AVG_Freqserver)(수학식 3)은 질의 빈도수를 기준으로 계산되는 평균값인, 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 방법.
    (수학식 1)
    Figure pat00005

    (수학식 2)
    Figure pat00006

    단, Nodecnt는 분산 서버 시스템에서의 서버 수, Sizefull of Dataset는 분산 서버에 저장된 데이터 또는 저장해야 하는 데이터 셋트(Dataset)의 전체 크기, α와 β는 사용 환경의 목적에 따라 지정되는 임계 값이다.
    (수학식 3)
    Figure pat00007

    단, Nodecnt는 분산 서버 시스템에서의 서버 수, Query_Freqsum은 질의 빈도수의 합이다.
KR1020140179105A 2014-12-12 2014-12-12 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 시스템 및 방법 KR20160072305A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140179105A KR20160072305A (ko) 2014-12-12 2014-12-12 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140179105A KR20160072305A (ko) 2014-12-12 2014-12-12 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20160072305A true KR20160072305A (ko) 2016-06-23

Family

ID=56353039

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140179105A KR20160072305A (ko) 2014-12-12 2014-12-12 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR20160072305A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101854284B1 (ko) * 2016-12-26 2018-05-03 충북대학교 산학협력단 조인 비용 및 통신 비용 절감을 위한 분산 rdf 질의 처리 시스템
KR101872414B1 (ko) * 2016-12-23 2018-06-28 충북대학교 산학협력단 분산 rdf 그래프에 대한 부하 분산을 지원하는 동적 분할 방법
KR20190124512A (ko) * 2018-04-26 2019-11-05 충북대학교 산학협력단 그래프 스트림에 대한 실시간 분산 저장을 위한 분할 방법 및 분할 장치
KR20200141208A (ko) * 2019-06-10 2020-12-18 포항공과대학교 산학협력단 그래프 데이터 처리 방법 및 그래프 데이터 처리 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101057073B1 (ko) 2009-02-27 2011-08-16 주식회사 솔트룩스 시맨틱 메타데이터를 활용한 데이터 구조화 방법 및 시스템
KR101400499B1 (ko) 2012-12-21 2014-06-19 건국대학교 산학협력단 대용량 링크드 데이터의 병렬 처리 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101057073B1 (ko) 2009-02-27 2011-08-16 주식회사 솔트룩스 시맨틱 메타데이터를 활용한 데이터 구조화 방법 및 시스템
KR101400499B1 (ko) 2012-12-21 2014-06-19 건국대학교 산학협력단 대용량 링크드 데이터의 병렬 처리 장치 및 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101872414B1 (ko) * 2016-12-23 2018-06-28 충북대학교 산학협력단 분산 rdf 그래프에 대한 부하 분산을 지원하는 동적 분할 방법
KR101854284B1 (ko) * 2016-12-26 2018-05-03 충북대학교 산학협력단 조인 비용 및 통신 비용 절감을 위한 분산 rdf 질의 처리 시스템
KR20190124512A (ko) * 2018-04-26 2019-11-05 충북대학교 산학협력단 그래프 스트림에 대한 실시간 분산 저장을 위한 분할 방법 및 분할 장치
KR20200141208A (ko) * 2019-06-10 2020-12-18 포항공과대학교 산학협력단 그래프 데이터 처리 방법 및 그래프 데이터 처리 장치
US11210343B2 (en) 2019-06-10 2021-12-28 Postech Academy-Industry Foundation Graph data processing method and apparatus thereof

Similar Documents

Publication Publication Date Title
US20090157666A1 (en) Method for improving search engine efficiency
US9774676B2 (en) Storing and moving data in a distributed storage system
EP2828758A1 (en) Systems and methods for data mobility within a cloud architecture
Ding et al. An efficient quad-tree based index structure for cloud data management
KR20160072305A (ko) 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 시스템 및 방법
US6973536B1 (en) Self-adaptive hybrid cache
Gao et al. An efficient ring-based metadata management policy for large-scale distributed file systems
Feng et al. HQ-Tree: A distributed spatial index based on Hadoop
Brunner et al. Network-aware summarisation for resource discovery in P2P-content networks
Leng et al. BRGP: a balanced RDF graph partitioning algorithm for cloud storage
Schroeder et al. A data distribution model for RDF
Fang et al. Cost-effective stream join algorithm on cloud system
Akdogan et al. Cost-efficient partitioning of spatial data on cloud
KR101718739B1 (ko) 이기종 하둡을 위한 동적 데이터 복제 시스템 및 방법
Bok et al. Dynamic partitioning of large scale RDF graph in dynamic environments
Li et al. Efficient clustering index for semantic Web service based on user preference
CN108446356B (zh) 数据缓存方法、服务器及数据缓存系统
Sangamuang et al. iDBP: a distributed min-cut density-balanced algorithm for incremental web-pages ranking
Jie et al. A massive RDF storage approach based on graph database
Batko et al. M-Grid: similarity searching in grid
CN113656469B (zh) 大数据处理方法及装置
Sharfuddin et al. Improving Performance of Cloud Storage Systems Using a Support-Based Replication Algorithm
Zhao et al. Ability-based fuzzy web service clustering and searching algorithm
Nam et al. Data Utilization-Based Adaptive Data Management Method for Distributed Storage System in WAN Environment.
Kumar An Efficient Replication Method for MapReduce Scaling

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
E601 Decision to refuse application
E801 Decision on dismissal of amendment
E801 Decision on dismissal of amendment
E601 Decision to refuse application