JP2020536341A - 動的キーレンジを有するkvストアにおけるシャードの維持 - Google Patents
動的キーレンジを有するkvストアにおけるシャードの維持 Download PDFInfo
- Publication number
- JP2020536341A JP2020536341A JP2020541341A JP2020541341A JP2020536341A JP 2020536341 A JP2020536341 A JP 2020536341A JP 2020541341 A JP2020541341 A JP 2020541341A JP 2020541341 A JP2020541341 A JP 2020541341A JP 2020536341 A JP2020536341 A JP 2020536341A
- Authority
- JP
- Japan
- Prior art keywords
- store
- low
- level
- key
- level store
- 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
- 238000000034 method Methods 0.000 claims abstract description 39
- 238000012217 deletion Methods 0.000 claims abstract 4
- 230000037430 deletion Effects 0.000 claims abstract 4
- 238000010586 diagram Methods 0.000 abstract 1
- 230000015654 memory Effects 0.000 description 18
- 230000002085 persistent effect Effects 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Images
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- 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/221—Column-oriented storage; 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
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
1)サブKVストアの最小キー。これはサブKVストアが担当するキーのレンジを定義することである。
2)このサブKVストアに関して最後にコミットしたトランザクション。
3)ディスク上のサブKVストアのルートブロックのロケーション。
Claims (20)
- キーバリュー(KV)ストアを、アプリケーションに提供するためのKVストアデータベースマネージメントシステムのための方法において、
第1のロウレベルストアについての、第1の情報を備えるトップレベルストアを提供するステップであって、前記第1の情報は、第1のロウレベルストアの最小キーと、ロケーションを含む、ステップと、
キーバリューペアを、前記KVストアに挿入するための要求を、受信するステップと、
前記第1の情報に基づいて、前記キーバリューペアを、前記第1のロウレベルストアに挿入するステップと、
前記キーバリューペアを、前記第1のロウレベルストアに挿入した後で、前記第1のロウレベルストアのキー数が、上限しきい値を超えたかどうか判断するステップと、
前記第1のロウレベルストアのキー数が、上限しきい値を超えると、
第2のロウレベルストアを作るステップと、
前記トップレベルストアに、前記第2のロウレベルストアについての第2の情報を記憶するステップであって、前記第2の情報は、前記第2のロウレベルストアの最小キーと、ロケーションを含む、ステップと、
を備えた方法。 - 前記第1のロウレベルストアのキー数が、前記上限しきい値を超えると、前記第1のロウレベルストア内の、前記キーバリューペアの約半分を、前記第2のロウレベルストアに移動するステップをさらに備えた、請求項1に記載の方法。
- 新しいキーバリューペアを、前記第2のロウレベルストア内の前記KVストアに挿入する要求を受信するステップであって、前記新しいキーバリューペアは、単調に増加するキーを備える、ステップと、
前記新しいキーバリューペアを、前記第2のロウレベルストアに記憶するステップと、
をさらに備える請求項1に記載の方法。 - 前記第1のロウレベルストアと、記第2のロウレベルストア内の合計キー数が、キーバリュー削除からの下限しきい値未満であるかどうかを判断するステップと、
前記第1のロウレベルストアと、前記第2のロウレベルストアのキーの合計数が、前記下限しきい値未満であるとき、前記第1と第2のロウレベルストアを、マージするステップと、
をさらに備えた、請求項1に記載の方法。 - 前記マージは、前記第2のロウレベルストアからのキーバリューペアを、前記第1のロウレベルストアに移動し、前記第2の情報を削除するステップを備える、請求項4に記載の方法。
- 前記トップレベルストアの第1のリーフノードは、前記第1及び第2の情報を含む、請求項1に記載の方法。
- 前記トップレベルストアの第1のリーフノードは、前記第1の情報を含み、
前記トップレベルストアの第2のリーフノートは、前記第2の情報を含み、
前記方法は、前記トップレベルストアの、前記第1および第2のリーフノードに関するペアレントノードを作ることをさらに備える、請求項1に記載の方法。 - 第1のロウレベルKVストアと、
前記第1のロウレベルストアについての、第1の情報を備えるトップレベルKVストアであって、前記第1の情報は、前記第1のロウレベルストアの最小キーと、ロケーションを含むトップレベルKVストアと、
を備えるKVストアと、
キーバリューペアを、前記KVストアに挿入する要求を受信し、
前記第1の情報に基づいて、前記キーバリューペアを、前記第1のロウレベルストアに挿入し、
前記第1のロウレベルストアのキー数が、上限しきい値を超えると、新しい第2のロウレベルストアを作り、
前記トップレベルストアに、前記第2のロウレベルストアについての、第2の情報を記憶することであって、前記第2の情報は、前記第2のロウレベルストアの、最小キーと、ロケーションを含む、第2の情報を記憶する、
ように構成されたKVストアデータベースマネージメントシステム(DBMS)と、
を備えた、データベースシステム。 - 前記KVストアDBMSは、前記第1のロウレベルストアのキー数が、前記上限しきい値を超えると、前記前記第1のロウレベルストアの、前記キーバリューペアの約半数を、前記第2のロウレベルストアに、移動するようにさらに構成される、請求項8に記載のシステム。
- 前記KVストアDBMSはさらに、
新しいキーバリューペアを、前記第2のロウレベルストア内の、前記KVストアに挿入する要求を受信することであって、前記新しいキーバリューペアは、単調に増加するキーを備える、受信することと、
前記新しいキーバリューペアを、前記第2のロウレベルストアに記憶することと、
を実行するようにさらに構成される、請求項8に記載のシステム。 - 前記KVストアDBMSは、前記第1のロウレベルストアと、前記第2のロウレベルストア内のキーの合計数が、キーバリュー削除からの下限しきい値未満であるかどうか判断し、
前記第1のロウレベルストアと、前記第2のロウレベルストア内のキーの前記合計数が、前記下限しきい値未満であるとき、前記第1と第2のロウレベルストアをマージする、
ようにさらに構成される、請求項8に記載のシステム。 - 前記マージは、前記第2のロウレベルストアからのキーバリューペアを、前記第1のロウレベルストアに移動し、前記第2の情報を削除することを備える、請求項11に記載のシステム。
- 前記トップレベルストアの、第1のリーフノードは、前記第1および第2の情報を含む、請求項8に記載のシステム。
- 前記トップレベルストアの、第1のリーフノードは、前記第1の情報を記憶し、
前記トップレベルストアの、第2のリーフノードは、前記第2の情報を記憶し、
前記方法はさらに、前記トップレベルストアの、前記第1および第2のリーフノードのための、ペアレントノードを作ることを備えた、請求項8に記載のシステム。 - キーバリュー(KV)ストアを、アプリケーションに提供するためのKVストアデータベースマネージメントシステム(DBMS)をインプリメントするように、プロセッサにより実行可能な命令で符号化されたコンピュータ可読記憶媒体において、前記方法は、
第1のロウレベルストアについての、第1の情報を備えたトップレベルストアを提供することであって、前記第1の情報は、前記第1のロウレベルストアの最小キーと、ロケーションを含む、トップレベルストアを提供することと、
キーバリューペアを、前記KVストアに挿入する要求を受信することと、
前記第1の情報に基づいて、前記キーバリューペアを、前記第1のロウレベルストアに挿入することと、
前記キーバリューペアを、前記第1のロウレベルストアに挿入した後で、前記第1のロウレベルストアのキー数が、上限しきい値を超えたかどうかを判断することと、
前記第1のロウレベルストアのキー数が上限しきい値を超えると、
第2のロウレベルストアを作ることと、
前記トップレベルストアに、前記第2のロウレベルストアについての、第2の情報を記憶することであって、前記第2の情報は、前記第2のロウレベルストアの最小キーと、ロケーションを含む、
非一時的コンピュータ可読記憶媒体。 - 前記命令はさらに、前記第1のロウレベルストアのキー数が、前記上限しきい値を超えると、前記第1のロウレベルストア内の、前記キーバリューペアの、約半数を前記第2のロウレベルストアに移動することをさらに備えた、請求項15に記載の非一時的コンピュータ可読記憶媒体。
- 前記命令はさらに、
新しいキーバリューペアを、前記第2のロウレベルストア内の前記KVストアに、挿入する要求を受信することであって、前記新しいキーバリューペアは、単調に増加するキーを備える、受信することと、
前記新しいキーバリューペアを、前記第2のロウレベルストアに記憶することと、
をさらに備えた請求項15に記載の非一時的可読記憶媒体。 - 前記命令はさらに、
前記第1のロウレベルストアを、前記第2のロウレベルストア内のキーの合計数が、キーバリュー削除からの還元しきい値未満であるかどうかを判断することと、
前記第1のロウレベルストアと、前記第2のロウレベルストア内のキーの合計数が前記下限しきい値未満であるとき、前記第1および第2のロウレベルストアをマージすることと、
を備えた、請求項15に記載の非一時的コンピュータ可読記憶媒体。 - 前記トップレベルストアの第1のリーフノードは、前記第1及び第2の情報を含む、請求項15に記載の非一時的コンピュータ可読記憶媒体。
- 前記トップレベルストアの第1のリーフノードは、前記第1の情報を含み、
前記トップレベルストアの第2のリーフノードは、前記第2の情報を含み、
前記方法は、前記トップレベルストアの、前記第1のノードと、前記第2のノードのためのペアレントノードをさらに備えた、請求項15に記載の非一時的コンピュータ可読記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/726,192 | 2017-10-05 | ||
US15/726,192 US11269915B2 (en) | 2017-10-05 | 2017-10-05 | Maintaining shards in KV store with dynamic key range |
PCT/US2018/052545 WO2019070449A1 (en) | 2017-10-05 | 2018-09-25 | MAINTAINING FRAGMENTS IN A KV MEMORY WITH DYNAMIC KEY RANGE |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020536341A true JP2020536341A (ja) | 2020-12-10 |
JP7345482B2 JP7345482B2 (ja) | 2023-09-15 |
Family
ID=64564952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020541341A Active JP7345482B2 (ja) | 2017-10-05 | 2018-09-25 | 動的キーレンジを有するkvストアにおけるシャードの維持 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11269915B2 (ja) |
EP (1) | EP3692454A1 (ja) |
JP (1) | JP7345482B2 (ja) |
WO (1) | WO2019070449A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11360863B2 (en) * | 2018-10-26 | 2022-06-14 | Hewlett Packard Enterprise Development Lp | Key-value store on persistent memory |
JP7237782B2 (ja) * | 2019-09-13 | 2023-03-13 | キオクシア株式会社 | ストレージシステム及びその制御方法 |
US11954345B2 (en) | 2021-12-03 | 2024-04-09 | Samsung Electronics Co., Ltd. | Two-level indexing for key-value persistent storage device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013061739A (ja) * | 2011-09-12 | 2013-04-04 | Fujitsu Ltd | データ管理装置、データ管理システム、データ管理方法、及びプログラム |
JP2015069461A (ja) * | 2013-09-30 | 2015-04-13 | 日本電気株式会社 | 情報処理装置 |
JP2016062609A (ja) * | 2014-09-18 | 2016-04-25 | アンプリデータ エヌブイ | コンピュータ実装された動的シャーディング方法 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6792432B1 (en) * | 1998-03-31 | 2004-09-14 | Sybase, Inc. | Database system with methods providing high-concurrency access in B-Tree structures |
US6298478B1 (en) * | 1998-12-31 | 2001-10-02 | International Business Machines Corporation | Technique for managing enterprise JavaBeans (™) which are the target of multiple concurrent and/or nested transactions |
US6457065B1 (en) * | 1999-01-05 | 2002-09-24 | International Business Machines Corporation | Transaction-scoped replication for distributed object systems |
US7039646B2 (en) * | 2002-12-18 | 2006-05-02 | International Business Machines Corporation | Method and system for compressing varying-length columns during index high key generation |
US7941401B2 (en) * | 2005-05-09 | 2011-05-10 | Gemstone Systems, Inc. | Distributed data management system |
US7809759B1 (en) * | 2006-08-18 | 2010-10-05 | Unisys Corporation | Dynamic preconditioning of A B+tree |
US9626398B2 (en) * | 2012-05-22 | 2017-04-18 | Hewlett Packard Enterprise Development Lp | Tree data structure |
US8996563B2 (en) * | 2010-04-06 | 2015-03-31 | Tokutek, Inc. | High-performance streaming dictionary |
US8495093B2 (en) * | 2010-08-18 | 2013-07-23 | International Business Machines Corporation | Multiway trie data structure that dynamically adjusts node sizes in a manner that reduces memory footprint and improves access speed |
US10262050B2 (en) * | 2015-09-25 | 2019-04-16 | Mongodb, Inc. | Distributed database systems and methods with pluggable storage engines |
US9740762B2 (en) * | 2011-04-01 | 2017-08-22 | Mongodb, Inc. | System and method for optimizing data migration in a partitioned database |
US8924365B2 (en) * | 2011-02-08 | 2014-12-30 | Wavemarket, Inc. | System and method for range search over distributive storage systems |
US20130110767A1 (en) * | 2011-10-26 | 2013-05-02 | Nec Laboratories America, Inc. | Online Transaction Processing |
US9075710B2 (en) * | 2012-04-17 | 2015-07-07 | SanDisk Technologies, Inc. | Non-volatile key-value store |
US9003162B2 (en) * | 2012-06-20 | 2015-04-07 | Microsoft Technology Licensing, Llc | Structuring storage based on latch-free B-trees |
US9330158B1 (en) * | 2013-05-20 | 2016-05-03 | Amazon Technologies, Inc. | Range query capacity allocation |
US9471657B1 (en) * | 2013-05-20 | 2016-10-18 | Amazon Technologies, Inc. | Range query capacity allocation |
US9235611B1 (en) * | 2013-06-06 | 2016-01-12 | Amazon Technologies, Inc. | Data growth balancing |
US9330271B1 (en) * | 2013-10-15 | 2016-05-03 | Amazon Technologies, Inc. | Fine-grained access control for synchronized data stores |
US10019382B2 (en) * | 2015-10-20 | 2018-07-10 | Sap Se | Secondary data structures for storage class memory (scm) enables main-memory databases |
US10783186B2 (en) * | 2017-08-31 | 2020-09-22 | Micron Technology, Inc. | Heterogenous key-value sets in tree database |
-
2017
- 2017-10-05 US US15/726,192 patent/US11269915B2/en active Active
-
2018
- 2018-09-25 JP JP2020541341A patent/JP7345482B2/ja active Active
- 2018-09-25 WO PCT/US2018/052545 patent/WO2019070449A1/en unknown
- 2018-09-25 EP EP18811956.4A patent/EP3692454A1/en not_active Ceased
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013061739A (ja) * | 2011-09-12 | 2013-04-04 | Fujitsu Ltd | データ管理装置、データ管理システム、データ管理方法、及びプログラム |
JP2015069461A (ja) * | 2013-09-30 | 2015-04-13 | 日本電気株式会社 | 情報処理装置 |
JP2016062609A (ja) * | 2014-09-18 | 2016-04-25 | アンプリデータ エヌブイ | コンピュータ実装された動的シャーディング方法 |
Also Published As
Publication number | Publication date |
---|---|
JP7345482B2 (ja) | 2023-09-15 |
EP3692454A1 (en) | 2020-08-12 |
WO2019070449A1 (en) | 2019-04-11 |
US20190108267A1 (en) | 2019-04-11 |
US11269915B2 (en) | 2022-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105117415B (zh) | 一种优化的ssd数据更新方法 | |
US11099771B2 (en) | System and method for early removal of tombstone records in database | |
CN109933570B (zh) | 一种元数据管理方法、系统及介质 | |
US20180349095A1 (en) | Log-structured merge tree based data storage architecture | |
CN107491523B (zh) | 存储数据对象的方法及装置 | |
US8849876B2 (en) | Methods and apparatuses to optimize updates in a file system based on birth time | |
US10649959B2 (en) | Write-optimized nested trees | |
JP7345482B2 (ja) | 動的キーレンジを有するkvストアにおけるシャードの維持 | |
US11093450B2 (en) | Auto-tuned write-optimized key-value store | |
Viglas | Adapting the B+-tree for asymmetric I/O | |
WO2015152830A1 (en) | Method of maintaining data consistency | |
US20210349866A1 (en) | Deduplication-Adapted Casedb For Edge Computing | |
US20200097558A1 (en) | System and method for bulk removal of records in a database | |
JP2020525938A (ja) | データベース内でテナントを作成及び削除するシステム及び方法 | |
KR101806394B1 (ko) | 모바일 dbms환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법 | |
US10558636B2 (en) | Index page with latch-free access | |
US9275091B2 (en) | Database management device and database management method | |
JP7297772B2 (ja) | 単一kvストア内の複数のトランザクション | |
WO2015129109A1 (ja) | インデックス管理装置 | |
US9824105B2 (en) | Adaptive probabilistic indexing with skip lists | |
US10997144B2 (en) | Reducing write amplification in buffer trees | |
KR102013839B1 (ko) | 데이터베이스 관리 방법, 시스템 및 데이터베이스 트리 구조 | |
US11836090B2 (en) | Cache management for search optimization | |
CN117009439B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
JP7507142B2 (ja) | データベースにおいてレコードを一括削除するためのシステムおよび方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210916 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20221019 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20221122 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230213 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230523 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230728 |
|
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: 20230808 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230905 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7345482 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |