KR20130047042A - 분산 데이터 저장소를 위한 데이터 파티셔닝 장치 및 방법 - Google Patents

분산 데이터 저장소를 위한 데이터 파티셔닝 장치 및 방법 Download PDF

Info

Publication number
KR20130047042A
KR20130047042A KR1020110111813A KR20110111813A KR20130047042A KR 20130047042 A KR20130047042 A KR 20130047042A KR 1020110111813 A KR1020110111813 A KR 1020110111813A KR 20110111813 A KR20110111813 A KR 20110111813A KR 20130047042 A KR20130047042 A KR 20130047042A
Authority
KR
South Korea
Prior art keywords
data
key value
partitioning
processing target
processing
Prior art date
Application number
KR1020110111813A
Other languages
English (en)
Other versions
KR101301607B1 (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 KR1020110111813A priority Critical patent/KR101301607B1/ko
Publication of KR20130047042A publication Critical patent/KR20130047042A/ko
Application granted granted Critical
Publication of KR101301607B1 publication Critical patent/KR101301607B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Abstract

분산 데이터 저장소를 위한 데이터 파티셔닝 장치 및 방법이 개시된다. 본 발명에 따른 데이터 파티셔닝 장치는 복수 개의 데이터 저장소 중에서 데이터가 저장될 데이터 저장소를 결정하거나 검색대상 데이터가 저장되어 있는 저장소를 결정하기 위한 데이터 파티셔닝 장치로서, 각각의 데이터에 고유하게 부여된 키값을 일정한 개수 단위로 그룹핑하여 형성된 블록을 기초로 입력된 처리대상 키값이 속하는 블록의 번호를 파악하고, 상기 복수 개의 데이터 저장소에 대해 라운드 로빈 방식으로 순차적으로 블록을 할당하되 적어도 2회째의 블록 할당 시점부터 할당되는 블록의 개수가 이전의 블록 할당시의 개수보다 크게 되도록 설정되어 있는 파티셔닝 기법에 기초하여 상기 처리대상 키값에 대응하는 데이터 저장소를 결정한다. 본 발명에 따르면, 연속된 키값을 갖는 키-데이터 쌍을 추가하거나 삭제하여도 블록 단위로 나누어진 키값이 여러 노드에 분산되어 저장되므로, 효율적으로 부하를 분산시킬 수 있으며, 키값의 순서가 보존된 상태로 여러 개의 노드에 분산되어 저장되므로, 임의의 구간에 대한 구간 질의를 효율적으로 수행할 수 있다.

Description

분산 데이터 저장소를 위한 데이터 파티셔닝 장치 및 방법{Data partitioning apparatus for distributed data storages and method thereof}
본 발명은 분산 데이터 저장소를 위한 데이터 파티셔닝 장치 및 방법에 관한 것으로, 보다 상세하게는, 대량의 데이터를 여러 대의 저장소에 분산시켜 저장함에 있어 효율적으로 데이터를 조회하기 위해 데이터를 적절하게 파티셔닝하는 장치 및 방법에 관한 것이다.
저장, 조회, 분석해야 할 데이터의 양이 폭증하면서 기존의 관계형 DBMS(Relational Database Manegement System)은 한계에 다다르고 있다. 이때 대량의 데이터를 저장하고 처리하기 위해 서버의 성능을 높이는 것(Scale-up)에는 한계가 있으며, 따라서 데이터를 여러 서버에 나누어 저장하고 처리하는 방식(Scale-out)이 많이 사용되고 있다.
한편, RDBMS는 특성상 여러 서버에 데이터를 나누어 저장하기에는 적합하지 않으며, 그에 대한 대안으로 BigTable, HBASE, Dynamo, Cassandra, MongoDB 등의 No-SQL 데이터 저장 기법들이 등장하였다. 그러나 이러한 No-SQL 데이터 저장 기법들이 사용하는 데이터 파티셔닝(Data Partitioning) 기법들은 이하에서 지적하는 바와 같은 단점을 가지고 있다.
먼저, BigTable 데이터 파티셔닝 기법은 B+ 인덱싱 기법과 유사한 방식을 사용한다. 즉, 클러스터를 구성하는 각각의 서버가 B+ 인덱싱 기법에서의 노드 역할을 수행한다. 이러한 BigTable 데이터 파티셔닝 기법에서, 각각의 서버는 입력된 특정한 키(Key)와 그에 대응되는 데이터 값(이하, '키-데이터 쌍'이라 함)과 관련하여 키값의 범위를 할당받으며, 지정된 개수 이상의 데이터가 특정한 서버에 삽입될 경우에 새로운 노드에 해당 서버에 할당된 키값의 일부에 해당하는 데이터를 다른 서버에 분할시킨다. 이때 데이터 조회 시간을 적절하게 유지하기 위해 도 1에 도시된 바와 같이 트리의 깊이는 3단계로 제한된다. 이러한 BigTree 데이터 분할 기법의 가장 큰 단점은 연속된 키값을 갖는 데이터가 반복적으로 삽입, 수정, 조회될 경우에 해당 키값이 속하는 범위를 할당받은 서버에만 부하가 집중되어 전체적인 성능이 저하되는 것이다.
다음으로, Dynamo 데이터 파티셔닝 기법은 해쉬(Hash) 기반의 파티셔닝 기법을 사용한다. 이러한 Dynamo 데이터 파티셔닝 기법은 한국공개특허 제10-2009-0085572호에 개시되어 있다. Dynamo 데이터 파티셔닝 기법에서, 클러스터를 구성하는 각각의 서버는 특정한 범위의 해쉬 값을 할당받고, 새로운 데이터가 삽입될 때 해당 데이터에 대응하는 키값의 해쉬 값을 취한 후 그 해쉬 값을 포함하는 범위를 할당받은 서버에 해당 데이터를 저장한다. 도 2는 종래의 Dynamo 데이터 파티셔닝 기법에서 채용하는 키값과 그에 연관된 데이터가 저장될 서버를 결정하는 원리를 도시한 도면이다. 도 2를 참조하면, 키값 K에 해당되는 데이터는 서버 B에 저장된다.
다음으로, Cassandra, Riak 등의 No-SQL 데이터 저장 기법들은 BigTable 데이터 저장 기법이 사용하는 것과 유사한 데이터 파티셔닝 기법을 사용한다. 이러한 데이터 저장 기법들은 각각의 키값이 임의의 서버에 분산되어 연속된 키값에 대한 구간 질의(range query)를 처리함에 있어 효율성이 떨어지는 문제가 있다.
결론적으로, BigTable과 이에 유사한 데이터 파티셔닝 기법과 같은 분산 트리 기반의 데이터 분할 기법은 연속된 키값을 갖는 데이터를 반복적으로 삽입, 수정, 조회할 경우에 해당 키값이 속하는 범위를 할당받은 서버에만 부하가 집중되어 전체적인 성능이 저하되는 문제가 있다. 또한 Dynamo와 이에 유사한 데이터 파티셔닝 기법과 같은 해쉬 기반의 데이터 분할 기법은 각각의 키값이 임의의 서버에 분산되어 저장되므로, 연속된 키값에 대한 구간 질의의 처리시 효율성이 떨어지는 문제가 있다.
본 발명이 이루고자 하는 기술적 과제는, 대용량 데이터의 저장, 조회 및 분석을 효율적으로 처리할 수 있는 분산 데이터 저장소를 위한 데이터 파티셔닝 장치 및 방법을 제공하는 데 있다.
본 발명이 이루고자 하는 다른 기술적 과제는, 대용량 데이터의 저장, 조회 및 분석을 효율적으로 처리할 수 있는 분산 데이터 저장소를 위한 데이터 파티셔닝 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터에서 읽을 수 있는 기록 매체를 제공하는 데 있다.
상기의 기술적 과제를 해결하기 위한, 본 발명에 따른 분산 데이터 저장소를 위한 데이터 파티셔닝 장치는, 복수 개의 데이터 저장소 중에서 데이터가 저장될 데이터 저장소를 결정하거나 검색대상 데이터가 저장되어 있는 저장소를 결정하기 위한 데이터 파티셔닝 장치에 있어서, 각각의 데이터에 고유하게 부여된 키값을 일정한 개수 단위로 그룹핑하여 형성된 블록을 기초로 입력된 처리대상 키값이 속하는 블록의 번호를 파악하고, 상기 복수 개의 데이터 저장소에 대해 라운드 로빈 방식으로 순차적으로 블록을 할당하되 적어도 2회째의 블록 할당 시점부터 할당되는 블록의 개수가 이전의 블록 할당시의 개수보다 크게 되도록 설정되어 있는 파티셔닝 기법에 기초하여 상기 처리대상 키값에 대응하는 데이터 저장소를 결정한다.
상기의 기술적 다른 과제를 해결하기 위한, 본 발명에 따른 분산 데이터 저장소를 위한 데이터 파티셔닝 방법은, 복수 개의 데이터 저장소 중에서 데이터가 저장될 데이터 저장소를 결정하거나 검색대상 데이터가 저장되어 있는 저장소를 결정하기 위한 데이터 파티셔닝 방법에 있어서, 각각의 데이터에 고유하게 부여된 키값을 일정한 개수 단위로 그룹핑하여 형성된 블록을 기초로 입력된 처리대상 키값이 속하는 블록의 번호를 파악하는 단계; 및 상기 복수 개의 데이터 저장소에 대해 라운드 로빈 방식으로 순차적으로 블록을 할당하되 적어도 2회째의 블록 할당 시점부터 할당되는 블록의 개수가 이전의 블록 할당시의 개수보다 크게 되도록 설정되어 있는 파티셔닝 기법에 기초하여 상기 처리대상 키값에 대응하는 데이터 저장소를 결정하는 단계;를 갖는다.
본 발명에 따른 분산 데이터 저장소를 위한 데이터 분할 장치 및 방법에 의하면, 키-데이터 쌍을 삽입, 삭제, 수정할 때 주어진 키값이 어떤 노드에 할당되는지를 상수 시간(한 번의 계산에 소요되는 시간)에 알아낼 수 있어 효율적인 데이터의 처리가 가능한 이점이 있다. 또한 연속된 넓은 범위의 키값 범위에 속하는 데이터가 하나의 서버에 저장되는 구조를 가진 BigTable 데이터 분할 기법을 채용하는 No-SQL 데이터 저장 기법과 달리, 연속된 키값을 갖는 키-데이터 쌍을 추가하거나 삭제하여도 블록 단위로 나누어진 키들이 여러 노드에 분산되어 저장되므로, 효율적으로 부하를 분산시킬 수 있다. 또한 키값의 순서가 보존된 상태로 여러 개의 노드에 분산되어 저장되므로, 임의의 구간에 대한 구간 질의를 효율적으로 수행할 수 있다.
도 1은 종래의 BigTree 데이터 분할 기법에서 사용하는 트리 구조를 도시한 도면,
도 2는 종래의 Dynamo 데이터 분할 기법에서 채용하는 키값과 그에 연관된 데이터가 저장될 서버를 결정하는 원리를 도시한 도면,
도 3은 본 발명에 따른 분산 데이터 저장소를 위한 데이터 파티셔닝 장치에 대한 바람직한 실시예의 구성을 도시한 도면,
도 4는 피보나치 수열을 이용하여 키값이 속하는 블록을 복수의 데이터 저장소에 할당한 결과를 도시한 도면,
도 5는 본 발명에 따른 데이터 파티셔닝 장치에서 단일 또는 불연속적인 키값에 대한 처리를 수행하는 과정을 도시한 도면, 그리고,
도 6은 본 발명에 따른 데이터 파티셔닝 장치에서 연속적인 키값에 대한 처리를 수행하는 과정을 도시한 도면이다.
이하에서 첨부된 도면들을 참조하여 본 발명에 따른 분산 데이터 저장소를 위한 데이터 파티셔닝 장치 및 방법의 바람직한 실시예에 대해 상세하게 설명한다.
도 3은 본 발명에 따른 분산 데이터 저장소를 위한 데이터 파티셔닝 장치에 대한 바람직한 실시예의 구성을 도시한 도면이다.
도 3을 참조하면, 분산 데이터 저장소를 위한 데이터 파티셔닝 장치의 바람직한 실시예는(300), 요구 해석부(310), 파티셔닝 처리부(320) 및 명령 수행부(330)를 구비한다.
요구 해석부(310)는 외부로부터 입력된 처리대상 키값과 처리대상 키값에 대응하는 처리명령을 해석한다. 외부로부터 입력되는 처리명령은 데이터의 추가, 수정, 조회, 삭제 등이 있다. 이와 같이 외부로부터 처리대상 키값과 처리명령을 입력받기 위해 본 발명에 따른 데이터 파티셔닝 장치(300)는 통신부(미도시)를 구비한다. 아울러 처리명령이 데이터의 추가 또는 수정인 경우에 외부로부터 입력되는 정보에는 데이터 저장소에 저장될 데이터가 함께 입력된다. 그리고 이러한 데이터는 해당 데이터에 고유하게 부여되는 키값과 함께 쌍으로 입력되어 처리된다. 특정한 웹사이트의 회원 정보를 예로 들면, 입력되는 정보는 사용자 아이디와 해당 사용자에 대한 신상정보(즉, 성명, 나이, 주소 등)가 될 수 있다. 이때 사용자 아이디와 신상정보는 각각 키값과 데이터에 해당되며, 사용자 아이디와 같이 키값에 해당하는 정보가 연속적인 숫자가 아닐 경우에 각각의 사용자 아이디에 대해 고유한 숫자를 부여하여 키값으로 사용할 수 있다.
파티셔닝 처리부(320)는 각각의 데이터에 고유하게 부여된 키값을 일정한 개수 단위로 그룹핑하여 형성된 블록을 기초로 입력된 처리대상 키값이 속하는 블록의 번호를 파악한다. 또한 파티셔닝 처리부(320)는 복수 개의 데이터 저장소에 대해 라운드 로빈 방식으로 순차적으로 블록을 할당하되 적어도 2회째의 블록 할당 시점부터 할당되는 블록의 개수가 이전의 블록 할당시의 개수보다 크게 되도록 설정되어 있는 파티셔닝 기법에 기초하여 처리대상 키값에 대응하는 데이터 저장소를 결정한다.
이러한 파티셔닝 치리부(320)는 처리명령에 따른 동작을 수행하기 위해 불연속 키값 처리부(322)와 연속키값 처리부(324)를 구비할 수 있다. 처리명령이 단일의 키값 또는 불연속적인 키값들에 대한 데이터의 추가, 수정, 조회 또는 삭제이면, 불연속키값 처리부(322)는 처리대상 키값에 대해 본 발명에 따른 파티셔닝 기법을 기초로 처리대상 키값에 대응하는 데이터 저장소를 결정한다. 또한 처리명령이 복수의 연속적인 키값들에 대한 데이터의 추가, 수정, 조회 또는 삭제이면, 연속키값 처리부(324)는 처리대상 키값들에 대해 본 발명에 따른 파티셔닝 기법을 기초로 처리대상 키값들에 대응하는 데이터 저장소들을 결정한다.
명령 수행부(330)는 파티셔닝 처리부(320)에 의해 결정된 데이터 저장소로 키값을 전송하여 처리명령에 대응하는 동작을 수행하도록 지시한다. 이때 처리명령이 데이터의 추가 또는 수정이면, 명령 수행부(330)는 데이터 저장소로 처리명령, 키값 및 데이터를 전송하며, 처리명령이 데이터의 조회 또는 삭제이면, 명령 수행부(330)는 데이터 저장소로 처리명령과 키값을 전송한다.
본 발명에서는 데이터에 대해 부여되는 키값들을 일정한 크기의 블록으로 분할하여 처리한다. 블록은 특정 개수의 연속된 키값의 집합으로 정의되며, 이의 수학적 정의는 다음과 같다.
Figure pat00001
여기서, K는 키값, S는 블록의 크기(즉, 블록에 속하는 키값의 개수), 그리고, Bi(단, i는 자연수)는 블록의 번호이다.
파티셔닝 처리부(320)는 수학식 1에 의해 입력된 키값이 속하는 블록의 번호를 결정한 후, 각각의 블록이 할당되거나 할당된 데이터 저장소(노드)를 결정한다. 이때 각각의 데이터 저장소에 할당되는 블록의 개수는 피보나치 수열을 이용하여 결정된다. 물론 본 발명의 기술적 사상의 범주 내에서 순차적으로 증가하는 등비수열과 같은 다른 방식의 블록 할당 개수 결정 방식을 적용할 수 있으나, 피보나치 수열을 이용하면 가용성을 높이기 위한 데이터 복제 매커니즘의 사용이 가능하고, 노드 장애나 추가시 클러스터내 데이터의 재구성이 용이하다는 이점이 있다.
만약 각각의 데이터 저장소에 할당할 블록의 개수를 결정함에 있어서 피보나치 수열을 사용하면, 블록의 번호 Bi는 i보다 크거나 같은 최소인 피보나치 수 F의 피보나치 수열의 항 번호에서 1을 감한 값에 대응된다. 이때 각각의 블록은 복수 개의 데이터 저장소에 대해 라운드 로빈 방식으로 순차적으로 할당하며, 각각의 블록 할당 시점에서 각각의 데이터 저장소에 할당되는 블록의 개수는 다음의 수학식에 의해 결정된다.
Figure pat00002
여기서, F0 = 0, F1 = 1, n은 2보다 크거나 같은 자연수, 그리고, Fn은 n회째의 블록 할당 시점에 할당되는 블록 개수이다.
따라서 블록의 크기 S가 100이고, 데이터 저장소의 개수 C가 4일 때, 도 4에 도시된 바와 같이 제1데이터 저장소 N0로부터 N3까지 라운드 로빈 방식으로 블록 B1, B2, B3~B4, B5~B7, B8~B12 등이 할당된다. 도 4에는 피보나치 수열을 이용하여 키값이 속하는 블록을 복수의 데이터 저장소에 할당한 결과가 도시되어 있으며, 이를 표로 정리하면 다음과 같다.
구분 데이터 저장소 번호
N0 N1 N2 N3
1주회 할당 B1 B2 B3~B4 B5~B7
2주회 할당 B8~B12 B13~B20 B21~B33 B34~B54
: : : : :
도 5는 본 발명에 따른 데이터 파티셔닝 장치에서 단일 또는 불연속적인 키값에 대한 처리를 수행하는 과정을 도시한 도면이다.
단일 또는 불연속적인 키값에 대한 처리명령이 입력되면, 불연속키값 처리부(322)는 다음의 수학식 3에 의해 입력된 처리대상 키값을 사전에 설정되어 있는 블록의 크기로 나누어 얻어진 결과값의 정수값을 취하여 처리대상 키값이 속하는 블록의 번호를 파악한다(S500).
Figure pat00003
여기서, K는 처리대상 키값이고, S는 블록의 크기이다.
다음으로 불연속키값 처리부(322)는 다음의 수학식 4에 의해 처리대상 키값에 대해 결정된 블록의 번호보다 크거나 같은 최소의 피보나치 수가 피보나치 수열의 몇 번째 항인지 파악한다(S510). 이는 다음의 데이터 저장소의 식별번호를 산출한다.
Figure pat00004
여기서, I는 처리대상 키값이 속하는 블록의 번호에 대응하는 피보나치 수열의 항 번호이고, φ는
Figure pat00005
이다.
다음으로, 불연속키값 처리부(322)는 구해진 피보나치 수열의 항 번호를 다음의 수학식 5에 의해 데이터 저장소의 개수로 나누어 처리대상 키값에 대응하는 데이터 저장소의 식별번호를 산출한다(S520).
Figure pat00006
여기서, N은 처리대상 키값에 대응하는 데이터 저장소의 식별번호이고, C는 데이터 저장소의 개수이다.
만약, 수학식 5에 의해 산출된 데이터 저장소의 식별번호 N=-1이면, N=(C-1)로 변경된다.
도 6은 본 발명에 따른 데이터 파티셔닝 장치에서 연속적인 키값에 대한 처리를 수행하는 과정을 도시한 도면이다.
연속적인 키값 [K1, k2](이때, K1과 K2는 각각 주어진 키값 범위의 하한과 상한)에 대한 처리명령이 입력되면(S600), 연속키값 처리부(324)는 수학식 4와 수학식 5에 의해 하한 키값 K1에 대해 피보나치 수열의 항 번호인 제1결과값과 데이터 저장소 식별번호인 제1데이터 저장소 식별번호를 산출하고, 상한 키값 K2에 대해 피보나치 수열의 항 번호인 제2결과값과 데이터 저장소 식별번호인 제2데이터 저장소 식별번호를 산출한다(S610).
다음으로, 연속키값 처리부(324)는 산출된 제1데이터 저장소 식별번호를 연속적인 키값에 대응하는 데이터 저장소의 식별정보가 기록되는 결과목록에 추가한다(S620). 다음으로, 연속키값 처리부(324)는 하한 키값을 증가시킨 후(S630), 상한 키값과 비교한다(S640). 만약, 증가된 하한 키값이 상한 키값과 동일하면, 연속키값 처리부(324)는 모든 키값에 대한 처리가 완료된 것으로 판단하여 처리절차를 종료한다. 이와 달리, 증가된 하한 키값이 상한 키값과 상이하면, 연속키값 처리부(324)는 제1데이터 저장소 식별번호를 증가시킨 후 데이터 저장소의 개수로 나눈 나머지를 산출한다(S650). 만약, S650단계에서 산출된 나머지가 제1데이터 저장소 식별번호와 동일하면(S660), 연속키값 처리부(324)는 산출된 나머지를 제3데이터 저장소 식별번호로 결과목록에 추가한다(S670). 이와 달리 S650단계에서 산출된 나머지가 제1데이터 저장소 식별번호와 상이하면(S660), 연속키값 처리부(324)는 S630단계를 수행한다.

본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.

Claims (13)

  1. 복수 개의 데이터 저장소 중에서 데이터가 저장될 데이터 저장소를 결정하거나 검색대상 데이터가 저장되어 있는 저장소를 결정하기 위한 데이터 파티셔닝 장치에 있어서,
    각각의 데이터에 고유하게 부여된 키값을 일정한 개수 단위로 그룹핑하여 형성된 블록을 기초로 입력된 처리대상 키값이 속하는 블록의 번호를 파악하고, 상기 복수 개의 데이터 저장소에 대해 라운드 로빈 방식으로 순차적으로 블록을 할당하되 적어도 2회째의 블록 할당 시점부터 할당되는 블록의 개수가 이전의 블록 할당시의 개수보다 크게 되도록 설정되어 있는 파티셔닝 기법에 기초하여 상기 처리대상 키값에 대응하는 데이터 저장소를 결정하는 것을 특징으로 하는 데이터 파티셔닝 장치.
  2. 제 1항에 있어서,
    외부로부터 입력된 상기 처리대상 키값과 상기 처리대상 키값에 대응하는 처리명령을 해석하는 요구 해석부;
    상기 파티셔닝 기법에 기초하여 상기 처리대상 키값에 대응하는 블록이 속하는 데이터 저장소를 결정하는 저장소 결정부;
    단일의 키값 또는 불연속적인 키값들에 대한 처리명령이 입력되면, 상기 처리대상 키값에 대해 상기 파티셔닝 기법을 기초로 상기 처리대상 키값에 대응하는 데이터 저장소를 결정하는 파티셔닝 처리부; 및
    복수의 연속적인 키값들에 대한 처리명령이 입력되면, 상기 처리대상 키값들에 대해 상기 파티셔닝 기법을 기초로 상기 처리대상 키값들에 대응하는 데이터 저장소들을 결정하는 구간조회 처리부;를 포함하는 것을 특징으로 하는 데이터 파티셔닝 장치.
  3. 제 1항 또는 제 2항에 있어서,
    상기 복수 개의 데이터 저장소에 대해 라운드 로빈 방식으로 순차적으로 블록을 할당하되, 각각의 블록 할당 시점에서 각각의 데이터 저장소에 할당되는 블록의 개수는 다음의 수학식 A에 의해 결정되는 것을 특징으로 하는 데이터 파티셔닝 장치:
    [수학식 A]
    Figure pat00007
    ,
    여기서, F0 = 0, F1 = 1, n은 2보다 크거나 같은 자연수, 그리고, Fn은 n회째의 블록 할당 시점에 할당되는 블록 개수이다.
  4. 제 3항에 있어서,
    상기 처리대상 키값에 대응하는 데이터 저장소는 다음의 수학식 B와 C에 의해 결정되는 것을 특징으로 하는 데이터 파티셔닝 장치:
    [수학식 B]
    Figure pat00008
    ,
    [수학식 C]
    Figure pat00009
    ,
    여기서, N은 복수 개의 데이터 저장소에 부여된 고유한 식별번호, B는 처리대상 키값이 속하는 블록의 번호, C는 상기 데이터 저장소의 개수, 그리고, φ는
    Figure pat00010
    이며, N=-1이면 N=(C-1)이다.
  5. 제 4항에 있어서,
    상기 처리대상 키값이 속하는 블록의 번호는 다음의 수학식 D에 의해 결정되는 것을 특징으로 하는 데이터 파티셔닝 장치:
    [수학식 D]
    Figure pat00011
    ,
    여기서, K는 상기 처리대상 키값이고, S는 상기 블록의 크기이다.
  6. 제 4항에 있어서,
    상기 처리대상 키값이 일정한 범위에 속하는 복수 개의 키값인 경우에 하한의 키값에 대해 상기 수학식 B와 상기 수학식 C에 의해 제1결과값과 제1데이터 저장소의 식별번호를 각각 산출하고, 상한의 키값에 대해 상기 수학식 B와 상기 수학식 C에 의해 제2결과값과 제2데이터 저장소의 식별번호를 각각 산출하며,
    상기 제1결과값을 순차적으로 증가시키면서 상기 수학식 B에 의해 산출한 제3결과값이 상기 제2결과값에 도달하거나 상기 제1결과값을 순차적으로 증가시키면서 상기 수학식 C에 의해 산출한 제3데이터 저장소의 식별번호가 상기 제1데이터 저장소의 식별번호와 동일해지면 상기 제1데이터 저장소 식별번호와 상기 제3데이터 저장소 식별번호에 해당하는 데이터 저장소들을 상기 처리대상 키값들에 대응하는 데이터 저장소로 결정하는 것을 특징으로 하는 데이터 파티셔닝 장치.
  7. 복수 개의 데이터 저장소 중에서 데이터가 저장될 데이터 저장소를 결정하거나 검색대상 데이터가 저장되어 있는 저장소를 결정하기 위한 데이터 파티셔닝 방법에 있어서,
    각각의 데이터에 고유하게 부여된 키값을 일정한 개수 단위로 그룹핑하여 형성된 블록을 기초로 입력된 처리대상 키값이 속하는 블록의 번호를 파악하는 단계; 및
    상기 복수 개의 데이터 저장소에 대해 라운드 로빈 방식으로 순차적으로 블록을 할당하되 적어도 2회째의 블록 할당 시점부터 할당되는 블록의 개수가 이전의 블록 할당시의 개수보다 크게 되도록 설정되어 있는 파티셔닝 기법에 기초하여 상기 처리대상 키값에 대응하는 데이터 저장소를 결정하는 단계;를 포함하는 것을 특징으로 하는 데이터 파티셔닝 방법.
  8. 제 7항에 있어서,
    (a) 외부로부터 입력된 상기 처리대상 키값과 상기 처리대상 키값에 대응하는 처리명령을 해석하는 단계;
    (b) 상기 파티셔닝 기법에 기초하여 상기 처리대상 키값에 대응하는 블록이 속하는 데이터 저장소를 결정하는 단계;
    (c) 상기 처리명령이 데이터의 추가 또는 수정이면, 상기 처리대상 키값과 함께 상기 처리대상 키값에 대응하는 데이터를 상기 결정된 데이터 저장소로 제공하고, 상기 처리명령이 데이터의 삭제 또는 조회이면, 상기 처리대상 키값에 대해 결정된 데이터 저장소로 상기 처리대상 키값을 제공하는 단계;를 포함하는 것을 특징으로 하는 데이터 파티셔닝 방법.
  9. 제 7항에 있어서,
    상기 복수 개의 데이터 저장소에 대해 라운드 로빈 방식으로 순차적으로 블록을 할당하되, 각각의 블록할당시점에서 각각의 데이터 저장소에 할당되는 블록의 개수는 다음의 수학식 A에 의해 결정되는 것을 특징으로 하는 데이터 파티셔닝 방법:
    [수학식 A]
    Figure pat00012
    ,
    여기서, F0 = 0, F1 = 1, n은 2보다 크거나 같은 자연수, 그리고, Fn은 n회째의 블록 할당 시점에 할당되는 블록 개수이다.
  10. 제 9항에 있어서,
    상기 처리대상 키값에 대응하는 데이터 저장소는 다음의 수학식 B와 C에 의해 결정되는 것을 특징으로 하는 데이터 파티셔닝 방법:
    [수학식 B]
    Figure pat00013
    ,
    [수학식 C]
    Figure pat00014
    ,
    여기서, N은 복수 개의 데이터 저장소에 부여된 고유한 식별번호, B는 처리대상 키값이 속하는 블록의 번호, C는 상기 데이터 저장소의 개수, 그리고, φ는
    Figure pat00015
    이며, N=-1이면 N=(C-1)이다.
  11. 제 10항에 있어서,
    상기 처리대상 키값이 속하는 블록의 번호는 다음의 수학식 D에 의해 결정되는 것을 특징으로 하는 데이터 파티셔닝 방법:
    [수학식 D]
    Figure pat00016
    ,
    여기서, K는 상기 처리대상 키값이고, S는 상기 블록의 크기이다.
  12. 제 10항에 있어서,
    상기 처리대상 키값이 일정한 범위에 속하는 복수 개의 키값인 경우에 하한의 키값에 대해 상기 수학식 B와 상기 수학식 C에 의해 제1결과값과 제1데이터 저장소의 식별번호를 각각 산출하고, 상한의 키값에 대해 상기 수학식 B와 상기 수학식 C에 의해 제2결과값과 제2데이터 저장소의 식별번호를 각각 산출하며,
    상기 제1결과값을 순차적으로 증가시키면서 상기 수학식 B에 의해 산출한 제3결과값이 상기 제2결과값에 도달하거나 상기 제1결과값을 순차적으로 증가시키면서 상기 수학식 C에 의해 산출한 제3데이터 저장소의 식별번호가 상기 제1데이터 저장소의 식별번호와 동일해지면 상기 제1데이터 저장소 식별번호와 상기 제3데이터 저장소 식별번호에 해당하는 데이터 저장소들을 상기 처리대상 키값들에 대응하는 데이터 저장소로 결정하는 것을 특징으로 하는 데이터 파티셔닝 방법.
  13. 제 7항 내지 제12항 중 어느 한 항에 기재된 데이터 파티셔닝 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.


KR1020110111813A 2011-10-31 2011-10-31 분산 데이터 저장소를 위한 데이터 파티셔닝 장치 및 방법 KR101301607B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110111813A KR101301607B1 (ko) 2011-10-31 2011-10-31 분산 데이터 저장소를 위한 데이터 파티셔닝 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110111813A KR101301607B1 (ko) 2011-10-31 2011-10-31 분산 데이터 저장소를 위한 데이터 파티셔닝 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20130047042A true KR20130047042A (ko) 2013-05-08
KR101301607B1 KR101301607B1 (ko) 2013-09-10

Family

ID=48658607

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110111813A KR101301607B1 (ko) 2011-10-31 2011-10-31 분산 데이터 저장소를 위한 데이터 파티셔닝 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101301607B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103455633A (zh) * 2013-09-24 2013-12-18 浪潮齐鲁软件产业有限公司 一种海量网络发票明细数据分布式分析方法
CN104715017A (zh) * 2015-02-03 2015-06-17 李大伟 数据处理方法及服务器
CN111858610A (zh) * 2020-07-28 2020-10-30 贝壳技术有限公司 数据行号分配方法和装置、存储介质、电子设备
KR20230009018A (ko) 2021-07-08 2023-01-17 단국대학교 산학협력단 키-값 스토리지에서의 키-값 쌍 그룹화 장치 및 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101990902B1 (ko) * 2018-03-27 2019-06-19 계명대학교 산학협력단 빠른 테이블 업데이트를 지원하는 고속 패킷 분류 방법 및 시스템

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9996572B2 (en) * 2008-10-24 2018-06-12 Microsoft Technology Licensing, Llc Partition management in a partitioned, scalable, and available structured storage

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103455633A (zh) * 2013-09-24 2013-12-18 浪潮齐鲁软件产业有限公司 一种海量网络发票明细数据分布式分析方法
CN104715017A (zh) * 2015-02-03 2015-06-17 李大伟 数据处理方法及服务器
CN111858610A (zh) * 2020-07-28 2020-10-30 贝壳技术有限公司 数据行号分配方法和装置、存储介质、电子设备
KR20230009018A (ko) 2021-07-08 2023-01-17 단국대학교 산학협력단 키-값 스토리지에서의 키-값 쌍 그룹화 장치 및 방법

Also Published As

Publication number Publication date
KR101301607B1 (ko) 2013-09-10

Similar Documents

Publication Publication Date Title
CN101727465B (zh) 分布式列存储数据库索引建立、查询方法及装置与系统
US8271523B2 (en) Coordination server, data allocating method, and computer program product
JP6107429B2 (ja) データベースシステム、検索方法およびプログラム
EP2924594B1 (en) Data encoding and corresponding data structure in a column-store database
KR101301607B1 (ko) 분산 데이터 저장소를 위한 데이터 파티셔닝 장치 및 방법
KR100996443B1 (ko) 고집적인덱스 데이터베이스 및 쿼리 데이터의 검색과 연산기능 분할에 의한 그래픽 프로세서 기반 병렬분산 처리 시스템 및 방법
US11074242B2 (en) Bulk data insertion in analytical databases
US8005836B2 (en) Method and system for performing logical partial declustering
GB2508603A (en) Optimizing the order of execution of multiple join operations
US11221890B2 (en) Systems and methods for dynamic partitioning in distributed environments
US8434075B1 (en) Branching optimization in a multi-database system
CN116701443A (zh) 一种数据查询方法、装置、计算机设备及存储介质
CN111699481A (zh) 减少模型更新引入的错误
US10698955B1 (en) Weighted abstract path graph database partitioning
EP2778921B1 (en) A method and a system for distributed processing of a dataset
US11599540B2 (en) Query execution apparatus, method, and system for processing data, query containing a composite primitive
KR20160100224A (ko) 오디오 핑거프린트 데이터베이스 구축 및 오디오 핑거프린트 검색 방법 및 장치
CN111428140B (zh) 高并发数据检索方法、装置、设备及存储介质
CN110427390B (zh) 数据查询方法及装置、存储介质、电子装置
KR102054068B1 (ko) 그래프 스트림에 대한 실시간 분산 저장을 위한 분할 방법 및 분할 장치
KR101375684B1 (ko) 염기서열 데이터 관리 방법 및 시스템
Yang et al. Haste: A distributed system for hybrid and adaptive processing on streaming spatial-textual data
EP4131016A1 (en) Statistics-based dynamic database partitions
JP5500552B2 (ja) 表データのデータ処理方法、データ処理システムおよびそのコンピュータプログラム
US11061876B2 (en) Fast aggregation on compressed data

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
LAPS Lapse due to unpaid annual fee