KR20160148703A - 클러스터링 저장 방법 및 장치 - Google Patents

클러스터링 저장 방법 및 장치 Download PDF

Info

Publication number
KR20160148703A
KR20160148703A KR1020167033902A KR20167033902A KR20160148703A KR 20160148703 A KR20160148703 A KR 20160148703A KR 1020167033902 A KR1020167033902 A KR 1020167033902A KR 20167033902 A KR20167033902 A KR 20167033902A KR 20160148703 A KR20160148703 A KR 20160148703A
Authority
KR
South Korea
Prior art keywords
data
column
sorting
storage medium
local memory
Prior art date
Application number
KR1020167033902A
Other languages
English (en)
Other versions
KR101972645B1 (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 KR20160148703A publication Critical patent/KR20160148703A/ko
Application granted granted Critical
Publication of KR101972645B1 publication Critical patent/KR101972645B1/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/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • G06F17/30312
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/06Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
    • G06F7/08Sorting, i.e. grouping record carriers in numerical or other ordered sequence according to the classification of at least some of the information they carry
    • 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/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24557Efficient disk access during query execution
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/16General purpose computing application
    • G06F2212/163Server or database system

Abstract

컴퓨터 기술 분야에 관한 것이고, 데이터 로딩 성능 및 데이터 업데이트 성능에 대해 상대적으로 적은 영향을 주면서 데이터 쿼리 성능 및 데이터 압축 효율성을 향상시킬 수 있는 클러스터링 저장 방법 및 디바이스가 제공된다. 본 방법은 저장될 제1 데이터를 행마다 데이터베이스 시스템의 로컬 메모리에 캐싱하는 단계; 제1 정렬 열을 결정하는 단계 - 제1 정렬 열은 로컬 메모리에 이미 캐싱된 데이터를 정렬하는데 사용됨 -; 로컬 메모리에 이미 캐싱된 제2 데이터가 사전 설정된 조건을 충족하면, 제1 정렬 열에 따라 제2 데이터를 정렬하는 단계 - 제2 데이터는, 제1 데이터에서, 로컬 메모리에 이미 캐싱된 데이터임 -; 및 정렬된 제2 데이터를 데이터베이스 시스템의 저장 매체에 클러스터링 및 저장하는 단계를 포함한다.

Description

클러스터링 저장 방법 및 장치{CLUSTERING STORAGE METHOD AND DEVICE}
본 출원은 2014년 5월 27일에 중국 특허청에 출원된, 발명의 명칭이 "클러스터링 저장 방법 및 장치"인 중국 특허 출원 제201410228979.8호의 우선권을 주장하며, 그 전체 내용은 본원에 참조로 포함된다.
기술분야
본 발명은 컴퓨터 기술 분야에 관한 것으로, 특히, 클러스터링 저장 방법 및 장치에 관한 것이다.
데이터베이스에서, 데이터는 일반적으로 표를 사용하여 저장되며, 힙 표(Heap Table), 인덱스 조직 표(Index Organization Table, IOT) 및 클러스터 표(Cluster Table)인 3 가지 타입의 공통 표 저장 구조가 존재한다.
종래 기술에서, 힙 표를 사용하여 데이터를 저장 매체에 저장하는 경우, 데이터가 삽입되는 자연스러운 순서에 따라 데이터의 각각의 행이 비 순차적으로 저장되기 때문에, 데이터 로딩 성능 및 데이터 업데이트 성능이 약간 영향을 받는다. 또한, 힙 표를 사용하여 데이터를 저장 매체에 저장한 후, 힙 표의 데이터에 데이터 조각(a piece of data)에 대해 쿼리하는 것이 요구되는 경우, 데이터 조각이 발견될 때까지, 힙 표의 제1 행부터 행마다 비교를 수행할 필요가 있다.
그러나, 힙 표를 사용하여 저장 매체에 데이터를 저장하는 경우, 데이터는 비 순차적으로 저장되고, 힙 표에서 데이터에 대해 쿼리할 때에는, 힙 표의 제1 행부터 행마다 비교를 수행할 필요가 있으며; 따라서, 데이터 로딩 성능과 데이터 업데이트 성능은 약간 영향을 받지만, 데이터 압축률과 데이터 쿼리 성능이 상대적으로 낮다.
본 발명에서 제공한 클러스터링 저장 방법에서, 클러스터링 저장의 사상에 따르면, 데이터를 데이터베이스 시스템의 저장 매체에 저장할 때, 저장 매체에 저장된 모든 데이터가 순차적인(데이터가 전체적으로 순차적인) 것으로 생각되지 않고, 매번 저장 매체에 저장된 데이터만이 순차적인(데이터가 부분적으로 순차적인) 것이 보장된다. 따라서, 본 발명에서 제공한 클러스터링 저장 방법을 이용하여 종래 기술에서 비 순차적 저장 방식으로 데이터를 저장 매체에 저장하기 위해 힙 표를 사용하는 경우와 비교하여, 저장 매체 내에서 동일한 타입의 데이터를 부분적으로 정렬한 후에 저장하기 때문에, 데이터 로딩 성능 및 데이터 업데이트 성능이 약간 영향을 받는다는 전제하에, 데이터 쿼리 성능 및 데이터 압축 효율성은 향상된다는 것이 보장될 수 있다. 구체적으로, 본 발명의 실시예들에 제공된 클러스터링 저장 방법을 이용함으로써, 일 양태에서, 데이터베이스 시스템의 저장 매체 내의 동일한 타입의 데이터를 부분적으로 정렬한 후에 저장하기 때문에, 데이터가 저장된 후에, 데이터 쿼리 성능 및 데이터 압축 효율성이 상대적으로 높고; 일 양태에서, 데이터를 저장하는 프로세스에서, 데이터가 로딩될 때, 데이터가 부분별로 로딩되기 때문에, 데이터 로딩 성능이 약간 영향을 받는다는 것을 보장할 수 있고; 또 다른 양태에서, 저장 매체 내의 데이터가 업데이트될 필요가 있을 때, 저장 매체 내에서 업데이트될 데이터가 위치된 데이터의 부분이 직접 업데이트될 수 있고(업데이트가 추가 중이면, 추가된 데이터가 직접 순차적으로 저장 매체에 저장될 수 있음), 저장 매체 내의 모든 데이터에 대한 업데이트는 전혀 요구되지 않기 때문에, 데이터 업데이트 성능이 약간 영향을 받는다는 것을 보장할 수 있다. 즉, 본 발명에서 제공한 클러스터링 저장 방법을 이용함으로써, 데이터 로딩 성능 및 데이터 업데이트 성능은 약간 영향을 받는다는 전제하에, 데이터 쿼리 성능 및 데이터 압축 효율성은 향상된다는 것이 보장될 수 있다.
또한, 본 발명에서 제공한 클러스터링 저장 방법에 따르면, 데이터를 저장하는 프로세스에서, 데이터는 단지 로컬 메모리에서 정렬될 필요가 있을 뿐이고 저장 매체에서는 정렬될 필요가 없고, 로컬 메모리에서 데이터를 처리하는 속도는 저장 매체에서 데이터를 처리하는 속도보다 훨씬 더 빠르고; 따라서, 본 발명에서 제공한 클러스터링 저장 방법이 데이터를 업데이트하는데 사용되면, 시간 및 시스템 리소스가 절약될 수 있다.
이하에서는, 본 발명의 실시예들의 표 및 도면을 참조하여, 본 발명의 실시예들에 제공된 클러스터링 저장 방법 및 장치를 명확하고 완전하게 설명한다. 명백하게, 설명된 실시예들은 본 발명의 모든 실시예들 대신에 단지 일부에 불과하다. 본 발명의 실시예들에 제공된 클러스터링 저장 방법 및 장치는, 데이터베이스 시스템에 적용될 수 있고, 데이터베이스 시스템은 클러스터링 저장 장치의 하드웨어 엔티티 및 데이터베이스 환경을 포함할 수 있고, 클러스터링 저장 장치의 하드웨어 엔티티는 컴퓨터 노드(또는 컴퓨팅 노드로 지칭됨)일 수 있거나, 또는 본 발명의 실시예들에서 제공된 클러스터링 저장 해결책을 구현할 수 있는 또 다른 디바이스일 수 있으며, 즉, 본 실시예들에서 제공되는 클러스터링 저장 방법은 컴퓨터 노드 또는 또 다른 디바이스에 의해 실행될 수 있다. 이하에서는, 본 발명의 실시예들에 제공된 클러스터링 저장 방법 및 장치를 설명하기 위해 예로서 컴퓨터 노드를 사용한다.
실시예 1
본 발명의 일 실시예는, 본 방법이 데이터베이스 시스템에 적용되는 클러스터링 저장 방법을 제공한다. 도 1에 도시된 바와 같이, 본 방법은 이하 단계들을 포함할 수 있고:
S101. 컴퓨터 노드는 저장될 제1 데이터를 행마다 데이터베이스 시스템의 로컬 메모리에 캐싱한다.
하드 디스크에서 텍스트로 저장된 데이터, 즉, 저장될 제1 데이터가 데이터베이스 시스템의 저장 매체에 저장될 필요가 있으면, 제1 데이터의 후속 액세스를 용이하게 하기 위해, 제1 데이터를 저장하는 프로세스에서, 컴퓨터 노드는 우선 제1 데이터를 정렬하고 나서 정렬된 제1 데이터를 저장 매체에 저장할 필요가 있다. 컴퓨터 노드가 제1 데이터를 저장 매체에 저장하는 프로세스에서, 컴퓨터 노드는 우선 하드 디스크로부터의 제1 데이터를, 데이터베이스 시스템의 로컬 메모리로 판독할 필요가 있다. 구체적으로, 컴퓨터 노드는 제1 데이터를 행마다 하드 디스크로부터 로컬 메모리에 캐싱할 수 있다.
S102. 컴퓨터 노드는 제1 정렬 열을 결정하고, 제1 정렬 열은 로컬 메모리에 캐싱된 데이터를 정렬하기 위해 사용된다.
컴퓨터 노드가 제1 데이터를 행마다 로컬 메모리에 캐싱하는 프로세스에서, 컴퓨터 노드는 제1 정렬 열을 결정할 수 있고, 상기 제1 정렬 열은 사전 설정될 수 있으며, 상기 제1 정렬 열은 로컬 메모리에 캐싱된 데이터를 정렬하는데 사용될 수 있다.
선택적으로, 본 발명의 이 실시예에서 제공한 클러스터링 저장 방법에서, 제1 데이터를 정렬할 때, 컴퓨터 노드는 제1 정렬 열의 수치 또는 제1 정렬 열의 수치의 해시 값에 따라 제1 데이터를 정렬할 수 있다.
본 기술분야의 통상의 기술자는, 본 발명의 이 실시예에서 제공된 데이터베이스 시스템의 저장 매체는 디스크일 수 있고, 이 디스크는 하드 디스크 및 플로피 디스크를 포함할 수 있다는 것을 이해할 수 있다. 일반적으로 사용되는 디스크는 일반적으로 이동식 디스크이고, 이동식 디스크는 2 가지 타입으로 분류될 수 있는데: 하나의 타입은 USB 플래시 드라이브(범용 직렬 버스 플래시 디스크, 범용 직렬 버스 플래시 드라이브) 또는 칩 저장 기반의 플래시 디스크(flash disk based on chip storage)이고; 다른 타입은 하드 디스크 기반의 이동식 하드 디스크이고, 이동식 디스크는 대부분의 경우에 이동식 하드 디스크이고, 이동식 하드 디스크는 상이한 하드 디스크들에 따라 노트북 컴퓨터의 이동식 하드 디스크 및 데스크탑 컴퓨터의 이동식 하드 디스크로 분류된다. 이동식 하드 디스크는 일반적으로 USB 인터페이스를 통해 컴퓨터에 접속되고, 즉, 저장 매체로서, 이동식 하드 디스크는 USB 인터페이스를 통해 이동식 하드 디스크와 컴퓨터 사이에서 전송되는 데이터를 저장할 수 있다.
특히, 제1 정렬 열은 기본 키(primary key)로 지칭될 수 있거나, 또는 부분 클러스터 키(partial cluster key)로 지칭될 수 있다.
사용자가 컴퓨터 노드에게 표를 생성하라고 지시할 때, 제1 정렬 열은, 제1 데이터의 속성에 의해 특정된 정렬 열에 따라 제1 데이터를 정렬하기 위한 베이시스(basis)이며, 즉, 컴퓨터 노드는, 정렬될 제1 데이터에서 로컬 메모리에 캐싱된 데이터의 각각의 부분을, 제1 정렬 열에 따라 개별적으로 정렬할 수 있고, 그로 인해 제1 데이터의 각각의 데이터 부분이 개별적으로 순차적으로 배열되어 제1 데이터가 부분적으로 순차적인 것을 보장한다는 점에 주목해야 한다.
또한, 표를 생성하라고 지시할 때, 사용자는 명령문(statement)을 사용하여 표 저장 구조를 특정할 수 있고, 제1 정렬 열은 표 저장 구조에 특정된다. 예를 들어, 사용자는 table t 저장 구조를 특정하기 위해, 다음과 같은 명령문: Create table t(c1 int,c2 int, partial cluster key(c1, c2+1)을 사용할 수 있고, table t 저장 구조는 제1 정렬 열, 즉 부분 클러스터 키를 포함한다.
이 표는 데이터 레코드들의 그룹에 의해 형성된다. 표는 행에 따라 배열되는 관련 데이터의 그룹이고; 각각의 표는 동일한 타입의 정보를 포함한다. 표는 실제로 이차원 표이다. 예를 들어, 클래스 내의 모든 학생의 시험 점수는 표에 저장될 수 있고, 표의 각각의 행이 하나의 학생에 대응하고, 각각의 행은 대응하는 학생에 대한 모든 정보를 포함하는데, 예를 들어, 다음과 같이 학생의 학생 번호, 이름 및 각 과목의 점수를 포함할 수 있다.
표 저장 구조는, 정의된 표의 필드, 타입, 기본 키, 외래 키, 인덱스, 및 기타 등등이고, 즉 이러한 기본적 속성들은 표 저장 구조를 구성한다. 표 저장 구조를 결정한 후에, 상이한 타입들의 데이터가 표 저장 구조에 따라 직접 삽입될 수 있다.
데이터베이스는 데이터를 저장하는 창고이며, 데이터베이스가 하나의 표 또는 표들의 그룹에 의해 형성되고, 데이터베이스의 데이터는 표 단위로 조성된다. 각각의 데이터베이스는 파일의 형태로 디스크에 저장되고, 즉, 각각의 데이터베이스는 하나의 물리적 파일에 대응한다. 상이한 데이터베이스는 상이한 방식의 물리적 파일에 대응한다. 예를 들어, 데이터베이스는 하나의 표를 포함할 수 있거나, 또는 다수의 표를 포함할 수 있다.
또한, 본 발명의 이 실시예에서 제공된 클러스터링 저장 방법에 따르면, 컴퓨터 노드는 데이터베이스 시스템의 로컬 메모리에서 제1 데이터에 대한 정렬을 완료하고, 로컬 메모리의 사이즈 및 데이터 처리 능력의 제한을 받기 때문에, 컴퓨터 노드는 제1 데이터만을 부분별로 정렬할 수 있다. 그 후, 컴퓨터 노드는, 부분별로 정렬된 데이터를, 데이터베이스 시스템의 저장 매체에 연속적으로 저장하고, 이런 방식으로, 저장 매체에 저장된 제1 데이터가 부분적으로 순차적인 것이 보장될 수 있다.
S103. 컴퓨터 노드에 의해 로컬 메모리에 캐싱된 제2 데이터가 사전 설정된 조건을 충족하면, 컴퓨터 노드는 제1 정렬 열에 따라 제2 데이터를 정렬하고, 제2 데이터는, 제1 데이터에서, 로컬 메모리에 캐싱된 데이터이다.
컴퓨터 노드가 제1 데이터를 캐싱하는 프로세스에서, 데이터베이스 시스템의 로컬 메모리는 제한된 사이즈 및 제한된 데이터 처리 능력을 갖기 때문에, 모든 제1 데이터가 한 번에 로컬 메모리에 캐싱될 수 없고, 즉, 컴퓨터 노드는 개별적으로 제1 데이터를 부분별로 로컬 메모리에 캐싱할 수 있고, 그로 인해 컴퓨터 노드는 로컬 메모리에 개별적으로 캐싱된 데이터를 부분별로 연속적으로 처리할 수 있다. 구체적으로, 컴퓨터 노드는 로컬 메모리에 캐싱된 제2 데이터의 상황에 대한 통계를 실시간으로 수집할 수 있다. 컴퓨터 노드가, 로컬 메모리에 캐싱된 제2 데이터가 사전 설정된 조건을 충족한다는 것을 검출할 때, 컴퓨터 노드는, 제1 정렬 열에 따라 제2 데이터를 정렬하기 시작할 수 있고, 제2 데이터는, 제1 데이터에서, 로컬 메모리에 캐싱된 데이터이다.
또한, 전술한 사전 설정된 조건은, 로컬 메모리에 캐싱된 제2 데이터의 데이터 양과 로컬 메모리에 저장되도록 허용된 데이터 양 사이의 관계를 나타내기 위해 사용될 수 있다.
S104. 컴퓨터 노드는, 정렬된 제2 데이터를 데이터베이스 시스템의 저장 매체에 저장한다.
데이터베이스에서, 속성 또는 속성 그룹의 쿼리 속도를 향상시키기 위해, 속성 또는 속성 그룹(클러스터 코드로 지칭됨)에서 동일한 값을 갖는 튜플(tuple)들이, 중앙집중적으로 연속된 물리적 블록들에 저장될 수 있다. 이러한 저장 방법은 클러스터링으로 지칭된다. 데이터를 클러스터링 방식으로 저장하는 것은, 클러스터 코드에 따라 쿼리를 수행함에 있어서 효율성을 크게 향상시킬 수 있다.
컴퓨터 노드가 제2 데이터를 정렬한 후에, 컴퓨터 노드는, 제2 데이터를 로딩하는 프로세스를 완료하기 위해, 정렬된 제2 데이터를 클러스터링 방식으로 데이터베이스 시스템의 저장 매체에 저장할 수 있다.
컴퓨터 노드는, 저장될 제1 데이터를 모두 데이터베이스 시스템의 저장 매체에 저장할 때까지, 전술한 S101 내지 S104를 반복해서 수행할 수 있다는 점에 주목해야 한다.
컴퓨터 노드는, 제1 데이터에서, 로컬 메모리에 캐싱된 데이터의 각각의 부분을, 사전 설정된 제1 정렬 열에 따라 개별적으로 연속해서 정렬할 수 있고, 매번 정렬한 후에 얻어진 데이터의 각각의 부분을 저장 매체에 저장하고, 그로 인해 저장 매체에 저장된 제1 데이터가 부분적으로 순차적인 것, 즉, 저장 매체에 저장된 제1 데이터의 각각의 데이터 부분이 순차적으로 배열되는 것이 보장될 수 있다는 것을 이해해야 한다.
예시적으로, 사용자가, 제1 데이터, 즉, 대학에서 무용학과의 500명의 학생에 대한 정보를, 데이터베이스 시스템의 저장 매체에 저장할 필요가 있다면, 후속 액세스를 용이하게 하기 위해, 사용자는, 우선 500명의 학생에 대한 정보를 컴퓨터 노드에 입력하고, 정보를 텍스트 형태로 컴퓨터 노드의 하드 디스크에 저장할 필요가 있다. 컴퓨터 노드가 사용자의 지시에 따라 500명의 학생에 대한 정보를 데이터베이스 시스템의 저장 매체에 저장하는 프로세스에서, 컴퓨터 노드는 하드 디스크의 텍스트로부터 500명의 학생에 대한 정보를 데이터베이스 시스템의 로컬 메모리로 판독할 수 있다. 구체적으로, 컴퓨터 노드는, 각각의 학생에 따른 각각의 학생에 대한 정보를 행마다 판독하는 방식으로 500명의 학생에 대한 정보를 로컬 메모리에 연속적으로 판독할 수 있다.
각각의 학생에 대한 정보는, 클래스, 이름, 학생 번호, 연령, 특기, 및 가족 정보와 같은 속성을 포함하는 것으로 가정한다. 본 발명의 이 실시예에서 제공된 클러스터링 저장 방법에 따르면, 500명의 학생에 대한 정보는 하나의 표를 구성할 수 있다. 표 1에 도시된 바와 같이, 표 1의 각각의 행(즉, 각각의 학생에 대한 정보)은 튜플이며, 각각의 열(모든 학생들에 대한 항목 정보)은 속성이다.
Figure pct00001
500명의 학생에 대한 정보를 입력할 때, 사용자는 특정 순서에 따라 정보를 입력할 수 없고, 따라서 하드 디스크의 텍스트로 저장된 500명의 학생에 대한 정보는 순차적으로 배열되지 않는다는 점에 주목해야 한다. 500명의 학생에 대한 정보의 후속 재사용을 용이하게 하기 위해, 예를 들어, 500명의 학생에 대한 정보에 대해 쿼리 및 정렬과 같은 동작을 수행하기 위해, 500명의 학생에 대한 정보는 데이터베이스 시스템의 저장 매체에 저장되어, 장기 사용을 용이하게 하고 반복 작업을 피하게 할 필요가 있다. 특히, 데이터가 데이터베이스 시스템의 저장 매체에 저장될 예정이면, 일반적으로 저장을 위해 대응하는 표 저장 구조를 이용할 수 있다. 종래 기술에서 제공된 표 저장 구조와 비교하여, 본 발명의 이 실시예에서 제공한 표 저장 구조(본 발명의 이 실시예에서의 컴퓨터 노드에 의해 생성된 표의 저장 구조), 즉, 표 1에 도시된 표 저장 구조는, 데이터 로딩 성능 및 데이터 업데이트 성능이 약간 영향을 받는다는 전제하에, 데이터 쿼리 성능 및 데이터 압축 효율성이 향상된다는 것이 보장될 수 있다.
전술한 표 1로부터: 이 예에서, 사용자에 의해 특정된 제1 정렬 열, 즉, 부분 클러스터 키(기본 키)는 클래스 및 학생 번호일 수 있다는 것이 학습될 수 있다. 2 가지 속성, 즉, 클래스 및 학생 번호 둘 다가 결정될 때만, 각각의 학생이 결정될 수 있기 때문에, 즉, 클래스와 학생 번호 둘 다가 결정될 때만, 각각의 학생이 또 다른 학생과 구별될 수 있다.
본 발명의 이 실시예에서 제공된 클러스터링 저장 방법을 이용하여, 저장될 제1 데이터를 부분별로 정렬한 후에, 데이터베이스 시스템의 저장 매체에 저장할 수 있고, 저장 매체에 저장된 데이터의 각각의 부분은 순차적으로 배열된다는 것이 보장될 수 있다. 이런 방식으로, 저장될 데이터를 부분별로 정렬하고 저장할 수 있기 때문에, 데이터 로딩을 완료하기 위해, 저장 매체에 저장된 데이터가 부분적으로 순차적인 것이 보장될 수 있고, 그로 인해, 데이터 로딩 성능 및 데이터 업데이트 성능이 약간 영향을 받는다는 전제하에, 데이터 쿼리 성능 및 데이터 압축 효율성이 향상된다는 것이 보장될 수 있다.
본 발명의 이 실시예에서 클러스터링 저장 방법에 따르면, 저장될 제1 데이터를 행마다 데이터베이스 시스템의 로컬 메모리에 캐싱하고; 제1 정렬 열을 결정하고, 제1 정렬 열은 로컬 메모리에 캐싱된 데이터를 정렬하는데 사용되고; 로컬 메모리에 저장된 제2 데이터가 사전 설정된 조건을 충족하면, 제2 데이터를 제1 정렬 열에 따라 정렬하고, 제2 데이터는, 제1 데이터에서, 로컬 메모리에 캐싱된 데이터이고; 정렬된 제2 데이터를 클러스터링 방식으로 데이터베이스 시스템의 저장 매체에 저장한다. 이 해결책을 이용하여, 저장될 제1 데이터를 행마다 로컬 메모리에 저장하는 프로세스에서, 로컬 메모리에 캐싱된 제2 데이터의 데이터 양이 로컬 메모리에 저장되도록 허용된 데이터 양을 초과하면, 제2 데이터를 결정된 제1 정렬 열에 따라 정렬하기 시작하고, 정렬된 제2 데이터를 데이터베이스 시스템의 저장 매체에 저장한다. 저장될 데이터를 부분별로 정렬하고 저장할 수 있기 때문에, 데이터 로딩을 완료하기 위해, 데이터베이스 시스템의 저장 매체에 데이터가 부분적으로 순차적인 것이 보장될 수 있고, 그로 인해, 데이터 로딩 성능 및 데이터 업데이트 성능이 약간 영향을 받는다 전제하에, 데이터 쿼리 성능 및 데이터 압축 효율성이 향상된다는 것이 보장될 수 있다.
실시예 2
본 발명의 일 실시예는 클러스터링 저장 방법을 제공하고, 본 방법은 데이터베이스 시스템에 적용된다. 도 2에 도시된 바와 같이, 본 방법은 다음의 단계를 포함할 수 있고:
S201. 컴퓨터 노드는 데이터베이스 시스템의 저장 매체에 표를 생성하고, 표는 저장될 제1 데이터를 로딩하는데 사용된다.
하드 디스크에 텍스트로 저장된 데이터, 즉 저장될 제1 데이터가 데이터베이스 시스템의 저장 매체에 저장될 필요가 있으면, 컴퓨터 노드가 우선 저장 매체에 표를 생성할 수 있고, 이 표는 제1 데이터를 로딩하는데 사용될 수 있다.
본 기술분야의 통상의 기술자는, 본 발명의 실시예에서 제공한 데이터베이스 시스템의 저장 매체가 디스크일 수 있으며, 이 디스크는 하드 디스크 및 플로피 디스크를 포함할 수 있다는 것을 이해할 수 있다. 일반적으로 사용되는 디스크는 일반적으로 이동식 디스크이고, 이동식 디스크는 2 가지 타입으로 분류될 수 있고: 하나의 타입은 USB 플래시 드라이브 또는 칩 저장 기반의 플래시 디스크이고; 다른 타입은 하드 디스크 기반의 이동식 하드 디스크이고, 이동식 디스크는 대부분의 경우에 이동식 하드 디스크이고, 이동식 하드 디스크는 상이한 하드 디스크들에 따라 노트북 컴퓨터의 이동식 하드 디스크 및 데스크탑 컴퓨터의 이동식 하드 디스크로 분류된다. 이동식 하드 디스크는 일반적으로 USB 인터페이스를 통해 컴퓨터에 접속되고, 즉, 저장 매체로서, 이동식 하드 디스크는 USB 인터페이스를 통해 이동식 하드 디스크와 컴퓨터 사이에서 전송되는 데이터를 저장할 수 있다.
S202. 컴퓨터 노드는 제1 데이터를 행마다 데이터베이스 시스템의 로컬 메모리에 캐싱한다.
본 발명의 이 실시예에서 제공된 클러스터링 저장 방법에서, 제1 데이터에 대한 후속 액세스를 용이하게 하기 위해, 제1 데이터를 저장하는 프로세스에서, 컴퓨터 노드는 우선 제1 데이터를 정렬하고 나서 정렬된 제1 데이터를 데이터베이스 시스템의 저장 매체에 저장할 필요가 있다. 컴퓨터 노드가 제1 데이터를 저장 매체에 저장하는 프로세스에서, 컴퓨터 노드는 우선 하드 디스크로부터의 제1 데이터를, 데이터베이스 시스템의 로컬 메모리로 판독할 필요가 있다. 구체적으로, 컴퓨터 노드는 제1 데이터를 행마다 하드 디스크로부터 로컬 메모리로 캐싱할 수 있다.
S203. 컴퓨터 노드는 제1 정렬 열을 결정하고, 제1 정렬 열은 로컬 메모리에 캐싱된 데이터를 정렬하는데 사용된다.
컴퓨터 노드가 제1 데이터를 행마다 로컬 메모리에 캐싱하는 프로세스에서, 컴퓨터 노드는 제1 정렬 열을 결정할 수 있고, 상기 제1 정렬 열은 로컬 메모리에 캐싱된 데이터를 정렬하는데 사용될 수 있다.
특히, 제1 정렬 열은 기본 키로 지칭될 수 있거나, 또는 부분 클러스터 키로 지칭될 수 있다.
사용자가 컴퓨터 노드에게 표를 생성하라고 지시할 때, 제1 정렬 열은, 제1 데이터의 속성에 의해 특정된 정렬 열에 따라 제1 데이터를 정렬하기 위한 베이시스이며, 즉, 컴퓨터 노드는, 정렬될 제1 데이터에서 로컬 메모리에 캐싱된 데이터의 각각의 부분을, 제1 정렬 열에 따라, 개별적으로 정렬할 수 있고, 그로 인해 제1 데이터의 각각의 데이터 부분이 개별적으로 순차적으로 배열되어 제1 데이터가 부분적으로 순차적인 것을 보장한다는 점에 주목해야 한다.
또한, 표를 생성하라고 지시할 때, 사용자는 명령문(statement)을 사용하여 표 저장 구조를 특정할 수 있고, 제1 정렬 열은 표 저장 구조에 특정된다. 예를 들어, 사용자는 table t 저장 구조를 특정하기 위해, 다음과 같은 명령문:
Create table t(c1 int,c2 int, partial cluster key(c1,c2+1)을 사용할 수 있고, table t 저장 구조는 제1 정렬 열, 즉 부분 클러스터 키를 포함한다.
이 표는 데이터 레코드들의 그룹에 의해 형성된다. 표는 행에 따라 배열되는 관련 데이터의 그룹이고; 각각의 표는 동일한 타입의 정보를 포함한다. 표는 실제로 이차원 표이다. 예를 들어, 클래스 내의 모든 학생의 시험 점수는 표에 저장될 수 있고, 표의 각각의 행은 하나의 학생에 대응하고, 각각의 행은 대응하는 학생에 대한 모든 정보를 포함하는데, 예를 들어, 다음과 같은 학생에 대한, 학생 번호, 이름 및 각 과목의 점수를 포함할 수 있다.
표 저장 구조는, 정의된 표의 필드, 타입, 기본 키, 외래 키, 인덱스, 및 기타 등등이고, 즉 이러한 기본적 속성들은 표 저장 구조를 구성한다. 표 저장 구조를 결정된 후, 상이한 타입들의 데이터가 표 저장 구조에 따라 직접 삽입될 수 있다.
데이터베이스는 데이터를 저장하는 창고이며, 데이터베이스가 하나의 표 또는 표들의 그룹에 의해 형성되고, 데이터베이스의 데이터는 표 단위로 조성된다. 각각의 데이터베이스는 파일의 형태로 디스크에 저장되고, 즉, 각각의 데이터베이스는 하나의 물리적 파일에 대응한다. 상이한 데이터베이스는 상이한 방식의 물리적 파일에 대응한다. 예를 들어, dBASE, FoxPro 및 Paradox 포맷에서의 데이터베이스를 위해, 표는 별도의 데이터베이스 파일이고, Microsoft Access 및 Btrieve 포맷들에서의 데이터베이스를 위해, 데이터베이스 파일은 다수의 표를 포함할 수 있다.
또한, 본 발명의 이 실시예에서 제공된 클러스터링 저장 방법에 따르면, 컴퓨터 노드는 데이터베이스 시스템의 로컬 메모리에서 제1 데이터에 대한 정렬을 완료하고, 로컬 메모리의 사이즈 및 데이터 처리 능력의 제한을 받기 때문에, 컴퓨터 노드는 제1 데이터만을 부분별로 정렬할 수 있다. 그 후, 컴퓨터 노드는, 부분별로 정렬된 데이터를, 데이터베이스 시스템의 저장 매체에 연속해서 저장하고, 이런 방식으로, 저장 매체에 저장된 제1 데이터가 부분적으로 순차적인 것이 보장될 수 있다.
선택적으로, 전술한 제1 정렬 열은, 물리적 열 및 표현식 중 적어도 하나를 포함할 수 있다. 구체적으로, 제1 정렬 열은 물리적 열일 수 있거나, 표현식일 수 있거나, 물리적 열 및 표현식일 수 있거나, 본 발명에 한정되지 않는 정렬 요구사항을 충족하는 임의의 다른 포맷일 수 있다.
예시적으로, 제1 정렬 열을 특정하기 위한 전술한 명령문은 예로서 사용된다. 명령문에서, 제1 정렬 열은 "c1,c2+1"이고, "c1"은 물리적 열이고, "c2+1"는 표현식이다.
또한, 표 2에 도시된 바와 같이, 표의 데이터가 저장될 제1 데이터이면, 제1 정렬 열은 요소 열 및 일련 번호 열, 또는 수치 열일 수 있고, 요소 열 및 일련 번호 열, 또는 수치 열은 물리적 열로 지칭될 수 있거나; 제1 정렬 열은 수치 열의 절대값일 수 있고, 수치 열의 절대값은 표현식으로서 지칭될 수 있다. 컴퓨터 노드는, 사용자의 요구사항에 따라 사용자에 의해 특정된 전술한 제1 정렬 열에 따라, 표 2에 도시된 제1 데이터를 정렬할 수 있다.
구체적으로, 제1 정렬 열이 요소 열 및 일련 번호 열이면, 컴퓨터 노드가 표 2의 데이터를 제1 정렬 열의 값들에 따라 오름 차순으로 정렬한(요소 열에 대한 정렬을 알파벳 순으로 수행하고, 일련 번호 열에 대한 정렬을 번호 순으로 수행한) 후에 얻어진 결과가 표 3에 도시되고; 제1 정렬 열이 수치 열이면, 컴퓨터 노드가 표 2의 데이터를 제1 정렬 열의 값들에 따라 오름 차순으로 정렬한 후에 얻어진 결과가 표 4에 도시되고; 제1 정렬 열이 수치 열의 절대값이면, 컴퓨터 노드가 표 2의 데이터를 제1 정렬 열의 값들에 따라 오름 차순으로 정렬한 후에 얻어진 결과가 표 5에 도시된다.
Figure pct00002
Figure pct00003
Figure pct00004
Figure pct00005
전술한 표 3, 표 4, 표 5로부터, 상이한 제1 정렬 열에 대해서는, 정렬 결과가 상이하고; 동일한 제1 정렬 열에 대해서는, 제1 정렬 열의 표현식에 따라 수행된 정렬의 결과가 제1 정렬 열에 따라 직접 수행된 정렬의 결과와 상이하다는 것을 알 수 있다. 구체적으로, 정렬은 실제 사용자 요구사항에 따라 수행될 수 있고, 이는 본 발명에 한정되지 않는다.
선택적으로, 제1 정렬 열의 수가 적어도 하나일 수 있고, 즉, 제1 데이터를 정렬하기 위한 적어도 하나의 베이시스가 존재할 수 있다. 제1 정렬 열의 수가 적어도 2개이면, 적어도 2개의 제1 정렬 열들은 기본 제1 정렬 열 및 적어도 하나의 보조 제1 정렬 열을 포함할 수 있고, 그로 인해 컴퓨터 노드는 우선 기본 제1 정렬 열에 따라 제1 데이터의 각각의 데이터 부분을 정렬할 수 있고, 그 후 적어도 하나의 보조 제1 정렬 열에 따라 제1 데이터의 각각의 데이터 부분을 개별적으로 정렬할 수 있다.
예시적으로, 전술한 제1 정렬 열이 "c1,c2+1"인 것이 예로서 사용되고, "c1"는 기본 제1 정렬 열이고, "c2+1"는 보조 제1 정렬 열이다.
또한, 표 2에 도시된 바와 같이, 제1 정렬 열이 요소 열 및 일련 번호 열이면, 요소 열은 기본 제1 정렬 열로서 설정될 수 있고, 일련 번호 열은 보조 제1 정렬 열로서 설정될 수 있거나; 일련 번호 열은 기본 제1 정렬 열로서 설정될 수 있고, 요소 열은 보조 제1 정렬 열로서 설정될 수 있다. 특정 설정 방식을 실제 요구사항에 따라 적응적으로 조정할 수 있고, 이는 본 발명에 한정되지 않는다.
S204. 컴퓨터 노드는, 로컬 메모리에 캐싱된 제2 데이터가 사전 설정된 조건을 충족하는지를 검출하고, 제2 데이터는, 제1 데이터에서, 로컬 메모리에 캐싱된 데이터이다.
컴퓨터 노드가 제1 데이터를 로컬 메모리에 캐싱하는 프로세스에서, 컴퓨터 노드는 로컬 메모리에 캐싱된 제2 데이터가 사전 설정된 조건을 충족하는지를 검출할 수 있고, 제2 데이터는, 제1 데이터에서, 로컬 메모리에 캐싱된 데이터일 수 있다.
사전 설정된 조건은, 로컬 메모리에 캐싱된 제2 데이터의 데이터 양과 로컬 메모리에 저장되도록 허용된 데이터 양 사이의 관계를 나타내기 위해 사용될 수 있다. 사전 설정된 조건은, 제2 데이터의 행의 수가 제1 사전 설정된 임계값 이상인 것일 수 있거나, 로컬 메모리의, 제2 데이터에 의해 점유된 사이즈가 제2 사전 설정된 임계값 이상인 것일 수 있거나, 또는 본 발명에 한정되지 않는 설계 요구사항을 충족시키는 임의의 다른 사전 설정된 조건일 수 있다.
구체적으로, 컴퓨터 노드는, 로컬 메모리에 캐싱된 제2 데이터의 행의 수가 제1 사전 설정된 임계값 이상인지를 검출할 수 있거나; 컴퓨터 노드는, 로컬 메모리의, 로컬 메모리에 캐싱된 제2 데이터에 의해 점유된 사이즈가 제2 사전 설정된 임계값 이상인지를 검출할 수 있다.
제1 사전 설정된 임계값 및 제2 사전 설정된 임계값의 값들은, 컴퓨터 노드에 의해 실제로 사용되는 메모리 사이즈, 및 메모리의 데이터 처리 능력에 따라 설정될 수 있고, 이는 본 발명에 한정되지 않는다는 점에 주목해야 한다.
S205. 컴퓨터 노드에 의해 로컬 메모리에 캐싱된 제2 데이터가 사전 설정된 조건을 충족하면, 컴퓨터 노드는 제1 정렬 열에 따라 제2 데이터를 정렬한다.
컴퓨터 노드가 제1 데이터를 캐싱하는 프로세스에서, 데이터베이스 시스템의 로컬 메모리가 제한된 사이즈 및 제한된 데이터 처리 능력을 갖기 때문에, 제1 데이터가 모두 한 번에 로컬 메모리에 캐싱될 수 없고, 즉, 컴퓨터 노드는 제1 데이터를 부분별로 개별적으로 로컬 메모리에 캐싱할 수 있고, 그로 인해 컴퓨터 노드는 로컬 메모리에 개별적으로 캐싱된 데이터를 부분별로 연속해서 처리할 수 있다. 구체적으로, 컴퓨터 노드는 로컬 메모리에 캐싱된 제2 데이터의 상황에 대한 통계를 실시간으로 수집할 수 있다. 컴퓨터 노드가 로컬 메모리에 캐싱된 제2 데이터가 사전 설정된 조건을 충족한다는 것을 검출하면, 컴퓨터 노드는 제1 정렬 열에 따라 제2 데이터를 정렬하기 시작할 수 있다.
예를 들어, 제1 사전 설정된 임계값이 10,000 행이면, 로컬 메모리에 저장된 제2 데이터의 행의 수가 10,000 행 이상인 경우에, 컴퓨터 노드는 제1 정렬 열에 따라 제2 데이터를 정렬하기 시작할 수 있고; 이에 따라, 제2 사전 설정된 임계값이 6 기가바이트이면, 로컬 메모리의, 로컬 메모리에 캐싱된 제2 데이터에 의해 점유된 사이즈가 6 기가바이트 이상이면, 컴퓨터 노드가 제1 정렬 열에 따라 제2 데이터를 정렬하기 시작할 수 있다.
또한, 로컬 메모리의, 로컬 메모리에 캐싱된 제2 데이터에 의해 점유된 사이즈가 백분율로 표현될 수도 있다. 예를 들어, 로컬 메모리의 용량이 8 기가바이트이고, 제2 사전 설정된 임계값이 8 기가바이트의 90%(백분율)이면, 로컬 메모리의, 로컬 메모리에 캐싱된 제2 데이터에 의해 점유된 사이즈가 8 기가바이트의 90% 이상일 때, 컴퓨터 노드가 제1 정렬 열에 따라 제2 데이터를 정렬하기 시작할 수 있다.
또한, 본 발명의 이 실시예에서 제공한 클러스터링 저장 방법에서, 제1 데이터를 정렬할 때, 컴퓨터 노드는 제1 정렬 열의 수치 또는 제1 정렬 열의 수치의 해시 값에 따라 제2 데이터를 정렬할 수 있다.
임의의 길이를 갖는 이진 값은 해시 알고리즘에 따른 고정 길이를 갖는 더 작은 이진 값에 매핑될 수 있으며, 고정 길이를 갖는 더 작은 이진 값은 이진 값의 해시 값으로 지칭된다. 해시 값은 고유 데이터의 초소형 수치 표현 양식의 세그먼트이다. 예를 들어, 데이터 세그먼트의 해시 값이 계산될 경우, 데이터 세그먼트에서 임의의 문자(character)가 계산 전에 변경되는 한, 계산 수단에 의해 얻어진 변경 전과 후의 2개 해시 값은 또한, 상이하다.
따라서, 제1 정렬 열의 수치의 해시 값은, 제1 정렬 열의 수치의 이진 값을, 해시 알고리즘에 따른 고정 길이를 갖는 더 작은 이진 값에 매핑함으로써, 얻어질 수 있다.
S206. 컴퓨터 노드는, 정렬된 제2 데이터를 클러스터링 방식으로 제2 저장 매체에 저장하기 위해, 정렬된 제2 데이터를 행마다 표에 삽입한다.
데이터베이스에서는, 속성 또는 속성 그룹의 쿼리 속도를 향상시키기 위해, 속성 또는 속성 그룹(클러스터 코드로 지칭됨)에서 동일한 값을 갖는 튜플(tuple)들이, 중앙집중적으로 연속된 물리적 블록들에 저장될 수 있다. 이러한 저장 방법은 클러스터링으로 지칭된다. 데이터를 클러스터링 방식으로 저장하는 것은, 클러스터 코드에 따라 쿼리를 수행함에 있어서 효율성을 크게 향상시킬 수 있다.
컴퓨터 노드가 제2 데이터를 정렬한 후에, 컴퓨터 노드는, 정렬된 제2 데이터를 클러스터링 방식으로 데이터베이스 시스템의 저장 매체에 저장하기 위해, 정렬된 제2 데이터를 행마다 컴퓨터 노드에 의해 생성된 표에 삽입하여, 제2 데이터를 로딩하는 프로세스를 완료할 수 있다.
구체적으로, 컴퓨터 노드는 정렬된 제2 데이터를 데이터베이스 시스템의 저장 매체의 유휴 물리적 블록에 저장할 수 있고, 유휴 물리적 블록은 제3 데이터에 의해 점유된 물리적 블록을 제외한 물리적 블록이고, 제3 데이터는, 제1 데이터에서, 제2 데이터 이전에 저장 매체에 클러스터링 방식으로 저장된 데이터이다.
특히, 컴퓨터 노드는 정렬된 제2 데이터를 클러스터링 방식으로 저장 매체의 연속된 유휴 물리적 블록에 저장할 수 있거나, 또는 정렬된 제2 데이터를 클러스터링 방식으로 저장 매체의 불연속 물리적 블록에 저장할 수 있고(예를 들어, 제2 데이터의 데이터 부분은 클러스터링 방식으로 일부 연속된 유휴 물리적 블록들에 저장되고, 제2 데이터의 또 다른 데이터 부분은 클러스터링 방식으로 일부 다른 연속된 유휴 물리적 블록들에 저장되고, 일부 연속된 유휴 물리적 블록들 및 일부 다른 연속된 유휴 물리적 블록은 연속된 물리적 블록들이 아님), 특정 저장 형식은 본 발명에 한정되지 않는다. 즉, 전술한 저장 형식들 중의 하나를 본 발명에 사용한다 하더라도, 저장 매체에 저장된 데이터는 부분적으로 순차적인 것이 보장될 수 있다는 점에 주목해야 한다.
컴퓨터 노드는, 저장될 제1 데이터를 모두 데이터베이스 시스템의 저장 매체에 저장할 때까지, 전술한 S202 내지 S206을 반복해서 수행할 수 있다는 점에 주목해야 한다.
컴퓨터 노드가, 제1 데이터에서, 로컬 메모리에 캐싱될 데이터의 각각의 부분을 연속적으로 정렬하고, 매번 정렬한 후에 얻어진 데이터의 각각의 부분을 저장 매체에 저장하고, 그로 인해 저장 매체에 저장된 제1 데이터가 부분적으로 순차적인 것, 즉, 저장 매체에 저장된 제1 데이터의 각각의 부분이 순차적으로 배열되는 것이 보장될 수 있다는 점을 이해해야 한다.
예시적으로, 사용자가, 제1 데이터, 즉, 대학에서 무용학과의 500명의 학생에 대한 정보를, 데이터베이스 시스템의 저장 매체에 저장할 필요가 있다면, 후속 액세스를 용이하게 하기 위해, 사용자는, 우선 500명의 학생에 대한 정보를 컴퓨터 노드에 입력하고, 정보를 텍스트 형태로 컴퓨터 노드의 하드 디스크에 저장할 필요가 있다. 컴퓨터 노드가 사용자의 지시에 따라 500명의 학생에 대한 정보를 데이터베이스 시스템의 저장 매체에 저장하는 프로세스에서, 컴퓨터 노드는 하드 디스크의 텍스트로부터 500명의 학생에 대한 정보를 데이터베이스 시스템의 로컬 메모리로 판독할 수 있다. 구체적으로, 컴퓨터 노드는, 각각의 학생에 따른 각각의 학생에 대한 정보를 행마다 판독하는 방식으로 500명의 학생에 대한 정보를 로컬 메모리에 연속적으로 판독할 수 있다.
각각의 학생에 대한 정보는, 클래스, 이름, 학생 번호, 연령, 특기, 및 가족 정보와 같은 속성을 포함하는 것으로 가정한다. 본 발명의 이 실시예에서 제공된 클러스터링 저장 방법에 따르면, 500명의 학생에 대한 정보는 하나의 표를 구성할 수 있다. 표 1에 도시된 바와 같이, 표 1의 각각의 행(즉, 각각의 학생에 대한 정보)은 튜플이며, 각각의 열(전체 학생들에 대한 항목 정보)은 속성이다.
500명의 학생에 대한 정보를 입력할 때, 사용자는 특정 순서에 따라 정보를 입력할 수 없고, 따라서 하드 디스크의 텍스트로 저장된 500명의 학생에 대한 정보는 순차적으로 배열되지 않는다는 점에 주목해야 한다. 500명의 학생에 대한 정보의 후속 재사용을 용이하게 하기 위해, 예를 들어, 500명의 학생에 대한 정보에 대해 쿼리 및 정렬과 같은 동작을 수행하기 위해, 500명의 학생에 대한 정보는 데이터베이스 시스템의 저장 매체에 저장되어, 장기 사용을 용이하게 하고 반복 작업을 피하게 할 필요가 있다. 특히, 데이터가 데이터베이스 시스템의 저장 매체에 저장될 예정이면, 일반적으로 저장을 위해 대응하는 표 저장 구조를 이용할 수 있다. 종래 기술에서 제공된 표 저장 구조와 비교하여, 본 발명의 이 실시예에서 제공한 표 저장 구조(본 발명의 이 실시예에서의 컴퓨터 노드에 의해 생성된 표의 저장 구조), 즉, 표 1에 도시된 표 저장 구조는, 데이터 로딩 성능 및 데이터 업데이트 성능이 약간 영향을 받는다는 전제하에, 데이터 쿼리 성능 및 데이터 압축 효율성이 향상된다는 것이 보장될 수 있다.
전술한 표 1로부터: 이 예에서, 사용자에 의해 특정된 제1 정렬 열, 즉, 부분 클러스터 키(기본 키)는 클래스 및 학생 번호일 수 있다는 것이 학습될 수 있다. 2 가지 속성, 즉, 클래스 및 학생 번호 둘 다가 결정될 때만, 각각의 학생이 결정될 수 있기 때문에, 즉, 클래스와 학생 번호 둘 다가 결정될 때만, 각각의 학생이 또 다른 학생과 구별될 수 있다.
또한, 도 3에 도시된 바와 같이, 컴퓨터 노드가 제1 데이터를 모두 저장 매체에 저장한 후에, 사용자는, 저장 매체에 저장된 제1 데이터에 대해, 사용자의 요구사항에 따라 쿼리, 정렬 또는 중합과 같은 대응하는 동작을 수행할 수 있다. 구체적으로, 본 발명의 이 실시예에서 제공한 클러스터링 저장 방법은 다음의 단계를 추가로 포함하고:
S207. 컴퓨터 노드는 쿼리 열을 결정한다.
컴퓨터 노드가 제1 데이터를 모두 저장 매체에 저장한 후에, 사용자가 제1 데이터에 대한 쿼리 동작을 수행할 필요가 있으면, 사용자는 대응하는 쿼리 열을 특정할 필요가 있고, 즉, 컴퓨터 노드는 사용자에 의해 특정된 쿼리 열을 결정할 수 있고, 쿼리 열은 제1 데이터에 대한 쿼리 동작을 수행하기 위한 베이시스로서 사용될 수 있다.
S208. 컴퓨터 노드는 쿼리 열과 제1 정렬 열의 제1 열을 비교한다.
컴퓨터 노드가 쿼리 열을 결정한 후, 컴퓨터 노드는, 쿼리 열이 제1 정렬 열의 제1 열인지를 결정하기 위해, 쿼리 열과 제1 정렬 열의 제1 열을 비교할 수 있다.
S209. 컴퓨터 노드는 저장 매체에 저장된 제1 데이터를 로컬 메모리로 판독한다.
컴퓨터 노드가 쿼리 열을 결정한 후이며, 쿼리 열에 따라 제1 데이터에 대한 쿼리 동작이 수행되기 전에, 컴퓨터 노드는, 로컬 메모리에서, 데이터에 대한 쿼리 동작을 완료하기 위해, 저장 매체에 저장된 제1 데이터를 로컬 메모리로 판독할 필요가 있다.
S207이 수행된 후에, S208과 S209 사이에 실행 순서는 본 발명에 한정되지 않고, 즉 본 발명에서는, S208이 우선 수행될 수 있고 그 후 S209이 수행되거나; S209이 우선 수행될 수 있고 그 후 S208가 수행될 수 있거나; S208 및 S209이 동시에 수행될 수 있다.
S210. 쿼리 열이 제1 정렬 열의 제1 열이면, 컴퓨터 노드는, 로컬 메모리에서, 제1 정렬 열의 제1 열에 따라 제1 데이터에 대한 쿼리 동작을 수행할 수 있다.
쿼리 열이 제1 정렬 열의 제1 열이면, 컴퓨터 노드는, 로컬 메모리에서, 제1 정렬 열의 제1 열에 따라 제1 데이터에 대한 상기 쿼리 동작을 수행할 수 있다.
제1 정렬 열들의 수가 하나이면, 제1 정렬 열의 제1 열은 제1 정렬 열이고; 제1 정렬 열들의 수가 2개 또는 3개 이상이면, 제1 정렬 열들의 제1 열은 제1 정렬 열들의 기본 제1 정렬 열이다.
구체적으로, 본 발명의 이 실시예에서 제공한 클러스터링 저장 방법에서, 컴퓨터 노드는 제1 데이터를 부분별로 정렬한 후에 얻어진 데이터를, 클러스터링 방식으로 저장 매체에 저장할 수 있기 때문에, 제1 데이터가 부분적으로 순차적으로 저장 매체에 배열되는 것이 보장될 수 있다. 따라서, 쿼리 동작이 제1 정렬 열의 제1 열에 따라 제1 데이터에 대해 수행될 필요가 있을 때, 컴퓨터 노드가 저장 매체에 저장된 제1 데이터를 로컬 메모리로 판독할 수 있고, 로컬 메모리에서 이진 검색 방식으로, 제1 데이터의 하나 이상의 데이터 페이지들의 각각의 데이터 페이지에 대한 쿼리 동작을 직접 수행할 수 있다.
이진 검색은 이분법 검색으로도 지칭되고, 이진 검색의 장점은, 다음과 같이 비교 회수가 작고, 검색 속도가 빠르고, 평균 성능이 높다는 것이고; 이진 검색의 단점은, 다음과 같이 검색될 표가 순서화된 표일 필요가 있고, 데이터 삽입 및 데이터 삭제가 상대적으로 곤란하다는 것이다. 따라서, 이진 검색 방식은 자주 변경되지 않지만 빈번히 검색되는 순서화된 표에 적용 가능하다. 예시적으로, 표의 요소는 제1 정렬 열에 따라 오름 차순으로 배열되고, 표의 중간 위치에 기록된 키워드는 검색 키워드와 비교되고, 표의 중간 위치에 기록된 키워드가 검색 키워드와 동일하면, 검색이 성공하고; 그렇지 않으면, 중간 위치에 기록된 키워드가 표를 2개의 하위 표, 즉 이전 하위 표 및 다음 하위 표로 분할하는데 사용되고, 그리고 표의 중간 위치에 기록된 키워드가 검색 키워드보다 크면, 이전 하위 표가 더 검색되고, 그렇지 않으면, 다음 하위 표가 더 검색된다. 전술한 프로세스는 쿼리 조건을 충족하는 데이터를 발견할 때까지 반복되고, 이런 경우에, 검색이 성공하거나; 전술한 프로세스는 하위 표가 존재하지 않을 때까지 반복되고, 이 경우에 검색이 실패한다.
제1 데이터가 부분적으로 순차적으로 저장 매체에 배열되기 때문에, 컴퓨터 노드에 의해 저장 매체로부터 로컬 메모리에 판독된 제1 데이터는 또한, 부분적으로 순차적으로 배열되어 있음에 주목해야 한다. 제1 데이터가 제1 정렬 열의 제1 열에 따라 쿼리될 필요가 있으면, 컴퓨터 노드는 전술한 S207 내지 S210을 수행함으로써 로컬 메모리의 제1 데이터에서, 쿼리 조건을 충족하는 데이터를 신속하게 발견할 수 있고, 이로써 데이터 브라우징 및 데이터 비교의 회수를 감소시킬 수 있고, 데이터 쿼리 성능을 향상시킨다.
또한, 도 4에 도시된 바와 같이, 본 발명의 이 실시예에서 제공된 클러스터링 저장 방법에서, 제1 데이터에 대응하는 인덱스는 데이터를 쿼리하는데 사용될 수 있다. 제1 데이터를 저장 매체에 저장하는 프로세스에서 제1 데이터에 대응하는 인덱스를 생성할 수 있거나, 제1 데이터를 저장 매체에 저장한 후에 제1 데이터에 대응하는 인덱스를 생성할 수 있으며, 이는 본 발명에 한정되지 않는다.
제1 데이터에 대응하는 인덱스는 저장 매체에서의 제1 데이터의 특정 저장 위치를 지시하는데 사용될 수 있다는 점을 이해할 수 있다. 예를 들어, 제1 데이터에 대응하는 인덱스는, 저장 매체 내에서 제1 데이터가 구체적으로 저장되는 물리적 블록, 데이터 페이지 및 데이터 행을 지시하는데 사용될 수 있다.
구체적으로, 본 발명의 일 실시예에서 제공한 클러스터링 저장 방법을 이용하여 제1 데이터가 저장 매체에 저장된 후에, 제1 데이터는 부분적으로 순차적으로 저장되기 때문에, 검색될 필요가 있는 데이터 행은, 제1 데이터에 대응하는 쿼리 열 및 생성된 인덱스에 따라 저장 매체 내에서 직접 검색될 수 있다. 따라서, 종래 기술에서 데이터가 비 순차적으로 저장된 경우와 비교하여, 데이터를 쿼리하는 회수가 크게 감소되고, 데이터 쿼리 성능이 향상된다.
특히, 제1 데이터에 대응하는 인덱스에 따라 데이터를 검색하는 방법은 종래 기술의 인덱스에 따라 데이터를 검색하는 방법과 유사하기 때문에, 본 명세서에서 상세 설명을 생략한다.
S211. 컴퓨터 노드는 제2 정렬 열을 결정한다.
컴퓨터 노드가 제1 데이터를 모두 저장 매체에 저장한 후에, 사용자가 제1 데이터를 정렬할 필요가 있다면, 사용자는 대응하는 정렬 열을 지정할 필요가 있고, 즉, 컴퓨터 노드는 사용자에 의해 특정된 제2 정렬 열을 결정할 수 있으며, 제2 정렬 열은 제1 데이터에 대한 정렬 동작을 수행하기 위한 베이시스로서 사용될 수 있다.
S212. 컴퓨터 노드는 제2 정렬 열과 제1 정렬 열의 제1 열을 비교한다.
컴퓨터 노드가 제2 정렬 열을 결정하면, 컴퓨터 노드는, 제2 정렬 열이 제1 정렬 열의 제1 열인지를 결정하기 위해, 제2 정렬 열과 제1 정렬 열의 제1 열을 비교할 수 있다.
S213. 컴퓨터 노드는 저장 매체에 저장된 제1 데이터를 로컬 메모리로 판독한다.
컴퓨터 노드가 제2 정렬 열을 결정한 후이며 제2 정렬 열에 따라 제1 데이터에 대한 정렬 동작이 수행되기 전에, 컴퓨터 노드는, 로컬 메모리에서, 데이터에 대한 정렬 동작을 완료하기 위해, 저장 매체에 저장된 제1 데이터를 로컬 메모리로 판독할 필요가 있다.
S211이 수행된 후에, S212과 S213 사이에 실행 순서는 본 발명에 한정되지 않으며, 즉, 본 발명에서는, S212이 우선 수행될 수 있고 그 후 S213이 실행되거나; S213이 우선 수행될 수 있고 그 후 S212가 수행되거나; S212 및 S213이 동시에 수행될 수 있다.
S214. 제2 정렬 열이 제1 정렬 열의 제1 열이면, 컴퓨터 노드는, 로컬 메모리 내에서, 제1 정렬 열의 제1 열에 따라 제1 데이터에 대한 정렬 동작을 수행한다.
제2 정렬 열이 제1 정렬 열의 제1 열이면, 컴퓨터 노드는, 로컬 메모리에서, 제1 정렬 열의 제1 열에 따라 제1 데이터에 대한 정렬 동작을 수행할 수 있다.
구체적으로, 본 발명의 이 실시예에 제공된 클러스터링 저장 방법에서, 컴퓨터 노드는 제1 데이터를 부분별로 정렬한 후에 얻어진 데이터를, 저장 매체에 클러스터링 방식으로 저장할 수 있기 때문에, 제1 데이터는 부분적으로 순차적으로 저장 매체에 배열되는 것이 보장될 수 있다. 따라서, 정렬 동작이 제1 정렬 열의 제1 열에 따라 제1 데이터에 대해 수행될 필요가 있을 때, 컴퓨터 노드는, 저장 매체에 저장된 제1 데이터를 로컬 메모리로 판독할 수 있고, 로컬 메모리에서, 제1 데이터의 각각의 부분을 직접 정렬할 수 있으며, 즉, 컴퓨터 노드가 제1 데이터에 대한 병합 정렬을 수행할 수 있다.
병합(Merge) 정렬은 2개(또는 3개 이상) 순서화된 시퀀스를 새로운 순서화된 시퀀스로 조합하는 정렬 방법이다. 병합 정렬은, 병합 동작에 기반한 효과적인 정렬 알고리즘이다. 본 발명의 실시예에서 제공한 병합 정렬은 다음과 같은: 컴퓨터 노드가, 클러스터링 방식으로 저장 매체에 저장된 수개의 순서화된 시퀀스를 일체의 순서화된 시퀀스로 조합한다.
제1 데이터가 부분적으로 순차적으로 저장 매체에 배열되기 때문에, 컴퓨터 노드에 의해 저장 매체로부터 로컬 메모리에 판독된 제1 데이터도 부분적으로 순차적으로 배열되어 있음에 주목해야 한다. 제1 데이터는 제1 정렬 열의 제1 열에 따라 정렬될 필요가 있다면, 컴퓨터 노드는, 데이터 정렬 시에 효율성을 향상시킬 수 있도록, 로컬 메모리에서, 전술한 S211 내지 S214를 수행함으로써, 제1 데이터를 신속하게 정렬할 수 있다.
S215. 컴퓨터 노드는 중합 열을 결정한다.
컴퓨터 노드가 제1 데이터를 모두 저장 매체에 저장한 후에, 사용자가 제1 데이터에 대한 중합 동작을 수행할 필요가 있다면, 사용자는 대응하는 중합 열을 특정할 필요가 있고, 즉, 컴퓨터 노드는 사용자에 의해 특정한 중합 열을 결정할 수 있고, 중합 열은 제1 데이터에 대한 중합 동작을 수행하기 위한 베이시스로서 사용될 수 있다.
본 발명의 실시예에 제공된 클러스터링 저장 방법에서, 중합 동작은 제1 데이터에서 최대 값 또는 최소 값을 검색하는 동작인 것에 주목해야 한다.
S216. 컴퓨터 노드는 중합 열과 제1 정렬 열의 제1 열을 비교한다.
컴퓨터 노드가 중합 열을 결정하면, 컴퓨터 노드는, 중합 열이 제1 정렬 열의 제1 열인지를 결정하기 위해, 중합 열과 제1 정렬 열의 제1 열을 비교할 수 있다.
S217. 컴퓨터 노드는 저장 매체에 저장된 제1 데이터를 로컬 메모리로 판독한다.
컴퓨터 노드가 중합 열을 결정한 후이며 중합 열에 따라 제1 데이터에 대한 중합 동작이 수행되기 전에, 컴퓨터 노드는, 로컬 메모리에서, 데이터에 대한 중합 동작을 완료하기 위해, 저장 매체에 저장된 제1 데이터를 로컬 메모리로 판독할 필요가 있다.
S215이 수행된 후에, S216과 S217 사이의 실행 순서는 본 발명에서 한정되지 않고, 즉, 본 발명에서는, S216이 우선 수행될 수 있고 그 후 S217이 수행되거나; S217이 우선 수행될 수 있고 그 후 S216이 수행되거나; S216 및 S217이 동시에 수행될 수 있다.
S218. 중합 열이 제1 정렬 열의 제1 열이면, 컴퓨터 노드는, 로컬 메모리에서, 제1 정렬 열의 제1 열에 따라 제1 데이터에 대한 중합 동작을 수행할 수 있다.
중합 열이 제1 정렬 열의 제1 열이면, 컴퓨터 노드는, 로컬 메모리에서, 제1 정렬 열의 제1 열에 따라 제1 데이터에 대한 중합 동작을 수행할 수 있다.
또한, 컴퓨터 노드가 제1 정렬 열의 제1 열에 따라 제1 데이터에 대한 중합 동작을 수행하는 방법은 구체적으로, 이하를 포함할 수 있고:
(1) 컴퓨터 노드가, 로컬 메모리에서, 제1 정렬 열의 제1 열에 따라 제1 데이터의 하나 이상의 데이터 페이지들의 각각의 데이터 페이지에서 최대 값 또는 최소 값을 결정할 수 있다.
(2) 컴퓨터 노드가, 제1 데이터의 최대 값 또는 최소 값을 결정하기 위해, 각각의 데이터 페이지의 최대 값 또는 최소 값을 연속적으로 비교한다.
또한, 본 발명의 실시예에 제공된 클러스터링 저장 방법에서, 컴퓨터 노드가, 제1 데이터를 부분별로 정렬한 후에 얻어진 데이터를, 저장 매체에 클러스터링 방식으로 저장할 수 있기 때문에, 제1 데이터가 부분적으로 순차적으로 저장 매체에 배열된다. 따라서, 중합 동작이 제1 정렬 열의 제1 열에 따라 제1 데이터에 대해 수행될 필요가 있을 때, 컴퓨터 노드는 저장 매체에 저장된 제1 데이터를 로컬 메모리로 판독할 수 있고; 전술한 방법을 이용함으로써, 컴퓨터 노드는, 우선 로컬 메모리에서, 제1 정렬 열의 제1 열에 따라 제1 데이터의 하나 이상의 데이터 페이지들의 각각의 데이터 페이지에서 최대 값 또는 최소 값을 결정하고, 그 후 컴퓨터 노드는 제1 데이터의 최대 값 또는 최소 값을 결정하기 위해, 각각의 데이터 페이지의 최대 값 또는 최소 값을 연속적으로 비교한다.
제1 데이터가 부분적으로 순차적으로 저장 매체에 배열되기 때문에, 컴퓨터 노드에 의해 저장 매체로부터 로컬 메모리에 판독된 제1 데이터도 부분적으로 순차적으로 배열되어 있음에 주목해야 한다. 중합 동작이 제1 정렬 열의 제1 열에 따라 제1 데이터에 대해 수행될 필요가 있으면, 컴퓨터 노드는, 로컬 메모리에서, 전술한 S215 내지 S218를 수행함으로써, 제1 데이터에 대한 중합 동작을 신속하게 수행할 수 있고, 즉, 컴퓨터 노드는 제1 데이터에서 최대 값 또는 최소 값을 신속하게 결정할 수 있고, 이로써 데이터 중합의 효율성을 향상시킨다.
또한, 도 4에 도시된 바와 같이, 본 발명의 이 실시예에 제공된 클러스터링 저장 방법에서, 중합 동작은 제1 데이터에 대응하는 인덱스를 사용하여 데이터에 대해 수행될 수 있다. 제1 데이터에 대응하는 인덱스는, 제1 데이터를 저장 매체에 저장하는 프로세스에서 생성될 수 있거나, 제1 데이터에 대응하는 인덱스는, 제1 데이터를 저장 매체에 저장한 후에 생성될 수 있고, 이는 본 발명에 한정되지 않는다.
제1 데이터에 대응하는 인덱스가 저장 매체에서 제1 데이터의 특정 저장 위치를 지시하는데 사용될 수 있다는 것이 이해될 수 있다. 예를 들어, 제1 데이터에 대응하는 인덱스는, 저장 매체 내에서 제1 데이터가 구체적으로 저장되는, 물리적 블록, 데이터 페이지 및 데이터 행을 지시하는데 사용될 수 있다.
구체적으로, 본 발명의 이 실시예에 제공된 클러스터링 저장 방법을 이용하여 제1 데이터를 저장 매체에 저장한 후에, 제1 데이터는 부분적으로 순차적으로 저장되기 때문에, 하나 이상의 데이터 페이지들의 각각의 데이터 페이지의 최대 값 또는 최소 값이, 제1 데이터에 대응하여 생성된 인덱스 및 중합 열에 따라, 직접 발견될 수 있다. 따라서, 종래 기술에서 데이터가 비 순차적으로 저장된 경우와 비교하여, 데이터에 대한 중합 동작을 수행하는 회수의 양이 크게 감소되고, 데이터 중합 성능이 향상된다.
특히, 제1 데이터에 대응하는 인덱스에 따라 데이터에 대한 중합 동작을 수행하는 방법은 종래 기술에서와 마찬가지이기 때문에, 본 명세서에서 상세 설명을 생략한다.
S207 내지 S210, S211 내지 S214, 및 S215 내지 S218의 실행 순서는 본 발명에 한정되지 않으며, 즉 제1 데이터가 모두 저장 매체에 저장된 후에, 수행될 필요가 있는 단계는 실제 동작 요구사항에 따라 선택될 수 있다는 점을 이해할 수 있다. 예를 들어, 제1 데이터에 대한 쿼리, 정렬 및 중합과 같은 전술한 동작들에 대응하는 예들에서, 쿼리 동작이 제1 데이터에 대해 수행될 필요가 있다면, 컴퓨터 노드는 S207 내지 S210를 수행할 수 있고; 정렬 동작이 제1 데이터에 대해 수행될 필요가 있다면, 컴퓨터 노드는 S211 내지 S214를 수행할 수 있고; 중합 동작이 제1 데이터에 대해 수행될 필요가 있다면, 컴퓨터 노드는 S215 내지 S218를 수행할 필요가 있다.
또한, 제1 데이터에 대해 수행된 전술한 나열된 다양한 동작들은 단지 예시일 뿐이고, 본 발명의 실시예에 제공된 클러스터링 저장 방법을 이용하여 제1 데이터를 저장한 후에, 대응하는 동작이 또 다른 대응하는 요구사항에 따라 제1 데이터에 대해 더 수행될 수 있고, 이는 본 발명에 한정되지 않는다.
예시적으로, 표 6에 도시된 바와 같이, 표 6은, TPCH(비즈니스 지능 컴퓨팅 테스트 표준)이 데이터 테스트에 적용될 때 본 발명의 이 실시예에 제공된 부분적으로 순차적인 클러스터링 저장과 종래 기술에서 제공된 순차적인 저장 사이의 실제 테스트 데이터를 도시한다. TPCH 트랜잭션 처리 성능 위원회(Transaction Processing Performance Council, TPC)에 의해 릴리즈되며, TPCH는 데이터베이스 시스템에서 복잡한 쿼리의 응답 시간을 테스트하기 위해 결정 지원 시스템에서 데이터베이스 동작을 시뮬레이션할 수 있다.
Figure pct00006
표 6으로부터, 종래 기술에서 제공된 순차적인 저장 방법을 데이터를 저장하기 위해 사용하는 경우에 TPCH을 적용하여 데이터를 테스트하기 위한 시간은, 본 발명의 이 실시예에 제공된 클러스터링 저장 방법을 데이터를 저장하기 위해 사용하는 경우에 TPCH를 적용하여 데이터를 테스트하기 위한 시간보다 훨씬 더 길다는 것을 알 수 있다. 즉, 본 발명의 이 실시예에 제공된 클러스터링 저장 방법을 이용함으로써, TPCH를 적용하여 데이터를 테스트하기 위한 시간이 감소될 수 있고, 이로써 TPCH을 적용하여 데이터를 테스트하는 테스트 성능을 향상시킨다.
또한, 표 6에 도시된 바와 같이, TPCH를 적용하여 데이터를 쿼리하는 동작에 있어서, 종래 기술에 제공된 순차적인 저장과 비교하여, 본 발명의 이 실시예에 제공되는 부분적으로 순차적인 클러스터링 저장에 있어서, TPCH를 적용하여 데이터를 쿼리하는 쿼리 성능은 분명히 개선된다. 특히, 3개의 쿼리 Q6, Q12, 및 Q15의 쿼리 성능의 개선 비율은 300%를 상회한다.
본 발명의 이 실시예에 제공된 클러스터링 저장 방법은 데이터베이스 시스템의 단일 표의 시나리오에 적용될 수 있거나, 데이터베이스 시스템의 다중 표가 조인(join)들로 기능하는 시나리오에 적용될 수 있다는 점에 주목해야 한다. 구체적으로, 본 발명의 이 실시예에 제공된 클러스터링 저장 방법은 실제 사용 요구에 따라 적용될 수 있고, 이는 본 발명에 한정되지 않는다.
본 발명의 이 실시예에 제공된 클러스터링 저장 방법을 이용하여, 저장될 제1 데이터를 부분별로 정렬한 후에 데이터베이스 시스템의 저장 매체에 저장할 수 있고, 저장 매체에 저장된 데이터의 각각의 부분은 순차적으로 배열된다는 것이 보장될 수 있다. 이런 방식으로, 저장될 데이터가 부분별로 정렬 및 저장되기 때문에, 데이터 로딩을 완료하기 위해, 저장 매체에 저장된 데이터는 부분적으로 순차적인 것이 보장될 수 있고, 그로 인해 데이터 로딩 성능 및 데이터 업데이트 성능이 약간 영향을 받는다는 전제하에, 데이터 쿼리 성능 및 데이터 압축 효율성이 향상된다는 것이 보장될 수 있다.
본 발명의 이 실시예에 제공된 클러스터링 저장 방법에 따르면, 저장될 제1 데이터는 행마다 데이터베이스 시스템의 로컬 메모리에 저장되고; 제1 정렬 열이 결정되고, 제1 정렬 열은 로컬 메모리에 캐싱된 데이터를 정렬하는데 사용되고; 로컬 메모리에 캐싱된 제2 데이터가 사전 설정된 조건을 충족하면, 제2 데이터가 제1 정렬 열에 따라 정렬되고, 제2 데이터는, 제1 데이터에서, 로컬 메모리에 캐싱된 데이터이고; 정렬된 제2 데이터는 클러스터링 방식으로 데이터베이스 시스템의 저장 매체에 저장된다. 이 해결책을 이용함으로써, 저장될 제1 데이터를 행마다 로컬 메모리로 캐싱하는 프로세스에서, 로컬 메모리에 저장된 제2 데이터의 데이터 양이 로컬 메모리에 저장되도록 허용된 데이터 양을 초과하면, 제2 데이터가 사전 설정된 제1 정렬 열에 따라 정렬되기 시작하고, 정렬된 제2 데이터가 데이터베이스 시스템의 저장 매체에 저장된다. 저장될 데이터가 부분별로 정렬 및 저장될 수 있기 때문에, 데이터 로딩을 완료하기 위해, 데이터베이스 시스템의 저장 매체에서 데이터는 부분적으로 순차적인 것이 보장될 수 있고, 그로 인해 데이터 로딩 성능 및 데이터 업데이트 성능이 약간 영향을 받는다는 전제하에, 데이터 쿼리 성능 및 데이터 압축 효율성이 향상된다는 것이 보장될 수 있다.
실시예 3
도 5에 도시된 바와 같이, 본 발명의 실시예는 클러스터링 저장 장치(1)를 제공하고, 이 장치는 데이터베이스 시스템에 적용된다. 클러스터링 저장 장치(1)는,
저장될 제1 데이터를 행마다 데이터베이스 시스템의 로컬 메모리에 캐싱하도록 구성된 캐싱 유닛(10);
제1 정렬 열을 결정하도록 구성된 결정 유닛(11) - 상기 제1 정렬 열은 상기 로컬 메모리에 캐싱될 데이터를 정렬하는데 사용됨 -;
상기 로컬 메모리에서, 캐싱 유닛(10)에 의해 캐싱된 제2 데이터가 사전 설정된 조건을 충족하면, 상기 결정 유닛(11)에 의해 결정된 상기 제1 정렬 열에 따라 상기 제2 데이터를 정렬하도록 구성된 동작 유닛(12) - 상기 제2 데이터는, 상기 제1 데이터에서, 상기 로컬 메모리에 캐싱되는 데이터임 -; 및
상기 동작 유닛(12)에 의해 정렬된 상기 제2 데이터를, 상기 데이터베이스 시스템의 저장 매체에 클러스터링 방식으로 저장하도록 구성된 저장 유닛(13)을 포함한다.
선택적으로, 상기 사전 설정된 조건은, 상기 로컬 메모리에 캐싱된 제2 데이터의 데이터 양과 상기 로컬 메모리에 저장되도록 허용된 데이터 양 사이의 관계를 나타내기 위해 사용된다.
선택적으로, 상기 사전 설정된 조건은, 상기 제2 데이터의 행의 수가 제1 사전 설정된 임계값 이상인 것이고;
상기 동작 유닛(12)은 구체적으로, 상기 로컬 메모리에서 캐싱 유닛(10)에 의해 캐싱된 제2 데이터의 행의 수가 상기 제1 사전 설정된 임계값 이상이면, 상기 제1 정렬 열에 따라 상기 제2 데이터를 정렬하도록 구성된다.
선택적으로, 상기 사전 설정된 조건은, 상기 로컬 메모리의, 제2 데이터에 의해 점유된 사이즈가 제2 사전 설정된 임계값 이상인 것이고;
상기 동작 유닛(12)은 구체적으로, 상기 로컬 메모리에서, 상기 로컬 메모리의, 상기 캐싱 유닛(10)에 의해 캐싱된 제2 데이터에 의해 점유된 사이즈가 제2 사전 설정된 임계값 이상이면, 상기 제1 정렬 열에 따라 상기 제2 데이터를 정렬하도록 구성된다.
선택적으로, 동작 유닛(12)은 구체적으로, 상기 결정 유닛(11)에 의해 결정된 상기 제1 정렬 열의 수치 또는 상기 제1 정렬 열의 수치의 해시 값에 따라 상기 제2 데이터를 정렬하도록 구성된다.
선택적으로, 저장 유닛(13)은 구체적으로, 동작 유닛(12)에 의해 정렬된 제2 데이터를, 클러스터링 방식으로 저장 매체의 유휴 물리적 블록에 저장하도록 구성되고, 상기 유휴 물리적 블록은 제3 데이터에 의해 점유된 물리적 블록을 제외한 물리적 블록이고, 상기 제3 데이터는, 상기 제1 데이터에서, 상기 제2 데이터 이전에 상기 저장 매체에 클러스터링 방식으로 저장된 데이터이다.
선택적으로, 상기 결정 유닛(11)에 의해 결정된 상기 제1 정렬 열은 물리적 열 및 표현식 중 적어도 하나를 포함한다.
선택적으로, 상기 결정 유닛(11)은 또한, 상기 저장 유닛(13)이 상기 제1 데이터를 모두 저장 매체에 저장한 후에, 쿼리 열을 결정하도록 구성되고; 상기 동작 유닛(12)은 또한, 상기 결정 유닛(11)에 의해 결정된 상기 쿼리 열이 상기 제1 정렬 열의 제1 열이면, 상기 제1 정렬 열의 상기 제1 열에 따라 상기 제1 데이터에 대한 쿼리 동작을 수행하도록 구성된다.
또한, 캐싱 유닛(10)은 또한, 상기 결정 유닛(11)이 상기 쿼리 열을 결정한 후이며 상기 동작 유닛(12)이 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 상기 쿼리 동작을 수행하기 전에, 상기 저장 매체에 저장된 상기 제1 데이터를 상기 로컬 메모리로 판독하도록 구성되고;
상기 동작 유닛(12)은 구체적으로, 상기 로컬 메모리에서, 상기 제1 정렬 열의 상기 제1 열에 따라 이진 검색 방식으로, 상기 캐싱 유닛(10)에 의해 캐싱된 상기 제1 데이터의 하나 이상의 데이터 페이지들의 각각의 데이터 페이지에 대한 쿼리 동작을 수행하도록 구성된다.
선택적으로, 상기 결정 유닛(11)은 또한, 상기 저장 유닛(13)이 상기 제1 데이터를 모두 상기 저장 매체에 저장한 후에, 제2 정렬 열을 결정하도록 구성되고; 상기 동작 유닛(12)은 또한, 상기 결정 유닛(11)에 의해 결정된 상기 제2 정렬 열이 제1 정렬 열의 제1 열이면, 상기 제1 정렬 열의 상기 제1 열에 따라 상기 제1 데이터에 대한 정렬 동작을 수행하도록 구성된다.
또한, 캐싱 유닛(10)은 또한, 상기 결정 유닛(11)이 상기 제2 정렬 열을 결정한 후이며 상기 동작 유닛(12)이 상기 제1 정렬 열의 상기 제1 열에 따라 상기 제1 데이터에 대한 상기 정렬 동작을 수행하기 전에, 상기 저장 매체에 저장된 상기 제1 데이터를 상기 로컬 메모리로 판독하도록 구성되고;
상기 동작 유닛(12)은 구체적으로, 상기 로컬 메모리에서, 상기 제1 정렬 열의 상기 제1 열에 따라 상기 캐싱 유닛(10)에 캐싱된 상기 제1 데이터에 대한 병합 정렬을 수행하도록 구성된다.
선택적으로, 상기 결정 유닛(11)은 또한, 상기 저장 유닛(13)이 상기 제1 데이터를 모두 상기 저장 매체에 저장한 후에, 상기 중합 열을 결정하도록 구성되고; 상기 동작 유닛(12)은 또한, 상기 결정 유닛(11)에 의해 결정된 중합 열이 상기 제1 정렬 열의 상기 제1 열이면, 상기 제1 정렬 열의 상기 제1 열에 따라 상기 제1 데이터에 대한 중합 동작을 수행하도록 구성되고, 상기 중합 동작은 상기 제1 데이터에서 최대 값 또는 최소 값을 검색하는 동작이다.
또한, 캐싱 유닛(10)은 또한, 상기 결정 유닛(11)이 상기 중합 열을 결정한 후이며 상기 동작 유닛(12)이 상기 제1 정렬 열의 상기 제1 열에 따라 상기 제1 데이터에 대한 상기 중합 동작을 수행하기 전에, 상기 저장 매체에 저장된 상기 제1 데이터를 상기 로컬 메모리로 판독하도록 구성되고;
상기 동작 유닛(12)은 구체적으로, 상기 로컬 메모리에서, 상기 제1 정렬 열의 상기 제1 열에 따라, 상기 캐싱 유닛(10)에 의해 캐싱된 상기 제1 데이터의 하나 이상의 데이터 페이지들의 각각의 데이터 페이지에서 최대 값 또는 최소 값을 결정하고, 상기 제1 데이터의 최대 값 또는 최소 값을 결정하기 위해, 각각의 데이터 페이지의 상기 최대 값 또는 상기 최소 값을 연속적으로 비교하도록 구성된다.
또한, 도 6에 도시된 바와 같이, 본 발명의 이 실시예에 제공된 클러스터링 저장 장치(1)는 생성 유닛(14)을 추가로 포함하고,
상기 생성 유닛(14)은, 상기 캐싱 유닛(10)이 상기 저장될 제1 데이터를 행마다 상기 데이터베이스 시스템의 로컬 메모리에 캐싱하기 전에, 상기 저장 매체에 표를 생성하도록 구성되고, 상기 표는 상기 제1 데이터를 로딩하는데 사용되고;
상기 동작 유닛(12)은 구체적으로, 상기 정렬된 제2 데이터를 상기 저장 매체에 클러스터링 방식으로 저장하기 위해, 상기 정렬된 제2 데이터를 행마다, 상기 생성 유닛(14)에 의해 생성된 상기 표에 삽입하도록 구성된다
선택적으로, 상기 결정 유닛(11)에 의해 결정된 제1 정렬 열들의 수는 적어도 2개이고, 상기 제1 정렬 열들의 수가 적어도 2개이면, 상기 적어도 2개의 제1 정렬 열들은 기본 제1 정렬 열 및 적어도 하나의 보조 제1 정렬 열을 포함한다.
본 발명의 이 실시예에 제공된 클러스터링 저장 장치에 따르면, 상기 클러스터링 저장 장치는 저장될 제1 데이터를 행마다, 데이터베이스 시스템의 로컬 메모리에 캐싱하고, 제1 정렬 열을 결정하고, 상기 제1 정렬 열은 상기 로컬 메모리에 캐싱된 데이터를 정렬하는데 사용되고; 상기 로컬 메모리에 캐싱된 제2 데이터가 사전 설정된 조건을 충족하면, 상기 클러스터링 저장 장치는 상기 제1 정렬 열에 따라 상기 제2 데이터를 정렬하고, 상기 제2 데이터는, 상기 제1 데이터에서, 상기 로컬 메모리에 캐싱된 데이터이고; 상기 클러스터링 저장 장치는 정렬된 제2 데이터를 클러스터링 방식으로 데이터베이스 시스템의 저장 매체에 저장한다. 이런 해결책을 이용하여, 상기 클러스터링 저장 장치가 저장될 제1 데이터를 행마다 상기 로컬 메모리에 캐싱하는 프로세스에서, 상기 로컬 메모리에 캐싱된 상기 제2 데이터의 데이터 양이 상기 로컬 메모리에 저장되도록 허용된 데이터 양을 초과하면, 상기 클러스터링 저장 장치는 상기 결정된 제1 정렬 열에 따라 상기 제2 데이터를 정렬하기 시작하고, 상기 정렬된 제2 데이터를 상기 데이터베이스 시스템의 상기 저장 매체에 저장한다. 저장될 데이터가 부분별로 정렬 및 저장될 수 있기 때문에, 데이터 로딩을 완료하기 위해, 상기 데이터베이스 시스템의 상기 저장 매체의 데이터가 부분적으로 순차적인 것이 보장될 수 있고, 그로 인해 데이터 로딩 성능 및 데이터 업데이트 성능이 약간 영향을 받는다는 전제하에, 데이터 쿼리 성능 및 데이터 압축 효율성이 향상된다는 것이 보장될 수 있다.
실시예 4
도 7에 도시된 바와 같이, 본 발명의 일 실시예는 데이터베이스 시스템을 제공하고, 상기 데이터베이스 시스템은 하드웨어 엔티티 및 소프트웨어 환경을 포함할 수 있다. 하드웨어 엔티티는 컴퓨터 노드일 수 있고, 소프트웨어 환경은 데이터베이스 환경일 수 있고, 컴퓨터 노드가 프로세서(20)를 포함할 수 있고, 데이터베이스 환경은 최하위 계층 저장 매체(21) 및 메모리(22)를 포함할 수 있고,
상기 최하위 계층 저장 매체(21)는 저장될 제1 데이터를 저장하도록 구성되고;
상기 메모리(22)는 최하위 계층 저장 매체(21)에 결합되고, 최하위 계층 저장 매체(21)의 캐시로서 기능하는데 사용되며, 상기 최하위 저장 매체(21)의 하나 이상의 데이터 블록들은 상기 캐시의 타겟 데이터 블록에 매칭되고;
상기 프로세서(20)가 메모리(22)에 결합되며 상기 프로세서(20)는 메모리(22)의 명령어를 실행하고, 이 명령어는:
상기 저장될 제1 데이터를 행마다 상기 메모리(22)에 캐싱하고; 상기 제1 정렬 열을 결정하고; 상기 메모리(22)에 캐싱된 제2 데이터가 사전 설정된 조건을 충족하면, 상기 제1 저장 열에 따라 제2 데이터를 정렬하고; 상기 정렬된 제2 데이터를 클러스터링 방식으로 상기 최하위 계층 저장 매체(21)에 저장하기 위한 것이고, 상기 제1 정렬 열은 상기 메모리(22)에 캐싱된 데이터를 정렬하는데 사용되고, 상기 제2 데이터는, 상기 제1 데이터에서, 상기 메모리(22)에 캐싱된 데이터이다.
선택적으로, 상기 사전 설정된 조건은, 상기 메모리(22)에 캐싱된 상기 제2 데이터의 데이터 양과 상기 메모리(22)에 저장되도록 허용된 데이터 양 사이의 관계를 나타내기 위해 사용된다.
선택적으로, 상기 사전 설정된 조건은, 상기 제2 데이터의 행의 수가 제1 사전 설정된 임계값 이상인 것이고;
상기 프로세서(20)는 구체적으로, 상기 메모리(22)에 캐싱된 상기 제2 데이터의 행의 수가 상기 제1 사전 설정된 임계값 이상이면, 상기 제1 정렬 열에 따라 상기 제2 데이터를 정렬하도록 구성된다.
선택적으로, 상기 사전 설정된 조건은, 상기 메모리(22)의, 상기 제2 데이터에 의해 점유된 사이즈가 제2 사전 설정된 임계값 이상인 것이고;
상기 프로세서(20)는 구체적으로, 상기 메모리(22)의, 상기 메모리(22)에 캐싱된 상기 제2 데이터에 의해 점유된 상기 사이즈가, 상기 제2 사전 설정된 임계값 이상이면, 상기 제1 정렬 열에 따라 상기 제2 데이터를 정렬하도록 구성된다.
선택적으로, 프로세서(20)는 구체적으로, 상기 제1 정렬 열의 수치 또는 상기 제1 정렬 열의 수치의 해시 값에 따라 상기 제2 데이터를 정렬하도록 구성된다.
선택적으로, 프로세서(20)는 구체적으로, 상기 정렬된 제2 데이터를 클러스터링 방식으로 상기 최하위 계층 저장 매체(21)의 유휴 물리적 블록에 저장하도록 구성되고, 상기 유휴 물리적 블록은 제3 데이터에 의해 점유된 물리적 블록을 제외한 물리적 블록이고, 상기 제3 데이터는, 상기 제1 데이터에서, 상기 제2 데이터 이전에 상기 최하위 계층 저장 매체(21)에 클러스터링 방식으로 저장된 데이터이다.
선택적으로, 상기 프로세서(20)에 의해 결정된 상기 제1 정렬 열은 물리적 열 및 표현식 중 적어도 하나를 포함한다.
선택적으로, 상기 프로세서(20)는 또한, 상기 제1 데이터가 모두 상기 최하위 계층 저장 매체(21)에 저장된 후에, 쿼리 열을 결정하고; 상기 쿼리 열이 상기 제1 정렬 열의 제1 열인지를 결정하고; 상기 쿼리 열이 상기 제1 정렬 열의 제1 열인 것이 결정되면, 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 쿼리 동작을 수행하고, 쿼리 결과를 출력하도록 구성된다.
또한, 프로세서(20)는 또한, 상기 쿼리 열을 결정한 후이며 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 쿼리 동작을 수행하기 전에, 상기 최하위 계층 저장 매체(21)에 저장된 상기 제1 데이터를 상기 메모리(22)에 판독하도록 구성되고;
상기 프로세서(20)는 구체적으로, 상기 메모리(22)에서 이진 검색 방식으로, 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터의 하나 이상의 데이터 페이지들의 각각의 데이터 페이지에 대한 쿼리 동작을 수행하고, 상기 쿼리 결과를 출력하도록 구성된다.
선택적으로, 프로세서(20)는 또한, 상기 제1 데이터가 모두 상기 최하위 계층 저장 매체(21)에 저장된 후에, 제2 정렬 열을 결정하고; 상기 제2 정렬 열이 상기 제1 정렬 열의 제1 열인지를 결정하고; 상기 제2 정렬 열이 상기 제1 정렬 열의 제1 열인 것이 결정되면, 상기 제1 정렬 열의 상기 제1 열에 따라 상기 제1 데이터에 대한 정렬 동작을 수행하고, 상기 정렬된 제1 데이터를 출력하도록 구성된다.
또한, 프로세서(20)는 또한, 상기 제2 정렬 열을 결정한 후이며 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 정렬 동작을 수행하기 전에, 상기 최하위 계층 저장 매체(21)에 저장된 상기 제1 데이터를 상기 메모리(22)에 판독하도록 구성되고;
상기 프로세서(20)는 구체적으로, 상기 메모리(22)에서, 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 병합 정렬을 수행하고, 상기 정렬된 제1 데이터를 출력하도록 구성된다.
선택적으로, 프로세서(20)는 또한, 상기 제1 데이터가 모두 상기 최하위 계층 저장 매체(21)에 저장된 후에, 중합 열을 결정하고; 상기 중합 열이 상기 제1 정렬 열의 제1 열인지를 결정하고; 상기 중합 열이 상기 제1 정렬 열의 제1 열인 것이 결정되면, 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 중합 동작을 수행하고, 상기 중합 동작을 수행한 결과를 출력하도록 구성되고, 상기 중합 동작은 상기 제1 데이터에서 최대 값 또는 최소 값을 검색하는 동작이다.
또한, 프로세서(20)는 또한, 상기 중합 열을 결정한 후이며 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 상기 중합 동작을 수행하기 전에, 상기 최하위 계층 저장 매체(21)에 저장된 상기 제1 데이터를 상기 메모리(22)로 판독하도록 구성되고;
상기 프로세서(20)는 구체적으로, 메모리(22)에서, 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터의 하나 이상의 데이터 페이지들의 각각의 데이터 페이지에서 최대 값 또는 최소 값을 결정하고; 상기 제1 데이터의 최대 값 또는 최소 값을 결정하기 위해, 각각의 데이터 페이지의 최대 값 또는 최소 값을 연속적으로 비교하고; 상기 최대 값 또는 상기 최소 값을 출력하도록 구성된다.
또한, 프로세서(20)는 또한, 상기 저장될 제1 데이터를 행마다 상기 메모리(22)에 저장하기 전에, 상기 최하위 계층 저장 매체(21)에 표를 생성하도록 구성되고, 상기 표는 상기 제1 데이터를 로딩하는데 사용되고;
상기 프로세서(20)는 구체적으로, 상기 정렬된 제2 데이터를 클러스터링 방식으로 상기 최하위 계층 저장 매체(21)에 저장하기 위해, 상기 정렬된 제2 데이터를 행마다 상기 표에 삽입하도록 구성된다.
선택적으로, 상기 프로세서(20)에 의해 결정된 상기 제1 정렬 열들의 수가 적어도 하나이고, 상기 제1 정렬 열들의 수가 적어도 2개인 경우, 상기 적어도 2개의 정렬 열들은 기본 제1 정렬 열 및 적어도 하나의 보조 제1 정렬 열을 포함한다.
본 발명의 이 실시예에서, 컴퓨터 노드는 컴퓨터일 수 있거나, 또는 클러스터링 방식으로 데이터를 저장할 수 있는 임의의 다른 디바이스일 수 있고, 이는 본 발명에 한정되지 않는다. 즉, 본 발명의 실시예에 제공된 클러스터링 저장 방법을 구현할 수 있는 장치 및 디바이스 둘 다는 본 발명의 보호 범위 내에 속할 것이다.
본 발명의 이 실시예에 제공된 데이터베이스 시스템에 따르면, 데이터베이스 시스템의 컴퓨터 노드는 저장될 제1 데이터를 행마다 상기 데이터베이스 시스템의 메모리에 캐싱하고, 제1 정렬 열을 결정하고, 상기 제1 정렬 열은 상기 메모리에 캐싱된 제2 데이터가 사전 설정된 조건을 충족하면, 상기 컴퓨터 노드는 상기 제2 데이터를 상기 제1 정렬 열에 따라 정렬하고, 상기 제2 데이터는, 상기 제1 데이터에서, 상기 메모리에 캐싱된 데이터이고; 상기 컴퓨터 노드는 상기 정렬된 제2 데이터를 클러스터링 방식으로 상기 데이터베이스 시스템의 최하위 계층 저장 매체에 저장한다. 이 해결책을 이용함으로써, 상기 컴퓨터 노드가 상기 저장될 제1 데이터를 행마다 상기 메모리에 캐싱하는 프로세스에서, 상기 메모리에 캐싱된 상기 제2 데이터의 데이터 양이 상기 메모리에 저장되도록 허용된 데이터 양을 초과하면, 상기 컴퓨터 노드는 상기 결정된 제1 정렬 열에 따라 상기 제2 데이터를 정렬하기 시작하고, 상기 정렬된 제2 데이터를 상기 최하위 계층 저장 매체에 저장한다. 저장될 데이터는 부분별로 정렬 및 저장될 수 있기 때문에, 데이터 로딩을 완료하기 위해, 상기 데이터베이스 시스템의 상기 최하위 계층 저장 매체에서 데이터는 부분적으로 순차적인 것이 보장될 수 있고, 그로 인해 데이터 로딩 성능 및 데이터 업데이트 성능이 약간 영향을 받는다는 전제하에, 데이터 쿼리 성능 및 데이터 압축 효율성은 향상된다는 것이 보장될 수 있다.
실시예 5
더 명확하게 본 발명의 실시예에 제공된 클러스터링 저장 방법을 이해하기 위해, 이하에서는 본 발명의 실시예에 제공된 클러스터링 저장 방법을 더 설명하기 위한 특정 예를 사용한다. 도 8에 도시된 바와 같이, 저장될 제1 데이터가 9,000,000 행의 학생 데이터인 것을 가정하고, 구체적으로, 데이터의 각각의 행은 도 9에 도시된 클래스, 학생 번호, 및 이름과 같은 각각의 학생에 관련된 정보를 지시하는 것을 가정한다.
도 9에 도시된 바와 같이, A는 정렬되지 않은 데이터(unsorted data)를 지시하고; B는 본 발명의 실시예에 제공된 클러스터링 저장 방법을 이용하여 정렬 및 저장한 후에 얻어진 데이터를 지시한다는 점에 주목해야 한다.
데이터베이스 시스템에서, 본 발명의 실시예에 제공된 클러스터링 저장 방법을 이용하여 클러스터링 방식으로 상기 제1 데이터를 저장하는 프로세스는 구체적으로, 다음과 같이:
(1) 컴퓨터 노드가 저장될 학생 데이터를 행마다 데이터베이스 시스템의 로컬 메모리에 캐싱한다.
(2) 컴퓨터 노드가, 제1 정렬 열이 클래스 및 학생 번호인 것을 결정하고, 상기 제1 정렬 열은 상기 로컬 메모리에 캐싱된 학생 데이터를 정렬하는데 사용되고, 상기 정렬 열은 실제 요구사항에 따라 사용자에 의해 특정된다.
(3) 로컬 메모리에 저장된 학생 데이터가 본 발명의 이 실시예에 제공된 사전 설정된 조건을 충족하면, 상기 컴퓨터 노드는, 학생의 클래스 및 학생 번호에 따라, 상기 로컬 메모리에 캐싱된 상기 학생 데이터를 정렬한다.
(4) 컴퓨터 노드는, 상기 로컬 메모리에서 정렬된 학생 데이터를, 데이터베이스 시스템의 저장 매체에 클러스터링 방식으로 저장한다.
(5) 컴퓨터 노드는, 저장될 학생 데이터가 모두 정렬되고 저장 매체에 부분별로 저장될 때까지, 주기적으로 (1) 내지 (4)를 수행한다.
예시적으로, 도 9에 도시된 A에서, 12 행의 저장될 학생 데이터가 존재하고, 12 행의 학생 데이터는 비 순차적으로 저장된다. 본 발명의 실시예에 제공된 클러스터링 저장 방법을 학생 데이터를 저장하는데 이용하면, 상기 컴퓨터 노드는 학생 데이터의 제1 행으로부터 시작하여, 학생 데이터를 행마다 데이터베이스 시스템의 로컬 메모리에 캐싱할 수 있다. 매번 단지 6 행의 학생 데이터가 로컬 메모리에 캐싱될 수 있고, 상기 컴퓨터 노드가 6 행의 학생 데이터를 로컬 메모리에 캐싱하면, 상기 컴퓨터 노드는 6 행의 학생 데이터를 정렬할 수 있고, 도 9의 B1에 도시된 바와 같이, 정렬된 6 행의 학생 데이터를 클러스터링 방식으로 데이터베이스 시스템의 저장 매체에 저장할 수 있다. 컴퓨터 노드가 6 행의 학생 데이터의 저장을 완료한 후에, 컴퓨터 노드는 다른 6 행의 학생 데이터를 행마다 로컬 메모리에 캐싱하고, 캐싱이 완료된 후에 다른 6 행의 학생 데이터를 정렬하고, 도 9의 B2에 도시된 바와 같이, 상기 정렬된 다른 6 행의 학생 데이터를 클러스터링 방식으로 저장 매체에 저장하는 것을 계속할 수 있다. 이런 경우에, 컴퓨터 노드는 저장될 12 행의 학생 데이터를 모두 클러스터링 방식으로 저장 매체에 저장하고, 도 9의 B에 도시된 바와 같이, 12 행의 학생 데이터가 부분적으로 순차적으로 저장 매체에 저장된다.
또한, 학생 데이터를 캐싱할 때, 컴퓨터 노드는 로컬 메모리의 사이즈에 따라 학생 데이터를 캐싱할 수 있다. 구체적으로, 컴퓨터 노드에 의해 캐싱된 학생 데이터의 일부 행의 사이즈가 상대적으로 크면, 이때 컴퓨터 노드에 의해 캐싱된 학생 데이터의 행의 수는 상대적으로 작고; 그리고 반대로, 한번에 컴퓨터 노드에 의해 캐싱된 학생 데이터의 일부 행의 사이즈가 상태적으로 작으면, 컴퓨터 노드에 의해 캐싱된 학생 데이터의 행의 수는 상대적으로 크다. 구체적으로, 컴퓨터 노드에 의해 캐싱된 학생 데이터의 사이즈는 실제 상황에 따라 결정될 수 있고, 이는 본 발명에 한정되지 않는다.
본 발명의 실시예에서 제공된 클러스터링 저장 방법에서, 컴퓨터 노드는 저장될 데이터를 행마다 데이터베이스 시스템의 로컬 메모리의 처리 능력에 따라 캐싱할 수 있고, 로컬 메모리에 캐싱된 데이터의 부분이 로컬 메모리의 처리 능력 밖이면, 컴퓨터 노드는 사용자에 의해 특정된 결정된 정렬 열에 따라 데이터의 상기 부분을 정렬하기 시작하고, 정렬된 데이터의 부분을 데이터베이스 시스템의 저장 매체에 저장한다. 컴퓨터 노드가 저장될 데이터를 부분별로 정렬할 수 있고, 정렬된 데이터를 저장하기 때문에, 데이터 로딩을 완료하기 위해, 저장 매체의 데이터가 부분적으로 순차적인 것이 보장될 수 있고, 그로 인해 데이터 로딩 성능 및 데이터 업데이트 성능이 약간 영향을 받는다는 전제하에, 데이터 쿼리 성능 및 데이터 압축 효율성은 향상된다는 것이 보장될 수 있다.
편리하고 간략한 설명을 위하여, 전술한 기능 모듈들의 분할이 예시를 위한 예로서 이용된다는 것이 관련 기술분야의 통상의 기술자에 의해 명확하게 이해될 수 있다. 실제 응용에서, 전술한 기능들이 상이한 기능 모듈들에 할당되고 요구사항에 따라 구현될 수 있고, 즉, 장치의 내부 구조가 앞서 기술한 기능들의 전부 또는 일부를 구현하기 위해 상이한 기능 모듈들로 분할된다. 전술한 시스템, 장치, 및 유닛의 상세한 작업 프로세스를 위해, 전술한 방법 실시예들에서 대응하는 프로세스를 참조할 수 있으므로, 본 명세서에서 상세 설명은 생략한다.
본 출원에서 제공된 여러 실시예들에서, 개시된 시스템, 장치, 및 방법은 다른 방식들로 구현될 수 있다는 것을 이해하여야 한다. 예를 들어, 설명되는 장치 실시예는 예시적일 뿐이다. 예를 들어, 모듈 또는 유닛 분할은 단지 논리 기능 분할이고 실제 구현에서는 다른 분할일 수 있다. 예를 들어, 다수의 유닛들 또는 컴포넌트들이 또 다른 시스템에 결합 또는 통합될 수 있거나, 일부 특징들이 무시되거나 수행되지 않을 수 있다. 또한, 표시되거나 논의된 상호 결합들 또는 직접 결합들 또는 통신 접속들은 일부 인터페이스들을 통해 구현될 수 있다. 장치들 또는 유닛들 간의 간접 결합들 또는 통신 접속들은 전자적, 기계적, 또는 다른 형태들로 구현될 수 있다.
개별적인 부분들로서 설명된 유닛들은 물리적으로 분리되어 있을 수 있거나 그렇지 않을 수 있고, 유닛들로서 표시된 부분들은 물리적 유닛들일 수 있거나 그렇지 않을 수 있거나, 하나의 위치에 위치되어 있을 수 있거나, 다수의 네트워크 유닛들에 분산되어 있을 수 있다. 유닛들의 일부 또는 전부는 실시예들의 해결책의 목적을 달성하기 위해 실제의 필요에 따라 선택될 수 있다.
또한, 본 발명의 실시예들에서의 기능 유닛들은 하나의 처리 유닛으로 통합될 수 있거나, 또는 이러한 유닛들 각각은 물리적으로 단독으로 존재할 수 있거나, 또는 2개 이상의 유닛이 하나의 유닛으로 통합된다. 통합되는 유닛은 하드웨어의 형태로 구현될 수 있거나, 또는 소프트웨어 기능 유닛의 형태로 구현될 수 있다.
통합된 유닛이 소프트웨어 기능 유닛의 형태로 구현되고, 독립된 제품으로서 판매되거나 이용될 때, 통합된 유닛은 컴퓨터 판독가능 저장 매체에 저장될 수 있다. 이러한 이해에 기초하여, 본질적으로 본 발명의 기술적 해결책들, 또는 종래 기술에 기여하는 부분, 또는 기술적 해결책들 중 일부 또는 전부는 소프트웨어 제품의 형태로 구현될 수 있다. 소프트웨어 제품은 저장 매체에 저장되고, 본 발명의 실시예들에 설명된 방법들의 단계들의 전부 또는 일부를 수행하라고 컴퓨터 디바이스(개인용 컴퓨터, 서버, 또는 네트워크 디바이스일 수 있음) 또는 프로세서에 지시하기 위한 몇 개의 명령어들을 포함한다. 전술한 저장 매체는, USB 플래시 드라이브, 이동식 하드 디스크, 판독 전용 메모리(ROM, Read-Only Memory), 랜덤 액세스 메모리(RAM, Random Access Memory), 자기 디스크, 또는 광 디스크와 같은, 프로그램 코드를 저장할 수 있는 임의의 매체를 포함한다.
상기 설명들은 본 발명의 특정 구현 방식들일 뿐이고, 본 발명의 보호 범위를 제한하려고 의도되는 것은 아니다. 본 발명에 개시된 기술 범위 내에서 본 기술분야의 통상의 기술자에 의해 용이하게 도출될 수 있는 임의의 변형 또는 대체는 본 발명의 보호 범위 내에 있을 수 있다. 따라서, 본 발명의 보호 범위는 청구항들의 보호 범위에 따를 것이다.

Claims (42)

  1. 클러스터링 저장 방법으로서,
    상기 방법은 데이터베이스 시스템에 적용되고,
    저장될 제1 데이터를 행마다(row by row) 상기 데이터베이스 시스템의 로컬 메모리에 캐싱하는 단계;
    제1 정렬 열을 결정하는 단계 - 상기 제1 정렬 열은 상기 로컬 메모리에 캐싱된 데이터를 정렬하는데 사용됨 -;
    상기 로컬 메모리에 캐싱된 제2 데이터가 사전 설정된 조건을 충족하면, 상기 제1 정렬 열에 따라 상기 제2 데이터를 정렬하는 단계 - 상기 제2 데이터는, 상기 제1 데이터에서 상기 로컬 메모리에 캐싱된 데이터임 -; 및
    상기 정렬된 제2 데이터를 클러스터링 방식으로 상기 데이터베이스 시스템의 저장 매체에 저장하는 단계
    를 포함하는, 클러스터링 저장 방법.
  2. 제1항에 있어서,
    상기 사전 설정된 조건은, 상기 로컬 메모리에 캐싱된 상기 제2 데이터의 데이터 양과 상기 로컬 메모리에 저장되도록 허용된 데이터 양 사이의 관계를 나타내기 위해 사용되는, 클러스터링 저장 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 사전 설정된 조건은, 상기 제2 데이터의 행의 수가 제1 사전 설정된 임계값 이상인 것이고,
    상기 로컬 메모리에 캐싱된 상기 제2 데이터가 사전 설정된 조건을 충족하면, 상기 제1 정렬 열에 따라 상기 제2 데이터를 정렬하는 단계는 구체적으로,
    상기 제2 데이터의 행의 수가 상기 제1 사전 설정된 임계값 이상이면, 상기 제1 정렬 열에 따라 상기 제2 데이터를 정렬하는 단계를 포함하는, 클러스터링 저장 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 사전 설정된 조건은, 상기 로컬 메모리의, 상기 제2 데이터에 의해 점유된 사이즈가 제2 사전 설정된 임계값 이상인 것이고;
    상기 로컬 메모리에 캐싱된 상기 제2 데이터가 사전 설정된 조건을 충족하면, 상기 제1 정렬 열에 따라 상기 제2 데이터를 정렬하는 단계는 구체적으로,
    상기 로컬 메모리의, 상기 제2 데이터에 의해 점유된 상기 사이즈가 상기 제2 사전 설정된 임계값 이상이면, 상기 제1 정렬 열에 따라 상기 제2 데이터를 정렬하는 단계를 포함하는, 클러스터링 저장 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 제1 정렬 열에 따라 상기 제2 데이터를 정렬하는 단계는 구체적으로,
    상기 제1 정렬 열의 수치 또는 상기 제1 정렬 열의 수치의 해시 값에 따라 상기 제2 데이터를 정렬하는 단계를 포함하는, 클러스터링 저장 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 정렬된 제2 데이터를 클러스터링 방식으로 상기 데이터베이스 시스템의 저장 매체에 저장하는 단계는 구체적으로,
    상기 정렬된 제2 데이터를 클러스터링 방식으로 상기 저장 매체의 유휴 물리적 블록에 저장하는 단계를 포함하고, 상기 유휴 물리적 블록은 제3 데이터에 의해 점유된 물리적 블록을 제외한 물리적 블록이고, 상기 제3 데이터는, 상기 제1 데이터에서, 상기 제2 데이터 이전에 상기 저장 매체에 클러스터링 방식으로 저장된 데이터인, 클러스터링 저장 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 제1 정렬 열은 물리적 열 및 표현식 중 적어도 하나를 포함하는, 클러스터링 저장 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 제1 데이터가 모두 상기 저장 매체에 저장된 후에, 상기 방법은,
    쿼리 열을 결정하는 단계; 및
    상기 쿼리 열이 상기 제1 정렬 열의 제1 열이면, 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 쿼리 동작을 수행하는 단계
    를 추가로 포함하는, 클러스터링 저장 방법.
  9. 제8항에 있어서,
    상기 쿼리 열을 결정하는 단계 후이며 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 쿼리 동작을 수행하는 단계 전에, 상기 방법은,
    상기 저장 매체에 저장된 상기 제1 데이터를 상기 로컬 메모리로 판독하는 단계를 추가로 포함하고,
    상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 쿼리 동작을 수행하는 단계는 구체적으로,
    상기 로컬 메모리에서 이진 검색 방식으로, 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터의 하나 이상의 데이터 페이지들의 각각의 데이터 페이지에 대한 쿼리 동작을 수행하는 단계를 포함하는, 클러스터링 저장 방법.
  10. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 제1 데이터가 모두 상기 저장 매체에 저장된 후에, 상기 방법은,
    제2 정렬 열을 결정하는 단계; 및
    상기 제2 정렬 열이 상기 제1 정렬 열의 제1 열이면, 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 정렬 동작을 수행하는 단계를 추가로 포함하는, 클러스터링 저장 방법.
  11. 제10항에 있어서,
    상기 제2 정렬 열을 결정하는 단계 후이며 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 정렬 동작을 수행하는 단계 전에, 상기 방법은,
    상기 저장 매체에 저장된 상기 제1 데이터를 상기 로컬 메모리로 판독하는 단계를 추가로 포함하고,
    상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 정렬 동작을 수행하는 단계는 구체적으로,
    상기 로컬 메모리에서, 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 병합 정렬을 수행하는 단계를 포함하는, 클러스터링 저장 방법.
  12. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 제1 데이터가 모두 상기 저장 매체에 저장된 후에, 상기 방법은,
    중합 열(aggregation column)을 결정하는 단계; 및
    상기 중합 열이 상기 제1 정렬 열의 제1 열이면, 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 중합 동작을 수행하는 단계 - 상기 중합 동작은 상기 제1 데이터에서 최대 값 또는 최소 값을 검색하는 동작임 -
    를 추가로 포함하는, 클러스터링 저장 방법.
  13. 제12항에 있어서,
    상기 중합 열을 결정하는 단계 후이며 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 중합 동작을 수행하는 단계 전에, 상기 방법은,
    상기 저장 매체에 저장된 상기 제1 데이터를 상기 로컬 메모리로 판독하는 단계를 추가로 포함하고,
    상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 중합 동작을 수행하는 단계는 구체적으로,
    상기 로컬 메모리에서, 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터의 하나 이상의 데이터 페이지들의 각각의 데이터 페이지에서 최대 값 또는 최소 값을 결정하는 단계; 및
    상기 제1 데이터의 최대 값 또는 최소 값을 결정하기 위해, 각각의 데이터 페이지의 최대 값 또는 최소 값을 연속적으로 비교하는 단계를 포함하는, 클러스터링 저장 방법.
  14. 제1항에 있어서,
    저장될 제1 데이터를 행마다 상기 데이터베이스 시스템의 로컬 메모리에 캐싱하는 단계 전에, 상기 방법은,
    상기 저장 매체에 표를 생성하는 단계 - 상기 표는 상기 제1 데이터를 로딩하는데 사용됨 -
    를 추가로 포함하고;
    상기 정렬된 제2 데이터를 클러스터링 방식으로 상기 데이터베이스 시스템의 저장 매체에 저장하는 단계는 구체적으로,
    상기 정렬된 제2 데이터를 클러스터링 방식으로 상기 저장 매체에 저장하기 위해, 상기 정렬된 제2 데이터를 행마다 상기 표에 삽입하는 단계를 포함하는, 클러스터링 저장 방법.
  15. 클러스터링 저장 장치로서,
    상기 장치는 데이터베이스 시스템에 적용되고,
    저장될 제1 데이터를 행마다 상기 데이터베이스 시스템의 로컬 메모리에 캐싱하도록 구성된 캐싱 유닛;
    제1 정렬 열을 결정하도록 구성된 결정 유닛 - 상기 제1 정렬 열은 상기 로컬 메모리에 캐싱된 데이터를 정렬하는데 사용됨 -;
    상기 캐싱 유닛에 의해 상기 로컬 메모리에 캐싱된 제2 데이터가 사전 설정된 조건을 충족하면, 상기 결정 유닛에 의해 결정된 상기 제1 정렬 열에 따라 상기 제2 데이터를 정렬하도록 구성된 동작 유닛 - 상기 제2 데이터는, 상기 제1 데이터에서 상기 로컬 메모리에 캐싱된 데이터임 -; 및
    상기 동작 유닛에 의해 정렬된 상기 제2 데이터를, 클러스터링 방식으로 상기 데이터베이스 시스템의 저장 매체에 저장하도록 구성된 저장 유닛
    을 포함하는, 클러스터링 저장 장치.
  16. 제15항에 있어서,
    상기 사전 설정된 조건은, 상기 로컬 메모리에 캐싱된 상기 제2 데이터의 데이터 양과 상기 로컬 메모리에 저장되도록 허용된 데이터 양 사이의 관계를 나타내기 위해 사용되는, 클러스터링 저장 장치.
  17. 제15항 또는 제16항에 있어서,
    상기 사전 설정된 조건은, 상기 제2 데이터의 행의 수가 제1 사전 설정된 임계값 이상인 것이고;
    상기 동작 유닛은 구체적으로, 상기 제2 데이터의 행의 수가 상기 제1 사전 설정된 임계값 이상이면, 상기 제1 정렬 열에 따라 상기 제2 데이터를 정렬하도록 구성되는, 클러스터링 저장 장치.
  18. 제15항 또는 제16항에 있어서,
    상기 사전 설정된 조건은, 상기 로컬 메모리의, 상기 제2 데이터에 의해 점유된 사이즈가 제2 사전 설정된 임계값 이상인 것이고;
    상기 동작 유닛은 구체적으로, 상기 로컬 메모리의, 상기 제2 데이터에 의해 점유된 상기 사이즈가 상기 제2 사전 설정된 임계값 이상이면, 상기 제1 정렬 열에 따라 상기 제2 데이터를 정렬하도록 구성되는, 클러스터링 저장 장치.
  19. 제15항 내지 제18항 중 어느 한 항에 있어서,
    상기 동작 유닛은 구체적으로, 상기 결정 유닛에 의해 결정된 상기 제1 정렬 열의 수치 또는 상기 제1 정렬 열의 수치의 해시 값에 따라 상기 제2 데이터를 정렬하도록 구성되는, 클러스터링 저장 장치.
  20. 제15항 내지 제19항 중 어느 한 항에 있어서,
    상기 저장 유닛은 구체적으로, 상기 동작 유닛에 의해 정렬된 상기 제2 데이터를, 클러스터링 방식으로 상기 저장 매체의 유휴 물리적 블록에 저장하도록 구성되고, 상기 유휴 물리적 블록은 제3 데이터에 의해 점유된 물리적 블록을 제외한 물리적 블록이고, 상기 제3 데이터는, 상기 제1 데이터에서, 상기 제2 데이터 이전에 클러스터링 방식으로 상기 저장 매체에 저장된 데이터인, 클러스터링 저장 장치.
  21. 제15항 내지 제20항 중 어느 한 항에 있어서,
    상기 결정 유닛에 의해 결정된 상기 제1 정렬 열은 물리적 열 및 표현식 중 적어도 하나를 포함하는, 클러스터링 저장 장치.
  22. 제15항 내지 제21항 중 어느 한 항에 있어서,
    상기 결정 유닛은 또한, 상기 저장 유닛이 상기 제1 데이터를 모두 상기 저장 매체에 저장한 후에, 쿼리 열을 결정하도록 구성되고;
    상기 동작 유닛은 또한, 상기 결정 유닛에 의해 결정된 상기 쿼리 열이 상기 제1 정렬 열의 제1 열이면, 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 쿼리 동작을 수행하도록 구성되는, 클러스터링 저장 장치.
  23. 제22항에 있어서,
    상기 캐싱 유닛은 또한, 상기 결정 유닛이 상기 쿼리 열을 결정한 후이며 상기 동작 유닛이 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 상기 쿼리 동작을 수행하기 전에, 상기 저장 매체에 저장된 상기 제1 데이터를 상기 로컬 메모리로 판독하도록 구성되고;
    상기 동작 유닛은 구체적으로, 상기 로컬 메모리에서 이진 검색 방식으로 상기 제1 정렬 열의 제1 열에 따라, 상기 캐싱 유닛에 캐싱된 상기 제1 데이터의 하나 이상의 데이터 페이지들의 각각의 데이터 페이지에 대한 쿼리 동작을 수행하도록 구성되는, 클러스터링 저장 장치.
  24. 제15항 내지 제21항 중 어느 한 항에 있어서,
    상기 결정 유닛은 또한, 상기 저장 유닛이 상기 제1 데이터를 모두 상기 저장 매체에 저장한 후에, 제2 정렬 열을 결정하도록 구성되고;
    상기 동작 유닛은 또한, 상기 결정 유닛에 의해 결정된 상기 제2 정렬 열이 상기 제1 정렬 열의 제1 열이면, 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 정렬 동작을 수행하도록 구성되는, 클러스터링 저장 장치.
  25. 제24항에 있어서,
    상기 캐싱 유닛은 또한, 상기 결정 유닛이 상기 제2 정렬 열을 결정한 후이며 상기 동작 유닛이 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 정렬 동작을 수행하기 전에, 상기 저장 매체에 저장된 상기 제1 데이터를 상기 로컬 메모리로 판독하도록 구성되고;
    상기 동작 유닛은 구체적으로, 상기 로컬 메모리에서 상기 제1 정렬 열의 제1 열에 따라, 상기 캐싱 유닛에 의해 캐싱된 상기 제1 데이터에 대한 병합 정렬을 수행하도록 구성되는, 클러스터링 저장 장치.
  26. 제15항 내지 제21항 중 어느 한 항에 있어서,
    상기 결정 유닛은 또한, 상기 저장 유닛이 상기 제1 데이터를 모두 상기 저장 매체에 저장한 후에, 중합 열을 결정하도록 구성되고;
    상기 동작 유닛은 또한, 상기 결정 유닛에 의해 결정된 상기 중합 열이 상기 제1 정렬 열의 제1 열이면, 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 중합 동작을 수행하도록 구성되고, 상기 중합 동작은 상기 제1 데이터에서 최대 값 또는 최소 값을 검색하는 동작인, 클러스터링 저장 장치.
  27. 제26항에 있어서,
    상기 캐싱 유닛은 또한, 상기 결정 유닛이 상기 중합 열을 결정한 후이며 상기 동작 유닛이 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 중합 동작을 수행하기 전에, 상기 저장 매체에 저장된 상기 제1 데이터를 상기 로컬 메모리로 판독하도록 구성되고;
    상기 동작 유닛은 구체적으로, 상기 로컬 메모리에서 상기 제1 정렬 열의 제1 열에 따라, 상기 캐싱 유닛에 의해 캐싱된 상기 제1 데이터의 하나 이상의 데이터 페이지들의 각각의 데이터 페이지에서 최대 값 또는 최소 값을 결정하고, 상기 제1 데이터의 최대 값 또는 최소 값을 결정하기 위해, 각각의 데이터 페이지의 상기 최대 값 또는 상기 최소 값을 연속적으로 비교하도록 구성되는, 클러스터링 저장 장치.
  28. 제15항에 있어서,
    상기 클러스터링 저장 장치는 생성 유닛을 추가로 포함하고,
    상기 생성 유닛은, 상기 캐싱 유닛이 상기 저장될 제1 데이터를 행마다 상기 데이터베이스 시스템의 상기 로컬 메모리에 캐싱하기 전에, 상기 저장 매체에 표를 생성하도록 구성되고, 상기 표는 상기 제1 데이터를 로딩하는데 사용되고;
    상기 동작 유닛은 구체적으로, 상기 정렬된 제2 데이터를 클러스터링 방식으로 상기 저장 매체에 저장하기 위해, 상기 정렬된 제2 데이터를 행마다, 상기 생성 유닛에 의해 생성된 상기 표에 삽입하도록 구성되는, 클러스터링 저장 장치.
  29. 데이터베이스 시스템으로서,
    최하위 계층(bottom-layer) 저장 매체;
    상기 최하위 계층 저장 매체에 연결되고 상기 최하위 계층 저장 매체의 캐시로서 기능하도록 구성된 메모리; 및
    상기 메모리에 연결되고 상기 메모리에 있는 명령어를 실행하는 프로세서
    를 포함하고, 상기 프로세서는,
    저장될 제1 데이터를 행마다 상기 메모리에 캐싱하고; 제1 정렬 열을 결정하고; 상기 메모리에 캐싱된 제2 데이터가 사전 설정된 조건을 충족하면, 상기 제1 정렬 열에 따라 상기 제2 데이터를 정렬하고; 상기 정렬된 제2 데이터를 클러스터링 방식으로 상기 최하위 계층 저장 매체에 저장하도록 구성되고, 상기 제1 정렬 열은 상기 메모리에 캐싱된 데이터를 정렬하는데 사용되고, 상기 제2 데이터는, 상기 제1 데이터에서, 상기 메모리에 캐싱된 데이터인, 데이터베이스 시스템.
  30. 제29항에 있어서,
    상기 사전 설정된 조건은, 상기 메모리에 캐싱된 상기 제2 데이터의 데이터 양과 상기 메모리에 저장되도록 허용된 데이터 양 사이의 관계를 나타내기 위해 사용되는, 데이터베이스 시스템.
  31. 제29항 또는 제30항에 있어서,
    상기 사전 설정된 조건은, 상기 제2 데이터의 행의 수가 제1 사전 설정된 임계값 이상인 것이고;
    상기 메모리에 캐싱된 제2 데이터가 사전 설정된 조건을 충족하면, 상기 제1 정렬 열에 따라 상기 제2 데이터를 정렬하는 양태에 있어서, 상기 프로세서는 구체적으로, 상기 제2 데이터의 행의 수가 상기 제1 사전 설정된 임계값 이상이면, 상기 제1 정렬 열에 따라 상기 제2 데이터를 정렬하도록 구성되는, 데이터베이스 시스템.
  32. 제29항 또는 제30항에 있어서,
    상기 사전 설정된 조건은, 상기 메모리의, 상기 제2 데이터에 의해 점유된 사이즈가 제2 사전 설정된 임계값 이상인 것이고;
    상기 메모리에 캐싱된 상기 제2 데이터가 사전 설정된 조건을 충족하면, 상기 제1 정렬 열에 따라 상기 제2 데이터를 정렬하는 양태에 있어서, 상기 프로세서는 구체적으로, 상기 제2 데이터에 의해 점유된 상기 사이즈가 상기 제2 사전 설정된 임계값 이상이면, 상기 제1 정렬 열에 따라 상기 제2 데이터를 정렬하도록 구성되는, 데이터베이스 시스템.
  33. 제29항 내지 제32항 중 어느 한 항에 있어서,
    상기 제1 정렬 열에 따라 상기 제2 데이터를 정렬하는 양태에 있어서, 상기 프로세서는 구체적으로, 상기 제1 정렬 열의 수치 또는 상기 제1 정렬 열의 수치의 해시 값에 따라 상기 제2 데이터를 정렬하도록 구성되는, 데이터베이스 시스템.
  34. 제29항 내지 제33항 중 어느 한 항에 있어서,
    상기 정렬된 제2 데이터를 클러스터링 방식으로 상기 최하위 계층 저장 매체에 저장하는 양태에 있어서, 상기 프로세서는 구체적으로, 상기 제2 데이터를 클러스터링 방식으로 상기 최하위 계층 저장 매체의 유휴 물리적 블록에 저장하도록 구성되고, 상기 유휴 물리적 블록은 제3 데이터에 의해 점유된 물리적 블록을 제외한 물리적 블록이고, 상기 제3 데이터는, 상기 제1 데이터에서, 상기 제2 데이터 이전에 클러스터링 방식으로 상기 최하위 계층 저장 매체에 저장된 데이터인, 데이터베이스 시스템.
  35. 제29항 내지 제34항 중 어느 한 항에 있어서,
    상기 프로세서에 의해 결정된 상기 제1 정렬 열은 물리적 열 및 표현식 중 적어도 하나를 포함하는, 데이터베이스 시스템.
  36. 제29항 내지 제35항 중 어느 한 항에 있어서,
    상기 프로세서는 또한, 상기 제1 데이터가 모두 상기 최하위 계층 저장 매체에 저장된 후에, 쿼리 열을 결정하고; 상기 쿼리 열이 상기 제1 정렬 열의 제1 열이면, 상기 제1 정렬 열의 상기 제1 열에 따라 상기 제1 데이터에 대한 쿼리 동작을 수행하도록 구성되는, 데이터베이스 시스템.
  37. 제36항에 있어서,
    상기 프로세서는 또한, 상기 쿼리 열을 결정한 후이며 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 상기 쿼리 동작을 수행하기 전에, 상기 최하위 계층 저장 매체에 저장된 상기 제1 데이터를 상기 메모리로 판독하고; 상기 메모리에서 이진 검색 방식으로, 상기 제1 정렬 열의 상기 제1 열에 따라 상기 제1 데이터의 하나 이상의 데이터 페이지들의 각각의 데이터 페이지에 대한 쿼리 동작을 수행하도록 구성되는, 데이터베이스 시스템.
  38. 제29항 내지 제35항 중 어느 한 항에 있어서,
    상기 프로세서는 또한, 상기 제1 데이터가 모두 상기 최하위 계층 저장 매체에 저장된 후에, 제2 정렬 열을 결정하고; 상기 제2 정렬 열이 상기 제1 정렬 열의 제1 열이면, 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 정렬 동작을 수행하도록 구성되는, 데이터베이스 시스템.
  39. 제38항에 있어서,
    상기 프로세서는 또한, 상기 제2 정렬 열을 결정한 후이며 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 정렬 동작을 수행하기 전에, 상기 최하위 계층 저장 매체에 저장된 상기 제1 데이터를 상기 메모리로 판독하고; 상기 메모리에서, 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 병합 정렬을 수행하도록 구성되는, 데이터베이스 시스템.
  40. 제29항 내지 제35항 중 어느 한 항에 있어서,
    상기 프로세서는 또한, 상기 제1 데이터가 모두 상기 최하위 계층 저장 매체에 저장된 후에, 중합 열을 결정하고; 상기 중합 열이 상기 제1 정렬 열의 제1 열이면, 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 중합 동작을 수행하도록 구성되고, 상기 중합 동작은 상기 제1 데이터에서 최대 값 또는 최소 값을 검색하는 동작인, 데이터베이스 시스템.
  41. 제40항에 있어서,
    상기 프로세서는 또한, 상기 중합 열을 결정한 후이며 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터에 대한 중합 동작을 수행하기 전에, 상기 최하위 계층 저장 매체에 저장된 상기 제1 데이터를 상기 메모리로 판독하고; 상기 메모리에서, 상기 제1 정렬 열의 제1 열에 따라 상기 제1 데이터의 하나 이상의 데이터 페이지들의 각각의 데이터 페이지에서 최대 값 또는 최소 값을 결정하고; 상기 제1 데이터의 최대 값 또는 최소 값을 결정하기 위해, 각각의 데이터 페이지의 상기 최대 값 또는 상기 최소 값을 연속적으로 비교하도록 구성되는, 데이터베이스 시스템.
  42. 제29항에 있어서,
    상기 프로세서는 또한, 상기 저장될 제1 데이터가 행마다 상기 메모리에 캐싱되기 전에, 상기 최하위 계층 저장 매체에 표를 생성하고; 상기 정렬된 제2 데이터를 클러스터링 방식으로 상기 최하위 계층 저장 매체에 저장하기 위해, 상기 정렬된 제2 데이터를 행마다 상기 표에 삽입하도록 구성되고, 상기 표는 상기 제1 데이터를 로딩하는데 사용되는, 데이터베이스 시스템.
KR1020167033902A 2014-05-27 2014-11-24 클러스터링 저장 방법 및 장치 KR101972645B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410228979.8A CN104021161B (zh) 2014-05-27 2014-05-27 一种聚簇存储方法及装置
CN201410228979.8 2014-05-27
PCT/CN2014/092058 WO2015180432A1 (zh) 2014-05-27 2014-11-24 一种聚簇存储方法及装置

Publications (2)

Publication Number Publication Date
KR20160148703A true KR20160148703A (ko) 2016-12-26
KR101972645B1 KR101972645B1 (ko) 2019-08-23

Family

ID=51437915

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167033902A KR101972645B1 (ko) 2014-05-27 2014-11-24 클러스터링 저장 방법 및 장치

Country Status (7)

Country Link
US (1) US10817258B2 (ko)
EP (1) EP3133505A4 (ko)
JP (1) JP6553649B2 (ko)
KR (1) KR101972645B1 (ko)
CN (2) CN108897761B (ko)
RU (1) RU2663358C2 (ko)
WO (1) WO2015180432A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101969652B1 (ko) * 2017-11-17 2019-04-16 경북대학교 산학협력단 데이터 전달 장치, 방법과 그를 이용한 사물 인터넷 시스템, 데이터 전달 방법을 실행하기 위한 프로그램이 기록된 기록매체 및 하드웨어와 결합하여 데이터 전달 방법을 실행하기 위하여 매체에 저장된 프로그램

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108897761B (zh) 2014-05-27 2023-01-13 华为技术有限公司 一种聚簇存储方法及装置
US20160306810A1 (en) * 2015-04-15 2016-10-20 Futurewei Technologies, Inc. Big data statistics at data-block level
CN108304408B (zh) * 2017-01-12 2021-04-02 中国移动通信集团公司 一种缓存数据刷新方法及装置
CN107239381B (zh) * 2017-06-07 2021-09-07 北京奇虎科技有限公司 崩溃信息的处理方法、装置及系统
CN108009195B (zh) * 2017-10-23 2022-06-28 环亚数据技术有限公司 一种基于大数据的降维转换方法、电子设备、存储介质
CN109918369B (zh) * 2017-12-13 2024-01-23 金篆信科有限责任公司 数据存储方法及装置
CN110858122B (zh) * 2018-08-23 2023-10-20 杭州海康威视系统技术有限公司 存储数据的方法和装置
CN109189763A (zh) * 2018-09-17 2019-01-11 北京锐安科技有限公司 一种数据存储方法、装置、服务器及存储介质
CN109634955B (zh) * 2018-11-15 2021-07-27 金蝶软件(中国)有限公司 数据存储方法、数据检索方法和装置
CN111339210B (zh) * 2018-12-18 2023-04-28 杭州海康威视数字技术股份有限公司 数据聚类方法及装置
CN109783052B (zh) * 2018-12-27 2021-11-12 深圳市轱辘车联数据技术有限公司 数据排序方法、装置、服务器及计算机可读存储介质
CN109949378B (zh) * 2019-03-26 2021-06-08 中国科学院软件研究所 图像灰度值排序方法、装置、电子设备及计算机可读介质
CN112148691B (zh) * 2019-06-27 2024-03-26 金世超 数据存储方法和数据存储引擎
CN111221917B (zh) * 2019-10-12 2023-05-26 中国平安财产保险股份有限公司 智能分区存储方法、装置及计算机可读存储介质
CN111581929B (zh) * 2020-04-22 2022-09-27 腾讯科技(深圳)有限公司 基于表格的文本生成方法及相关装置
CN111708954B (zh) * 2020-05-22 2023-10-27 微梦创科网络科技(中国)有限公司 一种排行榜的排名方法及系统
CN113900622B (zh) * 2021-09-22 2022-04-08 中国科学院国家空间科学中心 一种基于fpga的数据信息快速排序方法、系统、设备及存储介质
CN115576947A (zh) * 2022-10-19 2023-01-06 北京力控元通科技有限公司 一种数据管理方法、装置、组合库、电子设备及存储介质
CN116150212B (zh) * 2023-04-24 2023-07-07 苏州映赛智能科技有限公司 数据处理方法及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110102554A (ko) * 2010-03-11 2011-09-19 이너비트 주식회사 컬럼 내의 부분 인덱싱을 이용한 임베디드 디비엠에스의 인덱스 생성 방법과 이를 이용한 데이터 검색 방법 및 데이터 소팅방법
KR20130097973A (ko) * 2012-02-27 2013-09-04 삼성전자주식회사 작업 부하를 고려한 하드웨어 가속화 기반의 대규모 데이터의 분산 처리 장치 및 방법
KR20130108565A (ko) * 2010-09-10 2013-10-04 아브 이니티오 테크놀로지 엘엘시 속성을 기초로 하는 데이터 선택의 관리
KR20130126257A (ko) * 2012-05-11 2013-11-20 네이버비즈니스플랫폼 주식회사 할당 테이블을 이용한 파일 캐시 시스템 및 방법 그리고 파일 캐시 어플리케이션을 배포하는 배포 시스템 및 배포 방법

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0581342A (ja) * 1991-09-21 1993-04-02 Toshiba Corp データ処理装置
JPH0581343A (ja) * 1991-09-21 1993-04-02 Toshiba Corp データ処理装置
US5742806A (en) * 1994-01-31 1998-04-21 Sun Microsystems, Inc. Apparatus and method for decomposing database queries for database management system including multiprocessor digital data processing system
US6026406A (en) * 1997-06-04 2000-02-15 Oracle Corporation Batch processing of updates to indexes
JP3864703B2 (ja) * 2001-01-11 2007-01-10 豊田合成株式会社 エアバッグとそのラッピング方法
US6907422B1 (en) * 2001-12-18 2005-06-14 Siebel Systems, Inc. Method and system for access and display of data from large data sets
US20030158842A1 (en) * 2002-02-21 2003-08-21 Eliezer Levy Adaptive acceleration of retrieval queries
US7370068B1 (en) * 2002-09-04 2008-05-06 Teradata Us, Inc. Sorting of records with duplicate removal in a database system
US6910106B2 (en) 2002-10-04 2005-06-21 Microsoft Corporation Methods and mechanisms for proactive memory management
JP2005135221A (ja) * 2003-10-31 2005-05-26 Turbo Data Laboratory:Kk 表形式データの結合方法、結合装置およびプログラム
US8478755B2 (en) 2006-04-20 2013-07-02 Microsoft Corporation Sorting large data sets
US20080059492A1 (en) 2006-08-31 2008-03-06 Tarin Stephen A Systems, methods, and storage structures for cached databases
US8108355B2 (en) * 2006-10-27 2012-01-31 Hewlett-Packard Development Company, L.P. Providing a partially sorted index
US20080133493A1 (en) * 2006-12-04 2008-06-05 Michael Bender Method for maintaining database clustering when replacing tables with inserts
US20080250120A1 (en) * 2007-02-22 2008-10-09 Colin Kennedy Mick Method and apparatus for distributing a multimedia file to a public kiosk across a network
US8478775B2 (en) * 2008-10-05 2013-07-02 Microsoft Corporation Efficient large-scale filtering and/or sorting for querying of column based data encoded structures
US20100088309A1 (en) * 2008-10-05 2010-04-08 Microsoft Corporation Efficient large-scale joining for querying of column based data encoded structures
US10152504B2 (en) * 2009-03-11 2018-12-11 Actian Netherlands B.V. Column-store database architecture utilizing positional delta tree update system and methods
WO2010148415A1 (en) * 2009-06-19 2010-12-23 Blekko, Inc. Scalable cluster database
CN102591864B (zh) * 2011-01-06 2015-03-25 上海银晨智能识别科技有限公司 比对系统中的数据更新方法及装置
US8229917B1 (en) * 2011-02-24 2012-07-24 International Business Machines Corporation Database query optimization using clustering data mining
US20120310917A1 (en) * 2011-05-31 2012-12-06 International Business Machines Corporation Accelerated Join Process in Relational Database Management System
US8543538B2 (en) * 2011-06-01 2013-09-24 Clustrix, Inc. Systems and methods for redistributing data in a relational database
US20120323923A1 (en) * 2011-06-14 2012-12-20 Bank Of America Corporation Sorting Data in Limited Memory
CN102314505B (zh) 2011-09-07 2016-04-13 北京人大金仓信息技术股份有限公司 基于偏序关系的缓冲区版本产生方法
CN102521304A (zh) * 2011-11-30 2012-06-27 北京人大金仓信息技术股份有限公司 基于哈希的聚簇表存储方法
US9430550B2 (en) * 2012-09-28 2016-08-30 Oracle International Corporation Clustering a table in a relational database management system
CN103810209B (zh) * 2012-11-14 2019-05-10 腾讯科技(深圳)有限公司 一种保存数据的方法及系统
US9213716B2 (en) * 2013-03-12 2015-12-15 Sap Se Hierarchical indicies
KR101720602B1 (ko) * 2013-08-29 2017-03-29 후아웨이 테크놀러지 컴퍼니 리미티드 데이터를 저장하기 위한 방법 및 장치
US10133800B2 (en) * 2013-09-11 2018-11-20 Microsoft Technology Licensing, Llc Processing datasets with a DBMS engine
CN103577559A (zh) * 2013-10-23 2014-02-12 华为技术有限公司 数据排序方法和装置
CN103631940B (zh) * 2013-12-09 2017-02-08 中国联合网络通信集团有限公司 一种应用于hbase数据库的数据写入方法及系统
CN108897761B (zh) 2014-05-27 2023-01-13 华为技术有限公司 一种聚簇存储方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110102554A (ko) * 2010-03-11 2011-09-19 이너비트 주식회사 컬럼 내의 부분 인덱싱을 이용한 임베디드 디비엠에스의 인덱스 생성 방법과 이를 이용한 데이터 검색 방법 및 데이터 소팅방법
KR20130108565A (ko) * 2010-09-10 2013-10-04 아브 이니티오 테크놀로지 엘엘시 속성을 기초로 하는 데이터 선택의 관리
KR20130097973A (ko) * 2012-02-27 2013-09-04 삼성전자주식회사 작업 부하를 고려한 하드웨어 가속화 기반의 대규모 데이터의 분산 처리 장치 및 방법
KR20130126257A (ko) * 2012-05-11 2013-11-20 네이버비즈니스플랫폼 주식회사 할당 테이블을 이용한 파일 캐시 시스템 및 방법 그리고 파일 캐시 어플리케이션을 배포하는 배포 시스템 및 배포 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101969652B1 (ko) * 2017-11-17 2019-04-16 경북대학교 산학협력단 데이터 전달 장치, 방법과 그를 이용한 사물 인터넷 시스템, 데이터 전달 방법을 실행하기 위한 프로그램이 기록된 기록매체 및 하드웨어와 결합하여 데이터 전달 방법을 실행하기 위하여 매체에 저장된 프로그램

Also Published As

Publication number Publication date
EP3133505A1 (en) 2017-02-22
WO2015180432A1 (zh) 2015-12-03
EP3133505A4 (en) 2017-03-22
CN108897761A (zh) 2018-11-27
CN108897761B (zh) 2023-01-13
US10817258B2 (en) 2020-10-27
US20170075657A1 (en) 2017-03-16
CN104021161A (zh) 2014-09-03
JP6553649B2 (ja) 2019-07-31
CN104021161B (zh) 2018-06-15
KR101972645B1 (ko) 2019-08-23
RU2016150418A3 (ko) 2018-07-02
RU2016150418A (ru) 2018-07-02
JP2017526027A (ja) 2017-09-07
RU2663358C2 (ru) 2018-08-03

Similar Documents

Publication Publication Date Title
US10817258B2 (en) Clustering storage method and apparatus
US7689574B2 (en) Index and method for extending and querying index
US10114908B2 (en) Hybrid table implementation by using buffer pool as permanent in-memory storage for memory-resident data
US20160196277A1 (en) Data record compression with progressive and/or selective decompression
US9305041B2 (en) Compression of serialized B-tree data
WO2020057272A1 (zh) 一种索引数据存储及检索方法、装置及存储介质
US10963440B2 (en) Fast incremental column store data loading
JP2014519123A (ja) インデックスドキュメントの発見
CN105989015B (zh) 一种数据库扩容方法和装置以及访问数据库的方法和装置
WO2016107497A1 (en) Method and apparatus for scalable sorting of data set
US20230124432A1 (en) Database Indexing Using Structure-Preserving Dimensionality Reduction to Accelerate Database Operations
WO2022105497A1 (zh) 文本筛选方法、装置、设备及存储介质
WO2022187016A1 (en) Measuring and improving index quality in a distributed data system
CN108920687B (zh) 一种基于Lucene索引段的合并优化方法
US9824105B2 (en) Adaptive probabilistic indexing with skip lists
JP2000090115A (ja) インデクス作成方法および検索方法
JP2014130498A (ja) ファセットを提示する装置及び方法
Dang et al. Fast forward index methods for pseudo-relevance feedback retrieval
Veretennikov An efficient algorithm for three-component key index construction
CN111177156B (zh) 一种大数据存储方法及系统
KR101311409B1 (ko) 부분적인 인덱스 rid 정렬을 통한 파티션 스캔 방법 및 장치, 메모리 시스템, 및 데이터 정렬 방법
US20230229657A1 (en) Zero Copy Optimization for SELECT * Queries
WO2023141987A1 (zh) 文件读取方法和装置
US20220188201A1 (en) System for storing data redundantly, corresponding method and computer program
Macyna et al. Bulk Loading of the Secondary Index in LSM-Based Stores for Flash Memory

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