JP2001511553A - エレメントをデータベースに格納する方法 - Google Patents
エレメントをデータベースに格納する方法Info
- Publication number
- JP2001511553A JP2001511553A JP2000504498A JP2000504498A JP2001511553A JP 2001511553 A JP2001511553 A JP 2001511553A JP 2000504498 A JP2000504498 A JP 2000504498A JP 2000504498 A JP2000504498 A JP 2000504498A JP 2001511553 A JP2001511553 A JP 2001511553A
- Authority
- JP
- Japan
- Prior art keywords
- container
- belonging
- overflow
- buffer
- page
- 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
Links
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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
に関するものである。データベースにおけるデータエレメント格納用の格納スペ
ースへの参照はハッシュ関数などの数学関数によって計算され、関数入力データ
はエレメントに属する外部キーで構成され、数学関数で得られる結果がデータベ
ース内における前記エレメントの位置を示す。また、発明は関数の結果を異なる
部分に分割することを基礎としている。
知られている。これらの構造は、例えば、使用中の格納スペースに関する異なる
利点と高速検索実行の可能性を与える。
の計算を可能にするいわゆるハッシュ関数に基づくものがある。
エレメントは電話番号などの外部キーと結合される。テーブルに新しい電話番号
入力するとき、その電話番号の内部アドレスを配置すべきエレメントはハッシュ
関数によって求められる。
することである。そして、特定のアドレスを検索するときに正しいエレメントを
検出するために同じハッシュ関数が使用される。
を含むハッシュ値が得られる。
(LH)であって、関数から得られるデータ語がいわゆるLH−ビットで構成さ
れる。得られたLH−ビットは例えばデータベース内のある1ページ、またはそ
のページを示すレジスタ内の位置を示し、そのページ上の検索エレメント位置を
求めることができる。
ることが知られている。得られたデータ語はこれら2段階で2グループのビット
に分割される。
ックスは新しいベクトルを示すことができる。第2グループのビットは新しいベ
クトルのインデックスを示し、例えば、この新しいインデックスはエレメントの
リンクリスト中の第1エレメントを表す。そして、このリンクリスト中のどこか
で検索エレメントが検出される。
部アドレスが含まれる。メモリ内の物理的に完全に異なる位置に様々なリンクが
置かれるが、それらはポインタによって相互に関連付けられる。
ッダが得られる。求める内部アドレスが第1のエレメントで検出されなければ、
リンクリスト中の次のエレメントで検索が継続される。リンクリスト中の次エレ
メントはメモリ内で物理的に位置決めされているので、次エレメントをピックア
ップするために通常は改めてメモリへアクセスする必要がある。この一回目に行
われた間違いエレメントのピックアップはいわゆるキャッシュミスである。
のキャッシュミスを経験することがあり、費用のかさむプロセスである。次世代
プロセッサでは、1回のキャッシュミスは時間的に何百もの命令に相当する。
は、メモリへの最初アクセス時に検索エレメントが検出されることである。
ス内で示すベクトルをハッシュ値で表すことが知られており、このようにすれば
新しいハッシュ値をエレメントに割り当てずに、エレメントに関するレジスタ値
の変化にしたがってデータベース内の動的変更が可能になり、その結果、例えば
異なるページ間でのエレメントの移動が可能になる。
ベースを構成することも知られている。分散データベースにおける情報は別々の
構成ノードに分散される。
レプリカを含むことができる。通常、関連の二次レプリカを持つ一次レプリカは
フラグメントと呼ばれる。
e and Tables Addressing“, W.Litwin、r
eprinted from VLDB−80 in Readings in
Database Systems,2nd ed.,M.Stonebra
ker(ed.)、Morgan Kaufman、1994.
ed Files“,W.Litwin,M.−A. Neimat,D.A.
Schneider,ACM SIGMOD Int‘l.Conf.ON M
anagement of Data,1993.
Mirroring“,W.Litwin,M.−A.Neimat.
Data Structure for Switched Microcom
puters“,J.S.Karlsson,W.Litwin,T.Risc
h,5th Int‘l.Conf.ON Extending Databa
se Technology(EDBT’96).
Communications of the ACM,April,1988
.
hancements of Larson‘s Algorithm“, M
.Pettersson,University of Linkoping,
Sweden,March,1993.
キャッシュミスを伴わずに、また、ある場合には一回だけのキャッシュミスでエ
レメントの格納、検索、再検索ができる方法を提供することである。
な方法を提供することであって、それにより、一回目のキャッシュメモリ読み取
り試行、あるいは例外的には2回目の読み取り試行で検索エレメントが検出され
る可能性が得られる。
を形成する方法を提供することである。
フラグメントに属するエレメントの全レプリカの検出を可能にする方法を提供す
ることである。
そのまま全体的にキャッシュメモリへ読み込み可能な格納構造フォーマット、す
なわち本明細書で容器あるいはコンテナ(container)と呼ぶものを考
案することである。
ことを数学関数によって可能にする方法である。
格納を数学関数によって可能にする方法である。
イズが伸縮する容器を格納するために利用可能なページスペースを簡単かつ有効
に取り扱う方法を提供することである。
満たしていない場合に利用可能なメモリの有効利用を可能にする方法を提供する
ことである。
増減するとき、これを使用可能にする方法を提供することである。
すなわち最大容器に適応させたスペースの二重使用を可能にする方法を提供する
ことである。
メントが実際に存在しているか否かに関する所要情報と、容器内に実在しないか
もしれないエレメント、すなわち、検索をかけても単に一つのキャッシュミスを
招くだけのエレメントの所在に関する情報とを与える容器フォーマットを提供す
ることである。
器と同じページに存在するか、別のページに存在するかを問わず、上記のような
情報が得られる機能を提供することである。
連して異なるタイプのロックをエレメントが利用し得る必要情報を用意するエレ
メント形式を提供することである。
メントに含めることを可能にすることである。
エレメントの必要情報を提供することである。
トの結合に役立つエレメントの必要情報を提供することである。
えるために、本発明は数学関数から得られる結果を少なくとも3分割することを
提案する。すなわち、第1の部分はデータベースに属するフラグメントに対する
直接または間接的レファレンスを構成し、第2の部分はフラグメント内の1ペー
ジに対する直接または間接的レファレンスを構成し、第3の部分は前記ページに
属するバケットに対する直接または間接的レファレンスを構成する。
格納が可能か、既に格納されているか、あるいは前記エレメントに対する直接ま
たは間接的レファレンスが格納される。
メント、ページ、バケットまたはエレメントを変化させるために、本発明は直接
的または間接的なレファレンスを選択的に使用できる可能性を提案する。
望位置を直接的に示す内部アドレスを意味する。間接レファレンスは、所望位置
を直接的に示す関連内部アドレスの利用を可能にするテーブル、レジスタ等を指
示するポインタを意味する。
レファレンスを形成し、レファレンスを介してすべてのレプリカを利用可能にす
る。 − 第2の部分は、異なるページを示すポインタのベクトルを含むレジスタを
指示する。 − 第3の部分は、前記ページに属するバケットを数学関数によって指示する
。
ともある。
セッサに属するキャッシュメモリに容器全体が読み込まれるように、本発明は特
別な方法による容器フォーマットの設計を提案する。それぞれの容器には、容器
ヘッダのサイズと容器に属するエレメントのサイズとに対応するサイズが割り当
てられる。
大サイズ、すなわち最大容器は、データベース内で動作するプロセッサあるいは
前記データベースを利用するプロセッサに属するキャッシュメモリに一度に同時
に読み込み可能なサイズに制限される。
れぞれのページにおいて利用可能になるように、本発明はページを複数のバッフ
ァに分割することを提案する。それぞれのバッファはいわゆるアベイラビリティ
リスト限度の第1部分と第2部分に分割される。
る第2の非最大容器も可能
はフリーバッファで構成される。スタティックバッファに属する第1部分は容器
を含み、スタティックバッファに属する第2部分とフリーバッファに属する両部
分はオーバフロー容器を含むように構成される。
大の半分以下になることがあり、後者の場合はこれらの容器がバッファの一部を
占有することを意味する。
ことを意味する。これらの場合、本発明の提案によれば、第1部分内の容器は第
1部分の最初を始点とし、エレメントが追加されるにしたがって容器は関連バッ
ファの中央に向かって拡張する。そして第2部分内の容器は第2部分の最後を始
点とし、エレメントが追加されるにしたがって容器は関連バッファの中央に向か
って拡張する。
場合、本発明の提案によれば、関連バケットがオーバフロー容器を含むように構
成され、オーバフロー容器内の位置に追加エレメントが割り当てられる。
り効果的にするために、本発明の提案によれば、ページ上において、スタティッ
クバッファに属するすべての利用可能な第2部分と、フリーバッファに属するす
べての利用可能な第1および第2部分がアベイラビリティリストに含まれる。
器のサイズがアベイラビリティリスト限度を超えた場合にアベイラビリティリス
トから削除される。
容器が縮小して、アベイラビリティリスト限度以下になった場合、上記に対応し
たバッファに属する利用可能な第2部分がアベイラビリティリストに追加される
。
ベイラビリティリスト上の利用可能部分内の位置をオーバフロー容器に割り当て
、この割り当て時に上記有効部分はアベイラビリティリストから削除される。
でフリーバッファを含むオーバフローページで構成される。自己ページのアベイ
ラビリティリストで利用可能な部分がまったく存在しない場合は、オーバフロー
ページ上のバッファに属する部分の中の位置がオーバフロー容器に割り当てられ
る。
能性を示す。 − 第3の情報フィールドは、オーバフロー容器が存在しないことを示す。 − 第4の情報フィールドは使用されない。
能性を示す。 − 第3の情報フィールドは、オーバフロー容器の存在を示す。 − 第4の情報フィールドは、オーバフロー容器を指示する。
在することを示す。 − 第3の情報フィールドは、オーバフローページを指示するポインタを含む
。 − 第4の情報フィールドは、オーバフロー容器を指示するポインタを含む。
容器に属するエレメントには、ヘッダの直後かつ容器内で互い連続する位置が割
り当てられる。
ッサに属するキャッシュメモリに読み込まれる。
ーバフロー容器全体がキャッシュメモリに読み込まれる。
を可能にするために、本発明の提案によれば、それぞれのエレメントに特別なフ
ォーマットが割り当てられる。
の情報を含むものとする。
含む。 − 第4のグループは前記エレメントに属するローカルキーの長さに関連する
情報を含む。 − 第5のグループは前記エレメントに属するエレメントキーの長さに関連す
る情報を含む。
ンがロックされている場合、 − 第1および第2のグループは、トランザクションに属するトランザクショ
ンレジスタを指示するポインタを含む。 − 第3のグループは、エレメントがロックされていることを意味する情報を
含む。 − 第4のグループは、ローカルキーの長さに関連する情報を含む。 − 第5のグループは、エレメントキーの長さに関連する情報を含む。
ジスタは、関数から得られた結果の一部と、ステータスビットと、そのエレメン
トに適用されたロックのタイプすなわちロックモードとを含む。
ープは4ビット、第3グループは1ビット、第4グループは4ビット、第5グル
ープは4ビットでそれぞれ構成される。
のレプリカ作成プロセスで使用される。それぞれのビットは、エレメントのレプ
リカが作成されるか否かを示す。
あるが、その各プロセスがそれぞれ個別のステータスビットを使用することがで
きる。
結合プロセスで使用される。
のメモリアクセスで検索し得る能力、あるいは所要のエレメントがオーバフロー
容器に格納されている場合は2回のメモリアクセスだけで検索し得る能力である
。ハッシュ関数によって的確な容器が示される。
まれるように決められる。キャッシュメモリ内で的確な容器を検出した後は、最
新のプロセッサを用いることによって、容器内でシリアルに格納されたエレメン
トから的確なエレメントを直ちに検索することができる。
べる。
の入力データとして使用する場合を示す。
部位置を示す。結果yは少なくとも3つの部分A、B、Cに分割される。
A4が第1の部分Aで構成されることを示している。このレファレンスA1は、
異なるフラグメントをカバーするテーブルA2における位置を指し、これにより
、フラグメントA4に属する全コピーの格納場所を明示する情報A3が利用可能
になる。
B1を構成する。このレファレンスB1は、ページB4等の異なるページを指示
するポインタB3のベクトルを含むレジスタB2を指示するポインタで構成され
る。
レンスClを構成する。
2に対する直接アドレスが与えられる。
C4に属するオーバフロー容器C6を含む場合もある。
E3、...、のサイズとに対応するサイズがそれぞれの容器C6に割り当てら
れていることを示している。
ベース内で稼動中あるいはそのデータベースを使用中のプロセッサに属するキャ
ッシュメモリに一度に読み込み可能なサイズを上限とする。
ことができるので、以下の説明はこの値に基づくものとする。しかし、所望の効
果を得るために、本発明による容器のサイズおよび後述する他の数値は、関連プ
ロセッサのキャッシュメモリに一回で読み込み可能な量に合わせる。
メモリに読み込まれる情報内容の処理時間がある。処理時間がキャッシュミスに
伴う時間を超える場合、一度にキャッシュメモリに読み込まれる情報量とは無関
係に、容器のサイズや他の数値は、キャッシュミスに伴う時間経過より短い時間
で容器の処理が行えるようなサイズに制限するのが妥当である。
、...、B466に分割される。各バッファはいわゆるアベイラビリティリス
ト限度B4Cの第1部分B4Aと第2部分B4Bに分割され、各バッファは下記
のいずれかを含むように構成される。 − 第1部分B4Aと第2部B4Bの全体を収容する最大容器C51 − 第1部分B4Aを始点とし、第2部分B4Bまで拡張する第1の非最大容
器C52 − 第1の部分B4Aを始点とする第1の非最大の容器C53と、さらに、第
2部分B4Bを始点とする第2の非最大容器C61も可能。
ッファはフリーバッファB4Fで構成される。
ジには、8バイトのヘッダC3と、それぞれ124バイトからなる64個のスタ
ティックバッファB4Sおよび2個のフリーバッファB4Fが含まれる。
て構成される特定のバケット、すなわち特定のバッファのアドレッシングは、バ
ッファ数を示す1と64の間の乱数“a”を上記第3部分で表すことによって可
能になる。この数“a”に124(各バッファのバイト数)を掛け、その積に8
を加算したものがヘッダC3のバイト数である。
を使用することにはなるが、数学関数f(x)の第3部分Cは所望位置を直接指
示するアドレスであると云うことができる。
ァ内に位置するバケットとが指示される。
構成され、スタティックバッファB4Sに属する第2部分B4Bと、フリーバッ
ファB4Fに属する両部分B4A、B4Bがオーバフロー容器C6を含むように
構成される。
メントEが追加されると容器C5は関連バッファの中央に向かって拡張する。
メントEが追加されると容器C6は関連バッファの中央に向かって拡張する。
バッファが構成されているにもかかわらず、2個の容器を共通バッファ内に収容
することが可能になる。
内でランダムに均等分割されるので、容器C5の過半数はそれらの最大許容量ま
で満たされることはない。また、これらの容器の多くはアベイラビリティリスト
限度B4C以下であって、これは他の複数の部分B4Bがオーバフロー容器C6
として利用可能になることを意味する。
超過したか否かにかかわらず、共通バッファを共有する2個の容器の間でバッフ
ァ内スペースがどのように分割されるかを確かめるチェックはこれら2個の容器
に依存する。したがって、バッファに2個の容器を収容する十分なスペースがあ
れば、非常に小さいオーバフロー容器C6を用いてアベイラビリティリスト限度
を超える程度まで容器C5を拡張させることが可能になる。
にエレメントEが追加される場合にオーバフロー容器C6を含むように構成され
、この追加エレメントにオーバフロー容器C6の位置が割り当てられる。
用可能な第2部分B4Bと、ページB4のフリーバッファB4Fに属する利用可
能な第1部分B4Aおよび第2部分B4Bを含むように構成される。このページ
B4のヘッダC3はアベイラビリティリストを指示するポインタ、その他を含む
。
可能部分が含まれ、それぞれの利用可能部分には、リンクリスト内で次に利用可
能な部分に対するポインタが含まれるように作成することができる。ヘッダ内の
ポインタは最初に利用可能な部分を指示する。
おける非最大容器C54のサイズがアベイラビリティリスト限度B4Cを超えた
場合、アベイラビリティリストから削除される。
分内の容器C55が縮小して、アベイラビリティリスト限度以下になった場合、
上記に対応したバッファB45に属する利用可能な第2部分B4B”はアベイラ
ビリティリストに追加される。
ィリストから削除またはアベイラビリティリストに追加されるとき、ヒステリシ
スを導入することも可能である。
した場合にのみ第2部分をアベイラビリティリストから削除することが可能であ
る。
ジンが生じた場合のみ、容器サイズの縮小と関連して第2部分をアベイラビリテ
ィリストに追加することが可能である。
ィリスト限度付近で周期的に生じる容器サイズの増減に伴う振動現象を防止する
ことができる。
今まで利用可能になっていた部分B4B'''はアベイラビリティリストから削除 される。
めに、本発明の提案によれば、フラグメントA4に属するページにはオーバフロ
ーページB5が含まれる。このオーバフローページB5はフリーバッファB5F
のみを含む。アベイラビリティリスト上で利用可能部分が全くない場合、オーバ
フローページB5上のバッファB53に属する部分の位置がオーバフロー容器C
62に割り当てられる。
1、CH2、CH3、CH4を含み、第1の情報フィールドCH1は容器サイズ
に関する情報を含む。
に存在する可能性を示す。 − 第3の情報フィールドCH3は、オーバフロー容器C6が存在しないこと
を示す。 − 第4の情報フィールドCH4は使用されない。
む場合、 − 第2の情報フィールドCH2は、オーバフロー容器C6が同じページB4
に存在する可能性を示す。 − 第3の情報フィールドCH3は、オーバフロー容器C6が存在することを
示す。 − 第4の情報フィールドCH4はオーバフロー容器C6を指示する。
、 − 第2の情報フィールドCH2は、オーバフロー容器C6がオーバフローペ
ージB5に存在することを示す。 − 第3の情報フィールドCH3は、オーバフローページB5を指示するポイ
ンタを含む。 − 第4の情報フィールドCH4は、オーバフロー容器C6を指示するポイン
タを含む。
状況に適応する。
るポインタは、1〜64の数値と各バッファのバイト数を表す数値124との積
にヘッダのバイト数を表す数値8を加算した値を持つ。しかし、これはランダム
に行われるのではなく、どのバッファがアベイラビリティリスト上で利用可能に
なっているかに依存する。
の連続する位置が割り当てられる。
追加のオーバフロー容器C6を参照する必要が生じる。そのため、オーバフロー
容器を含めて、すべての容器に上述のヘッダが設けられる。実際にはほとんどあ
り得ないことであるが、バケットC2が2つの以上のオーバフロー容器を必要と
する場合、最後のオーバフロー容器C6’内でエレメントEl’を検索すると、
同じ回数のキャッシュミスが生じることになる。
れる容器C5全体がプロセッサに属するキャッシュメモリに読み込まれる。
ば、オーバフロー容器C6全体がキャッシュメモリに読み込まれる。
ている。本発明によれば、エレメントヘッダは、2つの異なるケースでエレメン
トEを記述できるようになっている。
の構成を示す。この場合、第1のグループG1は数学関数f(x)から得られた
結果y’の一部分を含み、第2のグループG2は、エレメントEのステータスビ
ットESを含み、第3のグループG3はエレメントがロックされていないことを
示す情報LS(Lock Status)を含み、第4のグループG4はエレメ
ントに属するローカルキーの長さに関する情報を含み、第5グループG5はエレ
メントに属するエレメントキーの長さに関する情報を含む。
にロックされているエレメントE’の構成を示す。
ンに属するトランザクションレジスタTRを指示するポインタG12を含んでお
り、トランザクションレジスタTRは数学関数f(x)から得られる結果y’の
一部分と、ステータスビットESと、エレメントに適用されたロックのタイプL
M(Lock Mode)とを含んでいる。そして第3のグループG3’は、エ
レメントがロックされていることを示す情報LSを含む。
情報を含み、第5のグループG5’はエレメントキーG7’の長さに関する情報
を含む。
ト、第2のグループG2は4ビット、第3のグループG3は1ビット、4番目の
グループG4は4ビット、第5のグループG5は4ビットでそれぞれ構成される
。
にエレメントのレプリカ作成のために使用され、それぞれのビットは、エレメン
トEがコピーされているか否かを示す。これは、同時に行われる複数のレプリカ
作成プロセス、図の場合は4プロセスにおいてそれぞれのステータスビットを利
用可能にする。
グメント結合のプロセスで使用される。
関数f(x)の1つのタイプに、いわゆるハッシュ関数があり、これは本発明を
実行する際に便利である。
ーの処理に限定した。しかし、当業者には明らかなように、発明の概念において
さらに大きいキーの使用を可能にするために変更や修正が必要である。
明概念の範囲内で変更を加えることが可能である。
する動作を概略的に示す図。
Claims (27)
- 【請求項1】 データベースにエレメントを格納し、格納されたエレメント
を検索する方法であって、データベースにデータエレメントを格納するための格
納スペースに対するレファレンスが数学関数によって計算され、関数入力データ
が前記エレメントに属する外部キーで構成され、前記数学関数から得られる結果
がデータベース内部の前記エレメントの位置を指示し、前記結果が異なる部分に
分割されるものとした前記方法において、前記結果は少なくとも3つの部分に分
割され、第1の部分が前記データベースに属するフラグメントに対する直接また
は間接レファレンスを構成し、第2の部分が前記フラグメント内のページに対す
る直接または間接レファレンスを構成し、第3の部分が前記ページに属するいわ
ゆるバケットに対する直接または間接レファレンスを構成するものとし、前記エ
レメントを格納可能な、または既に前記エレメントを格納しているか、または前
記エレメントに対する直接または間接レファレンスを格納している少なくとも1
個の容器が前記バケットに含まれることを特徴とする前記方法。 - 【請求項2】 請求項1記載の方法において、直接的あるいは数学関数を介
して所望位置を指示する内部アドレスで直接レファレンスが構成され、所望位置
を直接指示する関連内部アドレスを含んでいるテーブルを指示するポインタで間
接レファレンスが構成されることを特徴とする前記方法。 - 【請求項3】 請求項1記載の方法において、前記第1の部分が前記フラグ
メントに属するすべてのレプリカに対する間接レファレンスを構成することを特
徴とする前記方法。 - 【請求項4】 請求項1記載の方法において、前記第2の部分がレジスタを
指示し、異なるページを指示するポインタのベクトルが前記レジスタに含まれる
ことを特徴とする前記方法。 - 【請求項5】 請求項1記載の方法において、前記第3の部分が前記ページ
に属する関連バケットを指示し、その指示動作が数学関数によって行われること
を特徴とする前記方法。 - 【請求項6】 請求項1記載の方法において、それぞれのバケットが容器と
、可能な場合には更にそれぞれのバケットに属するオーバフロー容器とを含むこ
とを特徴とする前記方法。 - 【請求項7】 請求項1記載の方法において、ヘッダのサイズと前記容器に
属するエレメントのサイズとに対応するサイズをそれぞれの容器に割り当て、前
記サイズが前記容器に属するエレメントの数に応じて変化し、最大容器のサイズ
が、データベースの中で動作するか、または前記データベースを使用するプロセ
ッサに属するキャッシュメモリに一度に読み込み可能なデータ情報量に高々等し
いサイズに制限されることを特徴とする前記方法。 - 【請求項8】 請求項7記載の方法において、キャッシュメモリに一度で読
み込み可能な情報量の処理時間がキャッシュミスに伴う時間より長く、そしてキ
ャッシュメモリに一度で読み込み可能なデータ情報量とは関係なく、最大サイズ
容器の処理に要する時間がキャッシュミスに伴う時間経過よりも短くなるように
、容器の最大拡張サイズが制限されることを特徴とする前記方法。 - 【請求項9】 請求項6から8のいずれかに記載の方法において、前記ペー
ジが複数バッファに分割され、各バッファがいわゆるアベイラビリティリスト限
度の第1部分と第2部分に分割されるものとし、前記第1および前記第2部分の
全体を収容する最大サイズ容器、または前記第1の部分を始点として前記第2部
分まで広がる第1の非最大容器、または前記第1部分を始点として前記第2部分
まで広がらない第1の非最大容器が各バッファに含まれ、更に、各バッファが前
記第2部分を始点とする第2の非最大容器を含むことを可能としたことを特徴と
する前記方法。 - 【請求項10】 請求項9記載の方法において、共通バッファを共有する2
つの容器のいずれかがアベイラビリティリスト限度を超過するか否かにかかわら
ず、2つの容器間でバッファのメモリスペースを分割するか否かに関するチェッ
クが前記2つの容器に対して行われることを特徴とする前記方法。 - 【請求項11】 請求項9記載の方法において、第1の複数バッファがスタ
ティックバッファで構成され、第2の複数バッファがフリーバッファで構成され
、前記スタティックバッファに属する第1部分が容器を含み、前記スタティック
バッファに属する前記第2部分および前記フリーバッファに属する両部分がオー
バフロー容器を含むことを特徴とする前記方法。 - 【請求項12】 請求項11記載の方法において、第1部分内に配置される
容器が前記第1部分の最初を始点として、エレメントを追加するときには関連バ
ッファの中央に向かって拡張し、また、第2部分内に配置される容器が前記第2
部分の最後を始点として、エレメントを追加するときには関連バッファの中央に
向かって拡張することを特徴とする前記方法。 - 【請求項13】 請求項11記載の方法において、関連バケットは、それに
属する最大サイズ容器に追加エレメントが割り当てられる場合にオーバフロー容
器を含むように構成され、前記追加エレメントに前記オーバフロー容器内の位置
が割り当てられることを特徴とする前記方法。 - 【請求項14】 請求項11記載の方法において、前記ページで、前記スタ
ティックバッファに属するすべての利用可能な第2部分と、前記フリーバッファ
に属するすべての利用可能な第1および第2部分とがアベイラビリティリストに
含まれることを特徴とする前記方法。 - 【請求項15】 請求項14記載の方法において、第1部分内の非最大容器
のサイズがアベイラビリティリスト限度を超えるとき、バッファに属する利用可
能な対応の第2部分が前記アベイラビリティリストから削除されることを特徴と
する前記方法。 - 【請求項16】 請求項14記載の方法において、以前にアベイラビリティ
リスト限度のサイズを超えたことがある第1部分内の容器が縮小して、アベイラ
ビリティリスト限度以下になった場合、バッファに属する利用可能な対応の第2
部分がアベイラビリティリストに追加されることを特徴とする前記方法。 - 【請求項17】 請求項15および16記載の方法において、前記第1部分
の容器の拡張または縮小に関連して利用可能な第2部分がアベイラビリティリス
トから削除またはアベイラビリティリストに追加されるとき、前記第1部分内の
容器がアベイラビリティリスト限度から所定値だけ超過した場合に第2部分がア
ベイラビリティリストから削除され、前記第1部分内の容器が縮小してアベイラ
ビリティリスト限度から所定値だけ下回った場合に第2部分がアベイラビリティ
リストに追加されるようなヒステリシスを導入することを特徴とする前記方法。 - 【請求項18】 請求項13および15記載の方法において、前記オーバフ
ロー容器には、前記アベイラビリティリスト上で利用可能になっている部分内の
位置が割り当てられ、そして前記割り当て実行時に、今まで利用可能になってい
た部分がアベイラビリティリストから削除されることを特徴とする前記方法。 - 【請求項19】 請求項13および15記載の方法において、前記フラグメ
ントに属するページの1つをオーバフローページとし、前記オーバフローページ
にはフリーバッファのみが含まれ、アベイラビリティリスト上に利用可能部分が
存在しない場合、オーバフロー容器に、オーバフローページ上でバッファに属す
る部分内の位置が割り当てられることを特徴とする前記方法。 - 【請求項20】 請求項18および19記載の方法において、前記ヘッダは
4つの情報フィールドを含み、第1の情報フィールドは前記容器のサイズに関す
る情報を含むものとし、 バケットに容器が1個だけ含まれる場合、 − 第2の情報フィールドは、同じページにオーバフロー容器が存在する可能
性を示し、 − 第3の情報フィールドは、オーバフロー容器が存在しないことを示し、 − 第4の情報フィールドは未使用とし、 バケットが同じページ上で容器およびオーバフロー容器を含む場合、 − 第2の情報フィールドは、同じページにオーバフロー容器が存在する可能
性を示し、 − 第3の情報フィールドは、オーバフロー容器が存在することを示し、 − 第4の情報フィールドはオーバフロー容器を指示するものとし、 バケットが前記オーバフローページ上でオーバフロー容器を含む場合、 − 第2の情報フィールドは、オーバフローページ上にオーバフロー容器が存
在することを示し、 − 第3の情報フィールドは、前記オーバフローページを指示するポインタを
含み、 − 第4の情報フィールドは、オーバフロー容器を指示するポインタを含むも
のとし、 それぞれのフィールドのサイズはそれぞれの状況に適応し、前記容器に属するエ
レメントには、容器の中でヘッダ直後の連続する位置が割り当てられることを特
徴とする前記方法。 - 【請求項21】 請求項6記載の方法において、前記数学関数によって指示
される容器全体がエレメントを検索するプロセッサに属するキャッシュメモリに
読み込まれることを特徴とする前記方法。 - 【請求項22】 請求項20および21記載の方法において、前記キャッシ
ュメモリに読み込まれた容器の中で前記エレメントが検出されない場合、オーバ
フロー容器全体が前記キャッシュメモリに読み込まれることを特徴とする前記方
法。 - 【請求項23】 請求項1記載の方法において、前記エレメントは5つの情
報グループを備えたヘッダを含み、前記エレメントがトランザクションに利用可
能な場合、第1のグループが前記数学関数から得られる結果の一部部分を含み、
第2のグループがエレメントステータスビットを含み、第3のグループがエレメ
ントの非ロック状態を示す情報を含み、第4のグループが前記エレメントに属す
るローカルキーの長さに関連する情報を含み、第5のグループが前記エレメント
に属するエレメントキーの長さに関連する情報を含むものとし、前記エレメント
が更に前記ローカルキーおよび前記エレメントキーを含むことを特徴とする前記
方法。 - 【請求項24】 請求項23記載の方法において、進行中のトランザクショ
ンに影響されてエレメントがトランザクション禁止状態にロックされている場合
、第1および第2のグループが共同で前記トランザクションに属するトランザク
ションレジスタを指示するポインタを含み、前記トランザクションレジスタが数
学関数から得られる結果の前記部分と、前記ステータスビットと、前記エレメン
トに適用されたロックのタイプとを含み、前記第3のグループが前記エレメント
のロック状態を示す情報を含み、前記第4のグループが前記ローカルキーの長さ
に関する情報を含み、前記第5のグループがエレメントキーの長さに関する情報
を含むことを特徴とする前記方法。 - 【請求項25】 請求項24記載の方法において、前記ヘッダは4バイトで
構成され、前記第1のグループが19ビットを含み、前記第2のグループが4ビ
ットを含み、前記第3のグループが1ビットを含み、前記第4のグループが4ビ
ットを含み、前記第5のグループが4ビットを含むことを特徴とする前記方法。 - 【請求項26】 請求項23記載の方法において、前記フラグメントのレプ
リカ作成時など、エレメントのレプリカ作成プロセスで前記ステータスビットが
使用され、前記エレメントがコピーされているか否かはそれぞれのビットで示さ
れ、同時に行われる複数のレプリカ作成プロセスのそれぞれにおいてそれぞれの
ステータスビットが使用されることを特徴とする前記方法。 - 【請求項27】 請求項23記載の方法において、前記数学関数から得られ
る結果の前記部分がフラグメント分割プロセスおよびフラグメント結合プロセス
で使用されることを特徴とする前記方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE9702760-1 | 1997-07-21 | ||
SE9702760A SE510001C2 (sv) | 1997-07-21 | 1997-07-21 | Metod för att lagra element i en databas |
PCT/SE1998/001332 WO1999005586A2 (en) | 1997-07-21 | 1998-07-07 | A method of storing elements in a database |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001511553A true JP2001511553A (ja) | 2001-08-14 |
Family
ID=20407791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000504498A Pending JP2001511553A (ja) | 1997-07-21 | 1998-07-07 | エレメントをデータベースに格納する方法 |
Country Status (10)
Country | Link |
---|---|
US (1) | US6308169B1 (ja) |
EP (1) | EP0996881B1 (ja) |
JP (1) | JP2001511553A (ja) |
KR (1) | KR100529995B1 (ja) |
CN (1) | CN1111815C (ja) |
AU (1) | AU8365098A (ja) |
BR (1) | BR9810767A (ja) |
DE (1) | DE69826283D1 (ja) |
SE (1) | SE510001C2 (ja) |
WO (1) | WO1999005586A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003337834A (ja) * | 2002-04-29 | 2003-11-28 | Internatl Business Mach Corp <Ibm> | サイズ変更可能なキャッシュ・センシティブ・ハッシュ・テーブル |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7389305B1 (en) * | 1999-06-01 | 2008-06-17 | Fair Isaac Corporation | System and method for managing a database |
KR100744378B1 (ko) * | 2001-08-17 | 2007-07-30 | 삼성전자주식회사 | 해시함수를 이용한 데이터베이스 검색방법 |
US7058642B2 (en) * | 2002-03-20 | 2006-06-06 | Intel Corporation | Method and data structure for a low memory overhead database |
US7010521B2 (en) * | 2002-05-13 | 2006-03-07 | Netezza Corporation | Optimized database appliance |
EP1546928A4 (en) * | 2002-09-18 | 2008-07-09 | Netezza Corp | Field-Oriented Pipeline Architecture for a Programmable Data Streaming Processor |
US7421562B2 (en) * | 2004-03-01 | 2008-09-02 | Sybase, Inc. | Database system providing methodology for extended memory support |
US8275804B2 (en) | 2004-12-15 | 2012-09-25 | Applied Minds, Llc | Distributed data store with a designated master to ensure consistency |
US7774308B2 (en) * | 2004-12-15 | 2010-08-10 | Applied Minds, Inc. | Anti-item for deletion of content in a distributed datastore |
US8996486B2 (en) | 2004-12-15 | 2015-03-31 | Applied Invention, Llc | Data store with lock-free stateless paging capability |
US11321408B2 (en) | 2004-12-15 | 2022-05-03 | Applied Invention, Llc | Data store with lock-free stateless paging capacity |
US20070022120A1 (en) * | 2005-07-25 | 2007-01-25 | Microsoft Corporation | Caching and modifying portions of a multi-dimensional database on a user device |
US7975109B2 (en) | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
US8229945B2 (en) | 2008-03-20 | 2012-07-24 | Schooner Information Technology, Inc. | Scalable database management software on a cluster of nodes using a shared-distributed flash memory |
US8732386B2 (en) * | 2008-03-20 | 2014-05-20 | Sandisk Enterprise IP LLC. | Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory |
US8527703B1 (en) * | 2009-06-19 | 2013-09-03 | Emc Corporation | Cache management system and method |
US9164554B2 (en) | 2010-04-12 | 2015-10-20 | Sandisk Enterprise Ip Llc | Non-volatile solid-state storage system supporting high bandwidth and random access |
US8856593B2 (en) | 2010-04-12 | 2014-10-07 | Sandisk Enterprise Ip Llc | Failure recovery using consensus replication in a distributed flash memory system |
US8868487B2 (en) | 2010-04-12 | 2014-10-21 | Sandisk Enterprise Ip Llc | Event processing in a flash memory-based object store |
US9047351B2 (en) | 2010-04-12 | 2015-06-02 | Sandisk Enterprise Ip Llc | Cluster of processing nodes with distributed global flash memory using commodity server technology |
US8677055B2 (en) | 2010-04-12 | 2014-03-18 | Sandisk Enterprises IP LLC | Flexible way of specifying storage attributes in a flash memory-based object store |
US8954385B2 (en) | 2010-06-28 | 2015-02-10 | Sandisk Enterprise Ip Llc | Efficient recovery of transactional data stores |
US10558705B2 (en) | 2010-10-20 | 2020-02-11 | Microsoft Technology Licensing, Llc | Low RAM space, high-throughput persistent key-value store using secondary memory |
US8694733B2 (en) | 2011-01-03 | 2014-04-08 | Sandisk Enterprise Ip Llc | Slave consistency in a synchronous replication environment |
US8874515B2 (en) | 2011-04-11 | 2014-10-28 | Sandisk Enterprise Ip Llc | Low level object version tracking using non-volatile memory write generations |
US9135064B2 (en) | 2012-03-07 | 2015-09-15 | Sandisk Enterprise Ip Llc | Fine grained adaptive throttling of background processes |
KR102177792B1 (ko) * | 2019-02-26 | 2020-11-11 | 주식회사 퍼즐시스템즈 | 컬럼 별 바이너리 파일 저장 구조를 이용하여 대용량 데이터를 메모리 용량 제약없이 차트로 표시하는 시스템 |
KR102171430B1 (ko) * | 2019-02-26 | 2020-10-29 | 주식회사 퍼즐시스템즈 | 데이터베이스에서 조회된 대용량 데이터를 컬럼 별 바이너리 파일로 저장하는 시스템 |
US11868334B2 (en) * | 2021-11-03 | 2024-01-09 | Netapp, Inc. | Integrating change tracking of storage objects of a distributed object storage database into a distributed storage system |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870764A (en) * | 1993-05-12 | 1999-02-09 | Apple Computer, Inc. | Method of managing a data structure for concurrent serial and parallel revision of a work |
US5832131A (en) * | 1995-05-03 | 1998-11-03 | National Semiconductor Corporation | Hashing-based vector quantization |
US5974421A (en) * | 1996-12-23 | 1999-10-26 | Microsoft Corporation | Cache-efficient object loader |
US5897637A (en) * | 1997-03-07 | 1999-04-27 | Apple Computer, Inc. | System and method for rapidly identifying the existence and location of an item in a file |
US6128627A (en) * | 1998-04-15 | 2000-10-03 | Inktomi Corporation | Consistent data storage in an object cache |
US6134546A (en) * | 1998-06-25 | 2000-10-17 | International Business Machines Corporation | Method and computer program product for implementing subquery join |
-
1997
- 1997-07-21 SE SE9702760A patent/SE510001C2/sv unknown
-
1998
- 1998-07-07 CN CN98809340A patent/CN1111815C/zh not_active Expired - Lifetime
- 1998-07-07 EP EP98934046A patent/EP0996881B1/en not_active Expired - Lifetime
- 1998-07-07 BR BR9810767-4A patent/BR9810767A/pt not_active IP Right Cessation
- 1998-07-07 WO PCT/SE1998/001332 patent/WO1999005586A2/en active IP Right Grant
- 1998-07-07 DE DE69826283T patent/DE69826283D1/de not_active Expired - Lifetime
- 1998-07-07 JP JP2000504498A patent/JP2001511553A/ja active Pending
- 1998-07-07 AU AU83650/98A patent/AU8365098A/en not_active Abandoned
- 1998-07-07 KR KR10-2000-7000595A patent/KR100529995B1/ko not_active IP Right Cessation
- 1998-07-15 US US09/115,948 patent/US6308169B1/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003337834A (ja) * | 2002-04-29 | 2003-11-28 | Internatl Business Mach Corp <Ibm> | サイズ変更可能なキャッシュ・センシティブ・ハッシュ・テーブル |
Also Published As
Publication number | Publication date |
---|---|
DE69826283D1 (de) | 2004-10-21 |
US6308169B1 (en) | 2001-10-23 |
CN1111815C (zh) | 2003-06-18 |
CN1271439A (zh) | 2000-10-25 |
KR100529995B1 (ko) | 2005-11-22 |
WO1999005586A2 (en) | 1999-02-04 |
SE9702760L (sv) | 1999-01-22 |
SE9702760D0 (sv) | 1997-07-21 |
EP0996881B1 (en) | 2004-09-15 |
EP0996881A2 (en) | 2000-05-03 |
KR20010022027A (ko) | 2001-03-15 |
AU8365098A (en) | 1999-02-16 |
WO1999005586A3 (en) | 1999-04-15 |
SE510001C2 (sv) | 1999-03-29 |
BR9810767A (pt) | 2001-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2001511553A (ja) | エレメントをデータベースに格納する方法 | |
US7085911B2 (en) | Resizable cache sensitive hash table | |
US6249788B1 (en) | Structure for a database | |
US20050044134A1 (en) | High-performance hashing system | |
US20070143326A1 (en) | Dynamic circular work-stealing deque | |
US7493464B2 (en) | Sparse matrix | |
US6654855B1 (en) | Method and apparatus for improving the efficiency of cache memories using chained metrics | |
US5568638A (en) | Split control system for a page/page group in a data processing system a pre-split process using a temporary overflow area | |
JP2000357115A (ja) | ファイル検索装置及びファイル検索方法 | |
US20110099347A1 (en) | Managing allocation and deallocation of storage for data objects | |
US20070118578A1 (en) | Extensible hashing for file system directories | |
JPH08235040A (ja) | データファイル管理システム | |
US7130857B2 (en) | Method for accessing a memory unit in which sequences of notes are stored, corresponding memory unit and corresponding program | |
Burkowski | Surrogate subsets: a free space management strategy for the index of a text retrieval system | |
JP2704028B2 (ja) | ファイル領域管理方式 | |
NO331821B1 (no) | Organisering av data i en database | |
JP2590866B2 (ja) | データ検索装置 | |
JP3087701B2 (ja) | 排他制御装置 | |
JP2643850B2 (ja) | ファイル処理装置 | |
JP2508607B2 (ja) | ファイルシステム管理方法 | |
US20040249833A1 (en) | Copying method and system for copying cells in a database | |
JP2003337743A (ja) | メモリ空間を管理するメモリ管理システム及びその未割り当てメモリブロックの検索方法 | |
Kim et al. | FLASH: A Main Memory Storage System | |
KR20030044498A (ko) | 주기억 장치 데이터베이스 관리 시스템의 자료 구조와블록 할당 및 레코드 검색 방법 | |
Ou¹ et al. | Improved Overflow Page Handling with Linear Hashing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20040128 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050526 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080617 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080917 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080925 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081017 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090407 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090707 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090714 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090724 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100302 |