KR101872414B1 - 분산 rdf 그래프에 대한 부하 분산을 지원하는 동적 분할 방법 - Google Patents

분산 rdf 그래프에 대한 부하 분산을 지원하는 동적 분할 방법 Download PDF

Info

Publication number
KR101872414B1
KR101872414B1 KR1020160178209A KR20160178209A KR101872414B1 KR 101872414 B1 KR101872414 B1 KR 101872414B1 KR 1020160178209 A KR1020160178209 A KR 1020160178209A KR 20160178209 A KR20160178209 A KR 20160178209A KR 101872414 B1 KR101872414 B1 KR 101872414B1
Authority
KR
South Korea
Prior art keywords
partition
cluster
query
data
load
Prior art date
Application number
KR1020160178209A
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 KR1020160178209A priority Critical patent/KR101872414B1/ko
Application granted granted Critical
Publication of KR101872414B1 publication Critical patent/KR101872414B1/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/119Details of migration of file systems
    • G06F17/30079

Landscapes

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

Abstract

본 발명은 하나의 서버에서 하나의 파티션을 갖는다고 가정할 때, RDF(Resource Description Framework) 데이터를 분할하여 파티션에 저장하고 있는 초기 단계, 파티션 간의 불균등한 부하가 발생되면, 부하 분산을 위해 빈도수가 높은 질의에 사용되는 데이터를 기반으로 클러스터를 생성하고, 클러스터 생성 시에 관련된 클러스터를 같이 처리하기 위해 질의 사용 패턴을 분석하고, 부분 질의를 갖고 있는 클러스터를 구분하는, 그래프 사용 패턴 분석 단계, 그래프를 분할하기 위한 기준을 위하여, 각 파티션의 부하를 분석하여 부하 분산 정보를 계산하는 그래프 분할 기준 검사 단계 및 상기 부하 분산 정보를 이용하여 데이터를 정해진 파티션에 이주시키는 물리적 그래프 분할 단계를 포함한다.
본 발명에 의하면, 사용자에게 보다 빠른 질의응답을 제공할 수 있으며, 저장 공간의 크기를 감소시킬 수 있는 효과가 있다.

Description

분산 RDF 그래프에 대한 부하 분산을 지원하는 동적 분할 방법 {Dynamic partitioning method for supporting load balancing of distributed RDF graph}
본 발명은 동적 분할 기법에 관한 것으로서, 더욱 상세하게는 분산 RDF 그래프에 대한 부하 분산을 지원하는 동적 분할 기법에 관한 것이다.
시맨틱 웹(semantic web)은 웹의 정보와 자원 사이의 관계를 컴퓨터가 이해하고 처리할 수 있도록 하는 기술이다. 현재의 웹은 사람이 읽고 활용할 수 있도록 문서 형태로 표현되어 사용자가 원하는 내용을 검색하기 위해서는 정확한 검색어를 파악해야 한다. 하지만, 시맨틱 웹은 정보와 자원 사이의 관계를 가지고 있어서 주변 정보나 연관 정보를 이용하여 연속적인 검색으로 원하는 정보를 접근하고 찾을 수가 있다.
W3C(World Wide Web Consortium)는 시맨틱 웹에서 웹의 정보와 자원을 표현하기 위해 RDF(Resource Description Framework)를 제안하였다. RDF는 정보나 자원의 구조를 표현하는 언어로 주어(subject), 술어(predicate), 목적어(object)의 트리플 구조로 구성된다. RDF 데이터를 트리플 형태로 저장하면 질의 처리 시 조인 연산이 많이 발생하여 질의 처리 시간이 증가한다. 이러한 트리플 형태의 RDF 데이터는 주어와 목적어를 정점(vertex)으로 표현하고, 술어를 정점 간의 관계인 간선(edge)으로 표현하여 그래프로 변환이 가능하다. RDF 데이터를 그래프 형태로 관리하면 질의 처리 시 정점의 연결 정보로 다른 정점을 접근할 수 있어서 조인 연산을 줄여 빠른 질의응답을 제공할 수 있다.
최근 시맨틱 웹과 LOD(Linked Open Data) 프로젝트의 확산으로 RDF 데이터가 증가되고 있다. 예를 들어, 디비피디아(DBpedia)는 30억개 이상의 RDF 트리플로 구성되어 있고, k-water LOD는 3억개 이상의 트리플 데이터를 가지고 있다. 또한, 공공데이터, 지리, 생명과학, 미디어 관련, 출판·논문·도서관 등 다양한 분야에서 기존 데이터를 RDF 데이터로 변환하여 LOD 서비스를 제공함으로써, RDF 데이터가 급증하고 있다.
이와 같은 대용량 RDF 데이터를 단일 서버에 저장하고 처리할 경우, 다음과 같은 문제점이 발생한다.
단일 서버의 저장 크기 확장의 한계로 증가하는 대용량 RDF 데이터를 계속적으로 저장하기 어렵다. 또한, 다수의 사용자 질의가 요청될 경우 질의 처리가 늦어져서 빠른 질의응답을 제공하기 어렵다. 따라서 빠른 질의응답 시간을 위해 대용량 RDF 데이터를 분산으로 저장 및 처리하기 위한 기법이 필요하다.
종래 대용량 RDF 데이터를 분산으로 저장 및 처리하기 위해 정적인 그래프 데이터를 분할하는 정적 분할 기법이 연구되었다. 정적 분할 기법은 그래프 데이터를 압축, 분할, 확장을 수행하여 그래프 데이터 분할을 수행한다. 분산 환경에서 사용자 요청에 따라 특정 서버의 부하가 높아지거나 서버 간의 통신비용이 증가하는 문제가 발생한다. 이때, 정적 분할 기법은 사용자 요청에 따른 부하가 발생할 경우 부하 분산을 수행하기 위해서는 전체 그래프 데이터를 재분할(repartitioning)을 수행한다. 하지만 전체 그래프 데이터를 재분할을 수행하는 것은 시스템의 자원을 많이 사용하고, 재분할 시간도 많이 소요된다. 이를 해결하기 위해 사용자 요청에 따른 부하가 발생할 경우, 전체 그래프 데이터에 대한 재분할을 수행하지 않고, 부하 분산을 수행하는 동적 분할(dynamic partitioning) 기법이 필요하다.
동적 분할 기법은 빠른 질의응답을 위해 빈번하게 요청된 사용자 질의 또는 서버 간의 최소 간선으로 분할하는 기법이다. 그리고, 부하의 변화에 따른 부하 분산(load balancing) 기법이 제안되었는데, 이 기법은 데이터의 추가 및 삭제, 변경 작업으로 서버 간의 불균등한 부하가 발생하면, 서버 간의 간선 수를 최소로 유지하면서 부하 분산을 수행한다. 또한, 사용자의 질의를 빠르게 처리하기 위해 사용자의 질의를 미리 분석하여 빈발 패턴을 검출하고 빈발 패턴 데이터들을 복제하는 기법이 제안되었고, 변화하는 질의 부하에 따라 이주 및 복제를 수행함으로써 데이터 지역성(data locality)을 높여 서버 간의 통신을 최소화하는 기법이 제안되었다. 하지만 기존 동적 분할 기법에서 빈번하게 요청되는 질의를 기반으로 분할 또는 복제를 수행할 때 질의들의 관련성을 고려하지 않기 때문에 다음과 같은 두 가지 문제가 발생한다.
첫째, 하나의 서버에 같은 부분 질의를 가지고 있는 빈번하게 요청되는 질의가 두 개 이상이 있을 경우, 부하가 발생하여 빈번하게 요청되는 질의 하나가 부분 질의를 가지고 다른 서버로 이주하면, 남아있는 빈번하게 요청되는 질의는 요청될 때마다 부분 질의가 있는 서버와 통신을 통해 질의 처리를 수행한다.
둘째, 빈번하게 요청되는 질의를 복제하면 복제된 서버에는 동일한 부분 질의를 중복해서 저장하고 관리하게 된다. 따라서 부분 질의의 크기가 클수록 비효율적으로 저장 공간이 관리된다. 따라서 부하가 발생하여 기존 동적 분할을 수행하면 다른 통신비용 증가 문제와 저장 크기의 증가 문제가 발생한다.
이처럼, 데이터의 추가 및 사용자의 질의 요청으로 인해 특정 서버에 작업이 집중되거나, 조인 연산이 증가하여 서버 간의 불균등한 부하가 발생한다. 따라서 서버 간의 불균등한 부하를 해결하기 위한 동적 분할 기법이 필요하다.
기존 동적 분할 기법은 데이터의 사용 패턴을 고려하지 않아서 동적 분할이 수행된 후에도 다른 서버와 통신을 통해 질의를 처리하거나, 저장 공간의 크기가 증가하는 문제점을 가진다. 따라서 사용자에게 빠른 질의응답을 제공하기 위해 데이터의 사용 패턴을 고려한 동적 분할 기법이 필요하다.
대한민국 등록특허 10-0893176
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, RDF(Resource Description Framework) 데이터의 사용 패턴을 고려하여 부하 분산을 수행하는 동적 분할 기법을 제안하는데 그 목적이 있다.
본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
이와 같은 목적을 달성하기 위한 본 발명은 하나의 서버에서 하나의 파티션을 갖는다고 가정할 때, RDF(Resource Description Framework) 데이터를 분할하여 파티션에 저장하고 있는 초기 단계, 파티션 간의 불균등한 부하가 발생되면, 부하 분산을 위해 빈도수가 높은 질의에 사용되는 데이터를 기반으로 클러스터를 생성하고, 클러스터 생성 시에 관련된 클러스터를 같이 처리하기 위해 질의 사용 패턴을 분석하고, 부분 질의를 갖고 있는 클러스터를 구분하는, 그래프 사용 패턴 분석 단계, 그래프를 분할하기 위한 기준을 위하여, 각 파티션의 부하를 분석하여 부하 분산 정보를 계산하는 그래프 분할 기준 검사 단계 및 상기 부하 분산 정보를 이용하여 데이터를 정해진 파티션에 이주시키는 물리적 그래프 분할 단계를 포함한다.
상기 그래프 분할 기준 검사 단계에서, 다른 파티션과 통신하여 질의를 처리하는 조인 클러스터의 경우, 조인 클러스터의 데이터를 갖고 있는 파티션 중 하나의 파티션에 조인 클러스터를 이주시켜서 그래프 분할을 수행할 수 있다.
상기 그래프 분할 기준 검사 단계에서, 특정 파티션에 발생한 부하의 경우, 클러스터에서 외부 파티션과 연결된 간선 수가 미리 정해진 기준치 이상이면 이주를 수행하고, 상기 기준치 이하이면 복제를 수행할 수 있다.
상기 물리적 그래프 분할 단계에서, 데이터를 이주시킨 결과, 파티션 간의 크기가 불균등하면, 클러스터에 참여하지 않는 데이터를 이주시켜서 파티션 크기를 균등하게 조절할 수 있다.
삭제
본 발명에 의하면, 데이터의 사용 패턴을 고려한 동적 분할 방법을 제안함으로써, 사용자에게 보다 빠른 질의응답을 제공할 수 있으며, 저장 공간의 크기를 감소시킬 수 있는 효과가 있다.
도 1은 부하가 발생하여 동적 분할을 수행하는 과정을 나타낸 것이다.
도 2는 본 발명의 일 실시예에 따른 동적 분할 방법의 전체적인 과정을 나타낸 흐름도이다.
도 3은 질의 번호를 생성하는 과정을 나타낸 도면이다.
도 4는 질의 빈도수 테이블을 생성하는 과정을 보여주는 도면이다.
도 5는 부분 질의 데이터를 검출하는 과정을 나타낸 도면이다.
도 6는 표 1에서 평균 이상의 질의의 데이터를 기반으로 클러스터를 생성한 예를 나타낸 도면이다.
도 7은 조인 클러스터의 이주 알고리즘을 나타낸 도면이다.
도 8은 조인 클러스터 이주 알고리즘을 실행한 후 조인 클러스터가 이주한 것을 나타낸 도면이다.
도 9는 파티션에서 클러스터와 연결된 정점을 나타낸 도면이다.
도 10은 본 발명의 일 실시예에 따른 클러스터 이주 알고리즘을 나타낸 도면이다.
도 11은 도 10의 알고리즘에서 클러스터가 이주할 파티션을 찾는 과정을 나타낸 도면이다.
도 12는 γ값이 0.5일 때 파티션 부하에 따라 클러스터를 이주하는 과정을 나타낸 도면이다.
도 13은 보조 데이터를 사용하여 실제 데이터에 반영하는 과정을 나타낸 도면이다.
도 14는 부하 분산이 수행된 후 불균등한 파티션 크기를 조절하는 모습을 나타낸 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 갖는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 발명에서 제안하는 동적 분할 기법은 그래프 분할을 수행하기 위해 빈번한 질의의 데이터를 기반으로 클러스터를 생성하고, 특정 서버에 발생한 부하를 줄이기 위해 클러스터에서 외부 서버와 연결된 간선 수가 많으면 해당 클러스터를 이주시키고 연결된 간선 수가 적으면 복제한다. 또한, 서버들 간의 조인으로 인한 통신량을 줄이기 위해 하나의 서버로 클러스터를 이주하여 분할을 수행한다.
이처럼, 본 발명에서는 분산 환경에서 대용량 RDF 데이터의 사용 패턴을 고려한 동적 분할 기법을 제안한다. 제안하는 기법은 다음과 같은 기존 기법의 문제를 해결한다.
도 1은 부하가 발생하여 동적 분할을 수행하는 과정을 나타낸 것이다.
도 1에서 (a)는 동적 분할 전 상태이고, (b)는 클러스터 이주 상태이고, (c)는 클러스터 복제 상태이다.
도 1 (a)에서 Q1, Q2는 빈번하게 요청되는 질의 데이터를 나타내고, S1은 두 질의에 공통으로 사용되는 부분 질의(sub-query) 데이터를 나타낸다.
도 1 (b)에서는 부하가 발생하여 Q2를 다른 서버로 이주시키는 과정을 보여주고 있다. 이때, Q2에 포함된 S1도 같이 다른 서버로 이주하게 되면서, Q1이 요청될 때마다 Q2가 있는 서버와 통신해서 처리되어야만 한다.
그리고, 도 1 (c)에서 보는 바와 같이, 부하가 발생하여 Q1, Q2를 복제하면 S1도 각각 복제가 되므로, 관리 비용이 증가하게 된다.
따라서, 본 발명에서는 빈번하게 요청되는 질의에서 부분 질의를 고려하여 그룹화를 수행함으로써, 동적 분할을 수행한 후 서버 간의 통신과 저장 크기가 증가되는 문제점을 해결한다.

본 발명에서 동적 분할 방법은 일종의 소프트웨어인 알고리즘으로 구성되며, 소프트웨어 알고리즘은 일반적인 PC 또는 컴퓨터 시스템에서 수행될 수 있으며, 하드웨어(H/W), 소프트웨어(S/W), 또는 하드웨어와 소프트웨어가 결합된 장치로 구현될 수도 있다. 즉, 본 발명에서 동적 분할 방법은 일종의 소프트웨어인 프로그램으로 구성되며, 이러한 프로그램은 시스템, 컴퓨터 또는 프로세서(processor)에서 실행될 수 있다. 즉, 본 발명에서 동적 분할 방법을 수행하는 주체는 제반 컴퓨터 장치라고 할 수 있다.
도 2는 본 발명의 일 실시예에 따른 동적 분할 방법의 전체적인 과정을 나타낸 흐름도이다.
도 2를 참조하면, 초기에는 질의의 빈도수가 존재하지 않으므로, 대규모 RDF(Resource Description Framework) 데이터를 분할하여 파티션에 저장한다. 본 발명의 일 실시예에서는 하나의 서버가 하나의 파티션을 가진다고 가정한다.
본 발명에서는 부하 분산을 수행할 때 보조 데이터를 사용함으로써, 실제 데이터를 이주하거나 복제하지 않고, 파티션의 부하, 클러스터의 정보, 클러스터에 참여하는 정점의 부하를 가지고 부하 분산을 수행한다. 따라서, 실제 데이터가 이주하지 않으므로 계속해서 사용자의 질의를 처리할 수 있으며, 시스템의 자원을 많이 사용하지 않는 장점이 있다. 이를 위하여 본 발명에서는 부하 분산을 수행하기 위해 보조 데이터를 관리하는 질의 관리 테이블을 사용한다.
본 발명에서 제안하는 동적 분할 방법은 동적 분할을 위해 그래프 사용 패턴 분석 단계(S100), 그래프 분할 기준 검사 단계(S200), 물리적 그래프 분할 단계(S300)를 포함한다.
그래프 사용 패턴 분석 단계(S100)에서 파티션 간의 불균등한 부하가 발생되면, 부하 분산을 위해 빈도수가 높은 질의에 사용되는 데이터를 기반으로 클러스터를 생성한다(S110). 그리고, 클러스터를 생성할 때 관련된 클러스터를 같이 처리하기 위해 질의 사용 패턴을 분석하고, 부분 질의를 가지고 있는 클러스터를 구분한다(S120).
다음, 그래프 분할 기준 검사 단계(S200)에서 다른 파티션과 통신하여 질의를 처리하는 조인 클러스터는 질의 요청이 증가하면 파티션 간의 통신량이 증가된다. 그러므로 데이터 지역성을 높이기 위해서 조인 클러스터의 데이터를 가지고 있는 파티션 중 하나로 이주하여 그래프 분할을 수행한다(S210).
파티션 부하의 종류에는 특정 파티션에 발생한 부하와 파티션 간에 조인으로 발생하는 부하로 구분된다. 특정 파티션에 발생한 부하는 높은 부하를 줄이기 위해, 클러스터에서 외부 파티션과 연결된 간선 수가 많으면 이주를 수행하고, 연결된 간선 수가 적으면 복제를 수행한다. 파티션 간에 조인으로 발생하는 부하는 여러 파티션에 데이터가 존재하여 부하 분산을 수행하기 어려우므로, 하나의 파티션에 이주하여 부하 분산을 수행한다(S220).
마지막으로, 물리적 그래프 분할 단계(S300)에서는 계산된 부하 분산 정보를 가지고 실제 데이터를 이주시킨다. 이때, 실제 데이터 이주로 불균등한 파티션 크기가 발생하면, 클러스터에 참여하지 않는 데이터를 이주함으로써, 파티션 크기를 균등하게 조절한다(S310, S320).
사용자의 요청에 따른 발생한 부하를 해결하기 위해서는 사용자에 의해 요청된 질의 정보들을 관리하는 테이블이 필요하다.
도 3은 질의 번호를 생성하는 과정을 나타낸 도면이다.
도 3을 참조하면, 질의가 들어오면 WHERE 절에 있는 문자열을 해싱(hashing)하여 하나의 값으로 생성한다. 생성된 값은 질의 빈도수 테이블에 질의 ID로 사용된다.
도 4는 질의 빈도수 테이블을 생성하는 과정을 보여주는 도면이다.
도 4에 있는 테이블은 질의의 식별 값(Query_ID), 질의 빈도수(Query_Freq), 조인 질의 여부(Cross_Partition), 질의 데이터가 있는 파티션(Partition), 질의 데이터가 복제된 파티션(Duplicate_Partition)을 나타낸다.
도 4를 참조하면, 질의 서버에 질의 q1가 요청되면, 모든 서버에 질의 q1을 전달한다. 서버(Server) 1에 질의 q1이 시작하는 정점이 존재하므로, 질의 조건에 해당하는 간선을 이동하여 질의 q1을 처리한다.
도 4에서 질의 q1을 처리하는 과정에서 연결된 정점이 서버 2에 있는 것을 확인할 수 있다. 서버 1에서는 남아있는 질의 조건과 서버 2에 있는 정점 정보를 서버 2에 전달하면서 질의 처리를 계속 진행한다.
서버 2에서 질의 처리가 끝나면, 질의 결과 및 결과를 받은 서버 정보들을 질의 처리가 시작한 서버 1에 전달한다. 그리고, 서버 1에서는 질의 결과와 질의를 처리하는데 사용한 서버 정보들을 질의 서버에 전달하고, 질의 서버는 질의를 처리하는데 사용한 서버가 1개이면 Cross_Partition을 false로 설정하고, 서버가 2개 이상이면 Cross_Partition을 true로 설정한다. 질의 서버에 질의 q1이 요청되면 Query_Freq 값을 1 증가시키고 질의 처리를 한다.
빈도수가 높은 질의는 앞으로 계속 질의가 사용될 가능성이 높다. 따라서, 그래프 사용 패턴 분석 단계(S100)에서는 빈도수가 높은 질의를 고려하여 클러스터를 생성해야 한다. 그리고, 클러스터를 생성하면 관련된 클러스터를 같이 처리하기 위해 빈도수가 높은 질의들의 부분 질의를 사용하여 관련된 클러스터를 검출해야 한다.
분산 환경에서 사용자가 요청한 질의를 빠르게 처리하기 위해서는 파티션 간의 조인 연산 및 통신량을 최소화하고, 파티션 간의 부하가 균등해야 한다. 또한, 사용자로부터 빈번하게 요청되는 질의는, 향후 다시 요청될 가능성을 고려하여, 하나의 파티션에 저장 및 관리할 수 있도록 동적 분할을 수행해야 한다. 따라서, 빈도수가 높은 질의를 기반으로 클러스터를 생성하고 생성된 클러스터를 하나의 파티션에 관리되도록 동적 분할을 수행한다.
Figure 112016126902832-pat00001
표 1은 질의 빈도수 테이블을 나타낸다. 표 1의 질의 빈도수 테이블에서 빈도수 평균을 계산하고, 빈도수 평균 이상인 질의의 데이터들을 기반으로 클러스터를 생성한다.
관련된 클러스터를 고려하지 않고 부하 분산을 수행하면 다음과 같은 문제점이 있다.
첫째, 클러스터 이주를 수행하면, 다른 클러스터와 공유하고 있는 정점들도 같이 이주하기 때문에 다른 클러스터는 통신을 통해 질의를 처리해야 한다.
둘째, 클러스터 복제를 수행하면 복제된 서버에서 동일한 부분 질의 데이터를 중복해서 관리되어 저장 공간을 비효율적으로 사용한다.
따라서 부하 분산을 수행하기 전에 관련된 클러스터를 검출하는 과정이 필요하다. 클러스터 관계를 파악하기 위해서 질의 빈도수가 높은 질의 간에 문자열 비교를 통해 클러스터에서 부분 질의 데이터를 검출한다.
도 5는 부분 질의 데이터를 검출하는 과정을 나타낸 도면이다.
도 5 (a)는 빈도수가 높은 두 질의에서 문자열 비교를 통해 부분 질의를 검출하는 모습을 나타내고, (b)는 검출된 부분 질의를 가지고 클러스터에서 부분 질의 데이터를 검출하는 과정을 나타낸다. 여기서, 빗금친 정점은 질의 1과 질의 2의 부분 질의 데이터를 나타낸다.
도 6는 표 1에서 평균 이상의 질의의 데이터를 기반으로 클러스터를 생성한 예를 나타낸 도면이다.
Figure 112016126902832-pat00002
표 2는 생성한 클러스터 정보를 관리하는 테이블을 나타낸다.
표 2에서 Cluster_ID는 클러스터를 구별하기 위한 클러스터 식별 값이고 Load는 클러스터에 있는 정점들이 가지고 있는 부하의 합이다. 정점 부하는 질의에 의해 정점 데이터가 사용된 횟수이다.
도 6에서 C4과 C5에 공통된 부분 질의가 존재하여 부분 질의(Sub_Query)의 값이 true로 되어있는 것을 확인할 수 있다. 이 값은 클러스터가 이주할 때 사용되며, true로 되어 있으면 관련된 클러스터를 고려하여 이주를 수행한다.
질의 식별 값(Query_ID)은 현재 클러스터가 어떤 질의에 의해 생성되었는지를 알려준다. 질의 식별 값은 부분 질의를 조회하거나 클러스터가 존재하는 파티션을 찾을 때 사용된다.
조인 클러스터(Cross_Query)는 클러스터에 있는 정점들이 두 개 이상의 파티션으로 구성되어 있는 것을 말한다. 그림 6에서 C3, C4, C5는 두 개 이상의 파티션으로 구성되어 있는 것을 확인할 수 있다.
조인 클러스터는 여러 파티션에 데이터가 있어 부하 분산을 수행하기 어렵다. 따라서, 부하 계산이 쉽도록 조인 클러스터를 그래프 분할을 수행하기 전에 하나의 파티션으로 이주시켜 부하 분산을 수행한다.
파티션 간의 부하를 균등하게 유지하기 위해 먼저 파티션 부하 평균을 이용하여 각 파티션이 가질 수 있는 부하 크기를 계산한다. 그리고, 파티션 간의 최소 간선 수를 유지하기 위해 부하가 높은 파티션에서 클러스터의 외부 파티션과 연결된 간선 수를 이용하여 이주할 클러스터를 선택한다. 그리고, 클러스터 이주로 파티션 간의 불균등한 부하가 해결되지 않으면 클러스터를 복제하여 부하 분산을 수행한다.
조인 클러스터는 파티션 간에 통신을 증가시키기 때문에 사용자 질의에 대해 빠른 응답시간을 제공할 수 없다. 따라서 조인 클러스터는 하나의 파티션으로 이주시켜 지역성을 증가시킨다.
도 7은 조인 클러스터의 이주 알고리즘을 나타낸 도면이다.
도 7을 참조하면, 줄 1-2는 빈도수가 높은 질의로 클러스터를 생성한다. 줄 4는 조인클러스터인지 Cross_Query 값을 통해 조건을 확인한다. 줄 5-8은 부분 질의가 존재하는지 확인하여, 부분 질의가 존재하지 않으면 낮은 번호 파티션으로 이주를 수행하고, 부분 질의가 존재하면 다른 클러스터가 있는 파티션으로 이주를 수행한다.
도 8은 조인 클러스터 이주 알고리즘을 실행한 후 조인 클러스터가 이주한 것을 나타낸 도면이다.
도 8은 조인 클러스터 이주 알고리즘을 실행한 후, 조인 클러스터가 이주한 것을 나타낸다. 조인 클러스터는 C3, C4, C5가 있다. C3는 부분 질의가 존재하지 않으므로 파티션 번호가 낮은 1번 파티션으로 이주되고, C4와 C5는 부분 질의를 포함하고 있으므로 C4를 C5가 있는 3번 파티션으로 이주시킨다.
이러한 조인 클러스터 이주는 빈도수가 높은 질의에 있는 조인 질의들을 하나의 파티션에서 질의가 처리될 수 있도록 만들었지만, 파티션 간의 불균등한 부하는 해결되지 않았다. 파티션 부하는 조인 클러스터 이주로 부하가 증가한 파티션과 부하가 감소한 파티션이 존재한다. 따라서 현재 파티션 간의 부하가 균등한지 알 수 없으므로, 전체 파티션 부하의 평균을 계산하여 현재 파티션 부하가 평균보다 높은 파티션과 평균보다 낮은 파티션을 찾는다. 동적 분할이 수행 중에도 사용자의 질의에 따라 파티션의 부하가 변하기 때문에 파티션들의 부하를 하나의 평균 부하 값으로 만드는 것은 어렵다. 따라서 전체 파티션 부하에 임계값 γ을 고려하여 각 파티션이 가질 수 있는 최소 부하와 최대 부하를 계산한다.
Figure 112016126902832-pat00003
수학식 1은 파티션이 가질 수 있는 최소 부하를 계산한 식이다.
Figure 112016126902832-pat00004
수학식 2는 파티션이 가질 수 있는 최대 부하를 계산한 식이다.
수학식 1 및 수학식 2에서 임계값 γ은 0보다 크거나 같고 1보다 작거나 같은 값을 가진다. 임계값 γ가 0에 근접한 값으로 설정되면, 파티션에 허용할 수 있는 최소 부하와 최대 부하가 증가하여 동적 분할이 거의 발생하지 않는다. 반대로 임계값 γ가 1에 근접한 값으로 설정하면 잦은 동적 분할이 발생한다.
도 9는 파티션에서 클러스터와 연결된 정점을 나타낸 도면이다.
도 9를 참조하면, C1은 같은 파티션에서의 정점과 연결된 간선이 많고, C3는 외부 파티션에서의 정점과 연결된 간선이 많다. 클러스터에서 외부 파티션과 연결된 간선이 많은지 계산하기 위해, 다음 수학식 3을 사용하여 외부 파티션과 연결된 간선의 비율을 구한다.
Figure 112016126902832-pat00005
여기서, Eint는 같은 파티션에 있는 정점들과 연결된 간선의 수이고, Eext는 외부 파티션에 있는 정점들과 연결된 간선의 수이다.
수학식 3을 계산하여 나오는 값이 α>0.5이면 같은 파티션보다 외부 파티션에 있는 정점과 연결된 간선의 수가 많고, α<0.5이면 외부 파티션보다 같은 파티션에 있는 정점과 연결된 간선의 수가 많다는 것을 의미한다.
본 발명에서는 클러스터 이주로 부하를 분산할 때 부하 조건과 최소 간선을 고려한다. 부하 조건은 클러스터를 받는 파티션의 부하가 초과되거나, 클러스터를 내보내는 파티션의 부하가 미달되는지 확인하는 것이다. 부하 조건이 충족하지 않는다면, 해당 클러스터를 이주하지 않고 다른 클러스터를 선택하여 계산한다. 클러스터를 이주할 때 α값이 0.5보다 작은 클러스터를 이주시키면 파티션 간의 연결되는 간선이 많아진다. 이는 향후에 조인 연산을 발생시켜 파티션 간의 통신을 증가시킨다. 따라서 다른 파티션으로의 클러스터 이주는 α값이 θ(θ>0.5)인 클러스터만을 고려한다.
도 10은 본 발명의 일 실시예에 따른 클러스터 이주 알고리즘을 나타낸 도면이다.
도 10을 참조하면, 줄 3-4에 따르면, 부하 초과 파티션들에 있는 클러스터들 중 외부 파티션에 있는 정점과 많이 연결된 클러스터를 찾기 위해 α값이 임계값 θ 초과인 클러스터들을 선택한다. 줄 5-6에 따르면, 부하 초과 파티션이 없을 경우 모든 클러스터에서 α값을 계산하여 외부 파티션과 간선이 많은 클러스터를 찾는다. 줄 8에 따르면, 외부 파티션과 간선이 많은 클러스터부터 이주 조건을 확인하기 위해 α값을 내림차순으로 정렬한다. 줄 11에 따르면, 파티션 간의 균등한 부하가 중요하므로 부하 미만 파티션들을 우선적으로 처리한다. 줄 13과 줄 21에 따르면, 클러스터를 다른 파티션에 이주하면 부하 조건이 충족하는지 확인하여 이주 여부를 선택한다. 줄 14-16과 줄 22-24에 따르면, 파티션 간의 통신량을 줄이기 위해 최소 간선 되는 파티션을 선택한다. 줄 29는 조건이 만족하는 파티션을 찾았을 경우, 클러스터의 이주 정보들을 반영하여 실제 데이터를 이주할 때 사용된다.
도 11은 도 10의 알고리즘에서 클러스터가 이주할 파티션을 찾는 과정을 나타낸 도면이다.
도 11을 참조하면, 서버(Server) 1에서 클러스터 C1과 C2중 α값이 큰 클러스터를 선택한다. 클러스터 C1은 서버 2, 서버 3로 이주했을 때 α을 계산하여 가장 작은 값을 가지는 파티션으로 이주한다. α값이 작을수록 내부 간선이 많은 것을 의미하므로, 최소 통신비용으로 다른 파티션과 질의 처리가 가능하다. 서버 2는 α값이 0.6이고 서버 3는 α값이 0.2이므로 C1은 서버 3으로 이주된다.
도 12는 γ값이 0.5일 때 파티션 부하에 따라 클러스터를 이주하는 과정을 나타낸 도면이다.
도 12를 참조하면, 클러스터 C3와 C4의 α값이 임계값 θ를 초과했다고 가정한다. 파티션 1과 파티션 3은 부하가 각각 90으로써 최대 가질 수 있는 부하를 초과했다. 파티션 2와 파티션 4는 파티션의 부하가 최소 가질 수 있는 부하보다 작다. 따라서 부하 분산을 위해 파티션 1과 파티션 3에 있는 클러스터 C2, C4를 파티션 2와 파티션 4에 최소 간선을 고려하여 이주한다.
본 발명에서 클러스터 이주 기법을 사용하여 외부 파티션과 연결된 간선이 많은 클러스터를 이주하여 부하를 분산시켰다. 하지만 부하 분산 시 외부 파티션과 연결된 간선이 많은 클러스터만 고려해서 부하 불균형이 존재할 수 있다. 이는 외부 파티션과 연결된 간선이 적은 클러스터 또는 부하가 커서 이주할 수 없는 클러스터가 존재하는 환경이다. 이처럼 클러스터 이주로 부하를 해결할 수 없는 상황에서는 클러스터 복제 기법으로 파티션 부하를 분산한다. 즉, 부하가 초과한 파티션에서는 부하가 큰 클러스터 순으로 부하 조건이 만족할 때까지 부하가 작은 파티션에 복제한다.
그래프 분할 기준 검사 단계(S200)에서 보조 데이터를 활용하여 클러스터가 이주할 파티션의 위치를 계산한다. 클러스터의 물리적 데이터들은 실제로 이주하지 않아서, 부하 분산을 수행을 위해 물리적 그래프에 반영하는 과정이 필요하다. 따라서, 물리적 그래프 분할 단계(S300)에서는 이주할 클러스터들 정보를 기반으로 실제 데이터를 해당 파티션으로 이주시킨다. 이 때, 부분 질의를 공유하고 있는 클러스터가 존재한다면 부분 질의 데이터를 복제하여 이주시킨다.
도 13은 보조 데이터를 사용하여 실제 데이터에 반영하는 과정을 나타낸 도면이다.
이전 단계에서 클러스터 이주로 인해 C3와 C4가 다른 파티션으로 이주된 것을 확인할 수 있다. 부분 질의를 포함하는 C4는 데이터가 이주 될 때 부분 질의에 사용되는 데이터를 복제하여 질의의 지역성을 높인다.
그래프 분할이 끝나면 파티션 크기를 조절한다. 파티션 간의 불균등한 크기로 인해 데이터가 특정 파티션에 집중되어 있을 경우, 빠른 질의응답 시간을 제공하기 어렵다. 따라서, 그래프 분할이 끝나면 클러스터에 참여하지 않는 정점들을 이주하여 파티션 크기를 균등하게 유지한다. 이 때, 파티션 간의 최소 간선 수를 유지하기 위해 파티션 크기는 다음 수학식 4와 수학식 5를 사용하여 파티션이 허용할 수 있는 최대 크기와 최소 크기를 계산한다.
Figure 112016126902832-pat00006
Figure 112016126902832-pat00007
여기서, β값은 0보다 크거나 같고 1보다 작거나 같다. 각 파티션은 최대 크기와 최소 크기가 만족하지 않을 경우, 클러스터에 참여하지 않는 정점을 이주하여 파티션 크기를 조절한다.
도 14는 부하 분산이 수행된 후 불균등한 파티션 크기를 조절하는 모습을 나타낸 도면이다.
도 14 (a)는 서버(Server) 1에 데이터가 집중되어 있는 모습을 나타낸다. 서버 2에서는 최소 크기를 만족할 때까지 서버 2와 연결되어 있는 다른 파티션의 정점을 서버 2로 이주시킨다. 이 때, 최소 간선을 유지하기 위해서 정점의 연결된 간선 정보를 활용하여 서버 2로 이주되었을 때의 외부 간선의 수를 계산한다. 외부 간선의 수가 변함이 없거나 적은 정점은 계산이 끝나면 이주를 시키고, 외부 간선의 수가 증가하는 정점은 테이블에 기록한다. 최소 크기를 만족하지 않으면 기록한 테이블에서 외부 간선의 수로 오름차순으로 정렬하여 작은 순으로 서버 2에 이주시킨다.
상술한 바와 같이, 본 발명에서는 부하 분산을 위해 데이터의 사용 패턴을 고려한 RDF 동적 분할 방법을 제안한다. 제안하는 동적 분할 방법에서, 빈번하게 요청되는 질의 데이터는 계속해서 요청될 가능성이 높기 때문에, 빈번하게 요청되는 질의를 기준으로 부하 분산을 수행해야 한다. 따라서, 부하 분산을 수행하기 위해, 빈번하게 요청되는 질의 데이터를 기반으로 그룹화를 수행하여 클러스터(cluster)를 생성한다. 관련된 클러스터를 같이 처리하기 위해 빈번한 질의에서 부분 질의를 검출한다.
사용자의 질의 요청에 의해 발생하는 부하의 종류에는 두 가지가 있다.
첫 번째는 질의 데이터가 여러 서버에 존재하여 서버 간의 통신을 통해 질의가 처리되기 때문에, 서버 간의 통신이 증가하여 부하가 발생한다. 두 번째는 특정 서버에 있는 질의들만 요청되어 특정 서버에만 부하가 발생한다.
서버 간의 통신량을 줄이고 간단한 부하 계산을 위해 여러 서버에 데이터가 있는 클러스터는 하나의 서버로 이주시킨다. 클러스터를 하나의 서버로 이주하여 특정 서버의 부하가 평균 이상이거나 이하면, 부하 분산을 위해 부하가 높은 서버에서 클러스터를 부하가 낮은 서버로 이주시킨다. 이 때, 동적 분할 후 서버 간의 간선 수를 감소시키기 위해, 외부 서버와 연결된 간선 수가 많은 클러스터를 선택하여 이주시킨다. 서버 간의 불균등한 부하가 해결되지 않는 경우, 부하가 높은 서버의 클러스터를 부하가 낮은 서버로 복제하여 서버 간의 균등한 부하를 유지한다. 동적 분할 수행이 끝나고, 데이터가 특정 서버로 집중되는 것을 막기 위해, 클러스터에 참여하지 않는 정점들을 이주하여 서버 크기를 조절한다.
이상 본 발명을 몇 가지 바람직한 실시예를 사용하여 설명하였으나, 이들 실시예는 예시적인 것이며 한정적인 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 지닌 자라면 본 발명의 사상과 첨부된 특허청구범위에 제시된 권리범위에서 벗어나지 않으면서 다양한 변화와 수정을 가할 수 있음을 이해할 것이다.

