JP7220234B6 - Lsmデータ構造内の効率的なレコードルックアップのためのキャッシュ - Google Patents
Lsmデータ構造内の効率的なレコードルックアップのためのキャッシュ Download PDFInfo
- Publication number
- JP7220234B6 JP7220234B6 JP2020562087A JP2020562087A JP7220234B6 JP 7220234 B6 JP7220234 B6 JP 7220234B6 JP 2020562087 A JP2020562087 A JP 2020562087A JP 2020562087 A JP2020562087 A JP 2020562087A JP 7220234 B6 JP7220234 B6 JP 7220234B6
- Authority
- JP
- Japan
- Prior art keywords
- record
- cache
- file
- key
- tree
- 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
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/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
- 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
- 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
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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/172—Caching, prefetching or hoarding 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/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/84—Mapping; Conversion
- G06F16/86—Mapping to a database
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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
-
- 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/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本開示は、ログ構造化マージツリーに格納されているレコードを探す(locate)ために使用可能なキャッシュを維持するための技術を説明する。本明細書で使用されるとき、「ログ構造化マージツリー」又は「LSMツリー」は、少なくともメモリコンポーネント及びオンディスクコンポーネントを含む組織スキームであって、この場合、データがまずメモリコンポーネントに書き込まれ、後にオンディスクコンポーネントに転送され、ここで、トップレベルから開始してオンディスクコンポーネント上のデータ構造のレベルを介して「マージ」される。マージは、データが古くなるにつれて、より低速で安価な記憶媒体に書き込まれることを可能にする。LSMツリーの他の態様は、その実装に基づいて、いったん書き込まれた後は不変であるファイル、オンディスクコンポーネント内の各レベルの異なるサイズ(例えばファイルの数)及びレコードの順序付けされたセットを含むファイルを含み得る。LSMツリーは、データの以前のバージョンの位置を特定して上書きしなければならない代わりに、そのデータをオンディスクコンポーネントのルートレベルに格納することができるので、(Bツリーのような構造に対して)改善された書き込みスピードを可能にし得る。
次に、図12に移ると、データベースシステム10を実装し得る例示のコンピュータシステム1200のブロック図が図示されている。コンピュータシステム1200は、相互接続部1260(例えばシステムバス)を介してシステムメモリ1220及びI/Oインタフェース1240に結合される、プロセッササブシステム1280を含む。I/Oインタフェース1240は1つ以上のI/Oデバイス1250に結合される。コンピュータシステム1200は、これらに限定されないが、サーバシステム、パーソナルコンピュータシステム、デスクトップコンピュータ、ラップトップ又はノートブックコンピュータ、メインフレームコンピュータシステム、タブレットコンピュータ、ハンドヘルドコンピュータ、ワークステーション、ネットワークコンピュータ、携帯電話や音楽プレーヤ又はパーソナルデジタルアシスタント(PDA)といった消費者デバイスを含む、様々なタイプのデバイスのいずれかであってよい。図12には便宜性のため単一のコンピュータシステム1200が示されているが、システム1200は、一緒に動作する2つ以上のコンピュータシステムとして実装されてもよい。
1. コンピュータシステムによって、データベースのためのファイルを格納することができる複数のレベルを有するログ構造化マージツリー(LSMツリー)を維持するステップであって、前記ファイルは、各々がキー及び対応するデータを有する、1つ以上のレコードを含む、ステップと;
前記コンピュータシステムによって、エントリが、キーについて、前記LSMツリーのファイル内の対応するレコードの位置の指示を格納する、データベースのためのキャッシュを維持するステップと;
前記コンピュータシステムによって、前記LSMツリー内に格納されている特定のレコードにアクセスする要求を受け取るステップであって、前記要求は、前記特定のレコードを探すために使用可能な第1キーを指定する、ステップと;
前記コンピュータシステムによって、前記第1キーを介して前記キャッシュから前記特定のレコードの位置の特定の指示を取り出すステップと;
前記特定の指示を使用して、前記コンピュータシステムが前記特定のレコードにアクセスするステップと;
を含む、方法。
2. 前記コンピュータシステムによって、前記LSMツリー内に追加のファイルを格納するステップであって、前記追加のファイルは、キーのセット及び対応するデータを含む、ステップと;
前記追加のファイルを格納するステップに続いて、前記コンピュータシステムが、前記キーのセットに含まれるキーを有する前記キャッシュ内のエントリを無効にするステップと;
を更に含む、例1の方法。
3. 前記コンピュータシステムによって、前記LSMツリー内の第1レベルから第2レベルに特定のファイルをコピーするステップであって、該コピーするステップは、前記第1レベルのストレージ閾値に到達したことに応答して実行される、ステップと;
前記コピーするステップに続いて、
前記特定のファイル内の位置の指示を格納している前記キャッシュ内のエントリが無効にされていると判断し、
前記LSMツリーを読み取る進行中のスレッドが、前記特定のファイルにアクセスできないと判断すると、
前記コンピュータシステムが前記第1レベルから前記特定のファイルを削除するステップと;
を更に含む、例1の方法。
4. 前記コンピュータシステムによって、複数のマニフェストを維持するステップであって、前記複数のマニフェストのマニフェストは、特定の時点で前記LSMツリーの特定のレベル内に含まれるファイルを識別し、前記複数のマニフェストのうちの1つが、前記特定のファイルを識別する、ステップと;
前記複数のマニフェストのうちのいずれもが前記特定のファイルを識別しないことに続いて、前記コンピュータシステムが、前記特定のファイル内の位置の指示を格納している前記キャッシュ内のエントリを無効にするステップと;
を更に含む、例3の方法。
5.前記LSMツリーを読み取る進行中のスレッドが、前記特定のファイルにアクセスできないと判断することは:
前記特定のファイル内の位置の指示を格納しているエントリが無効にされていると判断した後、前記コンピュータシステムが、1つ以上の進行中スレッドに関連付けられる特定のマニフェストを維持することと;
前記特定のマニフェストが期限切れであることに応答して、前記コンピュータシステムが前記特定のファイルを削除することと;
を含み、前記特定のマニフェストが期限切れであることは、前記LSMツリーを読み取る進行中スレッドが、前記特定のファイルにアクセスできないことを示す、
例4の方法。
6.位置の指示は、アトミックストア命令を使用して前記キャッシュ内のエントリに格納される、
例1の方法。
7.前記特定の指示を取り出すステップは、
前記コンピュータシステムによって、前記第1キーを使用してインデックス構造をスキャンすることにより第2キーを決定することを含み、前記特定の指示は、前記第2キーを使用して前記キャッシュ内に格納される、
例1の方法。
8. データベースシステムに、
データベースのためのファイルを格納する複数のレベルを有するデータ構造を維持するステップであって、前記ファイルは、各々がキー及び対応するデータを有する、1つ以上のレコードを含む、ステップと;
エントリが、所与のキーについて、対応するレコードが配置されている前記データ構造内の位置を定義する情報を格納する、データベースのためのキャッシュを維持するステップと;
前記データ構造内に格納されている特定のレコードにアクセスする要求を受け取るステップであって、前記要求は、前記特定のレコードを探すために使用可能な特定のキーを指定する、ステップと;
前記特定のキーを介して前記キャッシュから、前記特定のレコードが配置されている前記データ構造内の位置の指示を取り出すステップと;
前記指示を使用して、前記特定のレコードにアクセスするステップと;
を含む動作を実行させることができるプログラム命令を有する、非一時的コンピュータ読取可能媒体。
9. 前記動作は、
前記LSMツリー内に格納されている追加のレコードの要求を受け取るステップと、
前記キャッシュが前記追加のレコードの位置の指示を格納していないと判断したことに応答して、
前記特定のレコードについて前記データ構造を検索することによって、前記データ構造内の前記特定のレコードが格納されている場所を決定するステップと、
前記特定のレコードが格納されている場所を決定したことに応答して、前記データ構造内の前記特定のレコードが格納されている場所を示す指示を前記キャッシュ内に格納するステップと、
を更に含む、例8に記載の非一時的コンピュータ読取可能媒体。
10. 前記動作は、
外部ストレージから前記データ構造に複数のレコードを書き込むステップと、
前記複数のレコードを前記データ構造に書き込んだことに応答して、前記複数のレコードに関連付けられるキーに一致するキーに関連付けられる前記キャッシュ内のエントリを無効にするステップと、
を更に含む、例8の非一時的コンピュータ読取可能媒体。
11. 前記動作は、
前記データ構造の第1レベルのファイルから前記LSMツリーの第2レベルの新たなファイルに1つ以上のレコードを書き込むステップと、
前記書き込むステップに続いて、
前記ファイルに対応する情報を格納しているキャッシュ内のエントリが無効にされていると判断し、
前記データ構造を読み取る進行中のスレッドが、前記ファイルにアクセスできないと判断すると、
前記第1レベルから前記ファイルを削除するステップと、
を更に含む、例8の非一時的コンピュータ読取可能媒体。
12. 前記動作は、
前記データ構造内の所与のレベルについて、前記所与のレベルに含まれるファイルを指定する1つ以上のマニフェストを維持するステップと、
前記ファイルが第1レベルに含まれることを前記1つ以上のマニフェストが指定するかどうかを判断するステップと、
前記ファイルが前記第1レベルに含まれることを前記1つ以上のマニフェストが指定しないと判断したことに応答して、前記ファイルに対応するキャッシュ内のエントリを無効にするステップと、
を更に含む、例11の非一時的コンピュータ読取可能媒体。
13. 前記動作は、
前記キャッシュの特定のエントリ内に、前記データ構造内の第1レコードの位置を定義する第1指示を格納するステップであって、前記第1指示は、前記第1レコードに対応する第1のハッシュ化されたキーに基づいて格納される、ステップと、
前記キャッシュの前記特定のエントリ内の前記第1指示を、前記データ構造の第2レコードの位置を定義する第2指示で上書きするステップであって、前記第2指示は、前記第2レコードに対応する第2のハッシュ化されたキーに基づいて格納され、前記第2のハッシュ化されたキーは、前記第1のハッシュ化されたキーに一致する、ステップと、
を更に含む、例8の非一時的コンピュータ読取可能媒体。
14. 前記動作は、
前記データ構造内の前記第1レコードについての要求を受け取るステップであって、前記要求は、前記第1レコードに関連付けられる、あるキー(certain key)を含むステップと、
前記あるキーを使用してハッシュ導出関数を実行し、前記第1のハッシュ化されたキーを導出するステップと、
前記第1のハッシュ化されたキーに基づいて、前記特定のエントリから、対応するレコードの位置を定義する特定の指示を取り出すステップと、
前記特定の指示が、前記第2指示に対応し、前記第1レコードにアクセスするために使用可能でないと判断するステップと、
を更に含む、例13に記載の非一時的コンピュータ読取可能媒体。
15. 方法であって:
コンピュータシステムによって、データベースのためのファイルを格納する複数のレベルを有するログ構造化マージツリー(LSMツリー)を維持するステップであって、前記ファイルは、各々がキー及び対応するデータを有する、1つ以上のレコードを含む、ステップと、
前記コンピュータシステムによって、エントリが、所与のキーについて、対応するレコードが配置されている前記LSMツリー内の位置を指定する情報を格納する、データベースのためのキャッシュを維持するステップであって、前記キャッシュは、前記LSMツリーの第1レベルに格納されている第1ファイルに含まれる特定のレコードの位置を指定する情報を格納している特定のエントリを含む、ステップと、
前記コンピュータシステムによって、前記第1ファイル内に格納されている複数のレコードを、前記LSMツリーの第2レベルに含まれる第2ファイルにコピーすることによって、マージ手順を実行するステップであって、前記複数のレコードは前記特定のレコードを含むステップと、
前記コンピュータシステムによって、前記第1レベル内における前記特定のレコードの位置を指定する、前記特定のエントリ内に格納されている前記情報を無効にするステップと、
を含む、方法。
16. 前記無効にするステップは、
前記第2レベル内における前記特定のレコードの位置を指定するように、前記特定のエントリ内に格納されている前記情報を更新するステップを含む、
例15の方法。
17. 前記コンピュータシステムによって、前記コンピュータシステムのインメモリバッファから前記LSMツリーに1つ以上のレコードを書き込むステップと、
前記LSMツリーに前記1つ以上のレコードを書き込んだことに応答して、前記コンピュータシステムが、前記1つ以上のレコードに対応するキーに関連付けられる前記キャッシュ内のエントリを無効にするステップと、
を更に含む、例15の方法。
18.前記特定のエントリが、前記第1レベル内の前記特定のレコードの位置を指定する情報を格納することに先行して、前記コンピュータシステムが前記特定のレコードについての要求を受け取るステップと、
前記要求を受け取った後に、前記コンピュータシステムが前記第1レベルの特定のレコードを探すステップと、
前記第1レベルの特定のレコードを探したことに応答して、前記コンピュータシステムが、前記第1レベルの前記特定のレコードの位置を指定する情報を格納するステップと、
をさらに含む、例15の方法。
19. エントリに対応する前記所与のキーは、前記エントリに位置が格納されているレコードに対応するキーに対して、ハッシュ導出関数を実行することによって導出される、
例15の方法。
20. 前記特定のレコード及び前記LSMツリー内の異なるレコードは、同じハッシュ化されたキーに関連付けられ、方法は、
前記コンピュータシステムによって、特定のレコードについての要求を受け取るステップと、
前記コンピュータシステムによって、前記特定のレコードに関連付けられるハッシュ化されたキーに基づいて、キャッシュから情報を取り出すステップと、
前記コンピュータシステムによって、前記情報が前記特定のレコードの位置を指定するか又は前記異なるレコードの位置を指定するかを判断するステップと、
前記情報が前記特定のレコードの位置を指定すると判断したことに応答して、前記コンピュータシステムが、前記情報に基づいて前記特定のレコードを返すステップと、
を更に含む、例19の方法。
Claims (13)
- コンピュータシステムによって、ログ構造化マージツリー(LSMツリー)と前記LSMツリー内のファイルにアクセスするためのマニフェストのセットとを維持するステップであって、前記LSMツリーは、データベースのための前記ファイルを格納することができる複数のレベルを有し、前記ファイルは、各々がキー及び対応するデータを有する、1つ以上のレコードを含み、前記マニフェストのセットの各々は、対応する時点に前記LSMツリーの所与のレベルに含まれるファイルを指定する、ステップと;
前記コンピュータシステムによって、エントリが、キーについて、前記LSMツリーのファイル内の対応するレコードの位置の指示を格納する、前記データベースのためのキャッシュを維持するステップであって、前記キャッシュを維持するステップは、前記キャッシュの所与のエントリにより識別されるファイルが前記マニフェストのセットのいずれにも指定されていないとき前記所与のエントリを無効にすることを含む、ステップと;
前記コンピュータシステムによって、前記LSMツリー内に格納されている特定のレコードにアクセスする要求を受け取るステップであって、前記要求は、前記特定のレコードを探すために使用可能な第1キーを指定する、ステップと;
前記コンピュータシステムによって、前記第1キーを介して前記キャッシュから前記特定のレコードの位置の特定の指示を取り出すステップと;
前記特定の指示を使用して、前記コンピュータシステムが前記特定のレコードにアクセスするステップと;
を含む、方法。 - 前記コンピュータシステムによって、前記LSMツリー内に追加のファイルを格納するステップであって、前記追加のファイルは、キーのセット及び対応するデータを含む、ステップと;
前記追加のファイルを格納するステップに続いて、前記コンピュータシステムが、前記キーのセットに含まれるキーを有する前記キャッシュ内のエントリを無効にするステップと;
を更に含む、請求項1に記載の方法。 - 前記コンピュータシステムによって、前記LSMツリー内の第1レベルから第2レベルに特定のファイルをコピーするステップであって、該コピーするステップは、前記第1レベルのストレージ閾値に到達したことに応答して実行される、ステップと;
前記コピーするステップに続いて、
前記特定のファイル内の位置の指示を格納している前記キャッシュ内のエントリが無効にされていると判断し、
前記LSMツリーを読み取る進行中のスレッドが、前記特定のファイルにアクセスできないと判断すると、
前記コンピュータシステムが前記第1レベルから前記特定のファイルを削除するステップと;
を更に含む、請求項1又は2に記載の方法。 - 前記LSMツリーを読み取る進行中のスレッドが、前記特定のファイルにアクセスできないと判断することは:
前記特定のファイル内の位置の指示を格納しているエントリが無効にされていると判断した後、前記コンピュータシステムが、1つ以上の進行中スレッドに関連付けられる特定のマニフェストを維持することと;
前記特定のマニフェストが期限切れであることに応答して、前記コンピュータシステムが前記特定のファイルを削除することと;
を含み、前記特定のマニフェストが期限切れであることは、前記LSMツリーを読み取る進行中スレッドが、前記特定のファイルにアクセスできないことを示す、
請求項1に記載の方法。 - 位置の指示は、アトミックストア命令を使用して前記キャッシュのエントリに格納される、
請求項1乃至4のいずれかに記載の方法。 - 前記特定の指示を取り出すステップは、
前記コンピュータシステムによって、前記第1キーを使用してインデックス構造をスキャンすることにより第2キーを決定することを含み、前記特定の指示は、前記第2キーを使用して前記キャッシュ内に格納される、
請求項1乃至5のいずれかに記載の方法。 - データベースシステムに、
LSMツリーとデータ構造内のファイルにアクセスするためのマニフェストのセットとを維持するステップであって、前記データ構造は、データベースのための前記ファイルを格納する複数のレベルを有し、前記ファイルは、各々がキー及び対応するデータを含む、1つ以上のレコードを含み、前記マニフェストのセットの各々は、対応する時点に前記データ構造の所与のレベルに含まれるファイルを指定する、ステップと;
エントリが、所与のキーについて、対応するレコードが配置されている前記LSMツリー内の位置を定義する情報を格納する、前記データベースのためのキャッシュを維持するステップであって、前記キャッシュを維持するステップは、前記キャッシュの所与のエントリにより識別されるファイルが前記マニフェストのセットのいずれにも指定されていないとき前記所与のエントリを無効にすることを含む、ステップと;
前記LSMツリー内に格納されている特定のレコードにアクセスする要求を受け取るステップであって、前記要求は、前記特定のレコードを探すために使用可能な特定のキーを指定する、ステップと;
前記特定のキーを介して前記キャッシュから、前記特定のレコードが配置されている前記LSMツリー内の位置の指示を取り出すステップと;
前記指示を使用して、前記特定のレコードにアクセスするステップと;
を含む動作を実行させるコンピュータプログラム。 - 前記動作は、
前記LSMツリー内に格納されている追加のレコードの要求を受け取るステップと、
前記キャッシュが前記追加のレコードの位置の指示を格納していないと判断したことに応答して、
前記特定のレコードについて前記LSMツリーを検索することによって、前記LSMツリー内で前記特定のレコードが格納されている場所を決定するステップと、
前記特定のレコードが格納されている場所を決定したことに応答して、前記LSMツリー内で前記特定のレコードが格納されている場所を示す指示を前記キャッシュ内に格納するステップと、
を更に含む、請求項7に記載のコンピュータプログラム。 - 前記動作は、
外部ストレージから前記LSMツリーに複数のレコードを書き込むステップと、
前記複数のレコードを前記LSMツリーに書き込んだことに応答して、前記複数のレコードに関連付けられるキーに一致するキーに関連付けられる前記キャッシュ内のエントリを無効にするステップと、
を更に含む、請求項7又は8に記載のコンピュータプログラム。 - 前記動作は、
前記LSMツリーの第1レベルのファイルから前記LSMツリーの第2レベルの新たなファイルに1つ以上のレコードを書き込むステップと、
前記書き込むステップに続いて、
前記ファイルに対応する情報を格納している前記キャッシュ内のエントリが無効にされていると判断し、
前記LSMツリーを読み取る進行中のスレッドが、前記ファイルにアクセスできないと判断すると、
前記第1レベルから前記ファイルを削除するステップと、
を更に含む、請求項7乃至9のいずれかに記載のコンピュータプログラム。 - 前記動作は、
前記キャッシュの特定のエントリ内に、前記LSMツリー内の第1レコードの位置を定義する第1指示を格納するステップであって、前記第1指示は、前記第1レコードに対応する第1のハッシュ化されたキーに基づいて格納される、ステップと、
前記キャッシュの前記特定のエントリ内で、前記第1指示を、前記LSMツリー内の第2レコードの位置を定義する第2指示で上書きするステップであって、前記第2指示は、前記第2レコードに対応する第2のハッシュ化されたキーに基づいて格納され、前記第2のハッシュ化されたキーは、前記第1のハッシュ化されたキーに一致する、ステップと、
を更に含む、請求項7乃至10のいずれかに記載のコンピュータプログラム。 - 前記動作は、
前記LSMツリー内の前記第1レコードの要求を受け取るステップであって、前記要求は、前記第1レコードに関連付けられる、あるキーを含むステップと、
前記あるキーを使用してハッシュ導出関数を実行し、前記第1のハッシュ化されたキーを導出するステップと、
前記第1のハッシュ化されたキーに基づいて、前記特定のエントリから、対応するレコードの位置を定義する特定の指示を取り出すステップと、
前記特定の指示が、前記第2指示に対応し、前記第1レコードにアクセスするために使用可能でないと判断するステップと、
を更に含む、請求項11に記載のコンピュータプログラム。 - システムであって:
1つ以上のプロセッサと;
前記1つ以上のプロセッサによって実行可能であり、当該システムに請求項1乃至6のいずれかに記載の方法を実施させるプログラム命令を記憶したメモリと;
を備える、システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/884,131 | 2018-01-30 | ||
US15/884,131 US10691693B2 (en) | 2018-01-30 | 2018-01-30 | Cache for efficient record lookups in an LSM data structure |
PCT/US2019/015575 WO2019152371A1 (en) | 2018-01-30 | 2019-01-29 | Cache for efficient record lookups in an lsm data structure |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2021513176A JP2021513176A (ja) | 2021-05-20 |
JP7220234B2 JP7220234B2 (ja) | 2023-02-09 |
JP7220234B6 true JP7220234B6 (ja) | 2023-02-28 |
Family
ID=65409597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020562087A Active JP7220234B6 (ja) | 2018-01-30 | 2019-01-29 | Lsmデータ構造内の効率的なレコードルックアップのためのキャッシュ |
Country Status (5)
Country | Link |
---|---|
US (3) | US10691693B2 (ja) |
EP (1) | EP3746906B1 (ja) |
JP (1) | JP7220234B6 (ja) |
CN (1) | CN111656341B (ja) |
WO (1) | WO2019152371A1 (ja) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11061881B2 (en) * | 2018-11-08 | 2021-07-13 | Vmware, Inc. | Bounding cost of flushes in buffer trees |
US11093472B2 (en) * | 2018-12-07 | 2021-08-17 | Vmware, Inc. | Using an LSM tree file structure for the on-disk format of an object storage platform |
US11237744B2 (en) * | 2018-12-28 | 2022-02-01 | Verizon Media Inc. | Method and system for configuring a write amplification factor of a storage engine based on a compaction value associated with a data file |
US11475017B2 (en) * | 2019-03-05 | 2022-10-18 | Microsoft Technology Licensing, Llc | Asynchronous data enrichment for an append-only data store |
CN110032565A (zh) * | 2019-03-26 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 一种生成统计信息的方法、系统以及电子设备 |
KR102195838B1 (ko) * | 2019-04-10 | 2020-12-28 | 주식회사 티맥스 소프트 | 데이터 베이스 관리 방법 |
US11321294B2 (en) | 2019-09-09 | 2022-05-03 | Salesforce.Com, Inc. | Database index repair |
WO2021061173A1 (en) * | 2019-12-04 | 2021-04-01 | Futurewei Technologies, Inc. | Data integrity validation on lsm tree snapshots |
KR20210077467A (ko) * | 2019-12-17 | 2021-06-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것을 포함하는 데이터 처리 시스템 |
US11526474B2 (en) | 2020-01-30 | 2022-12-13 | Salesforce.Com, Inc. | Reducing requests using probabilistic data structures |
US11514015B2 (en) | 2020-01-30 | 2022-11-29 | Salesforce.Com, Inc. | Reducing requests using probabilistic data structures |
US11308030B2 (en) * | 2020-03-05 | 2022-04-19 | International Business Machines Corporation | Log-structured merge-tree with blockchain properties |
US11483150B2 (en) | 2020-06-01 | 2022-10-25 | Salesforce.Com, Inc. | Private key cache in secure enclave |
US11681705B2 (en) * | 2020-07-01 | 2023-06-20 | Salesforce, Inc. | Trie data structure with subtrie data structures |
US11537569B2 (en) * | 2020-09-01 | 2022-12-27 | Salesforce.Com, Inc. | Merges using key range data structures |
KR102389609B1 (ko) * | 2020-09-25 | 2022-04-21 | 연세대학교 산학협력단 | 쓰기 최적화 데이터베이스에서의 디스크 스캔 연산 gpu 오프로딩 방법 |
CN112286948B (zh) * | 2020-11-18 | 2023-05-23 | 成都佳华物链云科技有限公司 | 时序数据库的数据存储方法、读取方法及装置 |
US11816067B2 (en) | 2020-11-20 | 2023-11-14 | Red Hat, Inc. | Prefetching data from a data storage system |
US11741050B2 (en) * | 2021-01-29 | 2023-08-29 | Salesforce, Inc. | Cloud storage class-based variable cache availability |
CN113032457B (zh) * | 2021-03-19 | 2022-12-02 | 山东英信计算机技术有限公司 | 一种物料清单的数据库信息维护方法和装置 |
US20220374540A1 (en) * | 2021-05-20 | 2022-11-24 | Salesforce.Com, Inc. | Field level encryption searchable database system |
US20230060733A1 (en) * | 2021-08-27 | 2023-03-02 | Salesforce.Com, Inc. | Mechanisms for truncating tenant data |
KR102512571B1 (ko) * | 2021-12-06 | 2023-03-22 | 성균관대학교산학협력단 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US11695852B1 (en) * | 2022-01-26 | 2023-07-04 | Dell Products L.P. | Managing overlapping communications between downtiering and invalidating cached data among nodes in a storage system |
US20230350810A1 (en) * | 2022-04-28 | 2023-11-02 | Netapp Inc. | In-memory hash entries and hashes used to improve key search operations for keys of a key value store |
US11971859B2 (en) | 2022-04-28 | 2024-04-30 | Netapp, Inc. | Defragmentation for log structured merge tree to improve read and write amplification |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120072656A1 (en) | 2010-06-11 | 2012-03-22 | Shrikar Archak | Multi-tier caching |
US20140279881A1 (en) | 2013-03-15 | 2014-09-18 | International Business Machines Corporation | Differentiated secondary index maintenance in log structured nosql data stores |
US9400816B1 (en) | 2013-02-28 | 2016-07-26 | Google Inc. | System for indexing collections of structured objects that provides strong multiversioning semantics |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9069792B1 (en) * | 2008-08-22 | 2015-06-30 | Conifer Systems LLC | Method and system for persistently cached, copy-on-write view of revision control trees |
US8180763B2 (en) * | 2009-05-29 | 2012-05-15 | Microsoft Corporation | Cache-friendly B-tree accelerator |
US10558705B2 (en) * | 2010-10-20 | 2020-02-11 | Microsoft Technology Licensing, Llc | Low RAM space, high-throughput persistent key-value store using secondary memory |
US9569400B2 (en) * | 2012-11-21 | 2017-02-14 | International Business Machines Corporation | RDMA-optimized high-performance distributed cache |
US20170249257A1 (en) | 2016-02-29 | 2017-08-31 | Itu Business Development A/S | Solid-state storage device flash translation layer |
US10592348B2 (en) * | 2016-06-17 | 2020-03-17 | Acronis International Gmbh | System and method for data deduplication using log-structured merge trees |
US10725988B2 (en) * | 2017-02-09 | 2020-07-28 | Micron Technology, Inc. | KVS tree |
US20190034427A1 (en) * | 2017-12-28 | 2019-01-31 | Intel Corporation | Data management system employing a hash-based and tree-based key-value data structure |
-
2018
- 2018-01-30 US US15/884,131 patent/US10691693B2/en active Active
-
2019
- 2019-01-29 CN CN201980010105.6A patent/CN111656341B/zh active Active
- 2019-01-29 JP JP2020562087A patent/JP7220234B6/ja active Active
- 2019-01-29 EP EP19705023.0A patent/EP3746906B1/en active Active
- 2019-01-29 WO PCT/US2019/015575 patent/WO2019152371A1/en unknown
-
2020
- 2020-06-22 US US16/908,006 patent/US11269885B2/en active Active
-
2022
- 2022-03-07 US US17/653,820 patent/US11775524B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120072656A1 (en) | 2010-06-11 | 2012-03-22 | Shrikar Archak | Multi-tier caching |
US9400816B1 (en) | 2013-02-28 | 2016-07-26 | Google Inc. | System for indexing collections of structured objects that provides strong multiversioning semantics |
US20140279881A1 (en) | 2013-03-15 | 2014-09-18 | International Business Machines Corporation | Differentiated secondary index maintenance in log structured nosql data stores |
Also Published As
Publication number | Publication date |
---|---|
US20200320081A1 (en) | 2020-10-08 |
WO2019152371A1 (en) | 2019-08-08 |
CN111656341A (zh) | 2020-09-11 |
JP2021513176A (ja) | 2021-05-20 |
EP3746906A1 (en) | 2020-12-09 |
US10691693B2 (en) | 2020-06-23 |
US11775524B2 (en) | 2023-10-03 |
JP7220234B2 (ja) | 2023-02-09 |
US20190236156A1 (en) | 2019-08-01 |
US11269885B2 (en) | 2022-03-08 |
EP3746906B1 (en) | 2023-03-01 |
US20220188317A1 (en) | 2022-06-16 |
CN111656341B (zh) | 2023-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7220234B6 (ja) | Lsmデータ構造内の効率的なレコードルックアップのためのキャッシュ | |
US10564850B1 (en) | Managing known data patterns for deduplication | |
US10776315B2 (en) | Efficient and flexible organization and management of file metadata | |
US6957362B2 (en) | Instantaneous restoration of a production copy from a snapshot copy in a data storage system | |
US7805470B2 (en) | Methods and apparatus for managing the storage of content in a file system | |
US6792518B2 (en) | Data storage system having mata bit maps for indicating whether data blocks are invalid in snapshot copies | |
US6934822B2 (en) | Organization of multiple snapshot copies in a data storage system | |
US8484172B2 (en) | Efficient search for migration and purge candidates | |
US7376674B2 (en) | Storage of multiple pre-modification short duration copies of database information in short term memory | |
US9430331B1 (en) | Rapid incremental backup of changed files in a file system | |
JP2011513853A (ja) | 連想ストレージのシステムと方法 | |
US11755427B2 (en) | Fast recovery and replication of key-value stores | |
US20060294163A1 (en) | Methods and apparatus for accessing content stored in a file system | |
JPS63244243A (ja) | フアイルをオープンする方法 | |
US20060294115A1 (en) | Methods and apparatus for storing content in a file system | |
US11741073B2 (en) | Granularly timestamped concurrency control for key-value store | |
US11829291B2 (en) | Garbage collection of tree structure with page mappings | |
US20100228787A1 (en) | Online data volume deletion | |
JP7450735B2 (ja) | 確率的データ構造を使用した要求の低減 | |
TW201710930A (zh) | 用於邏輯頁面的基元交換與修整(swat)之swat命令及應用程式介面(api) | |
EP1894127B1 (en) | Methods and apparatus for managing the storage of content in a file system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211224 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20211224 |
|
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: 20230104 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230130 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7220234 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |