JP2020536339A - 共有ジャーナルを含むキーバリューストア間のコンシステンシー - Google Patents
共有ジャーナルを含むキーバリューストア間のコンシステンシー Download PDFInfo
- Publication number
- JP2020536339A JP2020536339A JP2020541339A JP2020541339A JP2020536339A JP 2020536339 A JP2020536339 A JP 2020536339A JP 2020541339 A JP2020541339 A JP 2020541339A JP 2020541339 A JP2020541339 A JP 2020541339A JP 2020536339 A JP2020536339 A JP 2020536339A
- Authority
- JP
- Japan
- Prior art keywords
- store
- transaction
- persistent
- change
- journal
- 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
- 230000008859 change Effects 0.000 claims abstract description 34
- 230000002085 persistent effect Effects 0.000 claims abstract description 29
- 238000000034 method Methods 0.000 claims abstract description 19
- 230000015654 memory Effects 0.000 claims description 11
- 238000010586 diagram Methods 0.000 abstract description 5
- 230000003993 interaction Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/80—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
-
- 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
- G06F16/2365—Ensuring data consistency and integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
1.KVストアトランザクションに参加する。
2.変更のセットを実行する。例えば、新しいキーバリューペアを挿入する、キーバリューペアを削除する、いくつかのキーを変更する、いくつかの値を変更する等である。
3.KVストアトランザクションをデタッチ(detach)する。
Insert [K1、V1]、Trans ID=5
1.KVストア1のトランザクションに参加する。
2.KVストア2のトランザクションに参加する。
3.変更[K1、V1」をKVストア1に挿入する。
4.変更[K2、V2]をKVストア1に挿入する。
5.KVストア1のトランザクションをデタッチする。
6.KVストア2のトランザクションをデタッチする。
1.KVストア1のトランザクションに参加する(このトランザクションのトランザクションIDをT1と仮定する)。
2.KVストア2のトランザクションに参加する(このトランザクションのトランザクションIDをT2と仮定する)。
3.変更[K1、V1]をKVストア1に挿入する。
4.変更[K2、V2]をKVストア2に挿入する。
5.両方の変更を記載する結合されたジャーナルエントリを作成する。
Insert into KV store 1:[K1, V1], Trans ID=T1;
Insert into KV store 2:[K2, V2], Trans ID=T2
6.結合されたジャーナルエントリをパーシステント媒体(例えば、ディスク)に書き込み、書き込みが完了するのを待つ。
7.KVストア1のトランザクションをデタッチする。
8.KVストア2のトランザクションをデタッチする。
−KVストア1は、結合されたジャーナルエントリが、ディスク上にある前に、そのトランザクションをコミットする可能性がある。
−結合されたジャーナルエントリが、ディスク上にある前に、クラッシュする可能性がある。
−システムがリスタートした後、KVストア1は、その関連する変更を、コミットしたトランザクションT1の一部として保持する。
しかしながら、KVストア2は、トランザクションT2をコミットしなかった。さらに、ディスク上には、結合されたジャーナルエントリは無く、それは、トランザクションT2において変更を再び印加するために使用された可能性がある。この結果、トランザクションT1における変更は、保持されるが、トランザクションT2における変更は、失われる。それゆえ、システムの状態は不一致となる。
9.KVストア1は、トランザクションT1をコミットする。
10.KVストア2が、トランザクションT2をコミットすることができる前に、システムがクラッシュする。
11.システムリスタート時に、ステップ6で書き込まれた結合されたジャーナルエントリが調べられる。
12.第1のサブエントリは、これ以上関連しないと決定される。なぜならば、KVストア1は、トランザクションT1が、すでにコミットされており、トランザクションT1を示す任意のサブエントリは、もはや関連しないことを認識しているからである。
13.第2のサブエントリは、依然として関連すると決定される。なぜなら、KVストア2は、トランザクションT2をコミットしていないことを認識しているからである。KVストア2は、最後にコミットしたトランザクションがT2−1(トランザクションT2の前のトランザクション)であったことを認識している。
14.第2のサブエントリのみがリプレイされ、変更[K2、V2]をKVストア2のトランザクションT2に再度インサートするか、またはディスク上のKVストア2に変更[K2、V2]を直接コミットする。
15.システムは整合状態に戻る。
Claims (15)
- すべてをパーシスト(persist)するか、あるいは全くしないパーシステントKVストアへの変更のために、各々が独自の非パーシステントトランザクションを有する、複数のパーシステントキーバリュー(KV)間にコンシステンシー(consistency)を提供するためのデータベースシステムにおけるトランザクションマネージャの方法において、
第1のKVストアのトランザクションに参加するステップと、
第2のKVストアのトランザクションに参加するステップと、
すべてパーシストするか、あるいは全くしない、前記第1のKVストアへの第1の変更と前記第2のKVストアへの第2の変更を含む変更のセットに関して、
前記第1の変更を、前記第1のKVストアのトランザクションにインサートするステップと、
前記第2の変更を前記第2のKVストアのトランザクションにインサートするステップと、
それぞれ、パーシステントグローバルジャーナルに、前記第1の変更および前記第2の変更を記載する第1のサブエントリと第2のサブエントリを備えた結合されたジャーナルエントリを作成し、書き込むステップと、
を備えた、方法。 - 前記結合されたジャーナルエントリの、前記グローバルジャーナルへの書き込みを完了するのを待つステップと、
前記結合されたジャーナルエントリが、前記グローバルジャーナルに書かれた後で、
前記第1のKVストアのトランザクションからデタッチするステップと、
前記第2のKVストアのトランザクションからデタッチするステップと、
をさらに備えた、請求項1に記載の方法。 - 前記ストレージシステムが、リスタートするのを検出した後で、
前記第1及び第2のKVストア上で最後にコミットしたトランザクションを決定するステップと、
前記グローバルジャーナル内の前記結合されたエントリを調べて、対応するKVストアにコミットされなかった任意のサブエントリを決定するステップと、
対応するKVストアにコミットされなかった任意のサブエントリをリプレイするステップと、
をさらに備えた、請求項2に記載の方法。 - 前記第1および第2のKVストアのトランザクションに参加する前に、アプリケーションから、変更のセットを受信するステップをさらに備えた、請求項1に記載の方法。
- 前記第1および前記第2の変更がすべてコミットされたと決定した後で、前記結合されたジャーナルエントリを削除するステップをさらに備えた、請求項1に記載の方法。
- パーシステントである少なくとも2つのKVストアと、
前記少なくとも2つのKVストアを管理する少なくとも1つのキーバリュー(KV)ストアデータベースマネージメントシステム(DBMS)であって、前記少なくとも1つのKVストアDBMSは、各KVストアにパーシステントではない独自のトランザクションを提供する、少なくとも1つのKVストアDBMSと、
パーシステントであるグローバルジャーナルと、
すべてがパーシステントであるか、あるいは全くパーシステントでない少なくとも2つのKVストアへの変更に関する少なくとも2つのKVストア間のコンシステンシーを提供するトランザクションマネージャであって、前記トランザクションマネージャは、
第1のKVストアのトランザクションに参加し、
第2のKVストアのトランザクションに参加し、
すべてがパーシステントであるか、あるいは全くパーシステントでない、前記第1のKVストアへの第1の変更と、前記第2のKVストアへの第2の変更を含む、変更のセットに関して、
前記第1の変更を前記第1のKVストアのトランザクションにインサートし、
前記第2の変更を前記第2のKVストアのトランザクションにインサートし、
前記第1および第2の変更を、それぞれ前記グローバルジャーナルに記載する、第1及び第2のサブエントリを備えた、結合されたジャーナルエントリを作成し、書き込む、
ように構成される、トランザクションマネージャと、
を備えた、データベースシステム。 - 前記トランザクションマネージャは、
前記結合されたジャーナルエントリの、前記グローバルジャーナルへの書き込みの完了を待ち、
前記結合されたジャーナルエントリが、前記グローバルジャーナルへ書かれた後で、
前記第1のKVストアのトランザクションからデタッチし、
前記第2のKVストアのトランザクションからデタッチする、
ようにさらに構成された、請求項6に記載のシステム。 - 前記トランザクションマネージャは、
前記ストレージシステムがリスタートするのを検出した後で、
前記第1及び第2のKVストア上で、前記最後にコミットしたトランザクションを決定し、
前記グローバルジャーナル内の前記結合されたエントリを調べて、対応するKVストアにコミットされなかった任意のサブエントリを決定し、
対応するKVストアにコミットされなかった任意のサブエントリをリプレイする、
ようにさらに構成された、請求項7に記載のシステム。 - 前記トランザクションマネージャは、前記変更のセットを発行したアプリケーション、及び前記少なくとも2つのKVストアDBMSとは異なる、請求項8に記載のシステム。
- 前記トランザクションマネージャは、前記変更のセットを発行したアプリケーションの一部である、請求項8のシステム。
- 前記トランザクションマネージャは、前記第1および第2の変更がすべてコミットされたと決定した後で、前記結合されたジャーナルを削除するようにさらに構成された、請求項6に記載のシステム。
- すべてがパーシステントであるか、あるいは全くそうでないパーシステントKVストアへの変更のために、各KVストアが独自の非パーシステントトランザクションを有する、複数のパーシステントキーバリュー(KV)ストア間に、コンシステンシーを提供するトランザクションマネージャをインプリメントするために、プロセッサにより実行可能な命令で符号化された非一時的コンピュータ可読媒体において、前記命令は、
第1のKVストアのトランザクションに参加し、
第2のKVストアのトランザクションに参加し、
すべてがパーシステントであるか、または全くそうではない前記第1のKVストアに対する第1の変更と、前記第2のKVストアに対する第2の変更を含む変更のセットに関して、
前記第1の変更を前記第1のKVストアのトランザクションに挿入し、
前記第2の変更を前記第2のKVストアのトランザクションに挿入し、
それぞれ、前記第1および第2の変更をパーシステントグローバルジャーナルに記載する第1および第2のサブエントリを備える結合されたジャーナルエントリを作成し、書き込む、
ことを備える、非一時的コンピュータ可読媒体。 - 前記命令はさらに、
前記結合されたジャーナルエントリが、前記グローバルジャーナルへの書き込みを完了するのを待つことと、
前記結合されたジャーナルが前記グローバルジャーナルへ書かれた後で、
前記第1のKVストアのトランザクションからデタッチすることと、
前記第2のKVストアのトランザクションからデタッチすることと、
をさらに備えた、請求項12に記載の非一時的コンピュータ可読媒体。 - 前記命令はさらに、
前記ストレージシステムがリスタートしたことを検出した後で、
前記第1および第2のKVストア上の前記最後にコミットしたトランザクションを決定することと、
前記グローバルジャーナル内の前記結合されたエントリを調べて対応するKVストアにコミットしなかった任意のサブエントリを決定することと、
対応するKVストアにコミットされなかった任意のサブエントリをリプレイすることと、
をさらに備える、請求項12に記載の非一時的コンピュータ可読媒体。 - 前記命令は、前記第1および第2の変更がコミットされたことを判断した後で、前記結合されたジャーナルエントリを削除することをさらに備えた、請求項14に記載の非一時的コンピュータ可読記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/726,104 | 2017-10-05 | ||
US15/726,104 US10754995B2 (en) | 2017-10-05 | 2017-10-05 | Consistency across key value stores with shared journals |
PCT/US2018/052538 WO2019070447A1 (en) | 2017-10-05 | 2018-09-25 | COHERENCE BETWEEN KEY-VALUE PAIR STORAGE WITH SHARED NEWSPAPERS |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020536339A true JP2020536339A (ja) | 2020-12-10 |
JP7423534B2 JP7423534B2 (ja) | 2024-01-29 |
Family
ID=64564951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020541339A Active JP7423534B2 (ja) | 2017-10-05 | 2018-09-25 | 共有ジャーナルを含むキーバリューストア間のコンシステンシー |
Country Status (5)
Country | Link |
---|---|
US (1) | US10754995B2 (ja) |
EP (1) | EP3692452B1 (ja) |
JP (1) | JP7423534B2 (ja) |
ES (1) | ES2962495T3 (ja) |
WO (1) | WO2019070447A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12066903B2 (en) * | 2019-08-01 | 2024-08-20 | Teradata Us, Inc. | Transaction recovery from a failure associated with a database server |
US11614870B2 (en) * | 2021-05-07 | 2023-03-28 | Micron Technology, Inc. | Zoned memory device recovery after a key-value store failure |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09319634A (ja) * | 1996-06-03 | 1997-12-12 | Nec Corp | トランザクション実行状態管理システム、管理方法、および管理プログラムを記憶する媒体 |
WO2004055674A1 (ja) * | 2002-12-18 | 2004-07-01 | Fujitsu Limited | 分散トランザクション処理装置、分散トランザクション処理プログラム、分散トランザクション処理方法および分散トランザクション処理システム |
US20130218840A1 (en) * | 2012-02-17 | 2013-08-22 | Charles Smith | System and method for building a point-in-time snapshot of an eventually-consistent data store |
WO2014141343A1 (ja) * | 2013-03-13 | 2014-09-18 | 日本電気株式会社 | データ多重化システム |
JP2015526832A (ja) * | 2012-12-03 | 2015-09-10 | ヴイエムウェア インコーポレイテッドVMware,Inc. | 分散キーバリューストア |
US20160321294A1 (en) * | 2015-04-30 | 2016-11-03 | Vmware, Inc. | Distributed, Scalable Key-Value Store |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010114006A1 (ja) * | 2009-03-31 | 2010-10-07 | 日本電気株式会社 | ストレージシステムとストレージアクセス方法とプログラム |
JP2013033345A (ja) * | 2011-08-01 | 2013-02-14 | Internatl Business Mach Corp <Ibm> | トランザクション処理システム、方法及びプログラム |
US8572379B2 (en) * | 2011-08-08 | 2013-10-29 | Xerox Corporation | Private access to hash tables |
US9378179B2 (en) * | 2012-11-21 | 2016-06-28 | International Business Machines Corporation | RDMA-optimized high-performance distributed cache |
US10152607B2 (en) * | 2013-06-07 | 2018-12-11 | A9.Com Inc. | Secure access to hierarchical documents in a sorted, distributed key/value data store |
-
2017
- 2017-10-05 US US15/726,104 patent/US10754995B2/en active Active
-
2018
- 2018-09-25 WO PCT/US2018/052538 patent/WO2019070447A1/en unknown
- 2018-09-25 EP EP18811955.6A patent/EP3692452B1/en active Active
- 2018-09-25 ES ES18811955T patent/ES2962495T3/es active Active
- 2018-09-25 JP JP2020541339A patent/JP7423534B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09319634A (ja) * | 1996-06-03 | 1997-12-12 | Nec Corp | トランザクション実行状態管理システム、管理方法、および管理プログラムを記憶する媒体 |
WO2004055674A1 (ja) * | 2002-12-18 | 2004-07-01 | Fujitsu Limited | 分散トランザクション処理装置、分散トランザクション処理プログラム、分散トランザクション処理方法および分散トランザクション処理システム |
US20130218840A1 (en) * | 2012-02-17 | 2013-08-22 | Charles Smith | System and method for building a point-in-time snapshot of an eventually-consistent data store |
JP2015526832A (ja) * | 2012-12-03 | 2015-09-10 | ヴイエムウェア インコーポレイテッドVMware,Inc. | 分散キーバリューストア |
WO2014141343A1 (ja) * | 2013-03-13 | 2014-09-18 | 日本電気株式会社 | データ多重化システム |
US20160321294A1 (en) * | 2015-04-30 | 2016-11-03 | Vmware, Inc. | Distributed, Scalable Key-Value Store |
Also Published As
Publication number | Publication date |
---|---|
US10754995B2 (en) | 2020-08-25 |
JP7423534B2 (ja) | 2024-01-29 |
US20190108365A1 (en) | 2019-04-11 |
EP3692452A1 (en) | 2020-08-12 |
EP3692452B1 (en) | 2023-08-02 |
ES2962495T3 (es) | 2024-03-19 |
WO2019070447A1 (en) | 2019-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11599557B2 (en) | System and method for persistence and replication of changes to a data store | |
US10235375B1 (en) | Persistent file system objects for management of databases | |
US9063969B2 (en) | Distributed transaction management using optimization of local transactions | |
CN104793988B (zh) | 跨数据库分布式事务的实现方法和装置 | |
US11010262B2 (en) | Database system recovery using preliminary and final slave node replay positions | |
US8768977B2 (en) | Data management using writeable snapshots in multi-versioned distributed B-trees | |
US11841844B2 (en) | Index update pipeline | |
US6651073B1 (en) | Method and apparatus for insuring database data integrity without data recovery logging | |
US11132350B2 (en) | Replicable differential store data structure | |
US10754854B2 (en) | Consistent query of local indexes | |
KR20180021679A (ko) | 일관된 데이터베이스 스냅샷들을 이용한 분산 데이터베이스에서의 백업 및 복원 | |
US9576038B1 (en) | Consistent query of local indexes | |
US11468011B2 (en) | Database management system | |
JP2016524750A5 (ja) | ||
JP2015526832A (ja) | 分散キーバリューストア | |
US20240028598A1 (en) | Transaction Processing Method, Distributed Database System, Cluster, and Medium | |
CN113168371A (zh) | 多主共享存储数据库的写-写冲突检测 | |
JP7423534B2 (ja) | 共有ジャーナルを含むキーバリューストア間のコンシステンシー | |
US7542983B1 (en) | Delaying automated data page merging in a B+tree until after committing the transaction | |
Guo et al. | Low Overhead Log Replication for Main Memory Database System | |
Domdouzis et al. | Physical Storage and Distribution | |
Kim | Hbase Based Multi-row Transaction Management Techniques | |
Zhou et al. | Laser: Load-Adaptive Group Commit in Lock-Free Transaction Logging | |
Lake et al. | Physical Storage and Distribution |
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: 20221102 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20221206 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230302 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230620 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230912 |
|
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: 20231219 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240117 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7423534 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |