JP7450735B2 - 確率的データ構造を使用した要求の低減 - Google Patents
確率的データ構造を使用した要求の低減 Download PDFInfo
- Publication number
- JP7450735B2 JP7450735B2 JP2022546342A JP2022546342A JP7450735B2 JP 7450735 B2 JP7450735 B2 JP 7450735B2 JP 2022546342 A JP2022546342 A JP 2022546342A JP 2022546342 A JP2022546342 A JP 2022546342A JP 7450735 B2 JP7450735 B2 JP 7450735B2
- Authority
- JP
- Japan
- Prior art keywords
- database
- probabilistic data
- data structure
- node
- transaction
- 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
- 238000000034 method Methods 0.000 claims description 71
- 230000004044 response Effects 0.000 claims description 44
- 230000006870 function Effects 0.000 claims description 35
- 238000012545 processing Methods 0.000 claims description 33
- 230000002085 persistent effect Effects 0.000 claims description 15
- 238000010926 purge Methods 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 10
- 238000013459 approach Methods 0.000 description 6
- 238000003780 insertion Methods 0.000 description 6
- 230000037431 insertion Effects 0.000 description 6
- 238000011010 flushing procedure Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000009472 formulation Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000544061 Cuculus canorus Species 0.000 description 1
- 206010000210 abortion Diseases 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 229920000638 styrene acrylonitrile Polymers 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000007704 transition Effects 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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/2379—Updates performed during online database operations; commit processing
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- 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/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- 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/1865—Transactional 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/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
- 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
-
- 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/90—Details of database functions independent of the retrieved data types
- G06F16/907—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/908—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/16—General purpose computing application
- G06F2212/163—Server or database system
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)
- Computer Security & Cryptography (AREA)
- Library & Information Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Power Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本開示は、一般に、データベースシステムに関し、より具体的には、確率的データ構造を使用して、データベースノード間の呼び出し/要求を低減することに関する。
現代のデータベースシステムは、ユーザが、効率的にアクセスして操作できるように組織化された方法で情報の集合を記憶することを可能にする、管理システムを日常的に実装する。場合によっては、これらの管理システムは、各々がキー値ペアとして情報を記憶する複数のレベルを有する、ログ構造化マージツリー(LSM(log-structured merge)ツリー)を維持する。LSMツリーは、通常、インメモリキャッシュ(in-memory cache)と永続的ストレージという2つの高レベル構成要素を含む。動作中、データベースシステムは、最初にデータベースレコードをインメモリキャッシュに書き込み、後で永続的ストレージにそれらをフラッシュする。
いくつかの実装では、LSMツリーを維持するデータベースシステムは、LSMツリーに関連付けられる永続的ストレージにレコードを書き込む前に、LSMツリーのインメモリキャッシュにこれらのレコードを書き込む。いくつかのアプローチでは、データベースシステムは、LSMツリーへのレコードの書き込みを担当する単一のデータベースノードを含む。他のアプローチでは、データベースシステムは、LSMツリーからレコードの読み込みも行う間に、LSMツリーにレコードを書き込む複数のデータベースノードを含む。これらのデータベースノードは、共通の永続的ストレージを共有し得るが、各々それら自身のインメモリキャッシュを有している。このシナリオでは、しかしながら、データベースノードによってそのインメモリキャッシュに書き込まれるレコードは、それらのレコードが共通の永続的ストレージにフラッシュされるまで、他のデータベースノードに対して可視ではない。本発明者らは、この配置が、ある非効率性を引き起こすことを認識している。ある特定のレコードの最新バージョン(latest version)にアクセスすることを伴うトランザクションを処理している第1データベースノードを考える。このレコードは、第2データベースノードのインメモリキャッシュに記憶されていることがあり、よって、第1データベースノードに対して可視ではない。その結果、第1データベースノードは、第2データベースノードがそのレコードの最新バージョンを有しているかどうかを判断するために、第2データベースノードに要求を発行しなければならない。
次に図9に移ると、システム100、データベース110及び/又はデータベースノード120を実装し得る例示のコンピュータシステム900のブロック図が示されている。コンピュータシステム900は、相互接続960(例えばシステムバス)を介してシステムメモリ920及びI/Oインタフェース940に結合されるプロセッサ・サブシステム980を含む。I/Oインタフェース940は、1つ以上のI/Oデバイス950に結合される。コンピュータシステム900は、これらに限定されないが、サーバシステム、パーソナルコンピュータシステム、デスクトップコンピュータ、ラップトップ又はノートブックコンピュータ、メインフレームコンピュータシステム、タブレットコンピュータ、ハンドヘルドコンピュータ、ワークステーション、ネットワークコンピュータ、携帯電話や音楽プレーヤ又はパーソナルデータアシスタント(PDA)のような消費者デバイスを含む、様々なタイプのデバイスのいずれであってよい。便宜的に単一のコンピュータシステム900が図9に示されているが、システム900はまた、一緒に動作する2つ以上のコンピュータシステムとして実装されてもよい。
1. 第1データベースノードによって、データベースレコードのセットを第1データベースノードのインメモリキャッシュに書き込むことを伴う、データベーストランザクションを処理するステップであって、該処理するステップは、データベースレコードのセットに対応するデータベースキーのセットを確率的データ構造のセットに挿入することを含む、ステップと、
第1データベースノードからデータベースキーに関連付けられるデータベースレコードを要求するかどうかを第2データベースノードが判断することを可能にするために、第1データベースノードによって、確率的データ構造のセットを第2データベースノードに送信するステップと、
を含む、方法。
2. データベースキーのセットのうちの所与のデータベースキーを確率的データ構造のセットのうちの所与の確率的データ構造に挿入することは、
第1データベースノードによって、ハッシュ関数を所与のデータベースキーに適用して、所与の確率的データ構造に含まれる複数のキャッシュラインのうちの特定のキャッシュラインに対応するハッシュ値を導出することと、
第1データベースノードによって、所与のデータベースキーを所与の確率的データ構造の特定のキャッシュラインに挿入することと、
を含む、例1に記載の方法。
3. 所与のデータベースキーを所与の確率的データ構造の特定のキャッシュラインに挿入することは、
第1データベースノードによって、ハッシュ関数のセットを所与のデータベースキーに適用して、ハッシュ値のセットを導出することと、
第1データベースノードによって、ハッシュ値のセットに基づいて、特定のキャッシュラインのビットのセットを設定することと、
を含む、例2に記載の方法。
4. データベースキーのセットを挿入することは、
第1データベースノードによって、データベースキーのセットのうちのデータベースキーを確率的データ構造のセットのうちの第1確率的データ構造に挿入することと、
第1確率的データ構造が、定義された閾値数のデータベースキーを含んでいることに応答して、第1データベースノードが、データベースキーのセットのうちの残りのデータベースキーを確率的データ構造のセットのうちの第2の異なる確率的データ構造に挿入することと、
を含む、例1に記載の方法。
5. 確率的データ構造のセットのうちの所与の確率的データ構造は、該所与の確率的データ構造にデータベースキーが挿入されたアクティブトランザクションの数を示すメタデータに関連付けられ、方法は、
第1データベースノードによって、アクティブトランザクションの数が、所与の確率的データ構造についてアクティブトランザクションが存在することを示すかどうかに基づいて、所与の確率的データ構造をパージすることができるかどうかを判断するステップ、
を更に含む、例1に記載の方法。
6. 確率的データ構造のセットのうちの少なくとも2つの確率的データ構造は各々、データベーストランザクションを処理することの一部として挿入されるそれぞれのデータベースキーを含み、方法は、
インメモリキャッシュに関連してデータベーストランザクションをコミットすることに応答して、第1データベースノードが、少なくとも2つの確率的データ構造の各々について、その確率的データ構造に関連付けられるアクティブトランザクションの数をデクリメントするステップ、
を更に含む、例5に記載の方法。
7. 確率的データ構造のセットを第2データベースノードに送信した後に、第1データベースノードが、1つ以上の追加の確率的データ構造を確率的データ構造のセットに追加するステップと、
第1データベースノードによって、第2データベースノードから、特定のデータベースキーに関連付けられるデータベースレコードの最近のバージョンについて、データベースレコード要求を受け取るステップと、
第1データベースノードによって、データベースレコード要求に対する応答において、1つ以上の追加の確率的データ構造を含めるステップと、
を更に含む、例1に記載の方法。
8. 確率的データ構造のセットのうちの所与の確率的データ構造は、該所与の確率的データ構造に対応する最新のトランザクションコミットを示すメタデータに関連付けられ、方法は、
含めるステップの前に、1つ以上の追加の確率的データ構造の各々が、データベースレコード要求で指定される特定のトランザクションコミットより後の時点に対応する、それぞれの最新のトランザクションコミットに関連付けられていることに基づいて、第1データベースノードが、1つ以上の追加の確率的データ構造を含めると決定するステップ、
を更に含む、例7に記載の方法。
9. 第1データベースノードによって、インメモリキャッシュから、第1データベースノードと第2データベースノードとの間で共有される永続的ストレージに、データベースレコードのセットのうちの1つ以上のデータベースレコードを書き込むステップと、
書き込むステップに応答して、第1データベースノードが、確率的データ構造のセットのうちの所与の確率的データ構造をパージするかどうかを判断するステップと、
を更に含む、例1に記載の方法。
10. 確率的データ構造のセットのうちの少なくとも1つの確率的データ構造は、複数の異なるトランザクションからのデータベースキーに関連付けられる、
例1に記載の方法。
11. 第1コンピュータシステムに、
データベースレコードのセットを第1コンピュータシステムのインメモリキャッシュに書き込むことを伴う、データベーストランザクションを処理するステップであって、該処理するステップは、データベースレコードのセットに対応するデータベースキーのセットを確率的データ構造のセットに挿入することを含む、ステップと、
第1コンピュータシステムから特定のデータベースキーに関連付けられるデータベースレコードを要求するかどうかを第2コンピュータシステムが判断することを可能にするために、確率的データ構造のセットを第2コンピュータシステムに送信するステップと、
を含む動作を実行させることができるプログラム命令を有する、非一時的コンピュータ読取可能媒体。
12. データベースキーのセットのうちの所与のデータベースキーを確率的データ構造のセットのうちの所与の確率的データ構造に挿入することは、
ハッシュ関数を所与のデータベースキーに適用してハッシュ値を導出することと、
ハッシュ値に基づいて、所与の確率的データ構造の複数のキャッシュラインのうちの1つのキャッシュラインを選択することと、
所与のデータベースキーを選択されたキャッシュラインに挿入することと、
を含む、例11に記載の非一時的コンピュータ読取可能媒体。
13. データベースキーのセットを確率的データ構造のセットに挿入することは、
データベースキーのセットのうちのデータベースキーを、確率的データ構造のセットのうち、少なくとも閾値数のデータベースキーを含むことができる第1確率的データ構造に挿入することと、
第1確率的データ構造の閾値数に到達した後に、データベースキーのセットのうちの他のデータベースキーを、確率的データ構造のセットのうちの第2確率的データ構造に挿入することと、
を含む、例11に記載の非一時的コンピュータ読取可能媒体。
14. 確率的データ構造のセットのうちの特定の確率的データ構造は、該特定の確率的データ構造にデータベースキーが挿入されたアクティブトランザクションの数を示すアクティブトランザクションカウントを指定するメタデータを含み、
データベーストランザクションを処理することは、少なくとも1つのデータベースキーを特定の確率的データ構造内に挿入することを伴い、動作は、
データベーストランザクションをコミットすることに応答して、特定の確率的データ構造のアクティブトランザクションの数をデクリメントするステップ、
を更に含む、例11に記載の非一時的コンピュータ読取可能媒体。
15. 動作は、
第1コンピュータシステムのインメモリキャッシュから、第1コンピュータシステムと第2コンピュータシステムとの間で共有される永続的ストレージに、データベースレコードのセットを書き込むステップと、
永続的ストレージにデータベースレコードのセットを書き込むステップに応答して、確率的データ構造のセットのうちの1つ以上の確率的データ構造をパージするかどうかを判断するステップと、
を更に含む、例11に記載の非一時的コンピュータ読取可能媒体。
16. 第1データベースノードによって、第2データベースノードから、所与のデータベースレコードが第2データベースノードのインメモリキャッシュ内に記憶されていないかどうかを判断するために使用可能な確率的データ構造のセットを受け取るステップと、
第1データベースノードによって、特定のデータベースキーを伴うデータベーストランザクションを処理する要求を受け取るステップと、
第1データベースノードによって、確率的データ構造のセットに基づいて、第2データベースノードから、特定のデータベースキーに関連付けられるデータベースレコードの最近のバージョンを要求するかどうかを判断するステップと、
を含む、方法。
17. 確率的データ構造のセットのうちの所与の確率的データ構造は、複数のキャッシュラインを含み、判断するステップは、
第1データベースノードによって、ハッシュ関数を特定のデータベースキーに適用してハッシュ値を導出するステップと、
ハッシュ値に基づいて、第1データベースノードが、所与の確率的データ構造の複数のキャッシュラインのうちの1つのキャッシュラインを選択するステップと、
第1データベースノードによって、キャッシュラインに記憶された情報が特定のデータベースキーを示すかどうかを判断するステップと、
を含む、例16に記載の方法。
18. キャッシュラインに記憶された情報が特定のデータベースキーを示していないと判断したことに応答して、第1データベースノードが、該第1データベースノードと第2データベースノードによって共有される永続的ストレージから、データベースレコードの最近のバージョンを要求するステップ、
を更に含む、例17に記載の方法。
19. キャッシュラインに記憶された情報が特定のデータベースキーを示すと判断したことに応答して、第1データベースノードが、データベースレコードの最近のバージョンについての要求を第2データベースノードに送信するステップと、
第1データベースノードによって、第2データベースノードからの応答を受け取るステップと、
を更に含む、例17に記載の方法。
20. 要求は、確率的データ構造のセットに関連付けられる最新のトランザクションコミットを識別し、応答は、追加の確率的データ構造のセットを含み、追加の確率的データ構造の各々は、要求によって識別される最新のトランザクションコミットより後に発生する最新のトランザクションコミットに関連付けられる、
例19に記載の方法。
Claims (11)
- 第1データベースノードによって、データベースレコードのセットを前記第1データベースノードのインメモリキャッシュに書き込むことを伴う、データベーストランザクションを処理するステップであって、該処理するステップは、前記データベースレコードのセットに対応するデータベースキーのセットを確率的データ構造のセットのうちの特定の確率的データ構造に挿入することを含み、前記特定の確率的データ構造は、前記データベーストランザクションのトランザクションコミット番号(XCN)に関連付けられ、前記データベースキーのセットのうちの所与のデータベースキーを前記特定の確率的データ構造に挿入することは、
ハッシュ関数を前記所与のデータベースキーに適用して、前記特定の確率的データ構造に含まれる複数のキャッシュラインのうちの特定のキャッシュラインを識別することと、
ハッシュ値のセットに基づいて前記特定のキャッシュラインのビットのセットを設定することによって、前記所与のデータベースキーを前記特定のキャッシュラインに挿入することと、
を含む、ステップと、
前記第1データベースノードによって、第2データベースノードから、特定のデータベースキーに関連付けられるデータベースレコードの最新のバージョンを求める要求を受け取るステップであって、前記要求は、前記第2データベースノードに関連付けられるXCNを指定する、ステップと、
前記第1データベースノードによって、前記第2データベースノードに、前記確率的データ構造のセットうち、前記第2データベースノードに関連付けられる前記XCNより後の時点を示すXCNを有する確率的データ構造のみを含む、前記要求に対する応答を送信するステップであって、送信されるデータ構造は、前記第1データベースノードからデータベースキーに関連付けられるデータベースレコードを要求するかどうかを前記第2データベースノードが判断することを可能にする、ステップと、
を含む、方法。 - 前記所与のデータベースキーを前記特定のキャッシュラインに挿入することは、
前記第1データベースノードによって、ハッシュ関数のセットを前記所与のデータベースキーに適用して、前記ハッシュ値のセットを導出すること
を含む、請求項1に記載の方法。 - 前記データベースキーのセットを挿入することは、
前記特定の確率的データ構造が、定義された閾値数のデータベースキーを含んでいることに応答して、前記第1データベースノードが、前記データベースキーのセットのうちの残りのデータベースキーを前記確率的データ構造のセットのうちの別の特定の確率的データ構造に挿入することと、
を含む、請求項1又は2に記載の方法。 - 前記特定の確率的データ構造は、該特定の確率的データ構造にデータベースキーが挿入されたアクティブトランザクションの数を示すメタデータに関連付けられ、当該方法は、
前記第1データベースノードによって、前記アクティブトランザクションの数が、前記特定の確率的データ構造についてアクティブトランザクションが存在することを示すかどうかに基づいて、前記特定の確率的データ構造をパージするかどうかを判断するステップ、
を更に含む、請求項1乃至3のいずれか一項に記載の方法。 - 前記確率的データ構造のセットのうちの少なくとも2つの確率的データ構造は各々、前記データベーストランザクションを処理することの一部として挿入されるそれぞれのデータベースキーを含み、当該方法は、
前記インメモリキャッシュに関連して前記データベーストランザクションをコミットすることに応答して、前記第1データベースノードが、前記少なくとも2つの確率的データ構造の各々について、その確率的データ構造に関連付けられる前記アクティブトランザクションの数をデクリメントするステップ、
を更に含む、請求項4に記載の方法。 - 前記第1データベースノードによって、前記インメモリキャッシュから、前記第1データベースノードと前記第2データベースノードとの間で共有される永続的ストレージに、前記データベースレコードのセットのうちの1つ以上のデータベースレコードを書き込むステップと、
前記書き込むステップに応答して、前記第1データベースノードが、前記確率的データ構造のセットのうちの所与の確率的データ構造をパージするかどうかを判断するステップと、
を更に含む、請求項1乃至5のいずれか一項に記載の方法。 - 前記確率的データ構造のセットのうちの少なくとも1つの確率的データ構造は、複数の異なるトランザクションからのデータベースキーに関連付けられる、請求項1乃至6のいずれか一項に記載の方法。
- コンピュータシステムであって、
少なくとも1つのプロセッサと、
請求項1乃至7のいずれか一項に記載の方法を実行するために前記少なくとも1つのプロセッサによって実行可能であるプログラム命令を有するメモリと、
を含む、コンピュータシステム。 - 第1コンピュータシステムに、
データベースレコードのセットを前記第1コンピュータシステムのインメモリキャッシュに書き込むことを伴う、データベーストランザクションを処理するステップであって、該処理するステップは、前記データベースレコードのセットに対応するデータベースキーのセットを確率的データ構造のセットのうちの特定の確率的データ構造に挿入することを含み、前記特定の確率的データ構造は、前記データベーストランザクションのトランザクションコミット番号(XCN)に関連付けられ、前記データベースキーのセットのうちの所与のデータベースキーを前記特定の確率的データ構造に挿入することは、
ハッシュ関数を前記所与のデータベースキーに適用して、前記特定の確率的データ構造に含まれる複数のキャッシュラインのうちの特定のキャッシュラインを識別することと、
ハッシュ値のセットに基づいて前記特定のキャッシュラインのビットのセットを設定することによって、前記所与のデータベースキーを前記特定のキャッシュラインに挿入することと、
を含む、ステップと、
第2コンピュータシステムから、特定のデータベースキーに関連付けられるデータベースレコードの最新のバージョンを求める要求を受け取るステップであって、前記要求は、前記第2コンピュータシステムに関連付けられるXCNを指定する、ステップと、
前記第2コンピュータシステムに、前記確率的データ構造のセットうち、前記第2コンピュータシステムに関連付けられる前記XCNより後の時点を示すXCNを有する確率的データ構造のみを含む、前記要求に対する応答を送信するステップであって、送信されるデータ構造は、前記第1コンピュータシステムから特定のデータベースキーに関連付けられるデータベースレコードを要求するかどうかを前記第2コンピュータシステムが判断することを可能にする、ステップと、
を含む動作を実行させることができるプログラム命令を有する、コンピュータ読取可能媒体。 - 前記データベースキーのセットを挿入することは、
前記特定の確率的データ構造の閾値数に到達した後に、前記データベースキーのセットのうちの他のデータベースキーを、前記確率的データ構造のセットのうちの別の特定の確率的データ構造に挿入することと、
を含む、請求項9に記載のコンピュータ読取可能媒体。 - 前記特定の確率的データ構造は、該特定の確率的データ構造にデータベースキーが挿入されたアクティブトランザクションの数を示すアクティブトランザクションカウントを指定するメタデータを含み、
前記動作は、
前記データベーストランザクションをコミットすることに応答して、前記特定の確率的データ構造の前記アクティブトランザクションの数をデクリメントするステップ、
を更に含む、請求項9又は10に記載のコンピュータ読取可能媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/777,870 | 2020-01-30 | ||
US16/777,870 US11514015B2 (en) | 2020-01-30 | 2020-01-30 | Reducing requests using probabilistic data structures |
PCT/US2021/013623 WO2021154516A1 (en) | 2020-01-30 | 2021-01-15 | Reducing requests using probabilistic data structures |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2023511743A JP2023511743A (ja) | 2023-03-22 |
JP7450735B2 true JP7450735B2 (ja) | 2024-03-15 |
Family
ID=74495110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022546342A Active JP7450735B2 (ja) | 2020-01-30 | 2021-01-15 | 確率的データ構造を使用した要求の低減 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11514015B2 (ja) |
EP (1) | EP3991057A1 (ja) |
JP (1) | JP7450735B2 (ja) |
CN (1) | CN114207602A (ja) |
WO (1) | WO2021154516A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111737279B (zh) * | 2020-08-24 | 2020-12-18 | 支付宝(杭州)信息技术有限公司 | 基于区块链的业务处理方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080155229A1 (en) | 2006-12-21 | 2008-06-26 | Kevin Scott Beyer | System and method for generating a cache-aware bloom filter |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7085895B2 (en) | 2003-09-05 | 2006-08-01 | International Business Machines Corporation | Apparatus, system, and method flushing data from a cache to secondary storage |
US20060041724A1 (en) * | 2004-08-17 | 2006-02-23 | Steely Simon C Jr | Locked cache line sharing |
US10055468B2 (en) * | 2007-04-30 | 2018-08-21 | Wolfram Research, Inc. | Access to data collections by a computational system |
US8352421B2 (en) | 2008-05-28 | 2013-01-08 | Red Hat, Inc. | Recording distributed transactions using probabalistic data structures |
US20130173853A1 (en) * | 2011-09-26 | 2013-07-04 | Nec Laboratories America, Inc. | Memory-efficient caching methods and systems |
US8990243B2 (en) | 2011-11-23 | 2015-03-24 | Red Hat, Inc. | Determining data location in a distributed data store |
US11429675B2 (en) | 2018-06-20 | 2022-08-30 | Mongodb, Inc. | Systems and methods for managing transactional operation |
US8949224B2 (en) * | 2013-01-15 | 2015-02-03 | Amazon Technologies, Inc. | Efficient query processing using histograms in a columnar database |
US8972337B1 (en) | 2013-02-21 | 2015-03-03 | Amazon Technologies, Inc. | Efficient query processing in columnar databases using bloom filters |
US9514007B2 (en) * | 2013-03-15 | 2016-12-06 | Amazon Technologies, Inc. | Database system with database engine and separate distributed storage service |
US9760596B2 (en) * | 2013-05-13 | 2017-09-12 | Amazon Technologies, Inc. | Transaction ordering |
US9659050B2 (en) | 2013-08-06 | 2017-05-23 | Sybase, Inc. | Delta store giving row-level versioning semantics to a non-row-level versioning underlying store |
US20150186160A1 (en) | 2014-01-02 | 2015-07-02 | Advanced Micro Devices, Inc. | Configuring processor policies based on predicted durations of active performance states |
US20150206087A1 (en) * | 2014-01-17 | 2015-07-23 | VSK Ventures, LLC | Synchronous Location-Based Matching of Merchant Offers with High Propensity Consumers |
GB2527024A (en) * | 2014-04-09 | 2015-12-16 | Neul Ltd | Probabilistic data structures |
US10303806B2 (en) | 2014-08-20 | 2019-05-28 | Sachin Sinha | Method and system for providing concurrent buffer pool and page cache |
US20170091756A1 (en) | 2015-07-14 | 2017-03-30 | Fmr Llc | Point-to-Point Transaction Guidance Apparatuses, Methods and Systems |
US10372706B2 (en) * | 2015-07-29 | 2019-08-06 | Oracle International Corporation | Tracking and maintaining expression statistics across database queries |
US10877956B2 (en) | 2015-11-24 | 2020-12-29 | Sap Se | Transactional cache invalidation for inter-node caching |
US10353895B2 (en) | 2015-11-24 | 2019-07-16 | Sap Se | Atomic visibility switch for transactional cache invalidation |
WO2018129500A1 (en) | 2017-01-09 | 2018-07-12 | President And Fellows Of Harvard College | Optimized navigable key-value store |
US11386065B2 (en) | 2017-01-31 | 2022-07-12 | Salesforce.Com, Inc. | Database concurrency control through hash-bucket latching |
US10803039B2 (en) * | 2017-05-26 | 2020-10-13 | Oracle International Corporation | Method for efficient primary key based queries using atomic RDMA reads on cache friendly in-memory hash index |
US10872066B2 (en) | 2017-06-27 | 2020-12-22 | Salesforce.Com, Inc. | Systems and methods of database tenant migration |
US10592353B2 (en) | 2017-06-27 | 2020-03-17 | Salesforce.Com, Inc. | Systems and methods of restoring a dataset of a database for a point in time |
US11151028B2 (en) | 2018-01-22 | 2021-10-19 | President And Fellows Of Harvard College | Key-value stores with optimized merge policies and optimized LSM-tree structures |
US10691693B2 (en) | 2018-01-30 | 2020-06-23 | Salesforce.Com, Inc. | Cache for efficient record lookups in an LSM data structure |
CN109388481B (zh) * | 2018-09-21 | 2021-08-17 | 网易(杭州)网络有限公司 | 一种事务信息的传输方法、系统、装置、计算设备和介质 |
-
2020
- 2020-01-30 US US16/777,870 patent/US11514015B2/en active Active
-
2021
- 2021-01-15 EP EP21702836.4A patent/EP3991057A1/en active Pending
- 2021-01-15 JP JP2022546342A patent/JP7450735B2/ja active Active
- 2021-01-15 CN CN202180004842.2A patent/CN114207602A/zh active Pending
- 2021-01-15 WO PCT/US2021/013623 patent/WO2021154516A1/en unknown
-
2022
- 2022-11-28 US US18/059,274 patent/US20230090835A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080155229A1 (en) | 2006-12-21 | 2008-06-26 | Kevin Scott Beyer | System and method for generating a cache-aware bloom filter |
Non-Patent Citations (1)
Title |
---|
Tao ZHU et al.,Fault-tolerant precise data access on distributed log-structured merge-tree,Frontiers of Computer Science,中国,Higher Education Press,2019年,Vol.13, No.4,pp.760-777,Internet<https://doi.org/10.1007/s11704-018-7198-6> |
Also Published As
Publication number | Publication date |
---|---|
EP3991057A1 (en) | 2022-05-04 |
CN114207602A (zh) | 2022-03-18 |
WO2021154516A1 (en) | 2021-08-05 |
JP2023511743A (ja) | 2023-03-22 |
US20230090835A1 (en) | 2023-03-23 |
US20210240687A1 (en) | 2021-08-05 |
US11514015B2 (en) | 2022-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11386065B2 (en) | Database concurrency control through hash-bucket latching | |
JP7220234B6 (ja) | Lsmデータ構造内の効率的なレコードルックアップのためのキャッシュ | |
US11347774B2 (en) | High availability database through distributed store | |
US8074035B1 (en) | System and method for using multivolume snapshots for online data backup | |
US9405680B2 (en) | Communication-link-attached persistent memory system | |
US7035881B2 (en) | Organization of read-write snapshot copies in a data storage system | |
US8499004B2 (en) | File system with optimistic I/O operations on shared storage | |
CN109800185B (zh) | 一种数据存储系统中的数据缓存方法 | |
US20130290636A1 (en) | Managing memory | |
AU2024205026A1 (en) | Multi-version concurrency control (MVCC) in non-volatile memory | |
WO2016119597A1 (zh) | Oltp集群数据库中页面查询方法及数据处理节点 | |
EP3824397B1 (en) | Version-based table locking | |
US20240028598A1 (en) | Transaction Processing Method, Distributed Database System, Cluster, and Medium | |
US20230090835A1 (en) | Reducing requests using probabilistic data structures | |
WO2020119709A1 (zh) | 数据合并的实现方法、装置、系统及存储介质 | |
US20180011897A1 (en) | Data processing method having structure of cache index specified to transaction in mobile environment dbms | |
US10642745B2 (en) | Key invalidation in cache systems | |
US11442663B2 (en) | Managing configuration data | |
CN113204520A (zh) | 一种基于分布式文件系统的遥感数据快速并发读写方法 | |
US11526474B2 (en) | Reducing requests using probabilistic data structures | |
US20240193186A1 (en) | Database layered filtering | |
US10706012B2 (en) | File creation | |
CN118132598B (zh) | 基于多级缓存的数据库数据处理方法及设备 | |
US11748329B2 (en) | Updating a multi-tenant database concurrent with tenant cloning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220729 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230825 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230829 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231129 |
|
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: 20240206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240305 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7450735 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |