KR101653776B1 - 데이터 분할 방법 및 장치 - Google Patents

데이터 분할 방법 및 장치 Download PDF

Info

Publication number
KR101653776B1
KR101653776B1 KR1020147016634A KR20147016634A KR101653776B1 KR 101653776 B1 KR101653776 B1 KR 101653776B1 KR 1020147016634 A KR1020147016634 A KR 1020147016634A KR 20147016634 A KR20147016634 A KR 20147016634A KR 101653776 B1 KR101653776 B1 KR 101653776B1
Authority
KR
South Korea
Prior art keywords
tuple
information
tuples
cost
load
Prior art date
Application number
KR1020147016634A
Other languages
English (en)
Other versions
KR20150010694A (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 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20150010694A publication Critical patent/KR20150010694A/ko
Application granted granted Critical
Publication of KR101653776B1 publication Critical patent/KR101653776B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning

Landscapes

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

Abstract

본 발명은 데이터 분할 방법 및 장치를 제공한다. 상기 방법은, 수신된 혼합 부하 및 데이터베이스의 구조 정보에 따라 튜플 관계 정보를 결정하고; 상기 혼합 부하가 병렬로 실행 가능한지에 관한 특징 및 상기 튜플 관계 정보에 따라 튜플 분열 비용 정보(tuple split cost information)를 결정하며; 상기 튜플 분열 비용 정보에 따라 복수의 분할 방식을 획득하고, 상기 분할 방식 중에서 최소의 총비용 값을 가지는 분할 방식을 최적의 분할 방식으로 결정하여, 상기 데이터베이스에 저장되어 있는 데이터에 대해 분할 프로세스를 수행하는 단계를 포함한다. 데이터 분할 방법 및 장치에서, 데이터베이스 내의 혼합 부하와 관련된 데이터에 대해 최적의 분할을 수행하고, 분할 후, 데이터는 혼합 부하 내의 트랜잭션 부하 및 분석 부하의 특징을 가지며, 이에 의해 혼합 부하에 맞춰진 데이터베이스 시스템의 작업 성능을 향상시킨다.

Description

데이터 분할 방법 및 장치{DATA PARTITIONING METHOD AND APPARATUS}
본 출원은 2014년 1월 22일에 제출된 국제출원 No. PCT/CN2014/071039의 연속이며, 이 출원은 2013년 6월 7일에 출원된 중국특허출원 No.201310226045.6에 대한 우선권을 주장하는 바이며, 상기 문헌들의 내용은 본 명세서에 원용되어 포함된다.
본 발명은 데이터베이스 기술 분야에 관한 것이며, 특히 데이터 분할 방법 및 장치에 관한 것이다.
종래의 관련 데이터베이스 시스템은 시스템에 맞춰진 상이한 부하에 따라, 온라인 트랜잭션 프로세스(on-line transaction processing: OLTP)에 사용되는 데이터베이스 시스템 및 온라인 분석 프로세스(on-line analytical processing: OLAP)에 사용되는 데이터베이스 시스템으로 분류된다. OLTP에 사용되는 데이터베이스 시스템에 맞추진 부하를 트랜잭션 부하라고 하고, OLAP에 사용되는 데이터베이스 시스템에 맞추진 부하를 분석 부하라고 한다. 이에 대응해서, 2개의 상이한 데이터베이스 시스템은 데이터베이스 내의 데이터를 상이한 방식으로 관리한다. 구체적으로, 트랜잭션 부하가 포함하는 액세스 유형은 데이터 질의 및 데이터 수정(갱신, 수정, 삽입, 삭제 등을 포함)을 포함하므로, 트랜잭션 부하에 맞춰진 데이터베이스 시스템은 관련 데이터에 대한 중앙집중식 제어를 수행하여 데이터베이스의 상이한 영역 내의 데이터를 분산하는 것을 회피하고 데이터 액세스 효율성에 영향을 주지 않아야 한다. 분석 부하가 포함하는 액세스 유형은 주로 읽기 전용 질의 요구이며, 각각의 질의 요구는 통상적으로 대량의 데이터의 스캐닝, 통계, 및 분석을 포함한다. 그러므로 분석 부하에 맞춰진 데이터베이스 시스템은 상이한 파티션에 데이터를 저장해야 하고, 이에 따라 데이터 액세스는 복수의 영역에 병렬로 수행될 수 있으며, 이에 의해 데이터 액세스 효율성이 향상된다. 사용자는 2개의 데이터베이스 시스템을 동시에 유지해야 한다. 그렇지만, 데이터 량이 계속 증가하고 시스템이 더욱 복잡해짐에 따라 사용자 부담이 가중된다. 그러므로 사용자의 요구에 부응해서 혼합 부하에 맞춰질 수 있는(즉, 트랜잭션 부하 및 분석 부하에 동시에 맞춰질 수 있는) 데이터베이스 시스템을 개발해야 한다.
혼합 부하에 맞춰진 데이터베이스 시스템에서 데이터 액세스 효율성을 확보하기 위해, 데이터베이스 내의 데이터는 트랜잭션 부하 및 분석 부하 모두의 특징에 따라 분할되어야 한다. 종래기술에서는, 데이터베이스 시스템에서의 데이터 분할 방법이 주로 온라인 분석 프로세스 시스템에 의해 수행되는데, 예를 들어, 데이터 분할이 데이터베이스의 관계 표에서의 하나 또는 수개의 필드의 해시 값에 따라 해시(hash) 기능을 사용해서 수행된다.
전술한 방법을 사용해서 획득되는 데이터 분할 방식은 분석 부하의 프로세스를 용이하게 하지만, 이 데이터 분할 방식은 트랜잭션 부하에서는 만족스럽지 못하며, 트랜잭션 부하의 프로세스 효율성에 영향을 주며, 이에 의해 혼합 부하에 맞춰진 데이터베이스 시스템의 작업 성능을 떨어뜨린다.
본 발명은 혼합 부하에 맞춰진 데이터베이스의 작업 성능을 향상시키는 데이터 분할 방법 및 장치를 제공한다.
제1 관점에 따라, 본 발명은 데이터 분할 방법을 제공하며, 상기 방법은,
사용자에 의해 입력되는 데이터베이스의 구조 정보 및 혼합 부하를 수신하는 단계 - 상기 혼합 부하는 적어도 하나의 트랜잭션 부하 및/또는 적어도 하나의 분석 부하를 포함하고, 상기 데이터베이스의 구조 정보는 혼합 부하와 관련된 적어도 하나의 튜플(tuple)을 포함함 - ;
상기 혼합 부하 및 상기 데이터베이스의 구조 정보에 따라 튜플 관계 정보를 결정하는 단계 - 상기 튜플 관계 정보는 상기 데이터베이스의 구조 정보 내의 임의의 2개의 튜플 간의 트랜잭션 상관관계를 포함함 - ;
상기 혼합 부하가 병렬로 실행 가능한지에 관한 특징 및 상기 튜플 관계 정보에 따라 튜플 분열 비용 정보(tuple split cost information)를 결정하는 단계 - 상기 튜플 분열 비용 정보는 상기 데이터베이스의 구조 정보 내의 트랙잭션 상관관계를 가지는 임의의 2개의 튜플 간의 분열 비용을 포함하고, 상기 분열 비용은, 상기 트랜잭션 상관관계를 가지는 2개의 튜플이 상이한 파티션에 저장되어 있으면, 상기 트랜잭션 상관관계를 가지는 2개의 튜플에 액세스할 때 상기 혼합 부하의 효율성에 대한 영향의 정도를 나타내는 데 사용됨 - ;
상기 튜플 분열 비용 정보에 따라 복수의 분할 방식을 획득하고, 상기 분할 방식 중에서 최소의 총비용 값을 가지는 분할 방식을 최적의 분할 방식으로 결정하는 단계 - 각각의 분할 방식의 총비용 값은 상기 분할 방식이 사용될 때 상기 데이터베이스의 구조 정보 내의 트랜잭션 상관관계를 가지는 튜플 간의 분열 비용의 합임 - ; 및
상기 최적의 분할 방식에 따라, 상기 데이터베이스에 저장되어 있는 데이터에 대해 분할 프로세스를 수행하는 단계
를 포함한다.
제1 관점을 참조하여, 제1 실행 방식에서,
상기 혼합 부하 및 상기 데이터베이스의 구조 정보에 따라 튜플 관계 정보를 결정하는 단계는,
상기 혼합 부하에 포함되어 있는 각각의 부하에 따라, 상기 데이터베이스의 구조 정보에서, 각각의 부하와 관련된 모든 튜플을 개별적으로 결정하는 단계;
각각의 부하와 관련된 모든 튜플 중 임의의 2개의 튜플 간의 트랜잭션 상관관계에 따라, 상기 부하와 관련된 튜플 간의 관계 하위정보를 결정하는 단계; 및
상기 혼합 부하의 각각의 부하와 관련된 튜플 간의 관계 하위정보를 수집하여 상기 튜플 관계 정보를 획득하는 단계
를 포함한다.
제1 관점의 제1 실행 방식을 참조하여, 제2 실행 방식에서, 상기 혼합 부하가 병렬로 실행 가능한지에 관한 특징 및 상기 튜플 관계 정보에 따라 튜플 분열 비용 정보를 결정하는 단계는,
상기 특징이 상기 튜플 관계 정보 내의 트랜잭션 상관관계를 가지는 2개의 튜플과 관련되어 있는 혼합 부하가 병렬로 실행 가능하지 않다는 것일 때, 2개의 튜플 간의 분열 비용이 사전설정된 양의 값(positive value)인 것으로 결정하는 단계; 및
상기 특징이 상기 튜플 관계 정보 내의 트랜잭션 상관관계를 가지는 2개의 튜플과 관련되어 있는 혼합 부하가 병렬로 실행 가능하다는 것일 때, 2개의 튜플 간의 분열 비용이 사전설정된 음의 값(negative value)인 것으로 결정하는 단계
를 포함한다.
제1 관점의 제2 실행 방식을 참조하여, 제2 실행 방식에서, 상기 튜플 분열 비용 정보는 관계도(relationship diagram)에 의해 표현되고, 상기 관계도에서 트랜잭션 상관관계를 가지는 임의의 2개의 튜플은 연결선에 의해 연결되며;
상기 튜플 분열 비용 정보에 따라 복수의 분할 방식을 획득하고, 상기 분할 방식 중에서 최소의 총비용 값을 가지는 분할 방식을 최적의 분할 방식으로 결정하는 단계는,
상기 관계도에 대해 이미지 세그먼테이션 알고리즘을 사용하여 복수 유형의 세그먼테이션 프로세싱을 수행하는 단계 - 각각의 유형의 세그먼테이션 프로세싱은 하나의 분할 방식에 대응함 - ;
상기 관계도에 대해 각각의 유형의 세그먼테이션 프로세싱을 수행할 때, 각각의 세그먼트화된 연결선에 의해 연결되는 2개의 튜플 간의 분열 비용을 누적하여, 이 유형의 세그먼테이션 프로세싱에 대응하는 분할 방식의 총비용 값을 획득하는 단계; 및
최소의 총비용 값에 대응하는 분할 방식을 최적의 분할 방식으로 결정하는 단계
를 포함한다.
제1 관점의 제2 실행 방식을 참조하여, 제4 실행 방식에서, 상기 방법은, 상기 최적의 분할 방식에 따라 데이터베이스 내의 데이터에 대해 분할 프로세스를 수행한 후, 상기 튜플 분열 비용 정보를 조정된 튜플 분열 비용 정보로 갱신할 때, 상기 조정된 튜플 분열 비용 정보에 대해 이미지 세그먼테이션 알고리즘을 사용함으로써 복수 유형의 세그먼테이션 프로세싱을 수행하여 복수의 분할 방식을 결정하는 단계 - 각각의 유형의 세그먼테이션 프로세싱은 하나의 분할 방식에 대응함 - ;
각각의 분할 방식의 총비용 값을 결정하는 단계 - 상기 조정된 튜플 분열 비용 정보는 관계도에 의해 표현되며, 상기 관계도 내의 트랜잭션 상관관계를 가지는 임의의 2개의 튜플은 연결선에 의해 연결됨 - ;
최소의 총비용 값에 대응하는 분할 방식을 제1 분할 방식으로 결정하는 단계; 및
상기 최적의 분할 방식 및 상기 제1 분할 방식에 따라 튜플 이동 비용 정보를 생성하고, 상기 튜플 이동 비용 정보에 따라 조정된 분할 방식을 결정하는 단계
를 더 포함한다.
제1 관점의 제4 실행 방식을 참조하여, 제5 실행 방식에서, 상기 최적의 분할 방식 및 상기 제1 분할 방식에 따라 튜플 이동 비용 정보를 생성하고, 상기 튜플 이동 비용 정보에 따라 조정된 분할 방식을 결정하는 단계는,
상기 최적의 분할 방식이 상기 제1 분할 방식에 따라 조정될 때, 각각의 최적의 파티션으로 이동될 튜플을 결정하는 단계 - 상기 최적의 파티션은 상기 최적의 분할 방식에 따라 결정된 저장 영역임 - ;
상기 이동될 튜플과 상기 최적의 파티션 간의 조정 관계에 따라 상기 이동될 튜플과 상기 최적의 파티션 간의 이동 비용을 결정하는 단계;
상기 조정된 튜플 분열 비용 정보에 따라 상기 이동될 튜플과 상기 최적의 파티션 간의 분열 비용을 결정하는 단계;
상기 이동 비용 및 상기 분열 비용에 따라 튜플 이동 비용 정보를 생성하는 단계;
상기 튜플 이동 비용 정보에 따라 상기 최적의 분할 방식을 조정하여 복수의 사전설정된 이동 분할 방식을 획득하는 단계;
상기 이미지 세그먼테이션 알고리즘을 사용하여 각각의 사전설정된 이동 분할 방식에 대응하는 조정된 총비용 값을 획득하는 단계; 및
상기 복수의 사전설정된 이동 분할 방식 중에서, 최소의 조정된 총비용 값을 가지는 사전설정된 이동 분할 방식을 상기 조정된 분할 방식으로 결정하는 단계
를 포함한다.
제1 관점, 또는 제1 관점의 제1 실행 방식 내지 제2 실행 방식 중 어느 하나를 참조하여, 제6 실행 방식에서, 상기 최적의 분할 방식에 따라 상기 데이터베이스 내의 데이터에 대해 분할 프로세스를 수행하는 것이 실패되면, 상기 방법은,
적어도 2개의 온라인 분석 프로세싱 모드를 사용함으로써 데이터 분할을 수행하여 각각의 온라인 분석 프로세싱 모드에 대응하는 후보 분할 방식을 획득하는 단계;
상기 최적의 분할 방식과 각각의 후보 분할 방식 간의 차이 값을 결정하는 단계; 및
최소의 조정된 총비용 값을 가지는 후보 분할 방식을 현재의 분할 방식으로 결정하고, 상기 현재의 분할 방식에 따라 데이터에 대해 분할을 수행하는 단계
를 더 포함한다.
제1 관점의 제6 실행 방식을 참조하여, 제7 실행 방식에서, 상기 적어도 2개의 온라인 분석 프로세싱 모드는 다음의 온라인 분석 프로세싱 모드:
해시 함수 프로세싱, 순열 함수 프로세싱, 라운드-로빈 알고리즘 프로세싱, 및 복제 관리 프로세싱 중 적어도 2개를 포함한다.
제2 관점에 따라, 본 발명의 실시예는 데이터 분할 장치를 제공하며, 상기 장치는,
사용자에 의해 입력되는 데이터베이스의 구조 정보 및 혼합 부하를 수신하도록 구성되어 있는 수신 모듈 - 상기 혼합 부하는 적어도 하나의 트랜잭션 부하 및/또는 적어도 하나의 분석 부하를 포함하고, 상기 데이터베이스의 구조 정보는 혼합 부하와 관련된 적어도 하나의 튜플을 포함함 - ;
상기 혼합 부하 및 상기 데이터베이스의 구조 정보에 따라 튜플 관계 정보를 결정하도록 구성되어 있는 관계 결정 모듈 - 상기 튜플 관계 정보는 상기 데이터베이스의 구조 정보 내의 임의의 2개의 튜플 간의 트랜잭션 상관관계를 포함함 - ;
상기 혼합 부하가 병렬로 실행 가능한지에 관한 특징 및 상기 튜플 관계 정보에 따라 튜플 분열 비용 정보를 결정하도록 구성되어 있는 비용 결정 모듈 - 상기 튜플 분열 비용 정보는 상기 데이터베이스의 구조 정보 내의 트랙잭션 상관관계를 가지는 임의의 2개의 튜플 간의 분열 비용을 포함하고, 상기 분열 비용은, 상기 트랜잭션 상관관계를 가지는 2개의 튜플이 상이한 파티션에 저장되어 있으면, 상기 트랜잭션 상관관계를 가지는 2개의 튜플에 액세스할 때 상기 혼합 부하의 효율성에 대한 영향의 정도를 나타내는 데 사용됨 - ;
상기 튜플 분열 비용 정보에 따라 복수의 분할 방식을 획득하고, 상기 분할 방식 중에서 최소의 총비용 값을 가지는 분할 방식을 최적의 분할 방식으로 결정하도록 구성되어 있는 최적의 설정 모듈 - 각각의 분할 방식의 총비용 값은 상기 분할 방식이 사용될 때 상기 데이터베이스의 구조 정보 내의 트랜잭션 상관관계를 가지는 튜플 간의 분열 비용의 합임 - ; 및
상기 최적의 분할 방식에 따라, 상기 데이터베이스에 저장되어 있는 데이터에 대해 분할 프로세스를 수행하도록 구성되어 있는 분할 모듈
을 포함한다.
제2 관점을 참조하여, 제1 실행 방식에서, 상기 관계 결정 모듈은 구체적으로,
상기 혼합 부하에 포함되어 있는 각각의 부하에 따라, 상기 데이터베이스의 구조 정보에서, 각각의 부하와 관련된 모든 튜플을 개별적으로 결정하고;
각각의 부하와 관련된 모든 튜플 중 임의의 2개의 튜플 간의 트랜잭션 상관관계에 따라, 상기 부하와 관련된 튜플 간의 관계 하위정보를 결정하며; 그리고
상기 혼합 부하의 각각의 부하와 관련된 튜플 간의 관계 하위정보를 수집하여 상기 튜플 관계 정보를 획득하도록 구성되어 있다.
제2 관점의 제1 실행 방식을 참조하여, 제2 실행 방식에서, 상기 비용 결정 모듈은 구체적으로,
상기 특징이 상기 튜플 관계 정보 내의 트랜잭션 상관관계를 가지는 2개의 튜플과 관련되어 있는 혼합 부하가 병렬로 실행 가능하지 않다는 것일 때, 2개의 튜플 간의 분열 비용이 사전설정된 양의 값인 것으로 결정하며; 그리고
상기 특징이 상기 튜플 관계 정보 내의 트랜잭션 상관관계를 가지는 2개의 튜플과 관련되어 있는 혼합 부하가 병렬로 실행 가능하다는 것일 때, 2개의 튜플 간의 분열 비용이 사전설정된 음의 값인 것으로 결정하도록 구성되어 있다.
제2 관점의 제2 실행 방식을 참조하여, 제3 실행 방식에서, 상기 튜플 분열 비용 정보는 관계도에 의해 표현되고, 상기 관계도에서 트랜잭션 상관관계를 가지는 임의의 2개의 튜플은 연결선에 의해 연결되며; 상기 최적 선택 모듈은 구체적으로,
상기 관계도에 대해 이미지 세그먼테이션 알고리즘을 사용하여 복수 유형의 세그먼테이션 프로세싱을 수행하고 - 각각의 유형의 세그먼테이션 프로세싱은 하나의 분할 방식에 대응함 - ;
상기 관계도에 대해 각각의 유형의 세그먼테이션 프로세싱을 수행할 때, 각각의 세그먼트화된 연결선에 의해 연결되는 2개의 튜플 간의 분열 비용을 누적하여, 이 유형의 세그먼테이션 프로세싱에 대응하는 분할 방식의 총비용 값을 획득하며; 그리고
최소의 총비용 값에 대응하는 분할 방식을 최적의 분할 방식으로 결정하도록 구성되어 있다.
제2 관점의 제2 실행 방식을 참조하여, 제4 실행 방식에서, 상기 장치는 조정 선택 모듈을 더 포함하며, 상기 조정 선택 모듈은, 상기 분할 모듈이 상기 최적의 분할 방식에 따라 데이터베이스 내의 데이터에 대해 분할 프로세스를 수행한 후, 상기 튜플 분열 비용 정보를 조정된 튜플 분열 비용 정보로 갱신할 때, 상기 조정된 튜플 분열 비용 정보에 대해 이미지 세그먼테이션 알고리즘을 사용함으로써 복수 유형의 세그먼테이션 프로세싱을 수행하여 복수의 분할 방식을 결정하고 - 각각의 유형의 세그먼테이션 프로세싱은 하나의 분할 방식에 대응함 - ;
각각의 분할 방식의 총비용 값을 결정하고 - 상기 조정된 튜플 분열 비용 정보는 관계도에 의해 표현되며, 상기 관계도 내의 트랜잭션 상관관계를 가지는 임의의 2개의 튜플은 연결선에 의해 연결됨 - ;
최소의 총비용 값에 대응하는 분할 방식을 제1 분할 방식으로 결정하며; 그리고
상기 최적의 분할 방식 및 상기 제1 분할 방식에 따라 튜플 이동 비용 정보를 생성하고, 상기 튜플 이동 비용 정보에 따라 조정된 분할 방식을 결정하도록 구성되어 있다.
제2 관점의 제4 실행 방식을 참조하여, 제5 실행 방식에서, 상기 조정 선택 모듈은 구체적으로,
상기 최적의 분할 방식이 상기 제1 분할 방식에 따라 조정될 때, 각각의 최적의 파티션으로 이동될 튜플을 결정하고 - 상기 최적의 파티션은 상기 최적의 분할 방식에 따라 결정된 저장 영역임 - ;
상기 이동될 튜플과 상기 최적의 파티션 간의 조정 관계에 따라 상기 이동될 튜플과 상기 최적의 파티션 간의 이동 비용을 결정하고;
상기 조정된 튜플 분열 비용 정보에 따라 상기 이동될 튜플과 상기 최적의 파티션 간의 분열 비용을 결정하고;
상기 이동 비용 및 상기 분열 비용에 따라 튜플 이동 비용 정보를 생성하고;
상기 튜플 이동 비용 정보에 따라 상기 최적의 분할 방식을 조정하여 복수의 사전설정된 이동 분할 방식을 획득하고;
상기 이미지 세그먼테이션 알고리즘을 사용하여 각각의 사전설정된 이동 분할 방식에 대응하는 조정된 총비용 값을 획득하며; 그리고
상기 복수의 사전설정된 이동 분할 방식 중에서, 최소의 조정된 총비용 값을 가지는 사전설정된 이동 분할 방식을 상기 조정된 분할 방식으로 결정하도록 구성되어 있다.
제2 관점, 또는 제2 관점의 제1 실행 방식 내지 제2 실행 방식 중 어느 하나를 참조하여, 제6 실행 방식에서, 상기 장치는 차이 선택 모듈을 더 포함하며, 상기 차이 선택 모듈은,
상기 분할 모듈이 상기 최적의 분할 방식에 따라 상기 데이터베이스 내의 데이터에 대해 분할 프로세스를 수행하는 것을 실패하면,
적어도 2개의 온라인 분석 프로세싱 모드를 사용함으로써 데이터 분할을 수행하여 각각의 온라인 분석 프로세싱 모드에 대응하는 후보 분할 방식을 획득하고;
상기 최적의 분할 방식과 각각의 후보 분할 방식 간의 차이 값을 결정하며; 그리고
최소의 조정된 총비용 값을 가지는 후보 분할 방식을 현재의 분할 방식으로 결정하고, 상기 현재의 분할 방식에 따라 데이터에 대해 분할을 수행하도록 구성되어 있다.
실시예에서, 혼합 부하가 병렬로 실행될 수 있는지에 관한 특징에 따라, 데이터베이스 내의 혼합 부하와 관련된 데이터에 대해 최적의 분할이 수행되며, 혼합 부하에서의 트랜잭션 부하 및 분석 부하의 특징이 데이터 분할에서 고려되며, 이에 따라 상이한 부하가 데이터베이스 시스템 내의 데이터에 액세스할 때, 부하는 높은 액세스 효율성을 얻을 수 있고, 이에 의해 혼합 부하에 맞춰진 데이터베이스 시스템의 작업 성능을 향상시킨다.
본 발명의 실시예 또는 종래기술의 기술적 솔루션을 더 명확하게 설명하기 위해, 이하에서는 실시예 또는 종래기술을 설명하는 데 필요한 첨부된 도면에 대해 간략하게 설명한다. 당연히, 이하의 실시예의 첨부된 도면은 본 발명의 일부의 실시예에 지나지 않으며, 당업자라면 창조적 노력 없이 첨부된 도면으로부터 다른 도면을 도출해낼 수 있을 것이다.
도 1은 본 발명에 따른 데이터 분할 방법의 실시예 1에 대한 흐름도이다.
도 2a는 본 발명의 실시예 1에 따른 튜플 관계 정보에 대한 개략도이다.
도 2b는 본 발명의 실시예 1에 따른 튜플 분열 비용 정보에 대한 개략도이다.
도 3은 본 발명의 실시예에 따른 데이터 분할 방법의 실시예 2에 대한 개략도이다.
도 4a는 본 발명의 실시예 2에 따라 부하 1에 대응하는 튜플 관계 하위정보에 대한 개략도이다.
도 4b는 본 발명의 실시예 2에 따라 부하 2에 대응하는 튜플 관계 하위정보에 대한 개략도이다.
도 5는 본 발명에 따른 데이터 분할 방법의 실시예 3에 대한 흐름도이다.
도 6은 본 발명의 실시예 3에 따른 튜플 이동 비용 정보에 대한 개략도이다.
도 7은 본 발명에 따른 데이터 분할 방법의 실시예 4에 대한 흐름도이다.
도 8은 본 발명에 따른 데이터 분할 장치의 실시예 1에 대한 구조도이다.
도 9는 본 발명에 따른 데이터 분할 장치의 실시예 2에 대한 구조도이다.
도 10은 본 발명에 따른 데이터베이스 관리 장치의 실시예 1에 대한 구조도이다.
본 발명의 실시예의 목적, 기술적 솔루션, 및 이점을 더 명확하게 하기 위해, 이하에서는 본 발명의 실시예의 첨부된 도면을 참조하여 본 발명의 실시예에 따른 기술적 솔루션에 대해 명확하게 설명한다. 당연히, 이하의 상세한 설명에서의 실시예는 본 발명의 모든 실시예가 아닌 일부에 지나지 않는다. 당업자가 창조적 노력 없이 본 발명의 실시예에 기초하여 획득하는 모든 다른 실시예는 본 발명의 보호 범위 내에 있게 된다.
도 1은 본 발명에 따른 데이터 분할 방법의 실시예 1에 대한 흐름도이다. 본 실시예에서 제공하는 방법은 데이터 분할 장치에 의해 실행될 수 있으며, 장치는 하드웨어 및/또는 소프트웨어를 사용해서 실행될 수 있다. 도 1에 도시된 바와 같이, 방법은 이하를 포함한다:
S101: 사용자에 의해 입력되는 데이터베이스의 구조 정보 및 혼합 부하를 수신한다.
데이터베이스의 구조 정보는 데이터베이스 시스템에 미리 입력되어 데이터 관리에 사용되며, 여기서 데이터베이스의 구조 정보는 대량의 데이터 정보 및 데이터 간의 관계 구조를 포함한다. 데이터 정보는 교육 제도에서 학생의 각각의 과목의 시험 점수가 될 수도 있고 또는 병원에서 환자의 진료 정보가 될 수도 있다. 학생의 과목 점수를 예로 들어 보면, 시험 점수를 기록하는 데이터는 데이터 간의 특정한 관계 구조에 따라 저장되며, 이러한 구조는 표 1에 나타난 바와 같은 관계 구조 "이름-번호", 표 2에 나타난 바와 같은 관계 구조 "번호-과목-점수" 등을 포함한다.
장 싱 001
자오 이 002
001 수학 A
001 역사 B
002 수학 B
위의 표 1 및 표 2의 항목, 예를 들어, 표 1에서의 "장 싱-001" 및 표 2에서의 "001-수학-A"는 모두 데이터베이스의 구조 정보를 구성하는 튜플이며, 즉 튜플은 데이터베이스에 저장된 데이터이며, 이러한 튜플은 데이터베이스에 의해 수신되는 부하가 액세스한다. 예를 들어, 수신된 부하가 "장 싱의 수학 점수를 질의하라"이면, 표 1에서 부하에 따라 장 싱에 대응하는 번호가 001인 것을 찾고 그런 다음 표 2에서 항목 "001-수학-A"에 따라 장 싱의 수학 점수가 A인 것을 찾는다.
다른 유형의 부하가 있으므로, 전술한 튜플이 데이터베이스 시스템에서 분할될 때, 다른 유형의 부하의 특징을 고려하면 다양한 부하가 데이터베이스 시스템에 액세스하는 것이 편리하다.
다양한 부하에 의한 액세스를 용이하게 하는 데이터 분할 방식을 획득하기 위해, 본 실시예에서는, 데이터 분할 장치가 미리 사용자가 입력하는 혼합 부하를 수신하거나 시간 주기 내에 사용자가 입력하는 혼합 부하를 수신해야 한다. 혼합 부하는 적어도 하나의 트랜잭션 부하 및/또는 적어도 하나의 분석 부하를 포함하며, 전술한 데이터베이스의 구조 정보는 구체적으로 혼합 부하와 관련된 적어도 하나의 튜플을 포함한다. 트랜잭션 부하가 액세스한 튜플이 중앙집중식으로 데이터베이스에 저장되면, 트랜잭션 부하는 데이터베이스에 액세스할 때 높은 효율성을 가지는 반면, 분석 하부에 있어서는, 분석 부하가 액세스한 튜플이 다른 파티션에 저장될 때, 분석 부하는 높은 액세스 효율성을 가진다.
S102. 혼합 부하 및 데이터베이스의 구조 정보에 따라 튜플 관계 정보를 결정한다.
사용자가 "장 싱의 수학 점수 및 역사 점수를 질의하라" 및 "B 점수의 과목을 통계하라"를 입력하면, 부하 1 "장 싱의 수학 점수 및 역사 점수를 질의하라"는 약간의 데이터에 대한 질의를 포함하기 때문에, 부하 1은 트랜잭션 부하이고, 부하 2 "B 점수의 과목을 통계하라"는 대량의 데이터의 분석 및 프로세스를 포함하기 때문에, 부하 2는 분석 부하이다. 즉, 데이터 분할 장치는 트랜잭션 부하 및 분석 부하를 포함하는 혼합 부하를 수신한다.
설명을 간단하게 하기 위해, 표 1에서, 튜플 "장 싱-001"은 S1으로 나타내고, 튜플 "자오 이-002"는 S2로 나타내며; 표 2에서, "001-수학-A"는 C1로 나타내고, "001-역사-B"는 C2로 나타내며, "002-수학-B"는 C3으로 나타낸다. 이 경우, 부하 1이 액세스해야 하는 튜플은 표 1의 S1 "장 싱-001" 및 표 2의 "001-수학-A" 및 "001-역사-B"를 포함하며; 부하 2는 표 2의 C2 "001-역사-B" 및 C3 "002-수학-B"를 차단해야 하며, 여기서 부하 1에 기초해서, 트랜잭션 상관관계가 S1과 C1 사이 그리고 S1과 C2 사이에 존재하고; 부하 2에 기초해서 트랜잭션 상관관계가 C2와 C3 사이에 존재한다. 이 방법에서, 튜플 관계 정보가 결정될 수 있는데, 즉, 튜플 관계 정보는 임의의 2개의 튜플 간의 트랙잭션 상관관계를 포함한다.
도 2a는 본 발명의 실시예 1에 따른 튜플 관계 정보에 대한 개략도이다. 도 2a에 도시된 바와 같이, 튜플 관계 정보는 관계도(relationship diagram)에 의해 표시된다. 튜플 관계 정보 내의 각각의 노드는 하나의 튜플을 나타내고, 튜플 간의 연결 관계는 트랜잭션 상관관계를 나타낸다. 예를 들어, 부하 1에 있어서, C1 및 C2에 따라 장 싱의 수학 점수 및 역사 점수를 알기 위해서는, 장 싱에 대응하는 번호를 S1에 따라 획득해야 한다. 즉, 튜플 관계 정보에서, 트랜잭션 상관관계가 S1과 C1 사이 그리고 S1과 C2 사이에 존재하고, 이것은 연결 관계가 S1과 C1 사이 그리고 S1과 C2 사이에 존재한다는 것을 의미한다. 부하 2에 있어서는, 점수 B를 가진 각각의 튜플에 질의를 해야 하며 따라서 트랜잭션 관계가 C2와 C3 사이에 존재하고, 이것은 연결 관계가 C2와 C3 사이에 존재한다는 것을 나타낸다.
S103. 혼합 부하가 병렬로 실행 가능한지에 관한 특징 및 튜플 관계 정보에 따라 튜플 분열 비용 정보(tuple split cost information)를 결정한다.
튜플 분열 비용 정보는 데이터베이스의 구조 정보 내의 트랙잭션 상관관계를 가지는 임의의 2개의 튜플 간의 분열 비용(split cost)을 포함하고, 여기서 분열 비용은, 상기 트랜잭션 상관관계를 가지는 2개의 튜플이 상이한 파티션에 저장되어 있으면, 트랜잭션 상관관계를 가지는 2개의 튜플에 액세스할 때 혼합 부하의 효율성에 대한 영향의 정도를 나타내는 데 사용된다.
예를 들어, S1 및 C1이 상이한 파티션에 저장되어 있다고 가정하면, S1 및 C1에 액세스하는 부하 1에 있어서, 장 싱에 대응하는 번호가 하나의 저장 영역 있는지를 알아야 하고, 그런 다음 그 번호에 대응하는 점수가 다른 저장 영역에 있는지를 질의해야 하며, 즉 혼합 부하 내의 부하 1은 병렬로 실행되지 않으며, 상이한 파티션에 저장하는 것은 부하의 액세스 효율성에 영향을 미친다. 부하 2에 있어서는, 점수 B를 가지는 튜플에만 액세스한다. 부하 2가 데이터베이스에 액세스할 때, C2 및 C3가 다른 파티션에 저장되어 있어도, 부하 2는 하나 저장 영역에 점수 B를 가진 튜플 C2를 질의하는 동안 다른 저장 영역에 점수 B를 가진 튜플 C3을 질의할 수 있으며, 즉 혼합 부하에서의 부하 2는 병렬로 실행 가능하다.
도 2b는 본 발명의 실시예 1에 따른 튜플 분열 비용 정보에 대한 개략도이다. 도 2b에 도시된 바와 같이, 도 2a에 도시된 튜플 관계 정보에 기초해서, 임의의 2개의 튜플 간의 분열 비용은 혼합 부하가 병렬로 실행 가능한지에 관한 특징에 따라 튜플 관계 정보에서 결정되며, 튜플 분열 비용 정보는 완전한 관계도에 의해 표시된다. 예를 들어, S1과 C1 간의 분열 비용이 1이면, 상이한 파티션에 S1 및 C1을 저장하는 것은 부하에 의한 액세스를 용이하게 하지 않는다는 것을 나타내고, C2와 C3 간의 분열 비용이 -1이면, 상이한 파티션에 C2와 C3을 저장하는 것은 부하에 의한 액세스를 용이하게 한다는 것을 나타낸다.
본 실시예에서 분열 비용의 값은 1 또는 -1에 제한되지 않으며 혼합 부하 내의 한 부하의 비율에 따라 설정될 수 있다는 것에 유의해야 한다. 예를 들어, 부하 1의 액세스 시간의 양이 부하 2의 액세스 시간의 양보다 훨씬 클 때, 병렬로 실행 가능하지 않은 부하 1에 있어서, 중앙집중식으로 저장되어야 하는 튜플이 상이한 파티션에 저장되면, 데이터베이스에 액세스할 때의 부하 1의 효율성에 중대하게 영향을 미친다. 적절한 분할 방식을 획득하기 위해, 부하 1과 관련된 튜플 간의 분열 비용의 값이 부하 2와 관련된 튜플 간의 분열 비용의 값보다 훨씬 클 수 있으며, 예를 들어 5, 10일 수 있고 다른 더 큰 값도 될 수 있다.
S104. 튜플 분열 비용 정보에 따라 복수의 분할 방식을 획득하고, 분할 방식 중에서, 최소의 총비용 값을 가지는 분할 방식을 최적의 분할 방식으로 결정한다.
각각의 분할 방식의 총비용 값은 분할 방식이 사용될 때 데이터베이스의 구조 정보 내의 트랜잭션 상관관계를 가지는 튜플 간의 분열 비용의 합이다. 구체적으로, 전술한 분할 방식에서, 일부의 튜플이 동일한 영역 내에 저장되지 않는다는 것을 나타내며, 트랜잭션 상관관계를 가지는 임의의 2개의 튜플이 분할 방식에 따라 상이한 파티션에 저장될 때, 트랜잭션 상관관계를 가지는 분열 비용을 합하여 분할 방식에 대응하는 총비용 값을 획득한다. 도 3에 상세히 도시되어 있다:
방식 1 P1(S1 및 C1) P2(C2 및 C3)
방식 2 P1(S1 및 C3) P2(C1 및 C2)
방식 3 P1(S 및 C2) P2(C1 및 C3)
방식 1을 예로 들어 보면, 데이터베이스 내의 데이터가 방식 1에 따라 분할될 때, S1 및 C1은 제1 저장 영역 P1에 저장되어야 하는 반면 C2 및 C3은 제2 저장 영역 P2에 저장되어야 하고, 이에 따라 C2 및 S1이 다른 파티션에 저장되며, 분열 비용 값 1이 생성된다. 분할 방식에 따라 분할이 실행될 때 트랜잭션 상관관계를 가지는 튜플 간의 분열 비용의 합을 계산하여, 분할 방식에 대응하는 총비용 값을 획득하며; 이어서, 방식 1의 총비용 값을 획득하는 프로세스와 유사한 프로세스를 사용하여 방식 2 및 방식 3에 대응하는 총비용 값을 각각 획득한다. 이해 가능하게, 총비용 값은 트랜잭션 상관관계를 가지는 튜플 간의 분열 비용의 합이고, 분열 비용은 트랜잭션 상관관계를 가지는 2개의 튜플이 다른 파티션에 저장되면 이 트랜잭션 상관을 가지는 2개의 튜플에 액세스할 때 혼합 부하의 영향의 정도를 나타내는 데 사용된다. 그러므로 총비용 값이 크면, 분할 방식은 데이터베이스에 액세스할 때 부하의 효율성에 큰 악영향을 준다. 그러므로 최소의 총비용 값을 가지는 분할 방식이 최적의 분할 방식으로서 선택된다.
S105. 최적의 분할 방식에 따라, 데이터베이스에 저장되어 있는 데이터에 대해 분할 프로세스를 수행한다.
본 실시예에서, 혼합 부하가 병렬로 실행 가능한지에 관한 특징에 따라, 데이터베이스 내의 혼합 부하와 관련된 데이터에 대해 최적의 분할이 수행되고, 분할 후, 데이터는 혼합 부하 내의 트랜잭션 부하 및 분석 부하의 특징을 가지며, 이에 따라 상이한 부하가 데이터베이스 시스템 내의 데이터에 액세스할 때, 부하는 높은 액세스 효율성을 얻을 수 있고, 이에 의해 혼합 부하에 맞춰진 데이터베이스 시스템의 작업 성능을 향상시킨다.
도 3은 본 발명의 실시예에 따른 데이터 분할 방법의 실시예 2에 대한 개략도이다. 도 3에 도시된 바와 같이, 본 실시예는 실시예 1에 기초하여 데이터 분할 방법을 더 설명하며, 방법은 이하를 포함한다:
S201: 사용자가 입력하는 데이터베이스의 구조 정보 및 혼합 부하를 수신한다.
본 발명의 실시예 1의 S102의 예에서, 혼합 부하는 복수의 상이한 부하를 포함하고, 수신된 혼합 부하는 경험 모델이며, 즉 경험에 따라 예측되는 혼합 부하이며, 예를 들어, 학생의 점수를 저장하는 데이터베이스에 있어서, 부하에 의한 데이터베이스에 대한 공통 액세스는 점수의 필터링, 모든 학생의 평균 점수의 분석 및 계산 등을 포함한다.
S202. 혼합 부하에 포함되어 있는 각각의 부하에 따른 순서로, 데이터베이스의 구조 정보에서, 각각의 부하와 관련된 모든 튜플을 개별적으로 결정한다.
데이터 분할 장치는 수신된 혼합 부하를 분석하고, 혼합 부하에 포함되어 있는 각각의 부하에 따른 순서로, 부하와 관련된 모든 튜플을 결정한다. 구체적으로, 실시예 1의 예에 설명된 바와 같이, 데이터 분할 장치는 혼합 부하에 포함되어 있는 2개의 부하, 즉 부하 1 및 부하 2를 분석하고, 부하 1과 관련된 모들 튜플이 S1, C1, 및 C2이고 부하 2와 관련된 모들 튜플이 C2 및 C3임의 개별적으로 결정한다.
S203. 각각의 부하와 관련된 모든 튜플 중 임의의 2개의 튜플 간의 트랜잭션 상관관계에 따라, 부하와 관련된 튜플 간의 관계 하위정보를 결정한다.
도 4a는 본 발명의 실시예 2에 따라 부하 1에 대응하는 튜플 관계 하위정보에 대한 개략도이다. 도 4b는 본 발명의 실시예 2에 따라 부하 2에 대응하는 튜플 관계 하위정보에 대한 개략도이다. 도 4a에 도시된 바와 같이, 부하 1과 관련된 튜플은 S1, C1, 및 C2이다. 부하 1과 관련된 튜플 간의 튜플 관계 하위정보는 튜플 간의 트랜잭션 상관관계에 따라 결정된다. 마찬가지로, 도 4b에 도시된 바와 같이, 부하 2와 관련된 튜플 간의 튜플 관계 하위정보가 결정된다.
본 실시예는 2개의 부하만을 포함하는 혼합 부하를 예로 사용한다. 그렇지만, 실제의 응용에서, 혼합 부하에 포함되어 있는 부하의 양은 크므로 복수 편의 튜플 관계 하위정보가 결정될 수 있다.
S204. 혼합 부하 내의 각각의 부하와 관련된 튜플 간의 관계 하위정보를 수집하여 튜플 관계 정보를 획득한다.
각각의 부하와 관련된 튜플 간의 튜플 관계 하위정보에 대해 분석을 수행한다. 도 4a 및 도 4b에 도시된 2편의 튜플 관계 하위정보를 예로 사용하여, 도 4a 및 도 4b에서의 2편의 튜플 관계 하위정보는 도 2a에 도시된 한 편의 완전한 튜플 관계 정보와 결합된다.
S205. 혼합 부하가 병렬로 실행 가능한지에 관한 특징 및 튜플 관계 정보에 따라 튜플 분열 비용 정보를 결정한다.
구체적으로, 특징이 튜플 관계 정보 내의 트랜잭션 상관관계를 가지는 2개의 튜플과 관련되어 있는 혼합 부하가 병렬로 실행 가능하지 않다는 것이면, 2개의 튜플 간의 분열 비용은 사전설정된 양의 값(positive value)인 것으로 결정된다.
특징이 튜플 관계 정보 내의 트랜잭션 상관관계를 가지는 2개의 튜플과 관련되어 있는 혼합 부하가 병렬로 실행 가능하다는 것이면, 2개의 튜플 간의 분열 비용이 사전설정된 음의 값(negative value)인 것으로 결정된다.
예를 들어, 도 2b에 도시된 바와 같이, 부하 1이 병렬로 실행 가능하지 않으면, 부하 1과 관련된 S1과 C1 간의 분열 비용은 양의 값 1이고, 부하 2가 병렬로 실행 가능하면, 부하 2와 관련된 C2와 C3 간의 분열 비용은 음의 값 -1이다. 실제의 응용에서는, 부하의 액세스 빈도에 따라 특정한 값이 사전설정될 수 있다.
S206. 튜플 분열 비용 정보에 따라 복수의 분할 방식을 획득하고, 분할 방식 중에서, 최소의 총비용 값을 가지는 분할 방식을 최적의 분할 방식으로서 결정한다.
S206에서 결정되는 분할 방식의 양은 적어도 2개, 예를 들어, 도 3에 도시된 복수의 방식이다.
S207. 이미지 세그먼테이션 알고리즘을 사용하여 각각의 분할 방식의 총비용 값을 결정한다.
전술한 튜플 분열 비용 정보는 관계도, 예를 들어 도 2b에 도시된 관계도에 의해 표시될 수 있다. 관계도에서, 트랜잭션 상관관계를 가지는 임의의 2개의 튜플은 연결선에 의해 연결되고, 여기서 연결선은 트랜잭션 상관관계를 가지는 2개의 튜플 간의 분열 비용에 대응한다. 이 경우, 이미지 세그먼테이션 알고리즘을 사용해서 관계도에 대해 복수 유형의 세그먼테이션 프로세싱을 수행하여 복수의 분할 방식을 결정할 수 있으며, 여기서 각각의 유형의 세그먼테이션 프로세싱은 하나의 분할 방식에 대응하며; 전술한 관계도에 대해 각각의 유형의 세그먼테이션 프로세싱을 수행할 때, 각각의 세그먼트화된 연결선에 의해 연결된 2개의 튜플 간의 분열 비용을 누산하여 세그먼테이션 프로세싱에 대응하는 분할 방식의 총비용 값을 획득한다. 예를 들어, 위의 표 3에서 방식 1을 획득하기 위해서는, 도 2b에 도시된 S1과 C2 간의 연결선을 세그먼트화 해야 하고, 이 연결선에 의해 연결되는 2개의 튜플 간의 분열 비용을 누산하여 복수의 연결선에 의해 연결되는 2개의 튜플 간의 분열 비용의 합을 계산한다. S1과 C2 간의 연결선만을 세그먼트화 하여 방식 1을 획득하므로 방식 1에 대응하는 총비용 값은 S1과 C2 간의 분열 비용이다.
S208. 최소의 총비용 값에 대응하는 분할 방식을 최적의 분할 방식으로서 결정한다.
본 실시예에서는, 혼합 부하가 병렬로 실행 가능한지에 관한 특징에 따라 그리고 이미지 세그먼테이션 알고리즘을 사용함으로써, 데이터베이스 내의 혼합 부하와 관련된 데이터에 대해 최적의 분할을 수행하며, 분할 후, 데이터는 혼합 부하 내의 트랜잭션 부하 및 분석 부하의 특징을 가지며, 이에 따라 상이한 부하가 데이터베이스 시스템 내의 데이터에 액세스할 때, 부하는 높은 액세스 효율성을 얻을 수 있고, 이에 의해 혼합 부하에 맞춰진 데이터베이스 시스템의 작업 성능을 향상시킨다.
데이터베이스를 사용하는 동안, 사용자의 요건이 변할 수 있는데, 즉 입력 부하가 변한다. 예를 들어, 새로운 부하 3이 입력되고, 부하 3과 관련된 튜플은 S2 및 C3이 될 수 있으며, 한 편의 튜플 관계 하위정보가 부가된다. 그러므로 혼합 부하에 따라 결정된 튜플 관계 정보도 변할 수 있으며, 데이터는 다시 분할되어야 하거나; 또는 일부의 부하의 액세스 빈도가 변하고, 예를 들어, 최적의 분할 방식이 이전 시간에서 결정되면, 부하 1의 액세스 빈도가 상대적으로 높으므로, 최적의 분할 방식이 부하 1에 의한 액세스를 더 용이하게 하며, 이에 따라 데이터베이스에 액세스할 때 혼합 부하의 효율성이 향상된다. 사용자가 시간 주기 동안 데이터베이스를 사용한 후에는, 여러 가지 이유로, 사용자가 부하 2를 입력하는 빈도가 사용자가 부하 1을 입력하는 빈도보다 훨씬 높지만, 최적의 데이터 분할 방식은 부하 2에 의한 액세스를 용이하게 하지 않는다. 그러므로 데이터베이스의 분할 방식은 조정되어야 하는데, 즉 전술한 최적의 분할 방식에 따라 데이터베이스 내의 데이터에 대해 분할 프로세스를 수행하고, 튜플 분열 비용 정보를 조정된 튜플 분열 비용 정보에 대해 갱신할 때, 데이터베이스 내의 데이터 파티션을 조정하여야 한다.
도 5는 본 발명에 따른 데이터 분할 방법의 실시예 3에 대한 흐름도이다. 도 5에 도시된 바와 같이, 데이터 분할 방식은 전술한 실시예 1 또는 실시예 2에 기초하여 더 최적화된다. 구체적으로, 방법은 이하를 포함한다.
S301. 사용자가 입력하는 혼합 부하를 수신한다.
본 실시예에서, 데이터 분할 장치가 수신하는 혼합 부하는 사용자가 데이터베이스 시스템을 사용할 때 시간 주기 내에 사용자가 입력하는 부하이다.
S302. 수신된 혼합 부하에 따라 조정된 튜플 분열 비용 정보를 결정한다.
조정된 튜플 분열 비용 정보는 시간 주기 내에 데이터 분할 장치가 수신하는 혼합 부하에 따라 그리고 데이터베이스 내의 튜플을 참조하여 획득된다.
S303. 조정된 튜플 분열 비용 정보에 따라 적어도 2개의 분할 방식을 결정한다.
전술한 조정된 튜플 분열 비용 정보는 관계도에 의해 표시된다. 이 관계도에서, 트랜잭션 상관관계를 가지는 임의의 2개의 튜플은 연결선에 의해 연결되며, 즉 조정된 튜플 분열 비용 정보는 도 2b에 도시된 관계도에 의해 표시될 수도 있다. 이 경우, 이미지 세그먼테이션 알고리즘을 사용함으로써 그 조정된 튜플 분열 비용 정보에 대해 복수 유형의 세그먼테이션 프로세싱을 수행하여, 복수의 분할 방식을 결정할 수 있으며, 각각의 유형의 세그먼테이션 프로세싱은 하나의 분할 방식에 대응하며, 각각의 분할 방식의 총비용 값이 결정된다. 전술한 S302 및 S303의 특정한 실행 프로세스에 대해서는, S201 및 S206을 참조하면 되며, 이에 대해서는 여기서 더 설명하지 않는다.
S304. 최소의 총비용 값에 대응하는 분할 방식을 제1 분할 방식으로서 결정한다.
제1 분할 방식은 최소의 총비용 값을 가지는 분할 방식이며, 현재의 시간 주기 내에 수신된 혼합 부하에 따라 결정된다. 제1 분할 방식은 현재의 혼합 부하에 의한 액세스를 완전하게 용이하게 한다는 것을 이해할 수 있을 것이다.
S305. 최적의 분할 방식 및 제1 분할 방식에 따라 튜플 이동 비용 정보를 생성한다.
제1 분할 방식에 따라 최적의 분할 방식을 조정할 때, 각각의 최적의 파티션으로 이동될 튜플이 결정되며, 여기서 최적의 파티션은 전술한 최적의 분할 방식에 따라 결정되는 저장 영역이다. 최적의 분할 방식은 P1(S1 및 C3) 및 P2(C1 및 C2)를 예로 사용하고, 여기서 P1 및 P2는 최적의 분할 방식에 따라 결정되는 2개의 저장 영역이며, 결정된 제1 분할 방식은 P1'(S1 및 C2) 및 P2'(C1 및 C3)를 예로 사용한다. 제1 분할 방식에 따라 최적의 분할 방식을 조정할 때, 최적의 분할 방식과 제1 분할 방식을 분석하고 비교함으로써, C2 및 C3가 이동되어야 하고, 즉 C2 및 C3가 이동될 튜플이다는 것을 알 수 있다. 그런 다음, 이동될 튜플과 최적의 파티션 간의 이동 비용은 이동될 튜플과 최적의 파티션 간의 조정 관계에 따라 결정된다. 예를 들어, 최적의 분할 방식을 조정하여 제1 분할 방식을 획득할 때, C2는 최적의 파티션 P2를 벗어나 이동되어야 하고 C3은 최적의 파티션 P1을 벗어나 이동되어야 한다. 이 경우, P2와 C2 사이 그리고 P1과 C3 사이에는 조정 관계가 있으며, 이동 비용의 특정한 값이 사전설정될 수 있다. 예를 들어, 튜플 C2는 많은 데이터를 포함하고, C2 내의 데이터를 이동시키는 것은 높은 자원 비용을 필요로 한다. 그러므로 C2의 이동 비용의 값은 조정 프로세스에서 필요로 하는 자원 비용에 대응하는 더 큰 값에 설정될 수 있다.
이동 비용이 결정된 후에는, 이동될 튜플과 최적의 파티션 간의 분열 비용도 전술한 조정된 튜플 분열 비용 정보에 따라 결정되어야 하며, 튜플 이동 비용 정보는 이동 비용 및 분열 정보에 따라 생성된다.
구체적으로, 도 6은 본 발명의 실시예 3에 따른 튜플 이동 비용 정보에 대한 개략도이다. 도 6에 도시된 바와 같이, C2를 P2를 벗어나 이동시키고 C3를 P1을 벗어나 이동시키기만 하여도 제1 분할 방식을 획득할 수 있으며; 그런 다음, C2와 P2 간의 연결 관계 및 C3와 P1 간의 연결 관계는 이동 비용을 나타내고, P1 내에는 C2와 S1 간의 분열 비용이 존재한다. 이 경우, P1 내의 C2와 S1 간의 분열 비용은 이동될 튜플 C2와 최적의 파티션 P1 간의 분열 비용이다.
S306. 조정된 튜플 이동 비용 정보에 따라 조정된 분할 방식을 결정한다.
전술한 튜플 이동 비용 정보 역시 관계도에 의해 표시될 수 있다. 이 관계도에서, 이동될 튜플과 최적의 파티션 간의 조정 관계 및 이동될 튜플과 최적의 파티션 내의 튜플 간의 트랜잭션 상관관계는 연결선에 의해 표시된다. 이 경우, 이미지 세그먼테이션 알고리즘을 사용함으로써 튜플 이동 비용 정보에 대해 복수 유형의 세그먼테이션 프로세싱을 수행하여 복수의 사전설정된 이동 분할 방식을 결정할 수 있다. 구체적으로, 임의의 하나의 분할 방식에 있어서, 분열 비용 값은 항상 존재한다. 예를 들어, 현재 수신된 혼합 부하에 있어서, 최적의 분할 방식의 분열 비용 값이 10인 반면, 제1 분할 방식의 분열 비용 값이 4이다. 이 경우, 최적의 분할 방식을 제1 분할 방식으로 조정하여 분열 비용 값을 감소시킨다. 그렇지만, 이동 비용 정보에 따라, 최적의 분할 방식을 조정하여 제1 분할 방식을 획득하는 경우에는, 5의 이동 비용을 지급해야 한다는 것을 알 수 있다. 10 - 4 + 5 = 11에 따라, 제1 분할 방식상의 조정 프로세스에서 발생하는 총비용 값은 11이다. 4의 분열 비용 값을 감소시키기 위해서는 5의 조정 비용을 지급해야 한다는 것을 분석에 의해 알 수 있으며, 이것이 자원-낭비 조정이다. 그렇지만, 데이터베이스의 분할 방식을 현재의 혼합 부하에 적용할 수 있기 위해서는, 최적의 분할 방식을 사전설정된 이동 분할 방식에 대해 조정할 수 있어야 한다.
구체적으로, 이미지 세그먼테이션 알고리즘을 사용함으로써 튜플 이동 비용 정보에 대해 복수 유형의 세그먼테이션 프로세싱을 수행하여, 복수의 사전설정된 이동 분할 방식을 결정할 수 있으며, 여기서 복수의 사전설정된 이동 분할 방식으로는, 최적의 분할 방식(즉, 조정이 수행되지 않고 전술한 최적의 분할 방식이 계속 사용됨), 제1 분할 방식, 또는 일부의 튜플, 예를 들어, P1"(S1) 및 P2"(C1, C2, 및 C3)을 조정함으로써 획득되는 복수의 분할 방식을 들 수 있다.
복수의 사전설정된 이동 분할 방식을 획득한 후에는, 최소의 조정된 총비용 값을 가지는 사전설정된 이동 분할 방식을 복수의 사전설정된 이동 분할 방식 중에서 결정하여 최적의 분할 방식으로서 사용하여야 한다. 구체적으로, 복수의 사전설정된 이동 분할 방식에 대응하는 조정된 총비용 값은 이미지 세그먼테이션 알고리즘을 사용하여 획득되는데, 즉 사전설정된 이동 분할 방식상에서 발생하는 조정된 총비용 값은, 조정된 최적의 분할 방식이 상기 사전설정된 이동 분할 방식이 되도록 조정하는 프로세스에서 계산된다. 마지막으로, 최소의 조정된 총비용 값을 가지는 사전설정된 이동 분할 방식을 복수의 사전설정된 이동 분할 방식 중에서 결정하여 상기 조정된 분할 방식으로서 사용한다.
본 실시예에서는, 데이터베이스 시스템에 대해 최적의 분할을 수행한 후, 데이터베이스 시스템을 사용하는 동안 사용자가 입력한 부하가 변하면, 사용자가 입력한 부하에 따라 데이터베이스 시스템 내의 기존의 분할을 조정하며; 이 조정이 필요로 하는 이동 비용 역시 그 조정 동안 고려되어 최적의 분할 방식이 최소의 이동 비용에서 획득되는 것을 보장한다. 이 방법에서, 상이한 부하가 데이터베이스 시스템 내이 데이터에 액세스할 때, 이러한 부하는 높은 액세스 효율성을 얻을 수 있고, 이에 의해 혼합 부하에 맞춰진 데이터베이스 시스템의 작업 성능을 향상시킨다.
실제의 응용에서는, 일부의 객관적 요인으로 인해 데이터베이스 내의 데이터를 분할하는 데 전술한 방법을 사용할 수 없다. 그렇지만, 데이터베이스 시스템의 분할 방식을 혼합 부하에 적용하기 위해, 혼합 부하에 적용할 수 있는 분할 방식을, 데이터베이스 시스템이 사용하는 기존의 분할 방식 중에서, 전술한 방법을 사용하여 결정되는 분할 방식을 참조하여 결정할 수 있다.
도 7은 본 발명에 따른 데이터 분할 방법의 실시예 4에 대한 흐름도이다. 도 7에 도시된 바와 같이, 본 실시예는 실시예 1 또는 실시예 2에서 결정된 최적의 분할 방식에 따라 데이터베이스 내의 데이터에 대한 분할 프로세스에 실패한 후에 실행되는 데이터 분할 방법을 제공한다 방법은 이하를 포함한다.
S401. 최적의 분발 방식을 획득한다.
일부의 장치에서, S201 및 S209에서 설명된 방법은 지원되지 않을 수도 있다. 장치에서의 데이터 분할을 합리화하기 위해, 실시예 2를 실행하는 데이터 분할 장치가 장치에 마지막에 연결될 수 있다. 데이터 분할 장치는 장치에 의해 수신되는 혼합 부하 및 장치의 데이터 구조 정보에 따라 최적의 분할 방식을 획득한다. 구체적인 프로세스는 S201 내지 S209와 일치하며, 이에 대해서는 여기서 더 설명하지 않는다.
S402. 적어도 2개의 온라인 분석 프로세싱 모드를 사용함으로써 데이터 분할을 수행하여 각각의 온라인 분석 프로세싱 모드에 대응하는 후보 분할 방식을 획득한다.
전술한 온라인 분석 프로세싱 모드는 예를 들어, 해시 함수 프로세싱, 순열 함수 프로세싱, 라운드-로빈 알고리즘 프로세싱, 및 복제 관리 프로세싱이고, 이러한 프로세싱은 종래기술에 속하며, 온라인 분석 프로세싱 모드를 전술한 장치에서 사용하여 각각의 온라인 분석 프로세싱 모드에 대응하는 후보 분할 방식을 획득할 수 있다.
S403. 최적의 분할 방식과 각각의 후보 분할 방식 간의 차이 값을 결정한다.
전술한 최적의 분할 방식은 S로 표시되며; 이때, S = (P1, P2, P3,...Pj...)이고, 여기서 Pj는 최적의 분할 방식에서 j번째 파티션을 나타낸다.
후보 분할 방식은 Si로 표시되며, 여기서 i는 복수의 후보 분할 방식 중 하나의 분할 방식의 번호를 나타내고, 이때 Si = (Pi ,1, Pi ,2, Pi ,3,...Pi ,j...)이고, 여기서 Pi ,j는 분할 방식 i의 j번째 파티션을 나타내고, 그리고 i∈M이며, 여기서 M은 후보 분할 방식의 총량을 나타낸다.
전술한 파티션 Pj의 튜플은 (t1 t2...tj...)로 표시되며, Pi ,j 내의 튜플은 (ti,1 ti ,2...ti ,j...)로 표시된다.
S와 각각의 후보 분할 방식 Si 간의 차이 값을 계산하고, 여기서 차이 값은 Di로 표시되며; 이때,
Figure 112014056782096-pct00001
이다.
S404. 최소의 차이 값을 가지는 후보 분할 방식을 현재의 분할 방식으로서 결정하고, 현재의 분할 방식에 따라 데이터에 대해 분할을 수행한다.
최적의 분할 방식과 각각의 후보 분할 방식 간의 차이 값 Di를 계산한 후, 최소의 차이 값을 가지는 분할 방식을 장치가 선택할 수 있는 최적의 분할 방식으로서 결정한다.
본 실시예에서, 실제의 상황을 참조하여, 데이터베이스 내의 데이터를 분할할 때, 이미지 세그먼테이션 알고리즘을 사용하여 획득된 최적의 분할 방식을 기준 표준으로서 고정적으로 사용할 수 있으며; 기존이 방식을 사용하여 획득된 후보 분할 방식 중에서 기준 표준에 가장 근접한 후보 분할 방식을 선택하며, 이에 따라 데이터베이스 시스템은 기존의 방식을 사용할 수 있고, 혼합 부하는 높은 액세스 효율성을 가질 수 있다. 그러므로 장치의 미지원과 같은 객관적 요인으로 인해 기존의 방법을 사용하여 혼합 부하에 의한 액세스를 용이하게 하는 분할 방식을 획득할 수 없는 경우를 피하게 된다.
도 8은 본 발명에 따른 데이터 분할 장치의 실시예 1에 대한 구조도이다. 도 8에 도시된 바와 같이, 데이터 분할 장치는:
사용자에 의해 입력되는 데이터베이스의 구조 정보 및 혼합 부하를 수신하도록 구성되어 있는 수신 모듈(501) - 상기 혼합 부하는 적어도 하나의 트랜잭션 부하 및/또는 적어도 하나의 분석 부하를 포함하고, 상기 데이터베이스의 구조 정보는 혼합 부하와 관련된 적어도 하나의 튜플을 포함함 - ;
상기 혼합 부하 및 상기 데이터베이스의 구조 정보에 따라 튜플 관계 정보를 결정하도록 구성되어 있는 관계 결정 모듈(502) - 상기 튜플 관계 정보는 상기 데이터베이스의 구조 정보 내의 임의의 2개의 튜플 간의 트랜잭션 상관관계를 포함함 - ;
상기 혼합 부하가 병렬로 실행 가능한지에 관한 특징 및 상기 튜플 관계 정보에 따라 튜플 분열 비용 정보를 결정하도록 구성되어 있는 비용 결정 모듈(503) - 상기 튜플 분열 비용 정보는 상기 데이터베이스의 구조 정보 내의 트랙잭션 상관관계를 가지는 임의의 2개의 튜플 간의 분열 비용을 포함하고, 상기 분열 비용은, 상기 트랜잭션 상관관계를 가지는 2개의 튜플이 상이한 파티션에 저장되어 있으면, 상기 트랜잭션 상관관계를 가지는 2개의 튜플에 액세스할 때 상기 혼합 부하의 효율성에 대한 영향의 정도를 나타내는 데 사용됨 - ;
상기 튜플 분열 비용 정보에 따라 복수의 분할 방식을 획득하고, 상기 분할 방식 중에서 최소의 총비용 값을 가지는 분할 방식을 최적의 분할 방식으로 결정하도록 구성되어 있는 최적의 설정 모듈(504) - 각각의 분할 방식의 총비용 값은 상기 분할 방식이 사용될 때 상기 데이터베이스의 구조 정보 내의 트랜잭션 상관관계를 가지는 튜플 간의 분열 비용의 합임 - ; 및
상기 최적의 분할 방식에 따라, 상기 데이터베이스에 저장되어 있는 데이터에 대해 분할 프로세스를 수행하도록 구성되어 있는 분할 모듈(505)
을 포함한다.
본 실시예에서는, 혼합 부하가 병렬로 실행 가능한지에 관한 특징에 따라 그리고 이미지 세그먼테이션 알고리즘을 사용함으로써, 데이터베이스 내의 혼합 부하와 관련된 데이터에 대해 최적의 분할을 수행하며, 분할 후, 데이터는 혼합 부하 내의 트랜잭션 부하 및 분석 부하의 특징을 가지며, 이에 따라 상이한 부하가 데이터베이스 시스템 내의 데이터에 액세스할 때, 부하는 높은 액세스 효율성을 얻을 수 있고, 이에 의해 혼합 부하에 맞춰진 데이터베이스 시스템의 작업 성능을 향상시킨다.
도 9는 본 발명에 따른 데이터 분할 장치의 실시예 2에 대한 구조도이다. 도 9에 도시된 바와 같이, 관계 결정 모듈(502)은 구체적으로, 혼합 부하에 포함되어 있는 각각의 부하에 따른 순서로, 데이터베이스의 구조 정보에서, 각각의 부하와 관련된 모든 튜플을 개별적으로 결정하고;
각각의 부하와 관련된 모든 튜플 중 임의의 2개의 튜플 간의 트랜잭션 상관관계에 따라, 상기 부하와 관련된 튜플 간의 관계 하위정보를 결정하며; 그리고
상기 혼합 부하 내의 각각의 부하와 관련된 튜플 간의 관계 하위정보를 수집하여 상기 튜플 관계 정보를 획득하도록 구성되어 있다.
비용 결정 모듈(503)은 구체적으로,
특징이 튜플 관계 정보 내의 트랜잭션 상관관계를 가지는 2개의 튜플과 관련되어 있는 혼합 부하가 병렬로 실행 가능하지 않다는 것이면, 2개의 튜플 간의 분열 비용이 사전설정된 양의 값인 것으로 결정하며; 그리고
특징이 튜플 관계 정보 내의 트랜잭션 상관관계를 가지는 2개의 튜플과 관련되어 있는 혼합 부하가 병렬로 실행 가능하다는 것이면, 2개의 튜플 간의 분열 비용이 사전설정된 음의 값인 것으로 결정하도록 구성되어 있다.
튜플 분열 비용 정보는 관계도에 의해 표현되고, 상기 관계도에서 트랜잭션 상관관계를 가지는 임의의 2개의 튜플은 연결선에 의해 연결되며; 최적 선택 모듈(504)은 관계도에 대해 이미지 세그먼테이션 알고리즘을 사용하여 복수 유형의 세그먼테이션 프로세싱을 수행하고 - 각각의 유형의 세그먼테이션 프로세싱은 하나의 분할 방식에 대응함 - ;
상기 관계도에 대해 각각의 유형의 세그먼테이션 프로세싱을 수행할 때, 각각의 세그먼트화된 연결선에 의해 연결되는 2개의 튜플 간의 분열 비용을 누산하여, 이 유형의 세그먼테이션 프로세싱에 대응하는 분할 방식의 총비용 값을 획득하며; 그리고
최소의 총비용 값에 대응하는 분할 방식을 최적의 분할 방식으로 결정하도록 구성되어 있다.
또한, 장치는 조정 선택 모듈(506)을 더 포함하며, 조정 선택 모듈(506)은, 상기 분할 모듈(505)이 상기 최적의 분할 방식에 따라 데이터베이스 내의 데이터에 대해 분할 프로세스를 수행한 후, 상기 튜플 분열 비용 정보를 조정된 튜플 분열 비용 정보로 갱신할 때, 상기 조정된 튜플 분열 비용 정보에 대해 이미지 세그먼테이션 알고리즘을 사용함으로써 복수 유형의 세그먼테이션 프로세싱을 수행하여 복수의 분할 방식을 결정하고 - 각각의 유형의 세그먼테이션 프로세싱은 하나의 분할 방식에 대응함 - ;
각각의 분할 방식의 총비용 값을 결정하고 - 상기 조정된 튜플 분열 비용 정보는 관계도에 의해 표현되며, 상기 관계도 내의 트랜잭션 상관관계를 가지는 임의의 2개의 튜플은 연결선에 의해 연결됨 - ;
최소의 총비용 값에 대응하는 분할 방식을 제1 분할 방식으로 결정하며; 그리고
최적의 분할 방식 및 제1 분할 방식에 따라 튜플 이동 비용 정보를 생성하고, 튜플 이동 비용 정보에 따라 조정된 분할 방식을 결정하도록 구성되어 있다.
또한, 조정 선택 모듈(506)은 구체적으로, 최적의 분할 방식이 제1 분할 방식에 따라 조정될 때, 각각의 최적의 파티션으로 이동될 튜플을 결정하도록 구성되어 있고 - 상기 최적의 파티션은 상기 최적의 분할 방식에 따라 결정된 저장 영역임 - ;
이동될 튜플과 최적의 파티션 간의 조정 관계에 따라 상기 이동될 튜플과 상기 최적의 파티션 간의 이동 비용을 결정하고;
조정된 튜플 분열 비용 정보에 따라 상기 이동될 튜플과 상기 최적의 파티션 간의 분열 비용을 결정하고;
이동 비용 및 분열 비용에 따라 튜플 이동 비용 정보를 생성하고;
튜플 이동 비용 정보에 따라 상기 최적의 분할 방식을 조정하여 복수의 사전설정된 이동 분할 방식을 획득하고;
이미지 세그먼테이션 알고리즘을 사용하여 각각의 사전설정된 이동 분할 방식에 대응하는 조정된 총비용 값을 획득하며; 그리고
복수의 사전설정된 이동 분할 방식 중에서, 최소의 조정된 총비용 값을 가지는 사전설정된 이동 분할 방식을 상기 조정된 분할 방식으로서 결정하도록 추가로 구성되어 있다.
더 유연하게, 상기 장치는 차이 선택 모듈(507)을 더 포함하며, 상기 차이 선택 모듈(507)은, 상기 분할 모듈이 상기 최적의 분할 방식에 따라 상기 데이터베이스 내의 데이터에 대해 분할 프로세스를 수행하는 것을 실패하면, 적어도 2개의 온라인 분석 프로세싱 모드를 사용함으로써 데이터 분할을 수행하여 각각의 온라인 분석 프로세싱 모드에 대응하는 후보 분할 방식을 획득하고;
최적의 분할 방식과 각각의 후보 분할 방식 간의 차이 값을 결정하며; 그리고
최소의 조정된 총비용 값을 가지는 후보 분할 방식을 현재의 분할 방식으로 결정하고, 현재의 분할 방식에 따라 데이터에 대해 분할을 수행하도록 구성되어 있다.
본 실시예에서는, 혼합 부하가 병렬로 실행 가능한지에 관한 특징에 따라 그리고 이미지 세그먼테이션 알고리즘을 사용함으로써, 데이터베이스 내의 혼합 부하와 관련된 데이터에 대해 최적의 분할을 수행하며, 분할 후, 데이터는 혼합 부하 내의 트랜잭션 부하 및 분석 부하의 특징을 가지며, 이에 따라 상이한 부하가 데이터베이스 시스템 내의 데이터에 액세스할 때, 부하는 높은 액세스 효율성을 얻을 수 있고, 이에 의해 혼합 부하에 맞춰진 데이터베이스 시스템의 작업 성능을 향상시킨다.
전술한 각각의 장치 실시예의 각각의 모듈은 각각의 방법 실시예에 대응하며, 이에 대해서는 여기서 더 설명하지 않는다.
또한, 실제의 응용에서, 전술한 데이터 분할 장치는 데이터베이스 관리 장치일 수 있다. 도 10은 본 발명에 따른 데이터베이스 관리 장치의 실시예 1에 대한 구조도이다. 도 10에 도시된 바와 같이, 데이터베이스 관리 장치는 프로세서(601), 수신기(602), 메모리(603), 및 버스(604)를 포함한다.
프로세서(601), 수신기(602), 및 메모리(603)는 버스(604)를 사용하여 상호 접속되어 있다. 버스(604)는 ISA 버스, PCI 버스, EISA 버스 등이 될 수 있다. 버스는 어드레스 버스, 데이터 버스, 제어 버스 등으로 분류될 수 있다. 표시를 쉽게 하기 위해, 도 10에서의 버스는 하나의 실선으로만 표시하고 있으나, 단지 하나의 버스 또는 한 유형의 버스만이 있는 것을 나타내는 것은 아니다.
메모리(603)는 프로그램 및 데이터를 저장하도록 구성되어 있다. 구체적으로, 프로그램은 프로그램 코드를 포함할 수 있으며, 프로그램 코드는 컴퓨터 동작 명령을 포함한다. 메모리(603)는 고속 RAM 메모리를 포함하고, 비휘발성 메모리(non-volitile memory), 예를 들어, 적어도 하나의 자기디스크 메모리도 포함할 수 있다. 프로세서(601)는 메모리(603)에 저장되어 있는 프로그램을 실행한다. 구체적으로, 데이터베이스 관리 장치에서, 수신기(602)는 사용자가 입력하는 데이터베이스의 구조 정보 및 혼합 부하를 수신하도록 구성되어 있으며, 혼합 부하는 적어도 하나의 트랜잭션 부하 및/또는 적어도 하나의 분석 부하를 포함하며, 데이터베이스의 구조 정보는 혼합 부하와 관련된 적어도 하나의 튜플을 포함하며, 이것은 메모리(603)에 의해 저장된다.
프로세서(601)는 데이터베이스의 구조 정보 및 혼합 부하에 따라 튜플 관계 정보를 결정하도록 구성되어 있으며, 튜플 관계 정보는 데이터베이스의 구조 정보 내의 임의의 2개의 튜플 간의 트랜잭션 상관관계를 포함한다.
프로세서(601)는 혼합 부하가 병렬로 실행 가능한지에 관한 특징 및 튜플 관계 정보에 따라 튜플 분열 비용 정보를 결정하도록 구성되어 있으며, 여기서 상기 튜플 분열 비용 정보는 데이터베이스의 구조 정보 내의 트랙잭션 상관관계를 가지는 임의의 2개의 튜플 간의 분열 비용을 포함하고, 상기 분열 비용은, 상기 트랜잭션 상관관계를 가지는 2개의 튜플이 상이한 파티션에 저장되어 있으면, 상기 트랜잭션 상관관계를 가지는 2개의 튜플에 액세스할 때 상기 혼합 부하의 효율성에 대한 영향의 정도를 나타내는 데 사용된다.
프로세서(601)는 튜플 분열 비용 정보에 따라 복수의 분할 방식을 획득하고, 상기 분할 방식 중에서 최소의 총비용 값을 가지는 분할 방식을 최적의 분할 방식으로 결정하도록 구성되어 있으며, 각각의 분할 방식의 총비용 값은 분할 방식이 사용될 때 상기 데이터베이스의 구조 정보 내의 트랜잭션 상관관계를 가지는 튜플 간의 분열 비용의 합이다.
프로세서(601)는 최적의 분할 방식에 따라, 데이터베이스에 저장되어 있는 데이터에 대해 분할 프로세스를 수행한다.
또한, 프로세서(601)는 혼합 부하에 포함되어 있는 각각의 부하에 따른 순서로, 데이터베이스의 구조 정보에서, 각각의 부하와 관련된 모든 튜플을 개별적으로 결정한다.
프로세서(601)는 각각의 부하와 관련된 모든 튜플 중 임의의 2개의 튜플 간의 트랜잭션 상관관계에 따라, 부하와 관련된 튜플 간의 관계 하위정보를 결정한다.
프로세서(601)는 혼합 부하 내의 각각의 부하와 관련된 튜플 간의 관계 하위정보를 수집하여 상기 튜플 관계 정보를 획득한다.
상기 특징이 튜플 관계 정보 내의 트랜잭션 상관관계를 가지는 2개의 튜플과 관련되어 있는 혼합 부하가 병렬로 실행 가능하지 않다는 것이면, 프로세서(601)는 2개의 튜플 간의 분열 비용이 사전설정된 양의 값인 것으로 결정한다.
상기 특징이 상기 튜플 관계 정보 내의 트랜잭션 상관관계를 가지는 2개의 튜플과 관련되어 있는 혼합 부하가 병렬로 실행 가능하다는 것이면, 프로세서(601)는 2개의 튜플 간의 분열 비용이 사전설정된 음의 값인 것으로 결정한다.
또한, 프로세서(601)는 이미지 세그먼테이션 알고리즘을 사용함으로써 관계도에 대해 복수 유형의 세그먼테이션 프로세싱을 수행하여 복수의 분할 방식을 결정하고, 여기서 각각의 유형의 세그먼테이션 프로세싱은 하나의 분할 방식에 대응한다.
상기 관계도에 대해 각각의 유형의 세그먼테이션 프로세싱을 수행할 때, 프로세서(601)는 각각의 세그먼트화된 연결선에 의해 연결되는 2개의 튜플 간의 분열 비용을 누산하여, 이 유형의 세그먼테이션 프로세싱에 대응하는 분할 방식의 총비용 값을 획득한다.
프로세서(601)는 최소의 총비용 값에 대응하는 분할 방식을 최적의 분할 방식으로 결정한다.
또한, 최적의 분할 방식에 따라 데이터베이스 내의 데이터에 대해 분할 프로세스를 수행한 후, 상기 튜플 분열 비용 정보를 조정된 튜플 분열 비용 정보로 갱신할 때, 프로세서(601)는 조정된 튜플 분열 비용 정보에 대해 이미지 세그먼테이션 알고리즘을 사용함으로써 복수 유형의 세그먼테이션 프로세싱을 수행하여 복수의 분할 방식을 결정하고, 여기서, 각각의 유형의 세그먼테이션 프로세싱은 하나의 분할 방식에 대응하며; 각각의 분할 방식의 총비용 값을 결정하며, 여기서, 상기 조정된 튜플 분열 비용 정보는 관계도에 의해 표현되며, 상기 관계도 내의 트랜잭션 상관관계를 가지는 임의의 2개의 튜플은 연결선에 의해 연결된다.
프로세서(601)는 최소의 총비용 값에 대응하는 분할 방식을 제1 분할 방식으로 결정한다.
프로세서(601)는 최적의 분할 방식 및 제1 분할 방식에 따라 튜플 이동 비용 정보를 생성하고, 상기 튜플 이동 비용 정보에 따라 조정된 분할 방식을 결정한다.
또한, 프로세서(601)는 이동될 튜플과 최적의 파티션 간의 조정 관계에 따라 상기 이동될 튜플과 상기 최적의 파티션 간의 이동 비용을 결정하도록 추가로 구성되어 있다.
프로세서(601)는 조정된 튜플 분열 비용 정보에 따라 상기 이동될 튜플과 상기 최적의 파티션 간의 분열 비용을 결정한다.
프로세서(601)는 상기 이동 비용 및 상기 분열 비용에 따라 튜플 이동 비용 정보를 생성한다.
프로세서(601)는 튜플 이동 비용 정보에 따라 상기 최적의 분할 방식을 조정하여 복수의 사전설정된 이동 분할 방식을 획득한다.
프로세서(601)는 이미지 세그먼테이션 알고리즘을 사용하여 각각의 사전설정된 이동 분할 방식에 대응하는 조정된 총비용 값을 획득한다.
프로세서(601)는 복수의 사전설정된 이동 분할 방식 중에서, 최소의 조정된 총비용 값을 가지는 사전설정된 이동 분할 방식을 상기 조정된 분할 방식으로서 결정한다.
프로세서(601)는 최적의 분할 방식에 따라 데이터베이스 내의 데이터에 대해 분할 프로세스를 수행하는 것이 실패되면, 적어도 2개의 온라인 분석 프로세싱 모드를 사용함으로써 데이터 분할을 수행하여 각각의 온라인 분석 프로세싱 모드에 대응하는 후보 분할 방식을 획득하고;
최적의 분할 방식과 각각의 후보 분할 방식 간의 차이 값을 결정하며; 그리고
최소의 조정된 총비용 값을 가지는 후보 분할 방식을 현재의 분할 방식으로서 결정하고, 상기 현재의 분할 방식에 따라 데이터에 대해 분할을 수행하며, 여기서, 전술한 온라인 분석 프로세싱 모드는 종래기술이며, 예를 들어, 해시 함수 프로세싱, 순열 함수 프로세싱, 라운드-로빈 알고리즘 프로세싱, 및 복제 관리 프로세싱이다.
본 실시예에서는, 혼합 부하가 병렬로 실행 가능한지에 관한 특징에 따라 그리고 이미지 세그먼테이션 알고리즘을 사용함으로써, 데이터베이스 내의 혼합 부하와 관련된 데이터에 대해 최적의 분할을 수행하며, 분할 후, 데이터는 혼합 부하 내의 트랜잭션 부하 및 분석 부하의 특징을 가지며, 이에 따라 상이한 부하가 데이터베이스 시스템 내의 데이터에 액세스할 때, 부하는 높은 액세스 효율성을 얻을 수 있고, 이에 의해 혼합 부하에 맞춰진 데이터베이스 시스템의 작업 성능을 향상시킨다.
당업자라면 방법 실시예의 단계 중 일부 또는 전부는 관련 하드웨어에 명령을 내리는 프로그램에 의해 실현될 수 있다는 것을 이해할 수 있을 것이다. 프로그램은 컴퓨터가 판독 가능한 저장 매체에 저장될 수 있다. 프로그램이 실행되면, 프로그램은 방법 실시예의 단계가 실행된다. 전술한 저장 매체로는 프로그램 코드를 저장할 수 있는 임의의 매체이면 되고, 예를 들어, ROM, RAM, 자기디스크, 또는 광디스크가 될 수 있다.
마지막으로, 전술한 실시예는 본 발명의 기술적 솔루션을 설명하기 위한 것에 지나지 않으며, 본 발명을 제한하려는 것이 아님에 유의해야 한다. 본 발명을 전술한 실시예를 참조하여 설명하였으나, 당업자라면 전술한 실시예에 설명된 기술적 솔루션에 대한 수정, 또는 기술적 특징 중 일부 또는 전부에 대해 등가의 대체는 대응하는 기술적 솔루션의 본질이 본 발명의 실시예의 기술적 솔루션의 범위를 벗어나지 않는 한, 이러한 변형 또는 대체를 수행할 수 있다는 것을 이해할 수 있을 것이다.

Claims (20)

  1. 데이터 분할 방법에 있어서,
    사용자에 의해 입력되는 데이터베이스의 구조 정보 및 혼합 부하를 수신하는 단계 - 상기 혼합 부하는 적어도 하나의 트랜잭션 부하 및/또는 적어도 하나의 분석 부하를 포함하고, 상기 데이터베이스의 구조 정보는 혼합 부하와 관련된 적어도 하나의 튜플(tuple)을 포함함 - ;
    상기 혼합 부하 및 상기 데이터베이스의 구조 정보에 따라 튜플 관계 정보를 결정하는 단계 - 상기 튜플 관계 정보는 상기 데이터베이스의 구조 정보 내의 임의의 2개의 튜플 간의 트랜잭션 상관관계를 포함함 - ;
    상기 혼합 부하가 병렬로 실행 가능한지에 관한 특징 및 상기 튜플 관계 정보에 따라 튜플 분열 비용 정보(tuple split cost information)를 결정하는 단계 - 상기 튜플 분열 비용 정보는 상기 데이터베이스의 구조 정보 내의 트랙잭션 상관관계를 가지는 임의의 2개의 튜플 간의 분열 비용을 포함하고, 상기 분열 비용은, 상기 트랜잭션 상관관계를 가지는 2개의 튜플이 상이한 파티션에 저장되어 있으면, 상기 트랜잭션 상관관계를 가지는 2개의 튜플에 액세스할 때 상기 혼합 부하의 효율성에 대한 영향의 정도를 나타내는 데 사용됨 - ;
    상기 튜플 분열 비용 정보에 따라 복수의 분할 방식을 획득하고, 상기 분할 방식 중에서 최소의 총비용 값을 가지는 분할 방식을 최적의 분할 방식으로 결정하는 단계 - 각각의 분할 방식의 총비용 값은 상기 분할 방식이 사용될 때 상기 데이터베이스의 구조 정보 내의 트랜잭션 상관관계를 가지는 튜플 간의 분열 비용의 합임 - ; 및
    상기 최적의 분할 방식에 따라, 상기 데이터베이스에 저장되어 있는 데이터에 대해 분할 프로세스를 수행하는 단계
    를 포함하는 데이터 분할 방법.
  2. 제1항에 있어서,
    상기 혼합 부하 및 상기 데이터베이스의 구조 정보에 따라 튜플 관계 정보를 결정하는 단계는,
    상기 혼합 부하에 포함되어 있는 각각의 부하에 따라, 상기 데이터베이스의 구조 정보에서, 각각의 부하와 관련된 모든 튜플을 개별적으로 결정하는 단계;
    각각의 부하와 관련된 모든 튜플 중 임의의 2개의 튜플 간의 트랜잭션 상관관계에 따라, 상기 부하와 관련된 튜플 간의 관계 하위정보를 결정하는 단계; 및
    상기 혼합 부하 내의 각각의 부하와 관련된 튜플 간의 관계 하위정보를 수집하여 상기 튜플 관계 정보를 획득하는 단계
    를 포함하는, 데이터 분할 방법.
  3. 제2항에 있어서,
    상기 혼합 부하가 병렬로 실행 가능한지에 관한 특징 및 상기 튜플 관계 정보에 따라 튜플 분열 비용 정보를 결정하는 단계는,
    상기 특징이 상기 튜플 관계 정보 내의 트랜잭션 상관관계를 가지는 2개의 튜플과 관련되어 있는 혼합 부하가 병렬로 실행 가능하지 않다는 것일 때, 2개의 튜플 간의 분열 비용이 사전설정된 양의 값(positive value)인 것으로 결정하는 단계; 및
    상기 특징이 상기 튜플 관계 정보 내의 트랜잭션 상관관계를 가지는 2개의 튜플과 관련되어 있는 혼합 부하가 병렬로 실행 가능하다는 것일 때, 2개의 튜플 간의 분열 비용이 사전설정된 음의 값(negative value)인 것으로 결정하는 단계
    를 포함하는, 데이터 분할 방법.
  4. 제3항에 있어서,
    상기 튜플 분열 비용 정보는 관계도(relationship diagram)에 의해 표현되고, 상기 관계도에서 트랜잭션 상관관계를 가지는 임의의 2개의 튜플은 연결선에 의해 연결되며;
    상기 튜플 분열 비용 정보에 따라 복수의 분할 방식을 획득하고, 상기 분할 방식 중에서 최소의 총비용 값을 가지는 분할 방식을 최적의 분할 방식으로 결정하는 단계는,
    상기 관계도에 대해 이미지 세그먼테이션 알고리즘을 사용하여 복수 유형의 세그먼테이션 프로세싱을 수행하는 단계 - 각각의 유형의 세그먼테이션 프로세싱은 하나의 분할 방식에 대응함 - ;
    상기 관계도에 대해 각각의 유형의 세그먼테이션 프로세싱을 수행할 때, 각각의 세그먼트화된 연결선에 의해 연결되는 2개의 튜플 간의 분열 비용을 누산하여, 이 유형의 세그먼테이션 프로세싱에 대응하는 분할 방식의 총비용 값을 획득하는 단계; 및
    최소의 총비용 값에 대응하는 분할 방식을 최적의 분할 방식으로 결정하는 단계
    를 포함하는, 데이터 분할 방법.
  5. 제3항에 있어서,
    상기 최적의 분할 방식에 따라 데이터베이스 내의 데이터에 대해 분할 프로세스를 수행한 후,
    상기 튜플 분열 비용 정보를 조정된 튜플 분열 비용 정보로 갱신할 때, 상기 조정된 튜플 분열 비용 정보에 대해 이미지 세그먼테이션 알고리즘을 사용함으로써 복수 유형의 세그먼테이션 프로세싱을 수행하여 복수의 분할 방식을 결정하는 단계 - 각각의 유형의 세그먼테이션 프로세싱은 하나의 분할 방식에 대응함 - ;
    각각의 분할 방식의 총비용 값을 결정하는 단계 - 상기 조정된 튜플 분열 비용 정보는 관계도에 의해 표현되며, 상기 관계도 내의 트랜잭션 상관관계를 가지는 임의의 2개의 튜플은 연결선에 의해 연결됨 - ;
    최소의 총비용 값에 대응하는 분할 방식을 제1 분할 방식으로 결정하는 단계; 및
    상기 최적의 분할 방식 및 상기 제1 분할 방식에 따라 튜플 이동 비용 정보를 생성하고, 상기 튜플 이동 비용 정보에 따라 조정된 분할 방식을 결정하는 단계
    를 더 포함하는 데이터 분할 방법.
  6. 제5항에 있어서,
    상기 최적의 분할 방식 및 상기 제1 분할 방식에 따라 튜플 이동 비용 정보를 생성하고, 상기 튜플 이동 비용 정보에 따라 조정된 분할 방식을 결정하는 단계는,
    상기 최적의 분할 방식이 상기 제1 분할 방식에 따라 조정될 때,
    각각의 최적의 파티션으로 이동될 튜플을 결정하는 단계 - 상기 최적의 파티션은 상기 최적의 분할 방식에 따라 결정된 저장 영역임 - ;
    상기 이동될 튜플과 상기 최적의 파티션 간의 조정 관계에 따라 상기 이동될 튜플과 상기 최적의 파티션 간의 이동 비용을 결정하는 단계;
    상기 조정된 튜플 분열 비용 정보에 따라 상기 이동될 튜플과 상기 최적의 파티션 간의 분열 비용을 결정하는 단계;
    상기 이동 비용 및 상기 분열 비용에 따라 튜플 이동 비용 정보를 생성하는 단계;
    상기 튜플 이동 비용 정보에 따라 상기 최적의 분할 방식을 조정하여 복수의 사전설정된 이동 분할 방식을 획득하는 단계;
    상기 이미지 세그먼테이션 알고리즘을 사용하여 각각의 사전설정된 이동 분할 방식에 대응하는 조정된 총비용 값을 획득하는 단계; 및
    상기 복수의 사전설정된 이동 분할 방식 중에서, 최소의 조정된 총비용 값을 가지는 사전설정된 이동 분할 방식을 상기 조정된 분할 방식으로 결정하는 단계
    를 포함하는, 데이터 분할 방법.
  7. 제1항에 있어서,
    상기 최적의 분할 방식에 따라 상기 데이터베이스 내의 데이터에 대해 분할 프로세스를 수행하는 것이 실패되면,
    적어도 2개의 온라인 분석 프로세싱 모드를 사용함으로써 데이터 분할을 수행하여 각각의 온라인 분석 프로세싱 모드에 대응하는 후보 분할 방식을 획득하는 단계;
    상기 최적의 분할 방식과 각각의 후보 분할 방식 간의 차이 값을 결정하는 단계; 및
    최소의 조정된 총비용 값을 가지는 후보 분할 방식을 현재의 분할 방식으로 결정하고, 상기 현재의 분할 방식에 따라 데이터에 대해 분할을 수행하는 단계
    를 더 포함하는 데이터 분할 방법.
  8. 제7항에 있어서,
    상기 적어도 2개의 온라인 분석 프로세싱 모드는 다음의 온라인 분석 프로세싱 모드:
    해시 함수 프로세싱, 순열 함수 프로세싱, 라운드-로빈 알고리즘 프로세싱, 및 복제 관리 프로세싱 중 적어도 2개를 포함하는, 데이터 분할 방법.
  9. 데이터 분할 장치에 있어서,
    사용자에 의해 입력되는 데이터베이스의 구조 정보 및 혼합 부하를 수신하도록 구성되어 있는 수신 모듈 - 상기 혼합 부하는 적어도 하나의 트랜잭션 부하 및/또는 적어도 하나의 분석 부하를 포함하고, 상기 데이터베이스의 구조 정보는 혼합 부하와 관련된 적어도 하나의 튜플을 포함함 - ;
    상기 혼합 부하 및 상기 데이터베이스의 구조 정보에 따라 튜플 관계 정보를 결정하도록 구성되어 있는 관계 결정 모듈 - 상기 튜플 관계 정보는 상기 데이터베이스의 구조 정보 내의 임의의 2개의 튜플 간의 트랜잭션 상관관계를 포함함 - ;
    상기 혼합 부하가 병렬로 실행 가능한지에 관한 특징 및 상기 튜플 관계 정보에 따라 튜플 분열 비용 정보를 결정하도록 구성되어 있는 비용 결정 모듈 - 상기 튜플 분열 비용 정보는 상기 데이터베이스의 구조 정보 내의 트랙잭션 상관관계를 가지는 임의의 2개의 튜플 간의 분열 비용을 포함하고, 상기 분열 비용은, 상기 트랜잭션 상관관계를 가지는 2개의 튜플이 상이한 파티션에 저장되어 있으면, 상기 트랜잭션 상관관계를 가지는 2개의 튜플에 액세스할 때 상기 혼합 부하의 효율성에 대한 영향의 정도를 나타내는 데 사용됨 - ;
    상기 튜플 분열 비용 정보에 따라 복수의 분할 방식을 획득하고, 상기 분할 방식 중에서 최소의 총비용 값을 가지는 분할 방식을 최적의 분할 방식으로 결정하도록 구성되어 있는 최적 선택 모듈 - 각각의 분할 방식의 총비용 값은 상기 분할 방식이 사용될 때 상기 데이터베이스의 구조 정보 내의 트랜잭션 상관관계를 가지는 튜플 간의 분열 비용의 합임 - ; 및
    상기 최적의 분할 방식에 따라, 상기 데이터베이스에 저장되어 있는 데이터에 대해 분할 프로세스를 수행하도록 구성되어 있는 분할 모듈
    을 포함하는 데이터 분할 장치.
  10. 제9항에 있어서,
    상기 관계 결정 모듈은 구체적으로,
    상기 혼합 부하에 포함되어 있는 각각의 부하에 따라, 상기 데이터베이스의 구조 정보에서, 각각의 부하와 관련된 모든 튜플을 개별적으로 결정하고;
    각각의 부하와 관련된 모든 튜플 중 임의의 2개의 튜플 간의 트랜잭션 상관관계에 따라, 상기 부하와 관련된 튜플 간의 관계 하위정보를 결정하며; 그리고
    상기 혼합 부하 내의 각각의 부하와 관련된 튜플 간의 관계 하위정보를 수집하여 상기 튜플 관계 정보를 획득하도록 구성되어 있는, 데이터 분할 장치.
  11. 제10항에 있어서,
    상기 비용 결정 모듈은 구체적으로,
    상기 특징이 상기 튜플 관계 정보 내의 트랜잭션 상관관계를 가지는 2개의 튜플과 관련되어 있는 혼합 부하가 병렬로 실행 가능하지 않다는 것일 때, 2개의 튜플 간의 분열 비용이 사전설정된 양의 값인 것으로 결정하며; 그리고
    상기 특징이 상기 튜플 관계 정보 내의 트랜잭션 상관관계를 가지는 2개의 튜플과 관련되어 있는 혼합 부하가 병렬로 실행 가능하다는 것일 때, 2개의 튜플 간의 분열 비용이 사전설정된 음의 값인 것으로 결정하도록 구성되어 있는, 데이터 분할 장치.
  12. 제11항에 있어서,
    상기 튜플 분열 비용 정보는 관계도에 의해 표현되고, 상기 관계도에서 트랜잭션 상관관계를 가지는 임의의 2개의 튜플은 연결선에 의해 연결되며;
    상기 최적 선택 모듈은 구체적으로,
    상기 관계도에 대해 이미지 세그먼테이션 알고리즘을 사용하여 복수 유형의 세그먼테이션 프로세싱을 수행하고 - 각각의 유형의 세그먼테이션 프로세싱은 하나의 분할 방식에 대응함 - ;
    상기 관계도에 대해 각각의 유형의 세그먼테이션 프로세싱을 수행할 때, 각각의 세그먼트화된 연결선에 의해 연결되는 2개의 튜플 간의 분열 비용을 누산하여, 이 유형의 세그먼테이션 프로세싱에 대응하는 분할 방식의 총비용 값을 획득하며; 그리고
    최소의 총비용 값에 대응하는 분할 방식을 최적의 분할 방식으로 결정하도록 구성되어 있는, 데이터 분할 장치.
  13. 제11항에 있어서,
    조정 선택 모듈을 더 포함하며,
    상기 조정 선택 모듈은, 상기 분할 모듈이 상기 최적의 분할 방식에 따라 데이터베이스 내의 데이터에 대해 분할 프로세스를 수행한 후, 상기 튜플 분열 비용 정보를 조정된 튜플 분열 비용 정보로 갱신할 때, 상기 조정된 튜플 분열 비용 정보에 대해 이미지 세그먼테이션 알고리즘을 사용함으로써 복수 유형의 세그먼테이션 프로세싱을 수행하여 복수의 분할 방식을 결정하고 - 각각의 유형의 세그먼테이션 프로세싱은 하나의 분할 방식에 대응함 - ;
    각각의 분할 방식의 총비용 값을 결정하고 - 상기 조정된 튜플 분열 비용 정보는 관계도에 의해 표현되며, 상기 관계도 내의 트랜잭션 상관관계를 가지는 임의의 2개의 튜플은 연결선에 의해 연결됨 - ;
    최소의 총비용 값에 대응하는 분할 방식을 제1 분할 방식으로 결정하며; 그리고
    상기 최적의 분할 방식 및 상기 제1 분할 방식에 따라 튜플 이동 비용 정보를 생성하고, 상기 튜플 이동 비용 정보에 따라 조정된 분할 방식을 결정하도록 구성되어 있는, 데이터 분할 장치.
  14. 제13항에 있어서,
    상기 조정 선택 모듈은 구체적으로,
    상기 최적의 분할 방식이 상기 제1 분할 방식에 따라 조정될 때, 각각의 최적의 파티션으로 이동될 튜플을 결정하고 - 상기 최적의 파티션은 상기 최적의 분할 방식에 따라 결정된 저장 영역임 - ;
    상기 이동될 튜플과 상기 최적의 파티션 간의 조정 관계에 따라 상기 이동될 튜플과 상기 최적의 파티션 간의 이동 비용을 결정하고;
    상기 조정된 튜플 분열 비용 정보에 따라 상기 이동될 튜플과 상기 최적의 파티션 간의 분열 비용을 결정하고;
    상기 이동 비용 및 상기 분열 비용에 따라 튜플 이동 비용 정보를 생성하고;
    상기 튜플 이동 비용 정보에 따라 상기 최적의 분할 방식을 조정하여 복수의 사전설정된 이동 분할 방식을 획득하고;
    상기 이미지 세그먼테이션 알고리즘을 사용하여 각각의 사전설정된 이동 분할 방식에 대응하는 조정된 총비용 값을 획득하며; 그리고
    상기 복수의 사전설정된 이동 분할 방식 중에서, 최소의 조정된 총비용 값을 가지는 사전설정된 이동 분할 방식을 상기 조정된 분할 방식으로 결정하도록 구성되어 있는, 데이터 분할 장치.
  15. 제9항에 있어서,
    차이 선택 모듈을 더 포함하며,
    상기 차이 선택 모듈은,
    상기 분할 모듈이 상기 최적의 분할 방식에 따라 상기 데이터베이스 내의 데이터에 대해 분할 프로세스를 수행하는 것을 실패하면,
    적어도 2개의 온라인 분석 프로세싱 모드를 사용함으로써 데이터 분할을 수행하여 각각의 온라인 분석 프로세싱 모드에 대응하는 후보 분할 방식을 획득하고;
    상기 최적의 분할 방식과 각각의 후보 분할 방식 간의 차이 값을 결정하며; 그리고
    최소의 조정된 총비용 값을 가지는 후보 분할 방식을 현재의 분할 방식으로 결정하고, 상기 현재의 분할 방식에 따라 데이터에 대해 분할을 수행하도록 구성되어 있는, 데이터 분할 장치.
  16. 데이터베이스 상에서 데이터 분할을 수행하도록 구성되어 있는 데이터베이스 관리 장치에 있어서,
    프로세서, 수신기, 메모리, 및 버스를 포함하며,
    상기 프로세서, 상기 수신기 및 상기 메모리는 상기 버스를 사용하여 상호 접속되어 있으며, 상기 메모리는 실행 가능한 프로그램을 저장하도록 구성되어 있으며, 상기 수신기는 사용자가 입력하는 데이터베이스의 구조 정보 및 혼합 부하를 수신하도록 구성되어 있으며, 상기 혼합 부하는 적어도 하나의 트랜잭션 부하 및/또는 적어도 하나의 분석 부하를 포함하고, 상기 데이터베이스의 구조 정보는 혼합 부하와 관련된 적어도 하나의 튜플을 포함하며, 상기 혼합 부하 및 상기 데이터베이스의 구조 정보는 메모리에 의해 저장되며,
    상기 프로세서는:
    상기 혼합 부하 및 상기 데이터베이스의 구조 정보에 따라 튜플 관계 정보를 결정하고 - 상기 튜플 관계 정보는 상기 데이터베이스의 구조 정보 내의 임의의 2개의 튜플 간의 트랜잭션 상관관계를 포함함 - ;
    상기 혼합 부하가 병렬로 실행 가능한지에 관한 특징 및 상기 튜플 관계 정보에 따라 튜플 분열 비용 정보를 결정하고 - 상기 튜플 분열 비용 정보는 상기 데이터베이스의 구조 정보 내의 트랙잭션 상관관계를 가지는 임의의 2개의 튜플 간의 분열 비용을 포함하고, 상기 분열 비용은, 상기 트랜잭션 상관관계를 가지는 2개의 튜플이 상이한 파티션에 저장되어 있으면, 상기 트랜잭션 상관관계를 가지는 2개의 튜플에 액세스할 때 상기 혼합 부하의 효율성에 대한 영향의 정도를 나타내는 데 사용됨 - ;
    상기 튜플 분열 비용 정보에 따라 복수의 분할 방식을 획득하고, 상기 분할 방식 중에서 최소의 총비용 값을 가지는 분할 방식을 최적의 분할 방식으로 결정하며 - 각각의 분할 방식의 총비용 값은 상기 분할 방식이 사용될 때 상기 데이터베이스의 구조 정보 내의 트랜잭션 상관관계를 가지는 튜플 간의 분열 비용의 합임 - ; 그리고
    상기 최적의 분할 방식에 따라, 상기 데이터베이스에 저장되어 있는 데이터에 대해 분할 프로세스를 수행하기 위해, 메모리에 저장되어 있는 프로그램을 실행하는, 데이터베이스 관리 장치.
  17. 제16항에 있어서,
    상기 프로세서는 구체적으로:
    상기 혼합 부하에 포함되어 있는 각각의 부하에 따라, 상기 데이터베이스의 구조 정보에서, 각각의 부하와 관련된 모든 튜플을 개별적으로 결정하고;
    각각의 부하와 관련된 모든 튜플 중 임의의 2개의 튜플 간의 트랜잭션 상관관계에 따라, 상기 부하와 관련된 튜플 간의 관계 하위정보를 결정하며; 그리고
    상기 혼합 부하 내의 각각의 부하와 관련된 튜플 간의 관계 하위정보를 수집하여 상기 튜플 관계 정보를 획득하기 위해, 상기 메모리에 저장되어 있는 프로그램을 실행하는,
    데이터베이스 관리 장치.
  18. 제17항에 있어서,
    상기 프로세서는 구체적으로:
    상기 특징이 상기 튜플 관계 정보 내의 트랜잭션 상관관계를 가지는 2개의 튜플과 관련되어 있는 혼합 부하가 병렬로 실행 가능하지 않다는 것일 때, 2개의 튜플 간의 분열 비용이 사전설정된 양의 값인 것으로 결정하며; 그리고
    상기 특징이 상기 튜플 관계 정보 내의 트랜잭션 상관관계를 가지는 2개의 튜플과 관련되어 있는 혼합 부하가 병렬로 실행 가능하다는 것일 때, 2개의 튜플 간의 분열 비용이 사전설정된 음의 값인 것으로 결정하기 위해, 상기 메모리에 저장되어 있는 프로그램을 실행하는, 데이터베이스 관리 장치.
  19. 제18항에 있어서,
    상기 튜플 분열 비용 정보는 관계도에 의해 표현되고, 상기 관계도에서 트랜잭션 상관관계를 가지는 임의의 2개의 튜플은 연결선에 의해 연결되며;
    상기 프로세서는 구체적으로:
    상기 관계도에 대해 이미지 세그먼테이션 알고리즘을 사용하여 복수 유형의 세그먼테이션 프로세싱을 수행하고 - 각각의 유형의 세그먼테이션 프로세싱은 하나의 분할 방식에 대응함 - ;
    상기 관계도에 대해 각각의 유형의 세그먼테이션 프로세싱을 수행할 때, 각각의 세그먼트화된 연결선에 의해 연결되는 2개의 튜플 간의 분열 비용을 누산하여, 이 유형의 세그먼테이션 프로세싱에 대응하는 분할 방식의 총비용 값을 획득하며; 그리고
    최소의 총비용 값에 대응하는 분할 방식을 최적의 분할 방식으로 결정하기 위해, 상기 메모리에 저장되어 있는 프로그램을 실행하는, 데이터베이스 관리 장치.
  20. 제18항에 있어서,
    상기 프로세서는 구체적으로:
    상기 튜플 분열 비용 정보를 조정된 튜플 분열 비용 정보로 갱신할 때, 상기 조정된 튜플 분열 비용 정보에 대해 이미지 세그먼테이션 알고리즘을 사용함으로써 복수 유형의 세그먼테이션 프로세싱을 수행하여 복수의 분할 방식을 결정하고 - 각각의 유형의 세그먼테이션 프로세싱은 하나의 분할 방식에 대응함 - ;
    각각의 분할 방식의 총비용 값을 결정하고 - 상기 조정된 튜플 분열 비용 정보는 관계도에 의해 표현되며, 상기 관계도 내의 트랜잭션 상관관계를 가지는 임의의 2개의 튜플은 연결선에 의해 연결됨 - ;
    최소의 총비용 값에 대응하는 분할 방식을 제1 분할 방식으로 결정하며; 그리고
    상기 최적의 분할 방식 및 상기 제1 분할 방식에 따라 튜플 이동 비용 정보를 생성하고, 상기 튜플 이동 비용 정보에 따라 조정된 분할 방식을 결정하기 위해, 상기 메모리에 저장되어 있는 프로그램을 실행하는, 데이터베이스 관리 장치.
KR1020147016634A 2013-06-07 2014-01-22 데이터 분할 방법 및 장치 KR101653776B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201310226045.6A CN103336792B (zh) 2013-06-07 2013-06-07 数据分区方法和装置
CN201310226045.6 2013-06-07
PCT/CN2014/071039 WO2014194679A1 (zh) 2013-06-07 2014-01-22 数据分区方法和装置

Publications (2)

Publication Number Publication Date
KR20150010694A KR20150010694A (ko) 2015-01-28
KR101653776B1 true KR101653776B1 (ko) 2016-09-02

Family

ID=49244957

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147016634A KR101653776B1 (ko) 2013-06-07 2014-01-22 데이터 분할 방법 및 장치

Country Status (6)

Country Link
EP (1) EP2998883B1 (ko)
JP (1) JP6112440B2 (ko)
KR (1) KR101653776B1 (ko)
CN (1) CN103336792B (ko)
TW (1) TWI503679B (ko)
WO (1) WO2014194679A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103336792B (zh) * 2013-06-07 2016-11-23 华为技术有限公司 数据分区方法和装置
CN103661495B (zh) * 2014-01-07 2015-12-30 北京全路通信信号研究设计院集团有限公司 线路数据的处理方法及装置
US9875263B2 (en) * 2014-10-21 2018-01-23 Microsoft Technology Licensing, Llc Composite partition functions
WO2017209788A1 (en) * 2016-06-03 2017-12-07 Google Llc Weighted auto-sharding
WO2018043843A1 (ko) * 2016-08-31 2018-03-08 재단법인대구경북과학기술원 낮은 데이터 중복으로 빠른 쿼리 처리를 지원하는 관계형 데이터베이스 저장 시스템, 저장 방법 및 관계형 데이터베이스 저장 방법에 기초한 쿼리를 처리하는 방법
KR101951999B1 (ko) 2016-08-31 2019-05-10 재단법인대구경북과학기술원 낮은 데이터 중복으로 빠른 쿼리 처리를 지원하는 관계형 데이터베이스 저장 시스템, 저장 방법 및 관계형 데이터베이스 저장 방법에 기초한 쿼리를 처리하는 방법
CN106777230B (zh) * 2016-12-26 2020-01-07 东软集团股份有限公司 一种分区系统、分区方法及装置
CN107515899B (zh) * 2017-07-24 2020-05-22 北京中电普华信息技术有限公司 数据库联合分片方法、装置以及存储介质
CN108287868B (zh) * 2017-12-19 2019-02-26 北京国电通网络技术有限公司 一种数据库查询、数据块划分方法和装置
CN111198872B (zh) * 2020-01-06 2021-06-11 中科驭数(北京)科技有限公司 数据库处理事务的方法及装置
US11016969B1 (en) * 2020-11-25 2021-05-25 Coupang Corp. Systems and methods for managing a highly available distributed hybrid transactional and analytical database
CN117874076A (zh) * 2023-12-13 2024-04-12 天翼云科技有限公司 一种数据智能分区的方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666527A (en) 1992-12-28 1997-09-09 Fujitsu Limited System for dynamically changing logical data structure of database
KR100678123B1 (ko) 2006-02-10 2007-02-02 삼성전자주식회사 관계형 데이터베이스에서의 xml 데이터 저장 방법
US20100281027A1 (en) 2009-04-30 2010-11-04 International Business Machines Corporation Method and system for database partition

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2150745C (en) * 1995-06-01 2001-05-01 Chaitanya K. Baru Method and apparatus for implementing partial declustering in a parallel database system
CA2159269C (en) * 1995-09-27 2000-11-21 Chaitanya K. Baru Method and apparatus for achieving uniform data distribution in a parallel database system
US7010521B2 (en) * 2002-05-13 2006-03-07 Netezza Corporation Optimized database appliance
US7043621B2 (en) * 2003-05-16 2006-05-09 Hewlett-Packard Development Company, L.P. Sharding method and apparatus using directed graphs
EP1505370B1 (en) * 2003-08-05 2007-10-17 Harman Becker Automotive Systems GmbH Method for processing digital map data
US7814080B1 (en) * 2003-10-27 2010-10-12 Teradata Us, Inc. Grouping database queries and/or transactions
US7574424B2 (en) * 2004-10-13 2009-08-11 Sybase, Inc. Database system with methodology for parallel schedule generation in a query optimizer
TW200636511A (en) * 2005-02-15 2006-10-16 Infomato Crosslink data structure, crosslink database, and system and method of organizing and retrieving information
US8005836B2 (en) * 2006-01-13 2011-08-23 Teradata Us, Inc. Method and system for performing logical partial declustering
US7792822B2 (en) * 2007-03-02 2010-09-07 Microsoft Corporation Systems and methods for modeling partitioned tables as logical indexes
CN101145158A (zh) * 2007-06-06 2008-03-19 中兴通讯股份有限公司 一种数据库表分区的方法
US8150850B2 (en) * 2008-01-07 2012-04-03 Akiban Technologies, Inc. Multiple dimensioned database architecture
US8849749B2 (en) * 2010-05-14 2014-09-30 Oracle International Corporation Load balancing in parallel database systems using multi-reordering
US9740762B2 (en) * 2011-04-01 2017-08-22 Mongodb, Inc. System and method for optimizing data migration in a partitioned database
CN102799628B (zh) * 2012-06-21 2015-10-07 新浪网技术(中国)有限公司 在key-value数据库中进行数据分区的方法和装置
CN103336792B (zh) * 2013-06-07 2016-11-23 华为技术有限公司 数据分区方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666527A (en) 1992-12-28 1997-09-09 Fujitsu Limited System for dynamically changing logical data structure of database
KR100678123B1 (ko) 2006-02-10 2007-02-02 삼성전자주식회사 관계형 데이터베이스에서의 xml 데이터 저장 방법
US20100281027A1 (en) 2009-04-30 2010-11-04 International Business Machines Corporation Method and system for database partition

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"분산 데이터베이스 설계를 위한 지침서", 김종대 외 3명, 정보통신연구진흥원 학술기사, 1995.12.31, (http://www.dbpia.co.kr/SKnowledge/ArticleDetail/97739)

Also Published As

Publication number Publication date
EP2998883A4 (en) 2016-06-29
CN103336792A (zh) 2013-10-02
EP2998883B1 (en) 2018-09-12
TWI503679B (zh) 2015-10-11
KR20150010694A (ko) 2015-01-28
CN103336792B (zh) 2016-11-23
JP6112440B2 (ja) 2017-04-12
JP2016520938A (ja) 2016-07-14
WO2014194679A1 (zh) 2014-12-11
TW201510754A (zh) 2015-03-16
EP2998883A1 (en) 2016-03-23

Similar Documents

Publication Publication Date Title
KR101653776B1 (ko) 데이터 분할 방법 및 장치
US10817514B2 (en) Splitting of a join operation to allow parallelization
US10223416B2 (en) Partition access method for query optimization
CN108628986A (zh) 数据查询方法、装置、计算机设备和存储介质
US9817856B2 (en) Dynamic range partitioning
US20150269215A1 (en) Dependency-aware transaction batching for data replication
CN108334596B (zh) 一种面向大数据平台的海量关系数据高效并行迁移方法
CN109145003B (zh) 一种构建知识图谱的方法及装置
EP3373158B1 (en) Data storage method and coordinator node
US9697243B2 (en) Method and apparatus for searching node by using tree index
US9836505B2 (en) Star and snowflake join query performance
US9323796B2 (en) Data partitioning method and apparatus
CN111488340B (zh) 数据处理方法、装置及电子设备
US10970295B2 (en) Collecting statistics in unconventional database environments
Pertesis et al. Efficient skyline query processing in spatialhadoop
CN114238389A (zh) 数据库查询优化方法、装置、电子设备、介质和程序产品
US10558633B1 (en) Hash-value-based single-pass data store statistics collection
CN110222046A (zh) 列表数据的处理方法、装置、服务器和存储介质
CN111435351B (zh) 数据库查询优化方法、设备及存储介质
CN110737683A (zh) 一种基于抽取的商业智能分析平台自动分区方法及装置
US20220222229A1 (en) Automated database modeling
EP3559797A1 (en) Meta-join and meta-group-by indexes for big data
CN118093726B (zh) 一种基于区域的数据库分库方法及装置
CN116975126B (zh) 数据查询方法、装置、计算设备和计算机可读存储介质
US11907195B2 (en) Relationship analysis using vector representations of database tables

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190729

Year of fee payment: 4