JPWO2013128788A1 - データ管理装置、データ管理方法およびプログラム - Google Patents

データ管理装置、データ管理方法およびプログラム Download PDF

Info

Publication number
JPWO2013128788A1
JPWO2013128788A1 JP2014501984A JP2014501984A JPWO2013128788A1 JP WO2013128788 A1 JPWO2013128788 A1 JP WO2013128788A1 JP 2014501984 A JP2014501984 A JP 2014501984A JP 2014501984 A JP2014501984 A JP 2014501984A JP WO2013128788 A1 JPWO2013128788 A1 JP WO2013128788A1
Authority
JP
Japan
Prior art keywords
block
hierarchy
dividing
usage rate
division
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.)
Pending
Application number
JP2014501984A
Other languages
English (en)
Inventor
盛朗 佐々木
盛朗 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2014501984A priority Critical patent/JPWO2013128788A1/ja
Publication of JPWO2013128788A1 publication Critical patent/JPWO2013128788A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

管理手段(102)はブロック単位のエントリをツリー層構造で管理し、管理手段(102)の探索手段は新規エントリの対象ブロックを特定する。管理手段(102)の挿入手段は対象ブロックに新規エントリを挿入し、新規エントリを挿入する際に対象ブロックの使用率が分割閾値以上であるか判定し、ブロックを分割する旨の命令を分割手段(104)に送信する。分割手段(104)は命令に基づき対象ブロックを分割する。分割手段(104)は階層毎に設けられ、上位階層に位置する分割手段(104)の分割方法の保証使用率は下位階層に位置する分割手段(104)の分割方法の保証使用率以上である。分割手段(104)は既存エントリを対象ブロックと新規ブロック間で分割する。

Description

本発明はデータ管理装置、データ管理方法およびプログラムに関する。
大量のデータの中から少量のデータを高速に検索するには、データにインデックスを付与することが一般的である。単にデータを追記するのは高速に実行できるが、検索時には、例えば線形探索のように、全てのデータに対して条件判定を施す必要が生じるため、検索が低速になる。辞書のようにデータをソートすれば高速な二分木探索が可能になるが、データの更新効率は低下する。ツリー状のインデックスであるインデックスツリーを張れば、更新と検索の双方を高速に実行できる。
インデックスツリーが付与されていれば、範囲検索が高速に実行できる。データは単体で扱われるよりも、例えば、<氏名、住所、商品、日時>のように、データのまとまり(タプル)で扱うのが便利である。そこで、検索のための条件がつけられるタプル中のデータ(キー)にインデックスツリーを付与する。例えば、前記の「日時」をキーとしてツリーを付与すれば、「2011年9月30日の11時から12時に購買された商品」などを高速に検索することができる。
非特許文献1に示されるB+ツリーは、広く用いられているインデックスツリーの一つである。B+ツリーではデータをブロック単位で管理し、最下位層のブロックをリーフブロック、リーフブロックよりも上位層のブロックをブランチブロック、最上位かつ唯一のブロックをルートブロックと呼ぶ。リーフには特定の範囲のキーとキーに対応するタプルへのポインタを記録し、多くの場合、隣接する範囲のキーを記録したリーフブロック間はポインタでつながれる。インデックスにおいて、このキーとポインタの組をエントリと呼ぶ。ブランチにはキーとリーフまたは隣接下位のブランチへのポインタからなるエントリを記録する。また、B+ツリーにおいて、あるブロックに新たなエントリが追加される際、当該ブロックに空き領域がない場合は、ブロック分割が実行される。B+ツリーのブロック分割では、分割されるブロックに含まれる全エントリのうちの半分が、キーの大きさに基づいて、新たに追加されるブロックに移動される。なお、本明細書では、あるブロックに関して、「ブロック分割を実施した直後に、そのブロックが保持しているエントリの数」を「ブロックが保持できるエントリの最大数」で除した値を「保証使用率」、「ブロックが現在保持しているエントリの数」を「ブロックが保持できるエントリの最大数」で除した値を「使用率」として定義する。B+ツリーは、使用率が100%となったブロックを分割するアルゴリズムであるため、その保証使用率は約50%となる。
非特許文献2に示されるB*ツリーは、処理対象とする対象ブロックの使用率と、対象ブロックに隣接する隣接ブロックの使用率が共に100%である場合、新たにブロックを追加する。そして、対象ブロック、隣接ブロックおよび新たに追加したブロックの間で、対象ブロックと隣接ブロックが保持するエントリとを分割し、新規に追加するエントリを挿入するものである。そのため、B*ツリーの保証使用率は約67%となる。
非特許文献3では、CPU(Central Processing Unit)キャッシュとディスクの双方を意識するFractal Prefetching B+−tree (fpB+−tree)が提案されている。fpB+−treeでは、ディスクに最適化したサイズのブロックを持つB+ツリーを作り、さらにブロックの中に、キャッシュに最適化したサイズのサブブロックを作る。
非特許文献4では、個々のハードウエアに最適化した二進木である「FAST」が提案されている。FASTにおいて考慮されるのは、SIMD(Single Instruction Multiple Data)レジスタのサイズ、ラインサイズ、ページサイズなどである。非特許文献3ではディスクに合わせたサイズのブロックの中にキャッシュに合わせたサイズのブロックを設けていたが、この文献ではキャッシュに合わせたサイズのブロックの中に、さらにSIMDレジスタに合わせたサイズのブロックを設ける。これら三種のブロック内で、幅優先でエントリを詰める。例えば、あるエントリと、その子にあたる二つのエントリを詰める。
非特許文献5では、フラッシュメモリへのランダムライトが低速である問題に取り組むFDツリーが提案されている。FDツリーは、ブロックサイズがフラッシュメモリのページサイズに等しい、小さなB+ツリーであるヘッドツリーと、ソートされたブロックの配列からなる。配列は概ねツリーの一つのレベルに対応し、ツリーの低いレベルの配列ほどサイズが大きい。ヘッドツリー、または配列のブロック内を検索すると、一つ下位のレベルの、次に検索すべきブロックを特定できる。ライトはヘッドツリーにバッファされ、バッファがいっぱいになると下位のレベルのバッファへフラッシュされる。
特許文献1では、インデックスの開発コストが比較的高いことと、インデックスが複数のデータ構造を持つことに着目したインデックスの実装方法およびインデックスを実装した装置が記載されている。特許文献1では、例えばB木、ハッシュ、ヒープなどのデータ構造を部品として用意し、これら部品を組み合わせることで、安価かつ手間をかけずにインデックスを実装する。
特開平4−112240号公報
D. Comer. The Ubiquitous B-tree. ACM Comput. Surv., 11(2), pages 121〜137, 1979. D. E. Knuth. The Art of Computer Programming, Volume 3: (2nd Ed.) Sorting and Searching. 1998. S. Chen, P. B. Gibbons, T. C. Mowry, and G. Valentin. Fractal Prefetching B+-Trees: Optimizing Both Cache and Disk Performance. In SIGMOD, pages 157〜168, 2002. C. Kim, J. Chhugani, N. Stish, E. Sedlar, A. D. Nguyen, T. Kaldewey, V. W. Lee, S. A. Brandt, and P. Dubey. FAST: Fast Architecture Sensitive Tree Search on Modern CPUs and GPUs. In SIGMOD, pages 339〜350, 2010. Y. Li, B. He, R. J. Yang, Q. Luo, and K. Yi. Tree Indexing on Solid State Drives. In PVLDB 2010.
しかしながら、保証使用率を高めると検索が高速になる一方で、更新処理が複雑になり更新が低速になってしまう。非特許文献1〜4では、階層構造全体で、ブロックの分割をする際に使用する分割方法が1つである。また、非特許文献5および特許文献1では、異なる複数のデータ構造を持つが、階層構造全体で使用する分割方法はただ1つである。そのため、各文献では、階層毎の更新頻度に応じて、検索速度および更新速度を共に最適化することができない。
本発明の目的は、上記問題に鑑み、階層構造を持つデータにおいて、階層毎に検索速度および更新速度を共に最適化するデータ管理装置、データ管理方法およびプログラムを提供することにある。
本発明によれば、
ブロック単位のエントリをツリー状の階層構造で管理する管理手段と、
階層毎に設けられ、新規エントリを挿入する際に前記ブロックの使用率が一定の分割閾値以上である場合、新規ブロックを追加して、前記ブロックが保持する既存エントリを、前記ブロックと前記新規ブロックとの間で分割する分割手段とを有し、
前記分割を実施した直後に前記ブロックが保持している前記既存エントリの数を、前記ブロックが保持できる前記エントリの最大数で除した値を保証使用率とした場合、任意の前記階層である第1の階層の前記分割手段が使用する分割方法の前記保証使用率は、前記第1の階層より下位に位置する第2の階層の前記分割手段が使用する前記分割方法の前記保証使用率以上であるデータ管理装置が提供される。
本発明によれば、
コンピュータが、
ブロック単位のエントリを、ツリー状の階層構造で管理し、
新規エントリを挿入する際に前記ブロックの使用率が一定の分割閾値以上である場合、階層毎に設けられた分割手段を用いて、新規ブロックを追加して、前記ブロックが保持する既存エントリを、前記ブロックと前記新規ブロックとの間で分割し、
前記分割を実施した直後に前記ブロックが保持している前記既存エントリの数を、前記ブロックが保持できる前記エントリの最大数で除した値を保証使用率とした場合、任意の前記階層である第1の階層の前記分割手段が使用する分割方法の前記保証使用率は、前記第1の階層より下位に位置する第2の階層の前記分割手段が使用する前記分割方法の前記保証使用率以上となるように設定するデータ管理方法が提供される。
本発明によれば、
コンピュータを、
ブロック単位のエントリを、ツリー状の階層構造で管理する手段、
新規エントリを挿入する際に前記ブロックの使用率が一定の分割閾値以上である場合、階層毎に設けられた分割手段を用いて、新規ブロックを追加して、前記ブロックが保持する既存エントリを、前記ブロックと前記新規ブロックとの間で分割する手段、
前記分割を実施した直後に前記ブロックが保持している前記既存エントリの数を、前記ブロックが保持できる前記エントリの最大数で除した値を保証使用率とした場合、任意の前記階層である第1の階層の前記分割手段が使用する分割方法の前記保証使用率は、前記第1の階層より下位に位置する第2の階層の前記分割手段が使用する前記分割方法の前記保証使用率以上となるように設定する手段として機能させるためのプログラムが提供される。
本発明によれば、階層構造を持つデータにおいて、検索速度および更新速度を共に最適化することができる。
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。
本発明の第1の実施形態に係るデータ管理装置の構成を示すブロック図である。 本発明の第2の実施形態における対象ブロックと隣接ブロックの関係を示す図である。 本発明の第2の実施形態における探索処理の流れを示すフローチャートである。 本発明の第2の実施形態における挿入処理の流れを示すフローチャートである。 本発明の第2の実施形態における分割処理の流れを示すフローチャートである。 本発明の第3の実施形態に係るデータ管理装置の構成を示すブロック図である。 本発明の第3の実施形態における分割処理の流れを示すフローチャートである。 隣接ブロックの距離に応じた分割閾値の補正がない場合におけるエントリの遷移の例を示す図である。 隣接ブロックの距離に応じた分割閾値の補正がある場合におけるエントリの遷移の例を示す図である。 本発明の第4の実施形態に係るデータ管理装置の構成を示すブロック図である。 本発明の第4の実施形態における挿入処理の流れを示すフローチャートである。
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
(第1の実施形態)
図1は、本発明の第1の実施形態に係るデータ管理装置の構成を示すブロック図である。データ管理装置10は、管理手段102と分割手段104を有する。
管理手段102は、ブロック単位のエントリをツリー状の階層構造で管理し、図示しない探索手段および挿入手段により、ブロックに保持されたエントリの探索およびブロックへの新たなエントリ(以下、新規エントリとする。)の挿入を行う。管理手段102の探索手段は、新規エントリのキーの値に基づいて、新規エントリの挿入対象である対象ブロックを特定する。管理手段102の挿入手段は、新規エントリのキーの値に基づいて、対象ブロックの所定の箇所に新規エントリを挿入する。また、管理手段102の挿入手段は、新規エントリを挿入する際に処理対象とする対象ブロックの使用率が、分割するか否かを決める一定の閾値(以下、分割閾値とする。)以上であるか判定し、その判定結果に基づいてブロックを分割する旨の命令を分割手段104に送信する。
分割手段104は、ブロックを分割する旨の命令に基づき対象ブロックを分割する。また、分割手段104は階層毎に設けられており、上位階層に位置する分割手段104が使用する分割方法の保証使用率は、下位階層に位置する分割手段104が使用する分割方法が使用する保証使用率以上である。分割手段104は、対象ブロックに既に挿入されているエントリ(以下、既存エントリとする。)を、対象ブロックと新規ブロックの間で分割する。
なお、各図に示したデータ管理装置の各構成要素は、ハードウエア単位の構成ではなく、機能単位のブロックを示している。各構成要素は、任意のコンピュータのCPU、メモリ、メモリにロードされた本図の構成要素を実現するプログラム、そのプログラムを格納するハードディスクなどの記憶メディア、ネットワーク接続用インタフェースを中心にハードウエアとソフトウエアの任意の組合せによって実現される。そして、その実現方法、装置には様々な変形例がある。
ここで、保証使用率が高い分割方法は、保証使用率が低い分割方法と比較して、新規ブロックを追加する頻度が低くなるため、検索速度が向上する。一方で、保証使用率が高い分割方法は、保証使用率が低い分割方法と比較して、ブロックの分割処理が複雑化するため、更新速度が遅くなる。また、一般的に、最上位の階層のブロック(ルートブロック)ほど更新頻度が低く、検索処理がメインとなる。また、最下位の階層のブロック(リーフブロック)ほど更新頻度が高く、更新処理がメインとなる。
本実施形態において、データ管理装置10内のレベル1およびレベル2の分割手段104が使用する分割方法の保証使用率は、レベル3の分割手段104が使用する分割方法の保証使用率に比べて高い。例えば、レベル1およびレベル2の分割手段104が使用する分割方法は、B*ツリーの分割アルゴリズムであり、レベル3の分割手段104が使用する分割方法は、B+ツリーの分割アルゴリズムなどとすることができる。
B*ツリーの分割アルゴリズムでは、対象ブロックの使用率と、対象ブロックに隣接する隣接ブロックの使用率が共に100%のときに、新規ブロックが追加される。そして、既存エントリが、対象ブロック、隣接ブロックおよび新規ブロックの間で分割される。そして、新規エントリが、そのキーの値に基づいて、いずれかのブロックの所定の位置に挿入される。B*ツリーの分割アルゴリズムでは、使用率が100%である2つのブロックを、3つのブロックに分割しているため、B*ツリーの保証使用率は約67%となる。
B+ツリーの分割アルゴリズムでは、対象ブロックの使用率が100%の時に、新規ブロックが追加される。そして、既存エントリが、対象ブロックおよび新規ブロックの間で分割される。そして、新規エントリが、そのキーの値に基づいて、いずれかのブロックの所定の位置に挿入される。B+ツリーの分割アルゴリズムでは、使用率が100%の1つブロックを、2つのブロックに分割しているため、B+ツリーの保証使用率は約50%となる。
なお、階層毎の分割手段104がどの分割方法を使用するかについては、階層毎のデータの更新頻度に基づき決定することができる。データの更新頻度は、例えばブロックへのアクセス回数と分割発生回数を階層毎に記憶しておくなどして、当該回数に基づき算出してもよい。データ更新頻度に基づき、データ更新頻度が一定の閾値以上である階層よりも上位に位置する階層では、保証使用率が高い分割方法を選択し、データの更新頻度が一定の閾値以上である階層以下に位置する階層では、保証使用率が低い分割方法を選択することができる。
以上、本実施形態で、上位の階層ほど、分割手段104が保証使用率の高い分割方法を使用し、また、下位の階層ほど、分割手段104が保証使用率の低い分割方法を使用する構成を取る。本構成によれば、階層構造全体で1つの分割方法を用いる場合と比較して、検索処理がメインとなる上位階層で検索速度を向上させ、更新処理がメインとなる下位階層で更新速度を向上させることができる。従って、本構成によれば、階層構造全体で1つの分割方法を用いる場合よりも検索速度および更新速度を最適化でき、装置全体の処理速度を向上させることができる。
(第2の実施形態)
本実施形態では、以下の点を除き、第1の実施形態と同様である。
本実施形態では、レベルkの階層の分割手段104は、図2に示すように、隣接ブロックをk−1個として分割処理を行う。この隣接ブロックは、対象ブロックと同一の階層に位置する。また、この隣接ブロックは、対象ブロックにおける最大のキー値よりも大きいキー値を有するエントリを保持するブロックの中で、キー値が最小であるエントリを保持するブロックを起点とし、当該起点となるブロックから数えてk−1個のブロックとして定義される。また、ツリー構造における対象ブロックの位置により、隣接ブロックがk−1個分確保できない場合は、確保できる分のブロックが隣接ブロックとなる。そのため、例えば、対象ブロックが同一階層においてキー値が最大のエントリを保持するブロックである場合、隣接ブロックの個数は0個となる。
本実施形態におけるデータの更新処理の流れを、図3〜5を用いて説明する。更新処理は、データを挿入するブロックを特定する探索処理、探索処理で特定したブロックにデータを挿入する挿入処理を含む。挿入処理は、データ挿入時にブロックの空き領域が十分でない場合、ブロックを分割する分割処理をさらに含む。
まず、探索処理の流れについて説明する。
図3は、探索処理の流れを示すフローチャートである。管理手段102の探索手段は、探索対象とする階層を判断する基準として、カウンタkを用いる。まず、管理手段102の探索手段は、カウンタkに最上位階層を探索対象の階層を示す値を設定する(S102)。例えば、レベルhまでの階層であった場合、管理手段102の探索手段は、カウンタk=hと設定する。最上位階層ではブロックは1つであるため、管理手段102の探索手段は、当該ブロックが保持している既存エントリの中から、新規エントリのキー値以下で最大のキー値を持つエントリを特定する。そして、管理手段102の探索手段は、特定されたエントリに含まれるポインタを取得する(S104)。次に、管理手段102の探索手段は、現在探索したブロックが位置する階層が最下層(リーフブロック)の1つ上の階層であるか判定する。管理手段102の探索手段は、カウンタk=2の時、次の階層がリーフブロックであると判断できる。次の階層がリーフブロックでない場合(S106のNO)、管理手段102の探索手段は、カウンタkをデクリメントして、探索対象の階層を1つ下げる(S108)。そして、管理手段102の探索手段は、S104で取得したポインタに基づいて次の階層で探索対象とするブロックを特定し(S110)、特定したブロックについてS104からの処理を再度実行する。S106において、次の階層がリーフブロックである場合(S106のYES)、管理手段102の探索手段は、S104で取得したポインタに基づき、新規エントリの挿入対象とするブロック(対象ブロック)を特定する(S112)。ここで、管理手段102は、ルートブロックから対象ブロックまでの経路を記憶手段(不図示)で記憶しておく。
以上が、探索処理の流れである。
次に、挿入処理の流れについて説明する。
図4は、挿入処理の流れを示すフローチャートである。まず、管理手段102の挿入手段は、探索処理で特定した対象ブロックに新規エントリを挿入できるか、対象ブロックの使用率と分割閾値とを比較して判定する(S202)。対象ブロックの使用率が分割閾値未満であった場合(S202のNO)、対象ブロックを分割する必要はない。よって、管理手段102の挿入手段は、分割処理を実行せず、対象ブロックのエントリを更新する(S212)。具体的には、管理手段102の挿入手段は、当該対象ブロックの既存エントリのキー値と新規エントリのキー値とに基づいて、当該新規エントリの挿入位置を特定する。そして、管理手段102の挿入手段は、対象ブロックで特定された位置に新規エントリ挿入する。一方、対象ブロックの使用率が分割閾値以上であった場合(S202のYES)、対象ブロックを分割する必要がある。よって、管理手段102の挿入手段は、分割手段104に対して、分割処理を行う旨の命令を送信する(S204)。以下で分割処理の流れについて説明する。
図5は、分割処理の流れを示すフローチャートである。分割手段104は、隣接ブロックを判断する基準として、カウンタiを用いる。まず、管理手段102の挿入手段は、カウンタiを1で初期化する(S302)。次に、管理手段102の挿入手段は、使用率を判定していない隣接ブロックが存在するか否か判定する。使用率を判定していない隣接ブロックが存在した場合(S304のYES)、管理手段102の挿入手段は、カウンタiによって示される隣接ブロック(第i隣接ブロック)の使用率が分割閾値以上か否かを判定する。
判定の結果、S306で第i隣接ブロックの使用率が分割閾値未満であった場合(S306のNO)、管理手段102の挿入手段は、分割手段104に既存エントリを分割する旨の命令を送信する。分割手段104は、命令を受信するとi+1分位値を算出する(S312)。ここで、i+1分位値とは、対象ブロックから第i隣接ブロックまでのi+1個のブロックの間で既存エントリを分割する際の基準値である。i+1分位値は、例えば、対象ブロックから第i隣接ブロックの既存エントリの総数をi+1等分するなどして求めることができる。
次に、分割手段104は、求めたi+1分位値に基づき、既存エントリを各ブロックの間で分割する(S314)。そして、管理手段102の挿入手段は、分割された既存エントリが保持するキー値に基づき、新規エントリを挿入する位置を特定し、新規エントリを挿入する(S316)。ここで、下位階層の各ブロックの間におけるエントリの分割に伴い、上位階層のエントリの値を更新する必要が生じる可能性があるため、分割処理の対象となったブロック毎に、最小のキー値を持つエントリを取得する(S318)。また、S318で取得された各エントリは、以降の処理で、上位階層のブロックのエントリを更新する際に使用される。
一方、S306の判定の結果、第i隣接ブロックの使用率が分割閾値以上であった場合(S306のYES)、管理手段102の挿入手段は、次の隣接ブロックを対象とするため、カウンタiをインクリメントし(S308)、S304の処理を再度実行する。
ここで、S304において、使用率を判定していない隣接ブロックが存在しない場合(S304のNO)は、第1隣接ブロックから第k−1隣接ブロックまでの使用率が分割閾値以上であることを示す。従って、管理手段102の挿入手段は、新規エントリを挿入する領域を確保するため、分割手段104にブロック分割処理を行う旨の命令を送信する。分割手段104は、当該命令を受信後、第k−1隣接ブロックの後ろに新規ブロックを追加する(S310)。以降の処理は、新規ブロックを追加しない場合と同様であり、対象ブロックから新規ブロックまでの間で既存エントリを分割し、新規エントリを挿入する。
以上が、分割処理の流れである。
図4に戻り、下位階層で分割処理を実行した場合、上位階層のブロックが保持するエントリを新たなキー値で更新する必要があるため、上位階層が存在するか否かを判定する。上位階層が存在する場合(S206のYES)、カウンタkをインクリメントして処理対象の階層を1つ上げる(S208)。そして、探索処理において保持していた経路に従い、1つ上の階層で処理対象とするブロックを特定する。ここで、下位階層で新規ブロックが追加された場合、上位階層に位置するブロックがさらに分割される可能性がある。そこで、管理手段102の挿入手段は、S204の分割処理で新規ブロックが追加されたか否かを判定する(S214)。これは、例えば新規ブロックが追加されたことを示すフラグなどを用いて判定できる。下位階層で新規ブロックが追加されなかった場合(S214のNO)、上位階層のブロックが分割される可能性はない。よって、管理手段102の挿入手段は、特定されたブロックのエントリのうち、下位階層で分割処理の対象となったブロックを示すエントリを、S318で取得されたエントリを用いて更新する(S212)。一方、下位階層で新規ブロックが追加された場合(S214のYES)、上位階層のブロックが分割される可能性がある。よって、管理手段102の挿入手段は、特定されたブロックの使用率が分割閾値以上か判断する(S202)。上位階層の対象ブロックの使用率が分割閾値未満である場合(S202のNO)、分割処理を実行する必要はない。よって管理手段102の挿入手段は、特定されたブロックのエントリのうち、下位階層で分割処理の対象となったブロックを示すエントリを、S318で取得されたエントリを用いて更新する(S212)。なお、上位階層でさらに分割処理を行う場合については、下位階層で実行した処理の繰り返しとなるため、その説明は省略する。
一方、S206において、上位階層が存在しない場合(S206のNO)は、ルートブロックで分割処理が行われたこととなるため、管理手段102の挿入手段は、新たにルートブロックを作成する(S210)。管理手段102の挿入手段は、旧ルートブロックの分割処理のS318で取得されたエントリを、新たに作成したルートブロックに挿入する。
以上が、本実施形態におけるデータの更新処理の流れである。
本実施形態で分割が発生する際、最も下位に位置する階層(レベル1)では、対象ブロックのみを分割するため、分割アルゴリズムはB+ツリーと等価である。そのため、レベル1の階層の分割方法の保証使用率は約50%となる。同様にレベル2の階層では、対象ブロックと第1隣接ブロックの2ブロックを分割するため、B*ツリーと等価の分割アルゴリズムとなり保証使用率は約67%となる。同様に、レベル3では約75%、レベル4では約80%と、上位階層ほど保証使用率が高くなる。
以上、本実施形態においても、上位階層ほど分割手段104が使用する分割方法の保証使用率が高く、下位階層ほど分割手段104が使用する分割方法の保証使用率低い構成を取るため、第1の実施形態と同様の効果を得ることができる。また、本実施形態では、階層が上がるほど保証使用率を高くなる構成を取る。本構成により、一定の更新頻度を持つ階層で分割手段104が使用する分割方法を分ける構成よりも、柔軟に保証使用率を変化させることができ、処理速度を向上させることができる。
(第3の実施形態)
本実施形態は、以下の点を除き、第2の実施形態と同様である。
図6は、本発明の第3の実施形態に係るデータ管理装置の構成を示すブロック図である。本実施形態で、データ管理装置10は、隣接ブロック毎に分割閾値を定める第1補正手段106をさらに有する。
図7は、本発明の第3の実施形態における分割処理の流れを示すフローチャートである。第1補正手段106は、対象ブロックと隣接ブロックとの距離に応じて、分割閾値を定める(S402)。第1補正手段106は、対象ブロックから距離がある隣接ブロックほど分割閾値が小さくなるように定める。例えば、隣接ブロックを判断するカウンタiを用いて、分割閾値を「100−c×i%(cは任意定数)」などとすることができる。これにより、隣接ブロック毎にブロックの分割が発生する条件を調整できる。
また、分割手段104は、各ブロックの間で既存エントリを分割する前に、各隣接ブロックの分割閾値に基づき、既存エントリの分割位置を算出する(S404)。例えば、分割手段104は、基本はi+1分位置に基づいて既存エントリを各ブロックの間で分割する。ここでi+1分位置に基づいて分割しようとした際、あるブロックの分割閾値を超えてしまう場合、分割手段104は、分割閾値が大きいブロックのほうに多くの既存エントリを割り当て、各ブロックが分割閾値を超えないように調整する。
図8は、隣接ブロックの距離に応じた分割閾値の補正がない場合におけるエントリの遷移の例を示す図である。また、図9は、隣接ブロックの距離に応じた分割閾値の補正がある場合におけるエントリの遷移の例を示す図である。なお、これらの例では、説明の便宜上、1ブロックの最大エントリ数が36、保証使用率は2/3、一番左のブロックにのみ新規エントリの挿入が発生する場合として説明する。
図8に示すとおり、隣接ブロックの距離に応じた分割閾値の補正がない場合、あるブロックの追加処理が発生してから次のブロックの追加処理が発生するまで、6回の分割処理を呼び出す。一方、図9に示すとおり、隣接ブロックの距離に応じた分割閾値の補正がある場合、あるブロックの追加処理が発生してから次のブロックの追加処理が発生するまで、5回の分割処理を呼び出す。
以上、本実施形態においても、上位階層の分割手段104が使用する分割方法ほど保証使用率が高く、下位階層の分割手段104が使用する分割方法ほど保証使用率低い構成を取るため、第1、2の実施形態と同様の効果を得ることができる。本実施形態では、対象ブロックと隣接ブロックの距離に応じて、分割閾値を定める構成を取る。本構成により、一定の分割閾値を使用する場合と比較し、同一の保証使用率において分割処理の呼出回数を抑えることができる。そのため、一定の分割閾値を使用する場合と比較し、更新処理を高速化できる。また、本構成により、比較的少数のブロック間における、比較的軽量なブロック分割処理を省略しないようにできる。そのため、保証使用率の低下を抑制し、検索処理の速度低下を抑制することができる。
(第4の実施形態)
本実施形態は、以下の点を除き、第3の実施形態と同様である。
図10は本発明の第4の実施形態に係るデータ管理装置の構成を示すブロック図である。本実施形態では、データ管理装置10は、階層毎に分割閾値を定める第2補正手段108をさらに有する。
図11は、本発明の第4の実施形態における挿入処理の流れを示すフローチャートである。第2補正手段108は、処理対象の階層に応じて分割閾値を定める(S502)。第2補正手段108は、更新頻度の高い下位階層に行くほど分割閾値が小さくなるように定める。例えば、階層を判断するカウンタkを用いて、分割閾値を「100−c×(10−k)%(cは任意定数、kが10以上の時はk=10とみなす。)」などとすることができる。これにより、階層毎にブロックの分割が発生する条件を調整できるようになり、各階層の更新頻度に合わせて、各階層の保証使用率を調整することができる。
以上、本実施形態においても、第1〜第3の実施形態と同様の効果を得ることができる。また、本実施形態では、階層毎に分割閾値を定める構成を取る。本構成により、階層毎の更新頻度に合わせて、柔軟に保証使用率を最適化することができる。よって、全階層で同一の分割閾値を使用する場合と比較して、処理速度を向上させることができる。なお、本実施形態において、階層毎の分割手段104が使用する分割方法は、第2の実施形態で記載した分割方法以外であっても、上位階層の分割手段104が使用する分割方法の保証使用率が下位階層の分割手段104が使用する分割方法の保証使用率以上となればよい。また、本実施形態において、第3の実施形態に記載した第1補正手段106がなくても、本実施形態の効果を得ることができる。
なお、上述した実施形態によれば以下の発明が開示されている。
(付記1)
ブロック単位のエントリをツリー状の階層構造で管理する管理手段と、
階層毎に設けられ、新規エントリを挿入する際に前記ブロックの使用率が一定の分割閾値以上である場合、新規ブロックを追加して、前記ブロックが保持する既存エントリを、前記ブロックと前記新規ブロックとの間で分割する分割手段とを有し、
前記分割を実施した直後に前記ブロックが保持している前記既存エントリの数を、前記ブロックが保持できる前記エントリの最大数で除した値を保証使用率とした場合、任意の前記階層である第1の階層の前記分割手段が使用する分割方法の前記保証使用率は、前記第1の階層より下位に位置する第2の階層の前記分割手段が使用する前記分割方法の前記保証使用率以上であるデータ管理装置。
(付記2)
付記1に記載のデータ管理装置において、
前記階層毎に、前記エントリの更新頻度を保持し、
前記分割手段が使用する前記分割方法は、
一定の閾値以上の前記更新頻度を持つ前記階層より上位に位置する階層では、B*ツリーの分割アルゴリズムであり、一定の閾値以上の前記更新頻度を持つ前記階層以下に位置する階層では、B+ツリーの分割アルゴリズムであるデータ管理装置。
(付記3)
付記1に記載のデータ管理装置において、
レベルk(k≧1)の階層において前記分割手段は、
前記新規エントリの挿入対象とする前記ブロックを対象ブロックとし、前記対象ブロックと同一の前記階層に位置し、前記対象ブロックにおける最大のキー値よりも大きいキー値を有するエントリを保持する前記ブロックの中で、前記キー値が最小のエントリを保持する前記ブロックを起点として、当該起点となるブロックから数えてk−1個の前記ブロックを隣接ブロックとした場合、前記対象ブロックと前記隣接ブロックの全てにおいて前記使用率が前記分割閾値以上であった時に、前記新規ブロックを追加して、前記対象ブロックから前記隣接ブロックにある全ての前記既存エントリを、前記対象ブロック、前記隣接ブロックおよび前記新規ブロックの間で分割し、
前記対象ブロックまたは前記隣接ブロックのうち、いずれかの前記使用率が前記分割閾値未満であった時に、前記新規ブロックを追加せず、前記対象ブロックから前記使用率を判定した前記隣接ブロックまでにある前記既存エントリを、前記対象ブロックから前記使用率を判定した前記隣接ブロックの間で分割するデータ管理装置。
(付記4)
付記3に記載のデータ管理装置において、
処理対象とする前記ブロックである対象ブロックからの距離に応じて、前記分割閾値を定める第1閾値補正手段をさらに有するデータ管理装置。
(付記5)
付記1〜4のいずれか一つに記載のデータ管理装置において、
前記階層毎に前記分割閾値を定める第2閾値補正手段をさらに有するデータ管理装置。
(付記6)
コンピュータが、
ブロック単位のエントリを、ツリー状の階層構造で管理し、
新規エントリを挿入する際に前記ブロックの使用率が一定の分割閾値以上である場合、階層毎に設けられた分割手段を用いて、新規ブロックを追加して、前記ブロックが保持する既存エントリを、前記ブロックと前記新規ブロックとの間で分割し、
前記分割を実施した直後に前記ブロックが保持している前記既存エントリの数を、前記ブロックが保持できる前記エントリの最大数で除した値を保証使用率とした場合、任意の前記階層である第1の階層の前記分割手段が使用する分割方法の前記保証使用率は、前記第1の階層より下位に位置する第2の階層の前記分割手段が使用する前記分割方法の前記保証使用率以上となるように設定するデータ管理方法。
(付記7)
コンピュータを、
ブロック単位のエントリを、ツリー状の階層構造で管理する手段、
新規エントリを挿入する際に前記ブロックの使用率が一定の分割閾値以上である場合、階層毎に設けられた分割手段を用いて、新規ブロックを追加して、前記ブロックが保持する既存エントリを、前記ブロックと前記新規ブロックとの間で分割する手段、
前記分割を実施した直後に前記ブロックが保持している前記既存エントリの数を、前記ブロックが保持できる前記エントリの最大数で除した値を保証使用率とした場合、任意の前記階層である第1の階層の前記分割手段が使用する分割方法の前記保証使用率は、前記第1の階層より下位に位置する第2の階層の前記分割手段が使用する前記分割方法の前記保証使用率以上となるように設定する手段として機能させるためのプログラム。
(付記8)
付記6に記載のデータ管理方法において、
前記コンピュータが、
前記階層毎に、前記エントリの更新頻度を保持し、
前記分割手段が使用する前記分割方法を用いて、
一定の閾値以上の前記更新頻度を持つ前記階層より上位に位置する階層では、B*ツリーの分割アルゴリズムであり、一定の閾値以上の前記更新頻度を持つ前記階層以下に位置する階層では、B+ツリーの分割アルゴリズムであるデータ管理方法。
(付記9)
付記6に記載のデータ管理方法において、
前記コンピュータが、
レベルk(k≧1)の階層において前記分割手段を用いて、
前記新規エントリの挿入対象とする前記ブロックを対象ブロックとし、前記対象ブロックと同一の前記階層に位置し、前記対象ブロックにおける最大のキー値よりも大きいキー値を有するエントリを保持する前記ブロックの中で、前記キー値が最小のエントリを保持する前記ブロックを起点として、当該起点となるブロックから数えてk−1個の前記ブロックを隣接ブロックとした場合、前記対象ブロックと前記隣接ブロックの全てにおいて前記使用率が前記分割閾値以上であった時に、前記新規ブロックを追加して、前記対象ブロックから前記隣接ブロックにある全ての前記既存エントリを、前記対象ブロック、前記隣接ブロックおよび前記新規ブロックの間で分割し、
前記対象ブロックまたは前記隣接ブロックのうち、いずれかの前記使用率が前記分割閾値未満であった時に、前記新規ブロックを追加せず、前記対象ブロックから前記使用率を判定した前記隣接ブロックまでにある前記既存エントリを、前記対象ブロックから前記使用率を判定した前記隣接ブロックの間で分割するデータ管理方法。
(付記10)
付記9に記載のデータ管理方法において、
前記コンピュータが、
処理対象とする前記ブロックである対象ブロックからの距離に応じて、前記分割閾値を定めるデータ管理方法。
(付記11)
付記6、8〜10のいずれか一つに記載のデータ管理方法において、
前記コンピュータが、
前記階層毎に前記分割閾値を定めるデータ管理方法。
(付記12)
付記7に記載のプログラムにおいて、
前記コンピュータを、
前記階層毎に、前記エントリの更新頻度を保持する手段、
前記分割手段が使用する前記分割方法を、
一定の閾値以上の前記更新頻度を持つ前記階層より上位に位置する階層では、B*ツリーの分割アルゴリズムであり、一定の閾値以上の前記更新頻度を持つ前記階層以下に位置する階層では、B+ツリーの分割アルゴリズムとして設定する手段として機能させるためのプログラム。
(付記13)
付記7に記載のプログラムにおいて、
前記コンピュータを、
レベルk(k≧1)の階層における前記分割手段を用いて、
前記新規エントリの挿入対象とする前記ブロックを対象ブロックとし、前記対象ブロックと同一の前記階層に位置し、前記対象ブロックにおける最大のキー値よりも大きいキー値を有するエントリを保持する前記ブロックの中で、前記キー値が最小のエントリを保持する前記ブロックを起点として、当該起点となるブロックから数えてk−1個の前記ブロックを隣接ブロックとした場合、前記対象ブロックと前記隣接ブロックの全てにおいて前記使用率が前記分割閾値以上であった時に、前記新規ブロックを追加して、前記対象ブロックから前記隣接ブロックにある全ての前記既存エントリを、前記対象ブロック、前記隣接ブロックおよび前記新規ブロックの間で分割し、
前記対象ブロックまたは前記隣接ブロックのうち、いずれかの前記使用率が前記分割閾値未満であった時に、前記新規ブロックを追加せず、前記対象ブロックから前記使用率を判定した前記隣接ブロックまでにある前記既存エントリを、前記対象ブロックから前記使用率を判定した前記隣接ブロックの間で分割する手段として機能させるためのプログラム。
(付記14)
付記13に記載のプログラムにおいて、
前記コンピュータを、
処理対象とする前記ブロックである対象ブロックからの距離に応じて、前記分割閾値を定める手段としてさらに機能させるためのプログラム。
(付記15)
付記7、12〜14のいずれか一つに記載のプログラムにおいて、
前記コンピュータを、
前記階層毎に前記分割閾値を定める手段としてさらに機能させるためのプログラム。
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。例えば、各実施形態において、説明の便宜上、データの構造は3層構造としたが、それ以外の階層数を持つ構成であってもよい。
また、上述の説明で用いた複数のフローチャートでは、複数の工程(処理)が順番に記載されているが、各実施形態で実行される工程の実行順序は、その記載の順番に制限されない。各実施形態では、図示される工程の順番を内容的に支障のない範囲で変更することができる。また、上述の各実施形態は、内容が相反しない範囲で組み合わせることができる。
この出願は、2012年3月2日に出願された日本出願特願2012−46089号を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (7)

  1. ブロック単位のエントリをツリー状の階層構造で管理する管理手段と、
    階層毎に設けられ、新規エントリを挿入する際に前記ブロックの使用率が一定の分割閾値以上である場合、新規ブロックを追加して、前記ブロックが保持する既存エントリを、前記ブロックと前記新規ブロックとの間で分割する分割手段とを有し、
    前記分割を実施した直後に前記ブロックが保持している前記既存エントリの数を、前記ブロックが保持できる前記エントリの最大数で除した値を保証使用率とした場合、任意の前記階層である第1の階層の前記分割手段が使用する分割方法の前記保証使用率は、前記第1の階層より下位に位置する第2の階層の前記分割手段が使用する前記分割方法の前記保証使用率以上であるデータ管理装置。
  2. 請求項1に記載のデータ管理装置において、
    前記階層毎に、前記エントリの更新頻度を保持し、
    前記分割手段が使用する前記分割方法は、
    一定の閾値以上の前記更新頻度を持つ前記階層より上位に位置する階層では、B*ツリーの分割アルゴリズムであり、一定の閾値以上の前記更新頻度を持つ前記階層以下に位置する階層では、B+ツリーの分割アルゴリズムであるデータ管理装置。
  3. 請求項1に記載のデータ管理装置において、
    レベルk(k≧1)の階層において前記分割手段は、
    前記新規エントリの挿入対象とする前記ブロックを対象ブロックとし、前記対象ブロックと同一の前記階層に位置し、前記対象ブロックにおける最大のキー値よりも大きいキー値を有するエントリを保持する前記ブロックの中で、前記キー値が最小のエントリを保持する前記ブロックを起点として、当該起点となるブロックから数えてk−1個の前記ブロックを隣接ブロックとした場合、前記対象ブロックと前記隣接ブロックの全てにおいて前記使用率が前記分割閾値以上であった時に、前記新規ブロックを追加して、前記対象ブロックから前記隣接ブロックにある全ての前記既存エントリを、前記対象ブロック、前記隣接ブロックおよび前記新規ブロックの間で分割し、
    前記対象ブロックまたは前記隣接ブロックのうち、いずれかの前記使用率が前記分割閾値未満であった時に、前記新規ブロックを追加せず、前記対象ブロックから前記使用率を判定した前記隣接ブロックまでにある前記既存エントリを、前記対象ブロックから前記使用率を判定した前記隣接ブロックの間で分割するデータ管理装置。
  4. 請求項3に記載のデータ管理装置において、
    処理対象とする前記ブロックである対象ブロックからの距離に応じて、前記分割閾値を定める第1閾値補正手段をさらに有するデータ管理装置。
  5. 請求項1〜4のいずれか一項に記載のデータ管理装置において、
    前記階層毎に前記分割閾値を定める第2閾値補正手段をさらに有するデータ管理装置。
  6. コンピュータが、
    ブロック単位のエントリを、ツリー状の階層構造で管理し、
    新規エントリを挿入する際に前記ブロックの使用率が一定の分割閾値以上である場合、階層毎に設けられた分割手段を用いて、新規ブロックを追加して、前記ブロックが保持する既存エントリを、前記ブロックと前記新規ブロックとの間で分割し、
    前記分割を実施した直後に前記ブロックが保持している前記既存エントリの数を、前記ブロックが保持できる前記エントリの最大数で除した値を保証使用率とした場合、任意の前記階層である第1の階層の前記分割手段が使用する分割方法の前記保証使用率は、前記第1の階層より下位に位置する第2の階層の前記分割手段が使用する前記分割方法の前記保証使用率以上となるように設定するデータ管理方法。
  7. コンピュータを、
    ブロック単位のエントリを、ツリー状の階層構造で管理する手段、
    新規エントリを挿入する際に前記ブロックの使用率が一定の分割閾値以上である場合、階層毎に設けられた分割手段を用いて、新規ブロックを追加して、前記ブロックが保持する既存エントリを、前記ブロックと前記新規ブロックとの間で分割する手段、
    前記分割を実施した直後に前記ブロックが保持している前記既存エントリの数を、前記ブロックが保持できる前記エントリの最大数で除した値を保証使用率とした場合、任意の前記階層である第1の階層の前記分割手段が使用する分割方法の前記保証使用率は、前記第1の階層より下位に位置する第2の階層の前記分割手段が使用する前記分割方法の前記保証使用率以上となるように設定する手段として機能させるためのプログラム。
JP2014501984A 2012-03-02 2013-01-17 データ管理装置、データ管理方法およびプログラム Pending JPWO2013128788A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014501984A JPWO2013128788A1 (ja) 2012-03-02 2013-01-17 データ管理装置、データ管理方法およびプログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012046089 2012-03-02
JP2012046089 2012-03-02
JP2014501984A JPWO2013128788A1 (ja) 2012-03-02 2013-01-17 データ管理装置、データ管理方法およびプログラム

Publications (1)

Publication Number Publication Date
JPWO2013128788A1 true JPWO2013128788A1 (ja) 2015-07-30

Family

ID=49082007

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014501984A Pending JPWO2013128788A1 (ja) 2012-03-02 2013-01-17 データ管理装置、データ管理方法およびプログラム

Country Status (2)

Country Link
JP (1) JPWO2013128788A1 (ja)
WO (1) WO2013128788A1 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0821309A4 (en) * 1996-02-09 2008-02-27 Sony Corp INFORMATION PROCESSOR, FILENAMEN CHANGE PROCEDURE AND RECORDING MEDIUM STORED ON A FILENAMEN CHANGE PROGRAM
JP5339507B2 (ja) * 2008-10-01 2013-11-13 インターナショナル・ビジネス・マシーンズ・コーポレーション 木構造を探索する方法
JP5237837B2 (ja) * 2009-01-07 2013-07-17 株式会社日立製作所 空間データ管理装置、空間データ管理方法、および、空間データ管理プログラム
JP5430436B2 (ja) * 2010-02-16 2014-02-26 日本電信電話株式会社 情報蓄積検索方法及び情報蓄積検索プログラム

Also Published As

Publication number Publication date
WO2013128788A1 (ja) 2013-09-06

Similar Documents

Publication Publication Date Title
US11163828B2 (en) Building and querying hash tables on processors
US8868926B2 (en) Cryptographic hash database
US11340812B2 (en) Efficient modification of storage system metadata
US10831736B2 (en) Fast multi-tier indexing supporting dynamic update
US10114908B2 (en) Hybrid table implementation by using buffer pool as permanent in-memory storage for memory-resident data
US9851917B2 (en) Method for de-duplicating data and apparatus therefor
EP2633413B1 (en) Low ram space, high-throughput persistent key-value store using secondary memory
KR102034833B1 (ko) 플래시 저장장치의 내부 병렬성을 이용하는 키 값 기반의 데이터 액세스 장치 및 방법
CN106990915B (zh) 一种基于存储介质类型和加权配额的存储资源管理方法
CN108228649B (zh) 用于数据访问的方法和设备
US20120215752A1 (en) Index for hybrid database
KR20190019805A (ko) 데이터 객체 저장 방법, 장치, 및 이를 이용한 컴퓨터 프로그램이 저장되는 컴퓨터 판독가능한 저장 매체
US20200167327A1 (en) System and method for self-resizing associative probabilistic hash-based data structures
US10515055B2 (en) Mapping logical identifiers using multiple identifier spaces
US8935508B1 (en) Implementing pseudo content access memory
CN106599247A (zh) LSM‑tree结构中数据文件的合并方法及装置
JP6006740B2 (ja) インデックス管理装置
JPWO2012114402A1 (ja) データベース管理装置及びデータベース管理方法
US11435926B2 (en) Method, device, and computer program product for managing storage system
KR100878142B1 (ko) 플래시 메모리 상에서의 효율적인 동작을 위한 수정된b-트리 인덱스 구성 방법
WO2013128788A1 (ja) データ管理装置、データ管理方法およびプログラム
US9824105B2 (en) Adaptive probabilistic indexing with skip lists
US20140115246A1 (en) Apparatus, system and method for managing empty blocks in a cache
Zhu SHaMBa: Reducing Bloom Filter Overhead in LSM Trees
CN111723266A (zh) 海量数据处理方法和装置