Claims (4)

  1. 하나의 서버에서 하나의 파티션을 갖는다고 가정할 때, 컴퓨터 장치는 RDF(Resource Description Framework) 데이터를 분할하여 각 서버의 파티션에 저장하는 초기 단계;
    상기 컴퓨터 장치는 파티션 간의 불균등한 부하가 발생되면, 부하 분산을 위해 빈도수가 높은 질의에 사용되는 데이터를 기반으로 클러스터를 생성하고, 클러스터 생성 시에 관련된 클러스터를 같이 처리하기 위해 질의 사용 패턴을 분석하고, 부분 질의를 갖고 있는 클러스터를 구분하는, 그래프 사용 패턴 분석 단계;
    상기 컴퓨터 장치는 그래프를 분할하기 위한 기준을 위하여, 각 파티션의 부하를 분석하여 부하 분산 정보를 계산하는 그래프 분할 기준 검사 단계; 및
    상기 컴퓨터 장치는 상기 부하 분산 정보를 이용하여 데이터를 정해진 파티션에 이주시키는 물리적 그래프 분할 단계를 포함하되,
    상기 그래프 분할 기준 검사 단계에서, 다른 파티션과 통신하여 질의를 처리하는 조인 클러스터의 경우, 상기 컴퓨터 장치는 조인 클러스터의 데이터를 갖고 있는 파티션 중 하나의 파티션에 조인 클러스터를 이주시켜서 그래프 분할을 수행하고,
    상기 그래프 분할 기준 검사 단계에서, 상기 컴퓨터 장치는, 특정 파티션에 발생한 부하의 경우, 클러스터에서 외부 파티션과 연결된 간선 수가 미리 정해진 기준치 이상이면 이주를 수행하고, 상기 기준치 이하이면 복제를 수행하며,
    상기 그래프 분할 기준 검사 단계에서, 상기 컴퓨터 장치는, 파티션 간의 조인으로 발생한 부하의 경우, 하나의 파티션에 이주하여 부하 분산을 수행하고,
    상기 물리적 그래프 분할 단계에서, 상기 컴퓨터 장치는 데이터를 이주시킨 결과, 파티션 간의 크기가 불균등하면, 클러스터에 참여하지 않는 데이터를 이주시켜서 파티션 크기를 균등하게 조절하며,
    상기 컴퓨터 장치는 조인 클러스터의 경우, 부분 질의가 존재하지 않으면 가장 낮은 번호의 파티션으로 이주시키고, 부분 질의가 존재하면 다른 클러스터가 있는 파티션으로 이주시키고,
    Eint는 같은 파티션에 있는 정점들과 연결된 간선의 수이고, Eext는 외부 파티션에 있는 정점들과 연결된 간선의 수라고 할 때, 외부 파티션과 연결된 간선의 비율 α는,
    Figure 112018012876636-pat00022

    의 수학식으로 나타낼 수 있고,
    미리 정해진 임계값을 θ라고 할 때, 상기 컴퓨터 장치는 α값이 θ를 초과하는 클러스트들에 한하여 다른 파티션으로 이주시키고,
    상기 물리적 그래프 분할 단계에서, 상기 컴퓨터 장치는 클러스터를 파티션으로 이주시킬 때, 부분 질의를 공유하고 있는 클러스터가 존재하면, 부분 질의 데이터를 복제하여 이주시키며,
    상기 물리적 그래프 분할 단계 이후, 상기 컴퓨터 장치는 파티션 간의 불균등한 크기로 인해 데이터가 특정 파티션에 집중되어 있을 경우, 클러스터에 참여하지 않는 정점들을 이주하여 파티션 크기를 균등하게 유지하도록 조절하되,
    파티션이 허용할 수 있는 최소크기를,
    Figure 112018012876636-pat00023
    (여기서, β값은 0보다 크거나 같고 1보다 작거나 같음)의 수학식으로 계산하고,
    파티션이 허용할 수 있는 최대크기를,
    Figure 112018012876636-pat00024
    (여기서, β값은 0보다 크거나 같고 1보다 작거나 같음)의 수학식으로 계산하여,
    각 파티션 중에 상기 최소크기와 최소크기를 만족하지 않는 파티션에 대해, 클러스터에 참여하지 않는 정점을 이주하여 파티션 크기를 조절하는 것을 특징으로 하는 동적 분할 방법.
  2. 삭제
  3. 삭제
  4. 삭제
KR1020160178209A 2016-12-23 2016-12-23 분산 rdf 그래프에 대한 부하 분산을 지원하는 동적 분할 방법 KR101872414B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160178209A KR101872414B1 (ko) 2016-12-23 2016-12-23 분산 rdf 그래프에 대한 부하 분산을 지원하는 동적 분할 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160178209A KR101872414B1 (ko) 2016-12-23 2016-12-23 분산 rdf 그래프에 대한 부하 분산을 지원하는 동적 분할 방법

Publications (1)

Publication Number Publication Date
KR101872414B1 true KR101872414B1 (ko) 2018-06-28

Family

ID=62780144

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160178209A KR101872414B1 (ko) 2016-12-23 2016-12-23 분산 rdf 그래프에 대한 부하 분산을 지원하는 동적 분할 방법

Country Status (1)

Country Link
KR (1) KR101872414B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210089036A (ko) 2020-01-07 2021-07-15 한국전력공사 클러스터링 알고리즘을 사용한 rdf 데이터 분산 파티셔닝 방법 및 시스템
CN113191498A (zh) * 2021-04-30 2021-07-30 重庆交通大学 一种基于规则的Spark分布式弹性语义流推理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100478346B1 (ko) * 2003-10-21 2005-03-25 한국전자통신연구원 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드밸런싱 방법 및 그 시스템
KR100893176B1 (ko) 2007-05-11 2009-04-17 한국과학기술정보연구원 Rdf 트리플 기반 확장 클래스-속성 관리 시스템 및 그방법
WO2009148741A1 (en) * 2008-06-04 2009-12-10 Microsoft Corporation Configurable partitioning for parallel data
KR20160072305A (ko) * 2014-12-12 2016-06-23 충북대학교 산학협력단 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 시스템 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100478346B1 (ko) * 2003-10-21 2005-03-25 한국전자통신연구원 그래프 파티션을 이용한 클러스터 서버 환경에서의 로드밸런싱 방법 및 그 시스템
KR100893176B1 (ko) 2007-05-11 2009-04-17 한국과학기술정보연구원 Rdf 트리플 기반 확장 클래스-속성 관리 시스템 및 그방법
WO2009148741A1 (en) * 2008-06-04 2009-12-10 Microsoft Corporation Configurable partitioning for parallel data
KR20160072305A (ko) * 2014-12-12 2016-06-23 충북대학교 산학협력단 동적 환경에서 대규모 시멘틱 웹 데이터 분산 저장을 위한 분할 시스템 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
김천중 외 5명. '대규모 RDF 데이터의 분산 저장을 위한 동적 분할 기법'. Journal of KIISE, Vol.41, No.12, 2014.12, pp.1126-1135. *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210089036A (ko) 2020-01-07 2021-07-15 한국전력공사 클러스터링 알고리즘을 사용한 rdf 데이터 분산 파티셔닝 방법 및 시스템
CN113191498A (zh) * 2021-04-30 2021-07-30 重庆交通大学 一种基于规则的Spark分布式弹性语义流推理方法
CN113191498B (zh) * 2021-04-30 2022-08-05 重庆交通大学 一种基于规则的Spark分布式弹性语义流推理方法

Similar Documents

Publication Publication Date Title
US11030185B2 (en) Schema-agnostic indexing of distributed databases
Chu et al. Distributed data deduplication
US7991763B2 (en) Database query optimization utilizing remote statistics collection
CN109726250B (zh) 数据存储系统、元数据库同步及数据跨域计算方法
US6505187B1 (en) Computing multiple order-based functions in a parallel processing database system
JP5765416B2 (ja) 分散ストレージシステムおよび方法
US10140304B1 (en) Distributed metadata servers in a file system with separate metadata servers for file metadata and directory metadata
US10866970B1 (en) Range query capacity allocation
US8510280B2 (en) System, method, and computer-readable medium for dynamic detection and management of data skew in parallel join operations
US9330158B1 (en) Range query capacity allocation
Elghamrawy et al. A partitioning framework for Cassandra NoSQL database using Rendezvous hashing
Davoudian et al. A workload-adaptive streaming partitioner for distributed graph stores
KR101872414B1 (ko) 분산 rdf 그래프에 대한 부하 분산을 지원하는 동적 분할 방법
Nishanth et al. CoHadoop++: A load balanced data co-location in Hadoop Distributed File System
US10474653B2 (en) Flexible in-memory column store placement
CN108932258A (zh) 数据索引处理方法及装置
Belussi et al. Cost estimation of spatial join in spatialhadoop
Khafagy Indexed map-reduce join algorithm
Ramdane et al. SkipSJoin: A new physical design for distributed big data warehouses in hadoop
Özsu et al. Distributed and parallel database design
US20220365905A1 (en) Metadata processing method and apparatus, and a computer-readable storage medium
Bharati et al. A comprehensive survey on distributed transactions based data partitioning
Luo et al. Data placement algorithm for improving I/O load balance without using popularity information
Elghamrawy An adaptive load-balanced partitioning module in Cassandra using rendezvous hashing
Soni et al. Quantitative Analysis of Document Stored Databases

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant