JP6669892B2 - 分散型データストアのバージョン化された階層型データ構造 - Google Patents
分散型データストアのバージョン化された階層型データ構造 Download PDFInfo
- Publication number
- JP6669892B2 JP6669892B2 JP2018554725A JP2018554725A JP6669892B2 JP 6669892 B2 JP6669892 B2 JP 6669892B2 JP 2018554725 A JP2018554725 A JP 2018554725A JP 2018554725 A JP2018554725 A JP 2018554725A JP 6669892 B2 JP6669892 B2 JP 6669892B2
- Authority
- JP
- Japan
- Prior art keywords
- data structure
- hierarchical data
- transaction
- access request
- version
- 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
- 238000003860 storage Methods 0.000 claims description 302
- 238000000034 method Methods 0.000 claims description 78
- 238000012545 processing Methods 0.000 claims description 61
- 238000002955 isolation Methods 0.000 claims description 45
- 230000015654 memory Effects 0.000 claims description 27
- 230000004044 response Effects 0.000 claims description 27
- 230000008569 process Effects 0.000 claims description 15
- 238000012795 verification Methods 0.000 claims description 15
- 238000000926 separation method Methods 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 24
- 230000002085 persistent effect Effects 0.000 description 12
- 238000007726 management method Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 230000010076 replication Effects 0.000 description 9
- 238000013500 data storage Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000013499 data model Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000000670 limiting effect Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 238000012552 review Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 101100162210 Aspergillus parasiticus (strain ATCC 56775 / NRRL 5862 / SRRC 143 / SU-1) aflM gene Proteins 0.000 description 1
- 101100102500 Caenorhabditis elegans ver-1 gene Proteins 0.000 description 1
- 125000002015 acyclic group Chemical group 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012800 visualization 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/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
-
- 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/273—Asynchronous replication or reconciliation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1873—Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files
-
- 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
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/282—Hierarchical databases, e.g. IMS, LDAP data stores or Lotus Notes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
前記階層型データ構造のトランザクションログを維持するトランザクションログストアとを備えるシステムであって、前記ストレージノードのそれぞれは、
前記階層型データ構造の一部として記憶される指定データの読み取り要求をクライアントから受信し、
前記ストレージノードに維持される前記階層型データ構造のそれぞれのバージョンのうちの1つを前記読み取り要求の処理のために識別し、
前記識別されたバージョンに含まれる前記指定データを記憶する前記ストレージノードにおける1つ以上の位置にアクセスして、前記指定データを取得し、
前記識別されたバージョンに含まれる前記指定データを前記クライアントに戻す
ように構成される、システム。
前記階層型データ構造に送られる書き込み要求を別のクライアントから受信し、
前記ストレージノードに維持される前記階層型データ構造の前記それぞれのバージョンのうちの1つを前記読み取り要求の処理のために識別し、
前記ストレージノードにおける前記階層型データ構造の前記識別されたバージョンに関する前記書き込み要求を実行し、
前記書き込み要求を基に、前記階層型データ構造の前記トランザクションログストアにトランザクションを送信し、前記トランザクションは前記階層型データ構造の前記識別されたバージョンを示し、
前記トランザクションが前記階層型データ構造の前記トランザクションログにコミットされているという指示を前記トランザクションログストアから受信することに応じて、前記書き込み要求の確認応答を他のクライアントに送信するように構成される、条項1に記載のシステム。
前記トランザクションログストアから前記トランザクションを取得し、
前記ストレージノードに維持される前記階層型データ構造の現在のバージョンに前記トランザクションを適用し、
前記ストレージノードに維持される前記階層型データ構造の過去のバージョンデータを更新し、前記トランザクションの結果として前記階層型データ構造に適用された変更を表すように構成される、条項2に記載のシステム。
分散型データストアの一部として維持される階層型データ構造に送られるアクセス要求をクライアントから受信することと、
前記アクセス要求を処理するために前記階層型データ構造の複数のバージョンのうちの1つを識別することであって、前記階層型データ構造の複数のバージョンは、前記階層型データ構造にコミットされた変更を表す前記階層型データ構造のトランザクションログと一貫性した状態で前記分散型データストアに維持される、識別することと、
前記階層型データ構造の前記識別されたバージョンを利用する前記アクセス要求を処理することと
を実行することを備える、方法。
前記方法はさらに、
前記アクセス要求を受信する前に、
前記1つのストレージノードによって、前記トランザクションログから1つ以上のトランザクションを読み取ることであって、前記トランザクションログへの1つ以上の前記トランザクションは前記複数のストレージノードのうちの異なる1つによって前記トランザクションログに送信される、前記読み取ることと、
前記1つのストレージノードによって、前記1つのストレージノードに維持される前記階層型データ構造の現在のバージョンに前記1つ以上のトランザクションを適用することとを備え、
前記階層型データ構造の前記識別されたバージョンは前記1つ以上のトランザクションを含む、条項5に記載の方法。
前記アクセス要求の処理は、前記トランザクションが前記階層型データ構造に対して前記トランザクションログからコミットされるという指示を受信することに応じて実行され、
前記アクセス要求の処理は、前記アクセス要求の確認応答を前記クライアントに送信することを備える、条項5に記載の方法。
前記アクセス要求は読み取り要求であって、
前記アクセス要求の処理は、前記1つのストレージノードから、前記読み取り要求及びページネーショントークンを提供するために生成された結果の一部を前記クライアントに送信することを備え、前記ページネーショントークンは前記クライアントに送信される残りの前記結果を示し、
前記方法はさらに、
前記ストレージノードのうちの異なる1つにおいて、別の読み取り要求を前記クライアントから受信することであって、他の読み取り要求は前記ページネーショントークンを含む、前記受信することと、
異なるストレージノードにおいて他の読み取り要求を受信することに応じて、前記ページネーショントークンに示される通り、他の読み取り要求の残りの結果のうちの追加の結果を前記クライアントに送信することとを備える、条項5に記載の方法。
前記アクセス要求がスナップショット分離に従って処理されることを決定することを備え、
前記アクセス要求の処理は、アクセス要求がスナップショット分離に従って処理されることを決定することに応じて実行される、
条項5に記載の方法。
前記アクセス要求はトランザクション及び1つ以上の動作の開始を示し、
前記アクセス要求の処理は、前記1つのストレージノードから、前記1つ以上の動作の実行及びトランザクション状態トークンを前記クライアントに送信することを備え、前記トランザクション状態トークンは前記1つ以上の動作の結果として前記階層型データ構造の前記識別されたバージョンに適応される変更を示し、
前記方法はさらに、
前記ストレージノードのうちの異なる1つにおいて、前記トランザクションの一部として前記クライアントから実行される1つ以上の追加の動作を含む別のアクセス要求を受信することであって、他のアクセス要求は前記トランザクション状態トークンを含み、他のアクセス要求は前記トランザクションがコミットされることを示す、前記受信することと、
異なるストレージノードにおいて、他のアクセス要求を受信することに応じて、
前記トランザクション状態トークンで示される前記変更に従って、異なるストレージノードにおいて、前記階層型データ構造の識別されたバージョンを前記変更することと、
前記階層型データ構造の前記変更されたバージョンに関する前記1つ以上の追加の動作を実行することと、
前記トランザクションを前記階層型データ構造の前記トランザクションログに送信することと、
前記トランザクションが前記階層型データ構造に対して前記トランザクションログからコミットされるという指示を受信することと、
前記トランザクションが前記トランザクションログからコミットされるという前記指示を受信することに応じて、前記アクセス要求の確認応答を前記クライアントに送信することとを備える、条項5に記載の方法。
前記階層型データ構造にコミットされた変更を表す前記階層型データ構造のトランザクションログと一貫性した状態で、分散型データストアの複数のストレージノードにおいて、階層型データ構造のそれぞれのバージョンを維持することと、
前記ストレージノードのうちの1つにおいて、前記階層型データ構造に送られるアクセス要求を受信することと、
前記1つのストレージノードに維持される前記階層型データ構造のそれぞれのバージョンのうちの1つを前記アクセス要求の処理のために識別することと、
前記階層型データ構造の前記識別されたバージョンを利用する前記アクセス要求を処理することと
を実施させるプログラム命令を記憶する、非一時的なコンピュータ可読記憶媒体。
前記アクセス要求を基に、前記ストレージノードから、前記階層型データ構造の前記トランザクションログにトランザクションを送信することを実施させ、前記トランザクションは前記階層型データ構造の前記識別されたバージョンを示す、前記送信することと、
前記アクセス要求の処理は、前記トランザクションが前記階層型データ構造に対して前記トランザクションログからコミットされるという指示を受信することに応じて実行され、
前記アクセス要求の処理では、前記プログラム命令は前記1つ以上のコンピューティングデバイスに前記アクセス要求の確認応答を送信させる、条項14に記載の非一時的なコンピュータ可読記憶媒体。
前記複数のストレージノードにおいて前記トランザクションをそれぞれ取得することと、
前記ストレージノードに維持される前記階層型データ構造のそれぞれの現在のバージョンに前記トランザクションを適用することと、
前記ストレージノードに維持される前記階層型データ構造のそれぞれの過去のバージョンデータを更新し、前記トランザクションの結果として前記階層型データ構造に適用された変更を表すことと
を実施させる、条項15に記載の非一時的なコンピュータ可読記憶媒体。
リモートデータストアに記憶された前記トランザクションログのアーカイブバージョンに前記トランザクションログをコピーすることと、
前記リモートトランザクションログからの1つ以上のトランザクションを、前記複数のストレージノードのうちの1つにある前記階層型データ構造のバージョンに適用し、指定の時点における前記階層型データ構造のバージョンを生成することと
を実施させる、条項14に記載の非一時的なコンピュータ可読記憶媒体。
前記プログラム命令は、前記1つ以上のコンピューティングデバイスに、さらに、前記階層型データ構造の前記識別されたバージョンに関して予期される条件を査定し、前記予期された条件が満たされていることを判定することを実施させ、
前記トランザクションを前記トランザクションログに送信することは、前記予期された条件が満たされていると判定することに応じて実行され、満たされていないと判定される予期される条件を含むアクセス要求は拒否される、条項15に記載の非一時的なコンピュータ可読記憶媒体。
Claims (15)
- プロセッサ及びメモリを備える複数のストレージノードであって、階層型データ構造のそれぞれのバージョンを前記階層型データ構造のトランザクションログに一貫した状態で記憶する、前記複数のストレージノードと、
前記階層型データ構造のトランザクションログを維持するトランザクションログストアとを備えるシステムであって、前記ストレージノードのそれぞれは、
前記階層型データ構造の一部として記憶される指定データの読み取り要求をクライアントから受信し、前記読み取り要求は、前記階層型データ構造の前記それぞれのバージョンの異なるバージョンに相当する複数の分離または一貫性レベルの一つを特定し、
前記ストレージノードに維持される前記階層型データ構造の前記それぞれのバージョンのうちの1つを前記読み取り要求の処理のために識別し、
前記特定された複数の分離または一貫性レベルの一つは、直列化された分離を指定することを決定し、
前記特定された複数の分離または一貫性レベルの一つが、直列化された分離を指定することの決定に応答して、前記トランザクションログから受信した競合検証指示に基づいて、前記識別されたバージョンに含まれる前記指定データを記憶する前記ストレージノードにおける1つ以上の位置にアクセスして、前記指定データを取得し、
前記識別されたバージョンに含まれる前記指定データを前記クライアントに戻す
ように構成される、システム。 - 前記ストレージノードのそれぞれはさらに、
前記階層型データ構造に送られる書き込み要求を他のクライアントから受信し、
前記ストレージノードに維持される前記階層型データ構造の前記それぞれのバージョンのうちの1つを前記書き込み要求の処理のために識別し、
前記ストレージノードにおける前記階層型データ構造の前記識別されたバージョンに関する前記書き込み要求を実行し、
前記書き込み要求を基に、前記階層型データ構造の前記トランザクションログストアにトランザクションを送信し、前記トランザクションは前記階層型データ構造の前記識別されたバージョンを示し、
前記トランザクションが前記階層型データ構造の前記トランザクションログにコミットされているという指示を前記トランザクションログストアから受信することに応じて、前記書き込み要求の確認応答を前記他のクライアントに送信するように構成される、請求項1に記載のシステム。 - 前記ストレージノードの前記それぞれはさらに、
前記トランザクションログストアから前記トランザクションを取得し、
前記ストレージノードに維持される前記階層型データ構造の現在のバージョンに前記トランザクションを適用し、
前記ストレージノードに維持される前記階層型データ構造の過去のバージョンデータを更新し、前記トランザクションの結果として前記階層型データ構造に適用された変更を表すように構成される、請求項2に記載のシステム。 - 前記システムはネットワークベースディレクトリサービスであって、前記クライアントは前記ネットワークベースディレクトリサービスのクライアントであり、前記ストレージノードは前記ネットワークベースディレクトリサービスの1つ以上の他のクライアントの代わりに1つ以上の他の階層型データ構造を記憶するマルチテナントであり、前記階層型データ構造の前記識別されたバージョンは前記ストレージノードの前記メモリに維持される、請求項1に記載のシステム。
- 1つ以上のコンピューティングデバイスによって、
分散型データストアの一部として維持される階層型データ構造に送られるアクセス要求をクライアントから受信することと、
前記アクセス要求は、前記階層型データ構造の複数のバージョンの異なるバージョンに相当する複数の分離または一貫性レベルの一つを特定し、
前記アクセス要求を処理するために前記階層型データ構造の前記複数のバージョンのうちの1つを識別することであって、前記階層型データ構造の前記複数のバージョンは、前記階層型データ構造にコミットされた変更を表す前記階層型データ構造のトランザクションログと一貫性した状態で前記分散型データストアに維持される、前記識別することと、
前記特定された複数の分離または一貫性レベルの一つは、直列化された分離を指定することを決定し、
前記特定された複数の分離または一貫性レベルの一つが、直列化された分離を指定することの決定に応答して、前記トランザクションログから受信した競合検証指示に基づいて、前記階層型データ構造の前記識別されたバージョンを利用する前記アクセス要求を処理することと
を実行することを備える、方法。 - 前記受信、前記識別及び前記アクセス要求の前記処理は前記分散型データストアの前記階層型データ構造のバージョンを記憶する複数のストレージノードのうちの1つによって実行され、
前記方法はさらに、
前記アクセス要求を受信する前に、
前記複数のストレージノードの1つのストレージノードによって、前記トランザクションログから1つ以上のトランザクションを読み取ることであって、前記トランザクションログへの前記1つ以上のトランザクションは前記複数のストレージノードのうちの異なる1つによって前記トランザクションログに送信される、前記読み取ることと、
前記複数のストレージノードの1つのストレージノードによって、前記1つのストレージノードに維持される前記階層型データ構造の現在のバージョンに前記1つ以上のトランザクションを適用することとを備え、
前記階層型データ構造の前記識別されたバージョンは前記1つ以上のトランザクションを含む、請求項5に記載の方法。 - 前記方法はさらに、前記アクセス要求を基に、前記階層型データ構造の前記トランザクションログにトランザクションを送信することであって、前記トランザクションは前記階層型データ構造の前記識別されたバージョンを示し、
前記アクセス要求の処理は、前記トランザクションが前記階層型データ構造に対して前記トランザクションログからコミットされるという指示を受信することに応じて実行され、
前記アクセス要求の処理は、前記アクセス要求の確認応答を前記クライアントに送信することを備える、請求項5に記載の方法。 - 前記アクセス要求は前記階層型データ構造の異なるそれぞれのノードに関して実行される複数の動作の実行を指示し、前記トランザクションログに送信される前記トランザクションは前記複数の動作を含み、前記トランザクションがコミットされるという前記指示は、前記複数の動作がコミットされることを示す、請求項7に記載の方法。
- 前記受信、前記識別及び前記アクセス要求の前記処理は前記分散型データストアの前記階層型データ構造のバージョンを記憶する複数のストレージノードのうちの1つのストレージノードによって実行され、
前記アクセス要求は、読み取り要求であって、
前記アクセス要求の処理は、前記1つのストレージノードから、前記読み取り要求の処理及びページネーショントークンのために生成された結果の一部を前記クライアントに送信することを備え、前記ページネーショントークンは、前記クライアントに送信される残りの結果を示し、
前記方法はさらに、
前記ストレージノードのうちの異なる1つにおいて、他の読み取り要求を前記クライアントから受信することであって、前記他の読み取り要求は、前記ページネーショントークンを含む、前記受信することと、
前記異なるストレージノードにおいて前記他の読み取り要求を受信することに応じて、前記ページネーショントークンに示される通り、前記他の読み取り要求の残りの結果のうちの追加の結果を前記クライアントに送信することとを備える、請求項5に記載の方法。 - 前記方法はさらに、
前記分散型データストアの一部として維持される階層型データ構造に送られる第2のアクセス要求をクライアントから受信することを備え、
前記第2のアクセス要求は、前記階層型データ構造の複数のバージョンの異なるバージョンに相当する前記複数の分離または一貫性レベルの一つを特定し、
前記特定された複数の分離または一貫性レベルの一つが、スナップショット分離を指定することの決定に応答して、前記第2のアクセス要求がスナップショット分離に従って処理されることを決定することを備え、
前記第2のアクセス要求は、前記第2のアクセス要求がスナップショット分離に従って処理されることを決定することに応じて処理される、
請求項5に記載の方法。 - 前記受信、前記識別及び前記アクセス要求の前記処理は前記分散型データストアの前記階層型データ構造のバージョンを記憶する複数のストレージノードのうちの1つのストレージノードによって実行され、
前記アクセス要求はトランザクション及び1つ以上の動作の開始を示し、
前記アクセス要求の処理は、前記1つのストレージノードから、前記1つ以上の動作の実行及びトランザクション状態トークンを前記クライアントに送信することを備え、前記トランザクション状態トークンは前記1つ以上の動作の結果として前記階層型データ構造の前記識別されたバージョンに適応される変更を示し、
前記方法はさらに、
前記ストレージノードのうちの異なる1つにおいて、前記トランザクションの一部として前記クライアントから実行される1つ以上の追加の動作を含む他のアクセス要求を受信することであって、前記他のアクセス要求は前記トランザクション状態トークンを含み、前記他のアクセス要求は前記トランザクションがコミットされることを示す、前記受信することと、
前記異なるストレージノードにおいて、前記他のアクセス要求を受信することに応じて、
前記トランザクション状態トークンで示される前記変更に従って、前記異なるストレージノードにおいて、前記階層型データ構造の前記識別されたバージョンを変更することと、
前記階層型データ構造の前記変更されたバージョンに関する前記1つ以上の追加の動作を実行することと、
前記トランザクションを前記階層型データ構造の前記トランザクションログに送信することと、
前記トランザクションが前記階層型データ構造に対して前記トランザクションログからコミットされるという指示を受信することと、
前記トランザクションが前記トランザクションログからコミットされるという前記指示を受信することに応じて、前記アクセス要求の確認応答を前記クライアントに送信することとを備える、請求項5に記載の方法。 - 1つ以上のコンピューティングデバイスによって実行されると、前記1つ以上のコンピューティングデバイスに、
階層型データ構造にコミットされた変更を表す前記階層型データ構造のトランザクションログと一貫性した状態で、分散型データストアの複数のストレージノードにおいて、前記階層型データ構造のそれぞれのバージョンを維持することと、
前記ストレージノードのうちの1つのストレージノードにおいて、前記階層型データ構造に送られるアクセス要求を受信することと、
前記アクセス要求は、前記階層型データ構造の複数のバージョンの異なるバージョンに相当する複数の分離または一貫性レベルの一つを特定し、
前記1つのストレージノードに維持される前記階層型データ構造の前記それぞれのバージョンのうちの1つを前記アクセス要求の処理のために識別することと、
前記特定された複数の分離または一貫性レベルの一つは、直列化された分離を指定することを決定し、
前記特定された複数の分離または一貫性レベルの一つが、直列化された分離を指定することの決定に応答して、前記トランザクションログから受信した競合検証指示に基づいて、前記階層型データ構造の前記識別されたバージョンを利用する前記アクセス要求を処理することと
を実施させるプログラム命令を記憶する、非一時的なコンピュータ可読記憶媒体。 - 前記プログラム命令は、前記1つ以上のコンピューティングデバイスに、さらに、
前記アクセス要求を基に、前記ストレージノードから、前記階層型データ構造の前記トランザクションログにトランザクションを送信することを実施させ、前記トランザクションは前記階層型データ構造の前記識別されたバージョンを示す、前記送信することと、
前記アクセス要求の処理は、前記トランザクションが前記階層型データ構造に対して前記トランザクションログからコミットされるという指示を受信することに応じて実行され、
前記アクセス要求の処理では、前記プログラム命令は前記1つ以上のコンピューティングデバイスに前記アクセス要求の確認応答を送信させる、請求項12に記載の非一時的なコンピュータ可読記憶媒体。 - 前記プログラム命令は前記1つ以上のコンピューティングデバイスに、さらに、
前記複数のストレージノードにおいてトランザクションをそれぞれ取得することと、
前記ストレージノードに維持される前記階層型データ構造のそれぞれの現在のバージョンに前記トランザクションを適用することと、
前記ストレージノードに維持される前記階層型データ構造のそれぞれの過去のバージョンデータを更新し、前記トランザクションの結果として前記階層型データ構造に適用された変更を表すことと
を実施させる、請求項12に記載の非一時的なコンピュータ可読記憶媒体。 - 前記アクセス要求は、前記階層型データ構造の予期される条件を備え、
前記プログラム命令は、前記1つ以上のコンピューティングデバイスに、さらに、前記階層型データ構造の前記識別されたバージョンに関して前記予期される条件を査定し、前記予期された条件が満たされていることを判定することを実施させ、
トランザクションを前記トランザクションログに送信することは、前記予期された条件が満たされていると判定することに応じて実行され、満たされていないと判定される予期される条件を含むアクセス要求は拒否される、請求項12に記載の非一時的なコンピュータ可読記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/132,098 | 2016-04-18 | ||
US15/132,098 US11157517B2 (en) | 2016-04-18 | 2016-04-18 | Versioned hierarchical data structures in a distributed data store |
PCT/US2017/028125 WO2017184593A1 (en) | 2016-04-18 | 2017-04-18 | Versioned hierarchical data structures in a distributed data store |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020031312A Division JP7113040B2 (ja) | 2016-04-18 | 2020-02-27 | 分散型データストアのバージョン化された階層型データ構造 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019515377A JP2019515377A (ja) | 2019-06-06 |
JP6669892B2 true JP6669892B2 (ja) | 2020-03-18 |
Family
ID=59215925
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018554725A Active JP6669892B2 (ja) | 2016-04-18 | 2017-04-18 | 分散型データストアのバージョン化された階層型データ構造 |
JP2020031312A Active JP7113040B2 (ja) | 2016-04-18 | 2020-02-27 | 分散型データストアのバージョン化された階層型データ構造 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020031312A Active JP7113040B2 (ja) | 2016-04-18 | 2020-02-27 | 分散型データストアのバージョン化された階層型データ構造 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11157517B2 (ja) |
EP (2) | EP3885928A1 (ja) |
JP (2) | JP6669892B2 (ja) |
KR (2) | KR102293093B1 (ja) |
CN (2) | CN114780509A (ja) |
WO (1) | WO2017184593A1 (ja) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11188551B2 (en) * | 2016-11-04 | 2021-11-30 | Microsoft Technology Licensing, Llc | Multi-level data pagination |
US10474563B1 (en) * | 2016-12-28 | 2019-11-12 | Wells Fargo Bank, N.A. | System testing from production transactions |
US10671639B1 (en) | 2017-03-30 | 2020-06-02 | Amazon Technologies, Inc. | Selectively replicating changes to hierarchial data structures |
US11036797B2 (en) * | 2017-10-12 | 2021-06-15 | Adtran, Inc. | Efficient storage and utilization of a hierarchical data set |
US11645288B2 (en) * | 2017-11-03 | 2023-05-09 | International Business Machines Corporation | Reassigning gamer clusters based on engagement |
US10897453B2 (en) * | 2018-01-26 | 2021-01-19 | Nicira, Inc. | Providing networking and security to workloads via a control virtual private cloud shared across multiple virtual private clouds |
US10430100B2 (en) * | 2018-02-28 | 2019-10-01 | International Business Machines Corporation | Transactional operations in multi-master distributed data management systems |
WO2019178839A1 (zh) * | 2018-03-23 | 2019-09-26 | 华为技术有限公司 | 为分布式应用创建一致性快照的方法、装置和分布式*** |
US11423060B2 (en) * | 2018-10-04 | 2022-08-23 | Oracle International Corporation | Storing and versioning hierarchical data in a binary format |
CN111147226B (zh) * | 2018-11-02 | 2023-07-18 | 杭州海康威视***技术有限公司 | 数据存储方法、装置及存储介质 |
CN111680108B (zh) * | 2019-03-11 | 2023-11-03 | 杭州海康威视数字技术股份有限公司 | 一种数据存储方法、装置及一种数据获取方法、装置 |
CN110059074A (zh) * | 2019-03-18 | 2019-07-26 | 华迪计算机集团有限公司 | 一种用于内存数据库的数据处理方法及*** |
US10972296B2 (en) * | 2019-05-03 | 2021-04-06 | Microsoft Technology Licensing, Llc | Messaging to enforce operation serialization for consistency of a distributed data structure |
US11442920B2 (en) * | 2019-06-28 | 2022-09-13 | Paypal, Inc. | Graph database system |
US11397750B1 (en) * | 2019-11-27 | 2022-07-26 | Amazon Technologies, Inc. | Automated conflict resolution and synchronization of objects |
US11544232B2 (en) | 2019-12-11 | 2023-01-03 | Western Digital Technologies, Inc. | Efficient transaction log and database processing |
US11580128B2 (en) * | 2020-05-18 | 2023-02-14 | International Business Machines Corporation | Preventing DBMS deadlock by eliminating shared locking |
CN115702425A (zh) * | 2020-06-18 | 2023-02-14 | 西门子工业软件有限公司 | 对分层的数据结构进行索引的方法 |
US11321342B2 (en) * | 2020-07-31 | 2022-05-03 | Veeva Systems Inc. | Structured-data analysis and visualization |
CN112559558B (zh) * | 2020-12-07 | 2024-04-09 | 北京理房通支付科技有限公司 | 一种流水号生成方法和装置、计算设备和存储介质 |
KR102631020B1 (ko) * | 2020-12-15 | 2024-01-31 | 한국전력공사 | 배전 계통 관계 집합 기반 데이터 매칭 방법 및 배전 계통 통합 db 시스템 |
US11886422B1 (en) | 2021-03-29 | 2024-01-30 | Amazon Technologies, Inc. | Transactional protocol for snapshot isolation without synchronized clocks |
US11709809B1 (en) * | 2021-03-29 | 2023-07-25 | Amazon Technologies, Inc. | Tree-based approach for transactionally consistent version sets |
US11599514B1 (en) | 2021-03-29 | 2023-03-07 | Amazon Technologies, Inc. | Transactional version sets |
US11714573B1 (en) | 2021-03-29 | 2023-08-01 | Amazon Technologies, Inc. | Storage optimization in a distributed object store |
US11853324B2 (en) * | 2021-05-10 | 2023-12-26 | Argo AI, LLC | Systems and methods for atomic publication of distributed writes to a distributed data warehouse |
US11755621B2 (en) | 2021-05-10 | 2023-09-12 | Argo AI, LLC | Systems and methods for atomic publication of distributed writes to a distributed data warehouse |
CN113377502B (zh) * | 2021-06-10 | 2024-06-14 | 上海达梦数据库有限公司 | 事务处理方法、装置、服务器、数据库管理***及介质 |
US11888956B2 (en) * | 2021-06-11 | 2024-01-30 | Microsoft Technology Licensing, Llc | Paginated data transfer techniques |
CN113657465B (zh) * | 2021-07-29 | 2024-04-09 | 北京百度网讯科技有限公司 | 预训练模型的生成方法、装置、电子设备和存储介质 |
CN115114260B (zh) * | 2021-08-24 | 2023-06-23 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、电子设备及存储介质 |
KR102392880B1 (ko) * | 2021-09-06 | 2022-05-02 | (주) 바우디움 | 계층화 문서를 관리하는 방법 및 이를 이용한 장치 |
CN113868273B (zh) * | 2021-09-23 | 2022-10-04 | 北京百度网讯科技有限公司 | 元数据的快照方法及其装置 |
WO2023192364A1 (en) * | 2022-03-31 | 2023-10-05 | Schlumberger Technology Corporation | Multiple source data change journal system |
Family Cites Families (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8423648B2 (en) * | 1999-06-01 | 2013-04-16 | Yodlee.Com, Inc. | Method and system for verifying state of a transaction between a client and a service over a data-packet-network |
US6968364B1 (en) * | 2000-03-30 | 2005-11-22 | Microsoft Corporation | System and method to facilitate selection and programming of an associated audio/visual system |
JP3776706B2 (ja) * | 2000-10-04 | 2006-05-17 | 富士通株式会社 | データ通信装置、データ通信方法およびデータ通信プログラムを記録したコンピュータ読み取り可能な記録媒体 |
US6877107B2 (en) * | 2001-07-05 | 2005-04-05 | Softwired Ag | Method for ensuring operation during node failures and network partitions in a clustered message passing server |
US7287249B2 (en) | 2001-09-28 | 2007-10-23 | Siebel Systems, Inc. | Method and system for tracking and exchanging incremental changes to hierarchical objects |
US20040230893A1 (en) | 2003-05-16 | 2004-11-18 | Dethe Elza | Method and system for enabling collaborative authoring of hierarchical documents with node privileges |
US7185096B2 (en) * | 2003-05-27 | 2007-02-27 | Sun Microsystems, Inc. | System and method for cluster-sensitive sticky load balancing |
US7352762B2 (en) * | 2003-05-27 | 2008-04-01 | Sun Microsystems, Inc. | Method and system for messaging to a cluster |
US7483923B2 (en) | 2003-08-21 | 2009-01-27 | Microsoft Corporation | Systems and methods for providing relational and hierarchical synchronization services for units of information manageable by a hardware/software interface system |
US20050086384A1 (en) | 2003-09-04 | 2005-04-21 | Johannes Ernst | System and method for replicating, integrating and synchronizing distributed information |
US7734578B2 (en) | 2003-11-13 | 2010-06-08 | Comm Vault Systems, Inc. | System and method for performing integrated storage operations |
US7822711B1 (en) | 2003-12-31 | 2010-10-26 | Symantec Operating Corporation | Conflict resolution for a distributed file sharing system |
US7318075B2 (en) * | 2004-02-06 | 2008-01-08 | Microsoft Corporation | Enhanced tabular data stream protocol |
US20060010130A1 (en) * | 2004-07-09 | 2006-01-12 | Avraham Leff | Method and apparatus for synchronizing client transactions executed by an autonomous client |
US7676692B2 (en) * | 2005-04-18 | 2010-03-09 | Bank Of America Corporation | Database automated disaster recovery |
US20060242104A1 (en) | 2005-04-21 | 2006-10-26 | Microsoft Corporation | Systems and methods for manipulating data in a data storage system |
US7549028B2 (en) | 2005-06-29 | 2009-06-16 | Emc Corporation | Backup and restore operations using a single snapshot driven by a server job request |
US7689602B1 (en) | 2005-07-20 | 2010-03-30 | Bakbone Software, Inc. | Method of creating hierarchical indices for a distributed object system |
US7853667B1 (en) * | 2005-08-05 | 2010-12-14 | Network Appliance, Inc. | Emulation of transparent recall in a hierarchical storage management system |
US7617262B2 (en) | 2005-12-19 | 2009-11-10 | Commvault Systems, Inc. | Systems and methods for monitoring application data in a data replication system |
US7606844B2 (en) | 2005-12-19 | 2009-10-20 | Commvault Systems, Inc. | System and method for performing replication copy storage operations |
US20070150341A1 (en) * | 2005-12-22 | 2007-06-28 | Aftab Zia | Advertising content timeout methods in multiple-source advertising systems |
US7562203B2 (en) * | 2006-09-27 | 2009-07-14 | Network Appliance, Inc. | Storage defragmentation based on modified physical address and unmodified logical address |
US20100174692A1 (en) | 2007-03-15 | 2010-07-08 | Scott Meyer | Graph store |
US7603393B1 (en) | 2007-04-02 | 2009-10-13 | Juniper Networks, Inc. | Software merging utility |
US20090006489A1 (en) | 2007-06-29 | 2009-01-01 | Microsoft Corporation | Hierarchical synchronization of replicas |
US8554800B2 (en) | 2008-07-30 | 2013-10-08 | Portool Ltd. | System, methods and applications for structured document indexing |
US8566362B2 (en) | 2009-01-23 | 2013-10-22 | Nasuni Corporation | Method and system for versioned file system using structured data representations |
US8121980B2 (en) * | 2009-02-13 | 2012-02-21 | Microsoft Corporation | Transactional record manager |
US20100332401A1 (en) | 2009-06-30 | 2010-12-30 | Anand Prahlad | Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites |
US8396831B2 (en) * | 2009-12-18 | 2013-03-12 | Microsoft Corporation | Optimistic serializable snapshot isolation |
US8489656B2 (en) | 2010-05-28 | 2013-07-16 | Commvault Systems, Inc. | Systems and methods for performing data replication |
US9063969B2 (en) * | 2010-12-28 | 2015-06-23 | Sap Se | Distributed transaction management using optimization of local transactions |
US9241031B2 (en) * | 2011-08-02 | 2016-01-19 | Verizon Patent And Licensing Inc. | Selecting an auxiliary event-package server |
EP2754053A4 (en) * | 2011-09-07 | 2015-12-23 | Nec Corp | STORAGE SYSTEM |
CN102831156B (zh) | 2012-06-29 | 2014-12-31 | 浙江大学 | 一种云计算平台上的分布式事务处理方法 |
CN102855271B (zh) | 2012-07-05 | 2016-09-21 | 中国电力科学研究院 | 一种多版本电网模型的存储与可追溯管理方法 |
US9632828B1 (en) * | 2012-09-24 | 2017-04-25 | Amazon Technologies, Inc. | Computing and tracking client staleness using transaction responses |
US9268651B1 (en) * | 2012-10-31 | 2016-02-23 | Amazon Technologies, Inc. | Efficient recovery of storage gateway cached volumes |
CN103164219B (zh) | 2013-01-08 | 2015-09-23 | 华中科技大学 | 去中心化架构中使用多类型副本的分布式事务处理*** |
US20140324690A1 (en) * | 2013-01-11 | 2014-10-30 | American Express Travel Related Services Company, Inc. | System and method for a single digital wallet dynamic checkout tool |
US20140214886A1 (en) * | 2013-01-29 | 2014-07-31 | ParElastic Corporation | Adaptive multi-client saas database |
US9396012B2 (en) | 2013-03-14 | 2016-07-19 | Qualcomm Incorporated | Systems and methods of using a hypervisor with guest operating systems and virtual processors |
EP2973044A2 (en) | 2013-03-15 | 2016-01-20 | James Webber | Graph database devices and methods for partitioning graphs |
US9514007B2 (en) * | 2013-03-15 | 2016-12-06 | Amazon Technologies, Inc. | Database system with database engine and separate distributed storage service |
US9836516B2 (en) | 2013-10-18 | 2017-12-05 | Sap Se | Parallel scanners for log based replication |
IN2013CH05115A (ja) | 2013-11-12 | 2015-05-29 | Inmobi Pte Ltd | |
US9389976B2 (en) | 2014-04-09 | 2016-07-12 | Intel Corporation | Distributed persistent memory using asynchronous streaming of log records |
GB2526849B (en) | 2014-06-05 | 2021-04-14 | Advanced Risc Mach Ltd | Dynamic cache allocation policy adaptation in a data processing apparatus |
US9910876B2 (en) * | 2014-06-11 | 2018-03-06 | International Business Machines Corporation | Query handling in a columnar database |
EP3161630A1 (en) | 2014-06-26 | 2017-05-03 | Amazon Technologies, Inc. | Multi-database log with multi-item transaction support |
CN104281506B (zh) | 2014-07-10 | 2017-02-15 | 中国科学院计算技术研究所 | 一种文件***的数据维护方法及*** |
CN104216955B (zh) | 2014-08-20 | 2017-12-26 | 百度在线网络技术(北京)有限公司 | 一种操作数据及管理事务的方法、装置及分布式*** |
US9904604B2 (en) * | 2014-09-30 | 2018-02-27 | Code 42 Software, Inc. | Distributed file system backup and synchronization |
US20160147458A1 (en) * | 2014-11-25 | 2016-05-26 | Samsung Electronics Co., Ltd. | Computing system with heterogeneous storage and method of operation thereof |
CN104636084B (zh) | 2015-01-21 | 2016-04-27 | 广东电网有限责任公司电力科学研究院 | 一种对电力大数据进行分布存储的装置和方法 |
US20170109214A1 (en) * | 2015-10-16 | 2017-04-20 | Qualcomm Incorporated | Accelerating Task Subgraphs By Remapping Synchronization |
US11157493B2 (en) * | 2015-12-30 | 2021-10-26 | Facebook, Inc. | Optimistic data fetching and rendering |
US10289693B2 (en) * | 2015-12-30 | 2019-05-14 | Dropbox, Inc. | Techniques for providing user interface enhancements for online content management system version histories |
US11386078B2 (en) * | 2018-12-17 | 2022-07-12 | Sap Se | Distributed trust data storage system |
-
2016
- 2016-04-18 US US15/132,098 patent/US11157517B2/en active Active
-
2017
- 2017-04-18 EP EP21173881.0A patent/EP3885928A1/en active Pending
- 2017-04-18 CN CN202210428437.XA patent/CN114780509A/zh active Pending
- 2017-04-18 EP EP17733149.3A patent/EP3446239B1/en active Active
- 2017-04-18 JP JP2018554725A patent/JP6669892B2/ja active Active
- 2017-04-18 KR KR1020207022154A patent/KR102293093B1/ko active IP Right Grant
- 2017-04-18 CN CN201780024249.8A patent/CN109074387B/zh active Active
- 2017-04-18 KR KR1020187032841A patent/KR102141234B1/ko active IP Right Grant
- 2017-04-18 WO PCT/US2017/028125 patent/WO2017184593A1/en active Application Filing
-
2020
- 2020-02-27 JP JP2020031312A patent/JP7113040B2/ja active Active
-
2021
- 2021-10-22 US US17/508,831 patent/US20220043830A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20170300552A1 (en) | 2017-10-19 |
WO2017184593A1 (en) | 2017-10-26 |
CN109074387B (zh) | 2022-05-13 |
EP3885928A1 (en) | 2021-09-29 |
JP2019515377A (ja) | 2019-06-06 |
CN109074387A (zh) | 2018-12-21 |
US20220043830A1 (en) | 2022-02-10 |
EP3446239A1 (en) | 2019-02-27 |
KR20180132874A (ko) | 2018-12-12 |
JP2020091902A (ja) | 2020-06-11 |
KR102141234B1 (ko) | 2020-08-04 |
US11157517B2 (en) | 2021-10-26 |
JP7113040B2 (ja) | 2022-08-04 |
KR20200096309A (ko) | 2020-08-11 |
EP3446239B1 (en) | 2021-11-17 |
KR102293093B1 (ko) | 2021-08-25 |
CN114780509A (zh) | 2022-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6669892B2 (ja) | 分散型データストアのバージョン化された階層型データ構造 | |
US11860895B2 (en) | Selectively replicating changes to hierarchial data structures | |
US11086531B2 (en) | Scaling events for hosting hierarchical data structures | |
US9946735B2 (en) | Index structure navigation using page versions for read-only nodes | |
US11574070B2 (en) | Application specific schema extensions for a hierarchical data structure | |
US11550763B2 (en) | Versioning schemas for hierarchical data structures | |
US10642840B1 (en) | Filtered hash table generation for performing hash joins | |
US11461347B1 (en) | Adaptive querying of time-series data over tiered storage | |
US9305056B1 (en) | Results cache invalidation | |
US11100129B1 (en) | Providing a consistent view of associations between independently replicated data objects | |
US10262024B1 (en) | Providing consistent access to data objects transcending storage limitations in a non-relational data store | |
US11455305B1 (en) | Selecting alternate portions of a query plan for processing partial results generated separate from a query engine | |
US11657088B1 (en) | Accessible index objects for graph data structures | |
US11256695B1 (en) | Hybrid query execution engine using transaction and analytical engines | |
US11500837B1 (en) | Automating optimizations for items in a hierarchical data store | |
US11941014B1 (en) | Versioned metadata management for a time-series database | |
US11886439B1 (en) | Asynchronous change data capture for direct external transmission | |
US11010361B1 (en) | Executing code associated with objects in a hierarchial data structure | |
US20240111751A1 (en) | Record-level locks with constant space complexity | |
US11550760B1 (en) | Time-based partitioning to avoid in-place updates for data set copies | |
US11914571B1 (en) | Optimistic concurrency for a multi-writer database |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20181018 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190920 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20191008 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200108 |
|
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: 20200128 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200227 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6669892 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |