JP2019029011A - 最適なソートキーの圧縮およびインデックスの再構築 - Google Patents
最適なソートキーの圧縮およびインデックスの再構築 Download PDFInfo
- Publication number
- JP2019029011A JP2019029011A JP2018135727A JP2018135727A JP2019029011A JP 2019029011 A JP2019029011 A JP 2019029011A JP 2018135727 A JP2018135727 A JP 2018135727A JP 2018135727 A JP2018135727 A JP 2018135727A JP 2019029011 A JP2019029011 A JP 2019029011A
- Authority
- JP
- Japan
- Prior art keywords
- index
- key
- bit position
- bitmap
- bit
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000007906 compression Methods 0.000 title abstract description 27
- 230000006835 compression Effects 0.000 title abstract description 26
- 238000000034 method Methods 0.000 claims abstract description 33
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000010076 replication Effects 0.000 description 6
- 238000010276 construction Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000007667 floating Methods 0.000 description 4
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000006698 induction Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006993 memory improvement Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】データベースインデックスのインデックスキーに関する弁別ビット位置をプロセッサによって決定することと、インデックスキーのビットの連結をプロセッサによって決定することと、連結のレコードを生成することとを含むシステムおよび方法。他のシステムおよび方法は、データベースインデックスのインデックスキーを並列にプロセッサによって収集することであって、目標テーブルのデータページが複数のプロセッサコアに均等に分散される、ことと、データページをコアの各々によってスキャンして、圧縮されたキーおよび対応するレコード識別子を抽出することと、並列ソートアルゴリズムに従って、圧縮されたキーと対応するレコード識別子とのペアを複数のプロセッサコアによってソートすることと、インデックスツリーをボトムアップで生成することと、生成されたインデックスツリーのレコードを記憶することとを含む。
【選択図】図5
Description
1. DBテーブルのデータページ(data page)が、利用可能なコアに均等に分散される。
2. 各コアが、データページから圧縮されたキー(弁別ビット)を抽出する。
3. 本明細書においては行-列ソートと呼ばれる並列ソートアルゴリズムによって圧縮されたキーをソートする。
4. インデックスツリーを並列に構築する。
・D > Djである場合、DjはD-bit(keyi, keyj)であり、Dj = mini<k≦j Dkである。
・D < Djである場合、DはD-bit(keyi, keyj)であり、D = mini<k≦j Dkである。
1. Kを用いてインデックスツリーを下に検索し、挿入のための適切な場所(たとえば、2つのキーAとBとの間)を見つける。
2. 弁別ビット位置D-bit(A, K)およびD-bit(K, B)を計算する。
3. 挿入に対応するインデックスツリー内の変更を行い、D'ビットマップおよび可変ビットマップを以下のように更新する。D'ビットマップに関しては、ビット位置D-bit(A, B)を削除し、新しい弁別ビット位置D-bit(A, K)およびD-bit(K, B)を追加する。しかし、補題1により、D-bit(A, B) = min(D-bit(A, K), D-bit(K, B))である。最小の位置がD'ビットマップ内に既に設定されているので、max(D-bit(A, K), D-bit(K, B))がまだ設定されていない場合、D'ビットマップにmax(D-bit(A, K), D-bit(K, B))を設定しさえすればよい。可変ビットマップに関しては、Kおよび参照キー値に対してビット毎の排他的ORを実行し、可変ビットマップおよび上述のビット毎の排他的ORの結果に対してビット毎のORを実行する。結果は、新しい可変ビットマップになる。D'ビットマップに対する実際の書き込み操作の数は、D'ビットマップ内の1の数によって制限されることに留意されたい。したがって、D'ビットマップに対する実際の書き込み操作が挿入中に発生する可能性は非常に低い。これは、可変ビットマップに関しても同じである。
1. 部分キーのビット位置が圧縮されたキーに含まれる場合、ビット値が、圧縮されたキーから直接コピーされ得る。
2. ビット位置が可変ビットマップ内に値0を有する位置(すなわち、不変ビット位置)である場合、ビット値が、参照キー値からコピーされ得る。
3. それ以外の場合(すなわち、D'ビットマップ内に値0を有し、可変ビットマップ内に値1を有するビット位置)、2つの選択肢を有する。
a. 部分キーの構築のために必要とされるビット(弁別ビット位置の後のpビット)を圧縮されたキーに加え、それらのビットをここでインデックス構築のために使用する。
a. レコードIDもソートキーに含まれるので、必要なビットが、レコードからコピーされる可能性があり、そのために、参照先のデータを得ることが必要とされる。
300 テーブル
400 インデックスツリー
405 葉ノードのヘッダ
505 目標テーブル
510 ページのグループ分け
515 ページのグループ分け
540 ツリー
545 ツリー
550 インデックスツリー
605 完全なキー
610 D'ビットマップ
615 マスク
620 マスク
625 マスク
635 シフト
640 ビット毎のOR
700 装置
705 プロセッサ
710 メモリ
715 入力デバイス
720 通信デバイス
725 出力デバイス
730 データストレージデバイス
Claims (20)
- コンピュータによって実施される方法であって、
データベースインデックスのインデックスキーに関する弁別ビット位置をプロセッサによって決定するステップと、
前記インデックスキーの前記ビットの連結を前記プロセッサによって決定するステップと、
前記連結のレコードを生成するステップとを含む、方法。 - 前記連結が、データベース上の前記インデックスキーのすべてに関して決定される、請求項1に記載の方法。
- 前記連結に基づいて前記インデックスキーの辞書式順序を決定するステップをさらに含む請求項1に記載の方法。
- コンピュータによって実施される方法であって、
データベースインデックスのインデックスキーに関する弁別ビット位置をプロセッサによって決定するステップと、
前記弁別ビット位置を第1のビットマップとして表すステップであって、前記第1のビットマップ内の各弁別ビットの位置が、前記インデックスキー内の前記弁別ビットの位置に対応する、ステップと、
前記インデックスキーの可変ビット位置を第2のビットマップとして表すステップであって、前記可変ビット位置が、ビット位置に関するすべてのキー値が同一ではないビット位置である、ステップと、
前記インデックスキーの不変ビット位置に関する参照キー値を割り当てるステップであって、前記不変ビット位置が、ビット位置に関するすべてのキー値が同一であるビット位置である、ステップと、
前記データベースインデックスに関するデータベース操作中に前記第1のビットマップ、前記第2のビットマップ、および前記参照キー値のレコードを維持するステップとを含む、方法。 - 前記データベース操作が、挿入操作、削除操作、および更新操作のうちの少なくとも1つである、請求項4に記載の方法。
- 前記第1のビットマップに関して、前記第1のビットマップ内のビットに関するゼロに等しい値が、前記ビット位置が弁別ビット位置でないことを示し、前記第1のビットマップ内のビットに関する値1が、前記ビット位置が弁別ビット位置である可能性があることを示す、請求項4に記載の方法。
- 前記第2のビットマップに関して、前記第2のビットマップ内のビットに関するゼロに等しい値が、前記ビット位置が可変ビット位置でないことを示し、前記第2のビットマップ内のビットに関する値1が、前記ビット位置が可変ビット位置である可能性があることを示す、請求項4に記載の方法。
- 前記不変ビット位置に関する前記キー値が同一であるので、前記不変ビット位置に割り当てられた前記参照キー値が、任意のインデックスキー値である、請求項4に記載の方法。
- コンピュータによって実施される方法であって、
データベースインデックスのインデックスキーを並列にプロセッサによって収集するステップであって、目標テーブルのデータページが複数のプロセッサコアに均等に分散される、ステップと、
前記データページを前記コアの各々によってスキャンして、圧縮されたキーおよび対応するレコード識別子を抽出するステップと、
並列ソートアルゴリズムに従って、前記圧縮されたキーと前記対応するレコード識別子とのペアを複数の前記プロセッサコアによってソートするステップと、
インデックスツリーをボトムアップで生成するステップと、
生成された前記インデックスツリーのレコードを記憶するステップとを含む、方法。 - 圧縮されたキーおよび対応するレコード識別子がソートキーを含む、請求項9に記載の方法。
- システムであって、
プロセッサ実行可能命令を記憶するメモリと、
前記プロセッサ実行可能命令を実行して、前記システムに、
データベースインデックスのインデックスキーに関する弁別ビット位置を決定させ、
前記インデックスキーの前記ビットの連結を決定させ、
前記連結のレコードを生成させる、
プロセッサと、を含むシステム。 - 前記連結が、データベース上の前記インデックスキーのすべてに関して決定される、請求項11に記載のシステム。
- 前記プロセッサが前記プロセッサ実行可能命令を実行して、前記システムに前記連結に基づいて前記インデックスキーの辞書式順序を決定させることをさらに含む、請求項11に記載のシステム。
- システムであって、
プロセッサ実行可能命令を記憶するメモリ、ならびに、
前記プロセッサ実行可能命令を実行して、前記システムに、
データベースインデックスのインデックスキーに関する弁別ビット位置を決定することと、
前記弁別ビット位置を第1のビットマップとして表すことであって、前記第1のビットマップ内の各弁別ビットの位置が、前記インデックスキー内の前記弁別ビットの位置に対応する、ことと、
前記インデックスキーの可変ビット位置を第2のビットマップとして表すことであって、前記可変ビット位置が、ビット位置に関するすべてのキー値が同一ではないビット位置である、ことと、
前記インデックスキーの不変ビット位置に関する参照キー値を割り当てることであって、前記不変ビット位置が、ビット位置に関するすべてのキー値が同一であるビット位置である、ことと、
前記データベースインデックスに関するデータベース操作中に前記第1のビットマップ、前記第2のビットマップ、および前記参照キー値のレコードを維持することと
を行わせるプロセッサ、
を含むシステム。 - 前記データベース操作が、挿入操作、削除操作、および更新操作のうちの少なくとも1つである、請求項14に記載のシステム。
- 前記第1のビットマップに関して、前記第1のビットマップ内のビットに関するゼロに等しい値が、前記ビット位置が弁別ビット位置でないことを示し、前記第1のビットマップ内のビットに関する値1が、前記ビット位置が弁別ビット位置である可能性があることを示す、請求項14に記載のシステム。
- 前記第2のビットマップに関して、前記第2のビットマップ内のビットに関するゼロに等しい値が、前記ビット位置が可変ビット位置でないことを示し、前記第2のビットマップ内のビットに関する値1が、前記ビット位置が可変ビット位置である可能性があることを示す、請求項14に記載のシステム。
- 前記不変ビット位置に関する前記キー値が同一であるので、前記不変ビット位置に割り当てられた前記参照キー値が、任意のインデックスキー値である、請求項14に記載のシステム。
- システムであって、
プロセッサ実行可能命令を記憶するメモリ、ならびに
複数のプロセッサコアであって、前記プロセッサ実行可能命令を実行して、前記システムに、
データベースインデックスのインデックスキーを並列に収集することであって、目標テーブルのデータページが前記複数のプロセッサコアに均等に分散される、ことと、
前記データページを前記コアの各々によってスキャンして、圧縮されたキーおよび対応するレコード識別子を抽出することと、
並列ソートアルゴリズムに従って、前記圧縮されたキーと前記対応するレコード識別子とのペアを複数の前記プロセッサコアによってソートすることと、
インデックスツリーをボトムアップで生成することと、
生成された前記インデックスツリーのレコードを記憶することと、
を行わせる複数のプロセッサコア、
を含むシステム。 - 圧縮されたキーおよび対応するレコード識別子がソートキーを含む、請求項19に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/658,671 | 2017-07-25 | ||
US15/658,671 US10671586B2 (en) | 2017-07-25 | 2017-07-25 | Optimal sort key compression and index rebuilding |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019029011A true JP2019029011A (ja) | 2019-02-21 |
JP6847079B2 JP6847079B2 (ja) | 2021-03-24 |
Family
ID=63165155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018135727A Active JP6847079B2 (ja) | 2017-07-25 | 2018-07-19 | 最適なソートキーの圧縮およびインデックスの再構築 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10671586B2 (ja) |
EP (1) | EP3435256B1 (ja) |
JP (1) | JP6847079B2 (ja) |
CN (1) | CN109299086B (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11074235B2 (en) * | 2017-08-10 | 2021-07-27 | Io-Tahoe Llc | Inclusion dependency determination in a large database for establishing primary key-foreign key relationships |
US10839019B2 (en) * | 2017-09-29 | 2020-11-17 | Micro Focus Llc | Sort function race |
US11451371B2 (en) * | 2019-10-30 | 2022-09-20 | Dell Products L.P. | Data masking framework for information processing system |
CN111680095B (zh) * | 2020-06-10 | 2021-01-12 | 上海城市地理信息系统发展有限公司 | 一种处理点云数据的方法、装置和电子设备 |
CN112364027B (zh) * | 2020-12-09 | 2023-06-30 | 北京海量数据技术股份有限公司 | 并行创建openGauss分区表索引方法、装置及系统 |
CN112579612B (zh) * | 2020-12-31 | 2023-05-16 | 厦门市美亚柏科信息股份有限公司 | 数据库索引表记录分析方法、装置、计算设备及存储介质 |
US20230195705A1 (en) * | 2021-12-20 | 2023-06-22 | Sap Se | Branching for tree structure in database system |
CN115374127B (zh) * | 2022-10-21 | 2023-04-28 | 北京奥星贝斯科技有限公司 | 数据存储方法及装置 |
CN115617878B (zh) * | 2022-11-17 | 2023-03-10 | 浪潮电子信息产业股份有限公司 | 一种数据查询方法、系统、装置、设备及计算机存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS582938A (ja) * | 1981-06-27 | 1983-01-08 | Fujitsu Ltd | インデックスの作成方式 |
US4677550A (en) * | 1983-09-30 | 1987-06-30 | Amalgamated Software Of North America, Inc. | Method of compacting and searching a data index |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4819156A (en) * | 1986-06-13 | 1989-04-04 | International Business Machines Corporation | Database index journaling for enhanced recovery |
JPH02195480A (ja) * | 1989-01-25 | 1990-08-02 | Hitachi Ltd | 画像データの検索方式 |
EP1217541A1 (en) * | 2000-11-29 | 2002-06-26 | Lafayette Software Inc. | Method of processing queries in a database system, and database system and software product for implementing such method |
GB2405499A (en) * | 2003-09-01 | 2005-03-02 | Isis Innovation | Information system development |
US8156156B2 (en) * | 2006-04-06 | 2012-04-10 | Universita Di Pisa | Method of structuring and compressing labeled trees of arbitrary degree and shape |
US20100146003A1 (en) | 2008-12-10 | 2010-06-10 | Unisys Corporation | Method and system for building a B-tree |
CN102411634B (zh) * | 2011-12-27 | 2016-01-13 | 北京人大金仓信息技术股份有限公司 | 一种提升嵌入式数据库实时性的数据存储方法 |
WO2014201047A1 (en) * | 2013-06-11 | 2014-12-18 | InfiniteBio | Fast, scalable dictionary construction and maintenance |
-
2017
- 2017-07-25 US US15/658,671 patent/US10671586B2/en active Active
-
2018
- 2018-07-19 JP JP2018135727A patent/JP6847079B2/ja active Active
- 2018-07-20 EP EP18184685.8A patent/EP3435256B1/en active Active
- 2018-07-20 CN CN201810808893.0A patent/CN109299086B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS582938A (ja) * | 1981-06-27 | 1983-01-08 | Fujitsu Ltd | インデックスの作成方式 |
US4677550A (en) * | 1983-09-30 | 1987-06-30 | Amalgamated Software Of North America, Inc. | Method of compacting and searching a data index |
Also Published As
Publication number | Publication date |
---|---|
JP6847079B2 (ja) | 2021-03-24 |
US20190034467A1 (en) | 2019-01-31 |
EP3435256A3 (en) | 2019-03-06 |
EP3435256B1 (en) | 2020-09-02 |
CN109299086A (zh) | 2019-02-01 |
EP3435256A2 (en) | 2019-01-30 |
CN109299086B (zh) | 2021-11-23 |
US10671586B2 (en) | 2020-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6847079B2 (ja) | 最適なソートキーの圧縮およびインデックスの再構築 | |
US11899641B2 (en) | Trie-based indices for databases | |
US11520780B2 (en) | Distributed database systems and structures | |
CN111046034B (zh) | 管理内存数据及在内存中维护数据的方法和系统 | |
US9600513B2 (en) | Database table comparison | |
US9405806B2 (en) | Systems and methods of modeling object networks | |
WO2021258848A1 (zh) | 数据字典生成方法、数据查询方法、装置、设备及介质 | |
US10042914B2 (en) | Database index for constructing large scale data level of details | |
KR20160130256A (ko) | 데이터 유형에 관련된 데이터 프로파일링 동작 관리 | |
US20210390089A1 (en) | Code dictionary generation based on non-blocking operations | |
US11962330B2 (en) | Advanced database decompression | |
US11379450B2 (en) | Relational method for transforming unsorted sparse dictionary encodings into unsorted-dense or sorted-dense dictionary encodings | |
Wang et al. | Rencoder: A space-time efficient range filter with local encoder | |
US9400817B2 (en) | In-place index repair | |
US20180275961A1 (en) | Method and system for fast data comparison using accelerated and incrementally synchronized cyclic data traversal algorithm | |
Carter et al. | Nanosecond indexing of graph data with hash maps and VLists | |
Nakamura et al. | Content-defined merkle trees for efficient container delivery | |
Kwon et al. | Compressed key sort and fast index reconstruction | |
KR102013839B1 (ko) | 데이터베이스 관리 방법, 시스템 및 데이터베이스 트리 구조 | |
US20230195705A1 (en) | Branching for tree structure in database system | |
US11119999B2 (en) | Zero-overhead hash filters | |
US20220114144A1 (en) | Frameworks for data source representation and compression | |
Theodorakis et al. | An Empirical Evaluation of Variable-length Record B+ Trees on a Modern Graph Database System | |
Jadhav et al. | GUI BASED QUERYING AND MIGRATION APPROACH FOR MONGODB | |
Xie et al. | Electrical Engineering and Computer Science Department |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191015 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200722 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200824 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201001 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210201 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210302 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6847079 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |