JP7423534B2 - 共有ジャーナルを含むキーバリューストア間のコンシステンシー - Google Patents
共有ジャーナルを含むキーバリューストア間のコンシステンシー Download PDFInfo
- Publication number
- JP7423534B2 JP7423534B2 JP2020541339A JP2020541339A JP7423534B2 JP 7423534 B2 JP7423534 B2 JP 7423534B2 JP 2020541339 A JP2020541339 A JP 2020541339A JP 2020541339 A JP2020541339 A JP 2020541339A JP 7423534 B2 JP7423534 B2 JP 7423534B2
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- store
- committed
- persistent
- changes
- 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.)
- Active
Links
- 230000002085 persistent effect Effects 0.000 claims description 27
- 230000008859 change Effects 0.000 claims description 26
- 238000000034 method Methods 0.000 claims description 16
- 238000012986 modification Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 230000015654 memory Effects 0.000 description 13
- 230000000717 retained effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 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
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)
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 (12)
- すべてをパーシスト(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及び第2のKVストアの最後にコミットされたトランザクションを決定するステップと、
前記パーシステントグローバルジャーナル内の前記結合されたジャーナルエントリを調べて、対応するKVストアにコミットされなかった任意のサブエントリを決定するステップと、
対応するKVストアにコミットされなかった任意のサブエントリをリプレイするステップと、
をさらに備えた、請求項1に記載の方法。 - 前記第1および第2のKVストアのトランザクションに参加する前に、アプリケーションから、変更のセットを受信するステップをさらに備えた、請求項1に記載の方法。
- 前記第1および前記第2の変更がすべてコミットされたと決定した後で、前記結合されたジャーナルエントリを削除するステップをさらに備えた、請求項1に記載の方法。
- パーシステントである少なくとも2つのKVストアと、
前記少なくとも2つのKVストアのそれぞれを管理する少なくとも2つのキーバリュー(KV)ストアデータベースマネージメントシステム(DBMS)であって、前記少なくとも2つのKVストアDBMSのそれぞれは、対応するKVストアにパーシステントではない独自のトランザクションを提供する、前記少なくとも2つの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ストアのトランザクションからデタッチし、デタッチの後の時点での当該トランザクションのコミットを可能にするように、
構成される、前記トランザクションマネージャと、
を備えた、データベースシステム。 - 前記トランザクションマネージャは、
ストレージシステムがリスタートするのを検出した後で、
前記第1及び第2のKVストアの最後にコミットされたトランザクションを決定するように、
前記グローバルジャーナル内の前記結合されたジャーナルエントリを調べて、対応するKVストアにコミットされなかった任意のサブエントリを決定するように、
対応するKVストアにコミットされなかった任意のサブエントリをリプレイするように、
さらに構成された、請求項5に記載のデータベースシステム。 - 前記トランザクションマネージャは、前記変更のセットを発行したアプリケーション、及び前記少なくとも2つのKVストアDBMSとは異なる、請求項6に記載のデータベースシステム。
- 前記トランザクションマネージャは、前記変更のセットを発行したアプリケーションの一部である、請求項6に記載のデータベースシステム。
- 前記トランザクションマネージャは、前記第1および第2の変更がすべてコミットされたと決定した後で、前記結合されたジャーナルエントリを削除するようにさらに構成された、請求項5に記載のデータベースシステム。
- すべてがパーシステントであるか、あるいは全くそうでないパーシステント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ストアのトランザクションからデタッチして、当該、デタッチの後の時点での当該トランザクションのコミットを可能にするステップと、
を実行する、非一時的コンピュータ可読記録媒体。 - 前記プロセッサが前記プログラムを実行するとき、前記プロセッサは、
ストレージシステムがリスタートしたことを検出した後で、
前記第1および第2のKVストアの最後にコミットされたトランザクションを決定するステップと、
前記パーシステントグローバルジャーナル内の前記結合されたジャーナルエントリを調べて対応するKVストアにコミットしなかった任意のサブエントリを決定するステップと、
対応するKVストアにコミットされなかった任意のサブエントリをリプレイするステップと、
をさらに実行する、請求項10に記載の非一時的コンピュータ可読記録媒体。 - 前記プロセッサが前記プログラムを実行するとき、前記プロセッサは、前記第1および第2の変更がコミットされたことを判断した後で、前記結合されたジャーナルエントリを削除するステップをさらに実行する、請求項11に記載の非一時的コンピュータ可読記憶媒体。
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 JP2020536339A (ja) | 2020-12-10 |
JP7423534B2 true 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 (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3006491B2 (ja) * | 1996-06-03 | 2000-02-07 | 日本電気株式会社 | トランザクション実行状態管理システム、管理方法、および管理プログラムを記憶する媒体 |
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 (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
JP2020536339A (ja) | 2020-12-10 |
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 |
---|---|---|
US11874746B2 (en) | Transaction commit protocol with recoverable commit identifier | |
US11314716B2 (en) | Atomic processing of compound database transactions that modify a metadata entity | |
US11429641B2 (en) | Copying data changes to a target database | |
US9063969B2 (en) | Distributed transaction management using optimization of local transactions | |
KR102579190B1 (ko) | 일관된 데이터베이스 스냅샷들을 이용한 분산 데이터베이스에서의 백업 및 복원 | |
US10235375B1 (en) | Persistent file system objects for management of databases | |
US8768977B2 (en) | Data management using writeable snapshots in multi-versioned distributed B-trees | |
US11132350B2 (en) | Replicable differential store data structure | |
US11010262B2 (en) | Database system recovery using preliminary and final slave node replay positions | |
CN104793988B (zh) | 跨数据库分布式事务的实现方法和装置 | |
US7996363B2 (en) | Real-time apply mechanism in standby database environments | |
US10754854B2 (en) | Consistent query of local indexes | |
JP7101566B2 (ja) | 不揮発性メモリにおけるマルチバージョン同時実行制御(mvcc) | |
CN102073739A (zh) | 带有快照功能的分布式文件系统中的数据读与数据写方法 | |
US20240028598A1 (en) | Transaction Processing Method, Distributed Database System, Cluster, and Medium | |
JP7423534B2 (ja) | 共有ジャーナルを含むキーバリューストア間のコンシステンシー | |
CN114816224A (zh) | 数据管理方法和数据管理装置 | |
WO2024098363A1 (zh) | 一种基于多核处理器的并发事务处理方法及其系统 | |
US7542983B1 (en) | Delaying automated data page merging in a B+tree until after committing the transaction | |
Haroon | Challenges of concurrency control in object oriented distributed database systems | |
US20240256398A1 (en) | Redo avoidance during database recovery | |
Kim | Hbase Based Multi-row Transaction Management Techniques |
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 |