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
Application number
JP2000504498A
Other languages
English (en)
Inventor
ロンストロム、ウルフ、ミカエル
ダバグヒ、アタウラー
Original Assignee
テレフオンアクチーボラゲツト エル エム エリクソン(パブル)
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 テレフオンアクチーボラゲツト エル エム エリクソン(パブル) filed Critical テレフオンアクチーボラゲツト エル エム エリクソン(パブル)
Publication of JP2001511553A publication Critical patent/JP2001511553A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

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

(57)【要約】 本発明はエレメントをデータベースに格納し、格納されたエレメントを検索する方法に関するものである。データベースにおけるデータエレメントの格納スペースに対するレファレンスは数学関数によって計算され、関数入力データはエレメントに属する外部キーであり、数学関数から得られる結果はデータベース内のエレメントの内部位置を指示する。得られた結果は少なくとも3つの部分(A、B、C)に分割される。第1の部分(A)はデータベースに属するフラグメント(A4)に対するレファレンスを構成し、第2部分(B)はフラグメント(A4)の中でページ(B4)に対するレファレンスを構成し、第3の部分(C)はページ(B4)に属するいわゆるバケット(C4)に対するレファレンスを構成する。バケット(C4)はエレメントが格納されているか、またはエレメントを格納するための少なくとも1個の容器を含む。容器には、容器ヘッダと容器に属するエレメントとのサイズに相当するサイズが与えられ、そのサイズは関連エレメントの量に応じて変化する。最大容器のサイズは、データベースの中で動作するか、またはデータベースを使用するプロセッサに属するキャッシュメモリに一度に読み込み可能なデータ情報量に高々等しいサイズに制限される。

Description

【発明の詳細な説明】
【0001】 (発明の分野) 本発明はデータベースへのエレメントの格納および格納エレメントの検索方法
に関するものである。データベースにおけるデータエレメント格納用の格納スペ
ースへの参照はハッシュ関数などの数学関数によって計算され、関数入力データ
はエレメントに属する外部キーで構成され、数学関数で得られる結果がデータベ
ース内における前記エレメントの位置を示す。また、発明は関数の結果を異なる
部分に分割することを基礎としている。
【0002】 (発明の背景) 従来から、異なるデータ構造を用いてデータベースにデータを格納することが
知られている。これらの構造は、例えば、使用中の格納スペースに関する異なる
利点と高速検索実行の可能性を与える。
【0003】 周知の構造として、データベーステーブルにおけるエレメントのランダム分布
の計算を可能にするいわゆるハッシュ関数に基づくものがある。
【0004】 エレメントにはデータベースの内部アドレスを含めることができる。例えば、
エレメントは電話番号などの外部キーと結合される。テーブルに新しい電話番号
入力するとき、その電話番号の内部アドレスを配置すべきエレメントはハッシュ
関数によって求められる。
【0005】 ハッシュ関数の目的は、テーブル内に一様に分配されるようにアドレスを分配
することである。そして、特定のアドレスを検索するときに正しいエレメントを
検出するために同じハッシュ関数が使用される。
【0006】 キーに関してハッシュ関数を使用するとき、通常32ビットからなるデータ語
を含むハッシュ値が得られる。
【0007】 これに使用されるアルゴリズムは何種類かあるが、その1つは線形ハッシング
(LH)であって、関数から得られるデータ語がいわゆるLH−ビットで構成さ
れる。得られたLH−ビットは例えばデータベース内のある1ページ、またはそ
のページを示すレジスタ内の位置を示し、そのページ上の検索エレメント位置を
求めることができる。
【0008】 より効果的な状態でエレメントを検索するためにハッシングを2段階で実行す
ることが知られている。得られたデータ語はこれら2段階で2グループのビット
に分割される。
【0009】 第1グループのビットは例えば、ベクトルのインデックスを表し、このインデ
ックスは新しいベクトルを示すことができる。第2グループのビットは新しいベ
クトルのインデックスを示し、例えば、この新しいインデックスはエレメントの
リンクリスト中の第1エレメントを表す。そして、このリンクリスト中のどこか
で検索エレメントが検出される。
【0010】 これらリンクリストの長さは互いに異なっていてもよい。各エレメントには内
部アドレスが含まれる。メモリ内の物理的に完全に異なる位置に様々なリンクが
置かれるが、それらはポインタによって相互に関連付けられる。
【0011】 したがって、あるエレメントを検索するとき、エレメントのリンクリストのヘ
ッダが得られる。求める内部アドレスが第1のエレメントで検出されなければ、
リンクリスト中の次のエレメントで検索が継続される。リンクリスト中の次エレ
メントはメモリ内で物理的に位置決めされているので、次エレメントをピックア
ップするために通常は改めてメモリへアクセスする必要がある。この一回目に行
われた間違いエレメントのピックアップはいわゆるキャッシュミスである。
【0012】 したがって、あるエレメントの検索中に、リストの長さによっては、いくつか
のキャッシュミスを経験することがあり、費用のかさむプロセスである。次世代
プロセッサでは、1回のキャッシュミスは時間的に何百もの命令に相当する。
【0013】 したがって、キャッシュミスの数を最小にすることが望まれている。理想的に
は、メモリへの最初アクセス時に検索エレメントが検出されることである。
【0014】 また、上記によれば、レジスタの位置、またはこの位置の値が更にデータベー
ス内で示すベクトルをハッシュ値で表すことが知られており、このようにすれば
新しいハッシュ値をエレメントに割り当てずに、エレメントに関するレジスタ値
の変化にしたがってデータベース内の動的変更が可能になり、その結果、例えば
異なるページ間でのエレメントの移動が可能になる。
【0015】 また、共通データベースで共通システムを形成する複数のノードで分散データ
ベースを構成することも知られている。分散データベースにおける情報は別々の
構成ノードに分散される。
【0016】 ノードはデータベースの1個所以上の一次レプリカと、他の1個所以上の二次
レプリカを含むことができる。通常、関連の二次レプリカを持つ一次レプリカは
フラグメントと呼ばれる。
【0017】 当該分野における既知技術については、下記刊行物に記載されている。
【0018】 “Linear Hashing: A New Tool for Fil
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.
【0019】 “LH* − Linear Hashing for Distribut
ed Files“,W.Litwin,M.−A. Neimat,D.A.
Schneider,ACM SIGMOD Int‘l.Conf.ON M
anagement of Data,1993.
【0020】 “High−Availability LH* Schemes with
Mirroring“,W.Litwin,M.−A.Neimat.
【0021】 “LH*LH:A Scalable High Performance
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).
【0022】 “Dynamic Hash Tables“,P.−A.Larsson,
Communications of the ACM,April,1988
【0023】 “Main−Memory Linear Hashing−Some En
hancements of Larson‘s Algorithm“, M
.Pettersson,University of Linkoping,
Sweden,March,1993.
【0024】 (発明の概要) (技術的課題) 上述のように現在の技術水準を考慮して、技術的課題の一つは、多くの場合は
キャッシュミスを伴わずに、また、ある場合には一回だけのキャッシュミスでエ
レメントの格納、検索、再検索ができる方法を提供することである。
【0025】 別の技術的な課題は、エレメントの検索時における分解能を高めることが可能
な方法を提供することであって、それにより、一回目のキャッシュメモリ読み取
り試行、あるいは例外的には2回目の読み取り試行で検索エレメントが検出され
る可能性が得られる。
【0026】 もう一つの技術的な課題は上記のような分解能と検索を可能にするデータ構造
を形成する方法を提供することである。
【0027】 もう一つの技術的な課題は、エレメントの検索時に一次や二次レプリカなどの
フラグメントに属するエレメントの全レプリカの検出を可能にする方法を提供す
ることである。
【0028】 もう一つの技術的な課題は、複数のエレメントを格納することが可能であって
そのまま全体的にキャッシュメモリへ読み込み可能な格納構造フォーマット、す
なわち本明細書で容器あるいはコンテナ(container)と呼ぶものを考
案することである。
【0029】 関連する技術的な課題は、既に満杯の容器に格納すべきエレメントを格納する
ことを数学関数によって可能にする方法である。
【0030】 更に別の技術的な課題は、既に満杯のページにおいて格納すべきエレメントの
格納を数学関数によって可能にする方法である。
【0031】 更にもう一つの技術的な課題は、エレメントの追加または削除の結果としてサ
イズが伸縮する容器を格納するために利用可能なページスペースを簡単かつ有効
に取り扱う方法を提供することである。
【0032】 更にもう一つの技術的な課題は、多くの容器がまだ割り当てメモリスペースを
満たしていない場合に利用可能なメモリの有効利用を可能にする方法を提供する
ことである。
【0033】 これに関連する技術的な課題は、それぞれの容器サイズが時間の経過とともに
増減するとき、これを使用可能にする方法を提供することである。
【0034】 したがって、更にもう一つの技術的な課題は、特定の最大許容サイズの容器、
すなわち最大容器に適応させたスペースの二重使用を可能にする方法を提供する
ことである。
【0035】 更にもう一つの技術的な課題は、数学関数にしたがって容器に入るべき全エレ
メントが実際に存在しているか否かに関する所要情報と、容器内に実在しないか
もしれないエレメント、すなわち、検索をかけても単に一つのキャッシュミスを
招くだけのエレメントの所在に関する情報とを与える容器フォーマットを提供す
ることである。
【0036】 もう一つの技術的な課題は、現在も過去にも収納されていないエレメントが容
器と同じページに存在するか、別のページに存在するかを問わず、上記のような
情報が得られる機能を提供することである。
【0037】 もう一つの技術的な課題は、エレメントに影響を与えるトランザクションと関
連して異なるタイプのロックをエレメントが利用し得る必要情報を用意するエレ
メント形式を提供することである。
【0038】 もう一つの技術的な課題は、互いにサイズの異なるキーなど、動的属性をエレ
メントに含めることを可能にすることである。
【0039】 更にもう一つの技術的な課題は、多くの異なるレプリカ作成プロセスに役立つ
エレメントの必要情報を提供することである。
【0040】 更にもう一つの技術的な課題は、フラグメントの分割または数個のフラグメン
トの結合に役立つエレメントの必要情報を提供することである。
【0041】 (解決法) 上記方法を実施するにあたって上記1つ以上の技術的課題に対する解決法を与
えるために、本発明は数学関数から得られる結果を少なくとも3分割することを
提案する。すなわち、第1の部分はデータベースに属するフラグメントに対する
直接または間接的レファレンスを構成し、第2の部分はフラグメント内の1ペー
ジに対する直接または間接的レファレンスを構成し、第3の部分は前記ページに
属するバケットに対する直接または間接的レファレンスを構成する。
【0042】 上記バケットには少なくとも1個の容器が含まれ、その容器にはエレメントの
格納が可能か、既に格納されているか、あるいは前記エレメントに対する直接ま
たは間接的レファレンスが格納される。
【0043】 数学関数から新しい値を求める必要のない別の方法を用いて、関係するフラグ
メント、ページ、バケットまたはエレメントを変化させるために、本発明は直接
的または間接的なレファレンスを選択的に使用できる可能性を提案する。
【0044】 直接レファレンスは、アドレス情報の再処理、例えば別の数学関数によって所
望位置を直接的に示す内部アドレスを意味する。間接レファレンスは、所望位置
を直接的に示す関連内部アドレスの利用を可能にするテーブル、レジスタ等を指
示するポインタを意味する。
【0045】 想定エレメントへのアクセスは下記によって部分的に達成される。 − 第1の部分は、フラグメントに属するすべてのレプリカに対する間接的な
レファレンスを形成し、レファレンスを介してすべてのレプリカを利用可能にす
る。 − 第2の部分は、異なるページを示すポインタのベクトルを含むレジスタを
指示する。 − 第3の部分は、前記ページに属するバケットを数学関数によって指示する
【0046】 上記のようなバケットは容器を含み、さらに関連のオーバフロー容器を含むこ
ともある。
【0047】 データベース内で動作するプロセッサまたはそのデータベースを利用するプロ
セッサに属するキャッシュメモリに容器全体が読み込まれるように、本発明は特
別な方法による容器フォーマットの設計を提案する。それぞれの容器には、容器
ヘッダのサイズと容器に属するエレメントのサイズとに対応するサイズが割り当
てられる。
【0048】 サイズは容器に属するエレメント数によって変化するが、拡張し得る容器の最
大サイズ、すなわち最大容器は、データベース内で動作するプロセッサあるいは
前記データベースを利用するプロセッサに属するキャッシュメモリに一度に同時
に読み込み可能なサイズに制限される。
【0049】 効果的な方法で使用され、検索バケットの検出を容易にする格納スペースがそ
れぞれのページにおいて利用可能になるように、本発明はページを複数のバッフ
ァに分割することを提案する。それぞれのバッファはいわゆるアベイラビリティ
リスト限度の第1部分と第2部分に分割される。
【0050】 それぞれのバッファは下記いずれかを含む。 − 第1および第2部分を収容する最大容器 − 第1部分を始点として第2部分まで伸びる第1の非最大容器 − 第1部分を始点とする第1の非最大容器と、さらに、第2部分を始点とす
る第2の非最大容器も可能
【0051】 第1の複数バッファはスタティックバッファで構成され、第2の複数バッファ
はフリーバッファで構成される。スタティックバッファに属する第1部分は容器
を含み、スタティックバッファに属する第2部分とフリーバッファに属する両部
分はオーバフロー容器を含むように構成される。
【0052】 数学関数の効果によっては、過半数の容器は最大にはならず、容器の多くが最
大の半分以下になることがあり、後者の場合はこれらの容器がバッファの一部を
占有することを意味する。
【0053】 換言すれば、多くのバッファが容器を2個収容するだけのスペースを保有する
ことを意味する。これらの場合、本発明の提案によれば、第1部分内の容器は第
1部分の最初を始点とし、エレメントが追加されるにしたがって容器は関連バッ
ファの中央に向かって拡張する。そして第2部分内の容器は第2部分の最後を始
点とし、エレメントが追加されるにしたがって容器は関連バッファの中央に向か
って拡張する。
【0054】 既に満杯の容器内の位置が数学関数によって追加エレメントに割り当てられる
場合、本発明の提案によれば、関連バケットがオーバフロー容器を含むように構
成され、オーバフロー容器内の位置に追加エレメントが割り当てられる。
【0055】 ページ内の利用可能な格納スペースを更に簡単に取り扱い、その取り扱いをよ
り効果的にするために、本発明の提案によれば、ページ上において、スタティッ
クバッファに属するすべての利用可能な第2部分と、フリーバッファに属するす
べての利用可能な第1および第2部分がアベイラビリティリストに含まれる。
【0056】 バッファに属する利用可能な第2部分は、対応する第1部分における非最大容
器のサイズがアベイラビリティリスト限度を超えた場合にアベイラビリティリス
トから削除される。
【0057】 以前にアベイラビリティリスト限度のサイズを超えたことがある第1部分内の
容器が縮小して、アベイラビリティリスト限度以下になった場合、上記に対応し
たバッファに属する利用可能な第2部分がアベイラビリティリストに追加される
【0058】 最大容器のバッファ内の両部分が占有されるので、本発明の提案によれば、ア
ベイラビリティリスト上の利用可能部分内の位置をオーバフロー容器に割り当て
、この割り当て時に上記有効部分はアベイラビリティリストから削除される。
【0059】 また、本発明の提案によれば、前記フラグメントに属するページの1つが単独
でフリーバッファを含むオーバフローページで構成される。自己ページのアベイ
ラビリティリストで利用可能な部分がまったく存在しない場合は、オーバフロー
ページ上のバッファに属する部分の中の位置がオーバフロー容器に割り当てられ
る。
【0060】 容器ヘッダは4つの情報フィールドを含む。
【0061】 第1の情報フィールドは容器サイズに関する情報を含む。
【0062】 バケットが1個だけの容器を含む場合、 − 第2の情報フィールドは、同じページ上にオーバフロー容器が存在する可
能性を示す。 − 第3の情報フィールドは、オーバフロー容器が存在しないことを示す。 − 第4の情報フィールドは使用されない。
【0063】 バケットが同じページ上に容器とオーバフロー容器を含む場合、 − 第2の情報フィールドは、同じページ上にオーバフロー容器が存在する可
能性を示す。 − 第3の情報フィールドは、オーバフロー容器の存在を示す。 − 第4の情報フィールドは、オーバフロー容器を指示する。
【0064】 バケットがオーバフローページ上にオーバフロー容器を含む場合、 − 第2の情報フィールドは、オーバフローページ上にオーバフロー容器が存
在することを示す。 − 第3の情報フィールドは、オーバフローページを指示するポインタを含む
。 − 第4の情報フィールドは、オーバフロー容器を指示するポインタを含む。
【0065】 各フィールドのサイズはそれぞれの状況に適応するようになっている。
【0066】 容器内のスペースを最大限に使用可能にするために、本発明の提案によれば、
容器に属するエレメントには、ヘッダの直後かつ容器内で互い連続する位置が割
り当てられる。
【0067】 また、数学関数によって指示される容器の全体がエレメントを要求するプロセ
ッサに属するキャッシュメモリに読み込まれる。
【0068】 キャッシュメモリに読み込まれた容器内でエレメントが検出されなければ、オ
ーバフロー容器全体がキャッシュメモリに読み込まれる。
【0069】 フラグメントのレプリカ作成、移動、結合、または分割時にエレメントの処理
を可能にするために、本発明の提案によれば、それぞれのエレメントに特別なフ
ォーマットが割り当てられる。
【0070】 そのフォーマットによると、エレメントはエレメントヘッダと5つのグループ
の情報を含むものとする。
【0071】 エレメントがトランザクションに利用可能な場合、 − 第1のグループは数学関数から得られる結果の一部を含む。 − 第2のグループはエレメントステータスビットを含む。 − 第3のグループはエレメントがロックされていないことを意味する情報を
含む。 − 第4のグループは前記エレメントに属するローカルキーの長さに関連する
情報を含む。 − 第5のグループは前記エレメントに属するエレメントキーの長さに関連す
る情報を含む。
【0072】 進行中のトランザクションからの影響によって、エレメントのトランザクショ
ンがロックされている場合、 − 第1および第2のグループは、トランザクションに属するトランザクショ
ンレジスタを指示するポインタを含む。 − 第3のグループは、エレメントがロックされていることを意味する情報を
含む。 − 第4のグループは、ローカルキーの長さに関連する情報を含む。 − 第5のグループは、エレメントキーの長さに関連する情報を含む。
【0073】 前記エレメントに影響を与えるトランザクションに属するトランザクションレ
ジスタは、関数から得られた結果の一部と、ステータスビットと、そのエレメン
トに適用されたロックのタイプすなわちロックモードとを含む。
【0074】 エレメントはまた、ローカルキーとエレメントキーを含む。
【0075】 エレメントヘッダは4バイトから成り、第1グループは19ビット、第2グル
ープは4ビット、第3グループは1ビット、第4グループは4ビット、第5グル
ープは4ビットでそれぞれ構成される。
【0076】 ステータスビットは、フラグメントのレプリカ作成プロセスなど、エレメント
のレプリカ作成プロセスで使用される。それぞれのビットは、エレメントのレプ
リカが作成されるか否かを示す。
【0077】 したがって、この例では同時に実行されるレプリカ作成プロセスは4つ以下で
あるが、その各プロセスがそれぞれ個別のステータスビットを使用することがで
きる。
【0078】 数学関数から得られる結果の一部はフラグメント分割プロセスとフラグメント
結合プロセスで使用される。
【0079】 (特長) 独創的な方法によって本質的にもたらされる特長は、所要のエレメントを一回
のメモリアクセスで検索し得る能力、あるいは所要のエレメントがオーバフロー
容器に格納されている場合は2回のメモリアクセスだけで検索し得る能力である
。ハッシュ関数によって的確な容器が示される。
【0080】 容器サイズは、一回のメモリアクセスで容器全体がキャッシュメモリに読み込
まれるように決められる。キャッシュメモリ内で的確な容器を検出した後は、最
新のプロセッサを用いることによって、容器内でシリアルに格納されたエレメン
トから的確なエレメントを直ちに検索することができる。
【0081】 発明の方法の主要な特徴は請求項1の特徴項で詳しく説明される。
【0082】 付図と例を用いて、本発明に関連する特徴を含む方法について以下に詳しく述
べる。
【0083】 (好ましい実施例の詳細な説明) 図1はエレメントEに属する外部キー、例えば電話番号Tを数学関数f(x)
の入力データとして使用する場合を示す。
【0084】 関数f(x)から得られる結果yはデータベースDにおけるエレメントEの内
部位置を示す。結果yは少なくとも3つの部分A、B、Cに分割される。
【0085】 図2は、データベースDに属するフラグメントA4に対する間接レファレンス
A4が第1の部分Aで構成されることを示している。このレファレンスA1は、
異なるフラグメントをカバーするテーブルA2における位置を指し、これにより
、フラグメントA4に属する全コピーの格納場所を明示する情報A3が利用可能
になる。
【0086】 第2の部分Bは、フラグメントA4内でページB4に対する間接レファレンス
B1を構成する。このレファレンスB1は、ページB4等の異なるページを指示
するポインタB3のベクトルを含むレジスタB2を指示するポインタで構成され
る。
【0087】 第3の部分CはページB4に属するいわゆるバケットC2に対する直接レファ
レンスClを構成する。
【0088】 このように、数学関数f(x)から得られる値yによって、特定のバケットC
2に対する直接アドレスが与えられる。
【0089】 図3に示すように、それぞれのバケットC2は容器C5を含み、更にバケット
C4に属するオーバフロー容器C6を含む場合もある。
【0090】 図3はまた、ヘッダCHのサイズと容器C6に属するエレメントE1、E2、
E3、...、のサイズとに対応するサイズがそれぞれの容器C6に割り当てら
れていることを示している。
【0091】 このサイズはエレメント数に応じて変動するが、最大容器のサイズは、データ
ベース内で稼動中あるいはそのデータベースを使用中のプロセッサに属するキャ
ッシュメモリに一度に読み込み可能なサイズを上限とする。
【0092】 通常、最近のプロセッサはキャッシュメモリに一度に128バイトを読み込む
ことができるので、以下の説明はこの値に基づくものとする。しかし、所望の効
果を得るために、本発明による容器のサイズおよび後述する他の数値は、関連プ
ロセッサのキャッシュメモリに一回で読み込み可能な量に合わせる。
【0093】 本発明の将来の応用面で必要になりそうな別のパラメータとして、キャッシュ
メモリに読み込まれる情報内容の処理時間がある。処理時間がキャッシュミスに
伴う時間を超える場合、一度にキャッシュメモリに読み込まれる情報量とは無関
係に、容器のサイズや他の数値は、キャッシュミスに伴う時間経過より短い時間
で容器の処理が行えるようなサイズに制限するのが妥当である。
【0094】 図4に示されるように、ページB4は多くのバッファB41、B42、B43
、...、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も可能。
【0095】 第1の複数バッファがスタティックバッファB4Sで構成され、第2の複数バ
ッファはフリーバッファB4Fで構成される。
【0096】 図4の例では、8Kバイト(8192バイト)のページが含まれる。このペー
ジには、8バイトのヘッダC3と、それぞれ124バイトからなる64個のスタ
ティックバッファB4Sおよび2個のフリーバッファB4Fが含まれる。
【0097】 この構造によれば、数学関数f(x)から得られる結果yの第3部分Cによっ
て構成される特定のバケット、すなわち特定のバッファのアドレッシングは、バ
ッファ数を示す1と64の間の乱数“a”を上記第3部分で表すことによって可
能になる。この数“a”に124(各バッファのバイト数)を掛け、その積に8
を加算したものがヘッダC3のバイト数である。
【0098】 したがって、別にもう1つの数学関数すなわち、この例の“a”*124+8
を使用することにはなるが、数学関数f(x)の第3部分Cは所望位置を直接指
示するアドレスであると云うことができる。
【0099】 このように、数学関数f(x)にしたがってランダムバッファと、そのバッフ
ァ内に位置するバケットとが指示される。
【0100】 スタティックバッファB4Sに属する第1部分B4Aが容器C5を含むように
構成され、スタティックバッファB4Sに属する第2部分B4Bと、フリーバッ
ファB4Fに属する両部分B4A、B4Bがオーバフロー容器C6を含むように
構成される。
【0101】 第1部分B4Aに位置する容器C5は第1部分B4Aの先端を始点とし、エレ
メントEが追加されると容器C5は関連バッファの中央に向かって拡張する。
【0102】 第2部分B4Bに位置する容器C6は第2部分B4Bの最後を始点とし、エレ
メントEが追加されると容器C6は関連バッファの中央に向かって拡張する。
【0103】 このようにすると、実際には最大許容サイズの容器を1個だけ収容するように
バッファが構成されているにもかかわらず、2個の容器を共通バッファ内に収容
することが可能になる。
【0104】 効率的な数学関数f(x)の場合、実在する全エレメントEが既存の容器C5
内でランダムに均等分割されるので、容器C5の過半数はそれらの最大許容量ま
で満たされることはない。また、これらの容器の多くはアベイラビリティリスト
限度B4C以下であって、これは他の複数の部分B4Bがオーバフロー容器C6
として利用可能になることを意味する。
【0105】 本発明の好ましい実施例によれば、ある容器がアベイラビリティリスト限度を
超過したか否かにかかわらず、共通バッファを共有する2個の容器の間でバッフ
ァ内スペースがどのように分割されるかを確かめるチェックはこれら2個の容器
に依存する。したがって、バッファに2個の容器を収容する十分なスペースがあ
れば、非常に小さいオーバフロー容器C6を用いてアベイラビリティリスト限度
を超える程度まで容器C5を拡張させることが可能になる。
【0106】 関連バケットC2は、そのバケットに属する最大許容サイズを持った容器C5
にエレメントEが追加される場合にオーバフロー容器C6を含むように構成され
、この追加エレメントにオーバフロー容器C6の位置が割り当てられる。
【0107】 アベイラビリティリストは、スタティックバッファB4Sに属するすべての利
用可能な第2部分B4Bと、ページB4のフリーバッファB4Fに属する利用可
能な第1部分B4Aおよび第2部分B4Bを含むように構成される。このページ
B4のヘッダC3はアベイラビリティリストを指示するポインタ、その他を含む
【0108】 アベイラビリティリストは、利用可能部分のリンクリストの中にすべての利用
可能部分が含まれ、それぞれの利用可能部分には、リンクリスト内で次に利用可
能な部分に対するポインタが含まれるように作成することができる。ヘッダ内の
ポインタは最初に利用可能な部分を指示する。
【0109】 バッファB44に属する利用可能な第2部分B4B’は、対応する第1部分に
おける非最大容器C54のサイズがアベイラビリティリスト限度B4Cを超えた
場合、アベイラビリティリストから削除される。
【0110】 以前にアベイラビリティリスト限度B4Cのサイズを超えたことのある第1部
分内の容器C55が縮小して、アベイラビリティリスト限度以下になった場合、
上記に対応したバッファB45に属する利用可能な第2部分B4B”はアベイラ
ビリティリストに追加される。
【0111】 また、第1部分の容器の拡張または縮小に関連して第2部分がアベイラビリテ
ィリストから削除またはアベイラビリティリストに追加されるとき、ヒステリシ
スを導入することも可能である。
【0112】 例えば、第1部分内の容器がアベイラビリティリスト限度から所定値だけ超過
した場合にのみ第2部分をアベイラビリティリストから削除することが可能であ
る。
【0113】 同様に、容器サイズが縮小してアベイラビリティリスト限度の下に所定のマー
ジンが生じた場合のみ、容器サイズの縮小と関連して第2部分をアベイラビリテ
ィリストに追加することが可能である。
【0114】 このようなヒステリシスを導入すると、何らかの原因によってアベイラビリテ
ィリスト限度付近で周期的に生じる容器サイズの増減に伴う振動現象を防止する
ことができる。
【0115】 アベイラビリティリスト上で利用可能になっている部分B4B'''の位置がオ ーバフロー容器C61に割り当てられ、そして、この割り当てが実行されると、
今まで利用可能になっていた部分B4B'''はアベイラビリティリストから削除 される。
【0116】 アベイラビリティリスト上に利用可能部分が存在しなくなる状況を回避するた
めに、本発明の提案によれば、フラグメントA4に属するページにはオーバフロ
ーページB5が含まれる。このオーバフローページB5はフリーバッファB5F
のみを含む。アベイラビリティリスト上で利用可能部分が全くない場合、オーバ
フローページB5上のバッファB53に属する部分の位置がオーバフロー容器C
62に割り当てられる。
【0117】 図3に示すように、容器C5に属するヘッダCHは4つの情報フィールドCH
1、CH2、CH3、CH4を含み、第1の情報フィールドCH1は容器サイズ
に関する情報を含む。
【0118】 バケットC2に容器が1個だけ含まれる場合、 − 第2の情報フィールドCH2は、オーバフロー容器C6が同じページB4
に存在する可能性を示す。 − 第3の情報フィールドCH3は、オーバフロー容器C6が存在しないこと
を示す。 − 第4の情報フィールドCH4は使用されない。
【0119】 バケットC2が同じページB4上で容器C5およびオーバフロー容器C6を含
む場合、 − 第2の情報フィールドCH2は、オーバフロー容器C6が同じページB4
に存在する可能性を示す。 − 第3の情報フィールドCH3は、オーバフロー容器C6が存在することを
示す。 − 第4の情報フィールドCH4はオーバフロー容器C6を指示する。
【0120】 バケットC5がオーバフローページB5上でオーバフロー容器C6を含む場合
、 − 第2の情報フィールドCH2は、オーバフロー容器C6がオーバフローペ
ージB5に存在することを示す。 − 第3の情報フィールドCH3は、オーバフローページB5を指示するポイ
ンタを含む。 − 第4の情報フィールドCH4は、オーバフロー容器C6を指示するポイン
タを含む。
【0121】 それぞれのフィールドCH1、CH2、CH3、CH4のサイズはそれぞれの
状況に適応する。
【0122】 数学関数から得られる結果の第3部分と同様に、第4の情報フィールドにおけ
るポインタは、1〜64の数値と各バッファのバイト数を表す数値124との積
にヘッダのバイト数を表す数値8を加算した値を持つ。しかし、これはランダム
に行われるのではなく、どのバッファがアベイラビリティリスト上で利用可能に
なっているかに依存する。
【0123】 それぞれのエレメントEl、E2、E3、…には、容器の中でヘッダCH直後
の連続する位置が割り当てられる。
【0124】 理論的には、オーバフロー容器C6’は最大許容サイズに達することがあり、
追加のオーバフロー容器C6を参照する必要が生じる。そのため、オーバフロー
容器を含めて、すべての容器に上述のヘッダが設けられる。実際にはほとんどあ
り得ないことであるが、バケットC2が2つの以上のオーバフロー容器を必要と
する場合、最後のオーバフロー容器C6’内でエレメントEl’を検索すると、
同じ回数のキャッシュミスが生じることになる。
【0125】 プロセッサがエレメントEを検索するとき、数学関数f(x)によって指示さ
れる容器C5全体がプロセッサに属するキャッシュメモリに読み込まれる。
【0126】 キャッシュメモリに読み込まれた容器C5内でエレメントEが検出されなけれ
ば、オーバフロー容器C6全体がキャッシュメモリに読み込まれる。
【0127】 また、エレメントEは、5グループの情報を含むエレメントヘッダEHを備え
ている。本発明によれば、エレメントヘッダは、2つの異なるケースでエレメン
トEを記述できるようになっている。
【0128】 図5は、エレメントがトランザクションに利用可能であるときのエレメントE
の構成を示す。この場合、第1のグループG1は数学関数f(x)から得られた
結果y’の一部分を含み、第2のグループG2は、エレメントEのステータスビ
ットESを含み、第3のグループG3はエレメントがロックされていないことを
示す情報LS(Lock Status)を含み、第4のグループG4はエレメ
ントに属するローカルキーの長さに関する情報を含み、第5グループG5はエレ
メントに属するエレメントキーの長さに関する情報を含む。
【0129】 また、エレメントEはローカルキーG6およびエレメントキーG7を含む。
【0130】 図6は、進行中のトランザクションに影響されて、トランザクション禁止状態
にロックされているエレメントE’の構成を示す。
【0131】 図の場合、第1および第2のグループG1’、G2が共同で、トランザクショ
ンに属するトランザクションレジスタTRを指示するポインタG12を含んでお
り、トランザクションレジスタTRは数学関数f(x)から得られる結果y’の
一部分と、ステータスビットESと、エレメントに適用されたロックのタイプL
M(Lock Mode)とを含んでいる。そして第3のグループG3’は、エ
レメントがロックされていることを示す情報LSを含む。
【0132】 図の場合はまた、第4のグループG4’はローカルキーG6’の長さに関する
情報を含み、第5のグループG5’はエレメントキーG7’の長さに関する情報
を含む。
【0133】 エレメントヘッダEHは4バイトで構成され、第1のグループG1は19ビッ
ト、第2のグループG2は4ビット、第3のグループG3は1ビット、4番目の
グループG4は4ビット、第5のグループG5は4ビットでそれぞれ構成される
【0134】 ステータスビットESは、フラグメントA4のレプリカを作成するときと同様
にエレメントのレプリカ作成のために使用され、それぞれのビットは、エレメン
トEがコピーされているか否かを示す。これは、同時に行われる複数のレプリカ
作成プロセス、図の場合は4プロセスにおいてそれぞれのステータスビットを利
用可能にする。
【0135】 数学関数f(x)から得られる結果y’の部分はフラグメント分割およびフラ
グメント結合のプロセスで使用される。
【0136】 データベース内でエレメントをランダムに均等配分するために用いられる数学
関数f(x)の1つのタイプに、いわゆるハッシュ関数があり、これは本発明を
実行する際に便利である。
【0137】 説明を単純化するため、上記実施例では、サイズが最大120バイトまでのキ
ーの処理に限定した。しかし、当業者には明らかなように、発明の概念において
さらに大きいキーの使用を可能にするために変更や修正が必要である。
【0138】 したがって、発明は上記実施例に制限されることなく、請求項に記載される発
明概念の範囲内で変更を加えることが可能である。
【図面の簡単な説明】
【図1】 外部キーから内部キーへの変換時における数学関数の使用を概略的に示す図。
【図2】 数学関数から得られる結果をエレメント位置に対する間接レファレンスに分割
する動作を概略的に示す図。
【図3】 バケット構造の概要図。
【図4】 フラグメントに属するページの分割を概略的に示す図。
【図5】 エレメントの概略構成を第1のケースで示す図。
【図6】 エレメントの概略構成を第2のケースで示す図。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,ML,MR, NE,SN,TD,TG),AP(GH,GM,KE,L S,MW,SD,SZ,UG,ZW),EA(AM,AZ ,BY,KG,KZ,MD,RU,TJ,TM),AL ,AM,AT,AU,AZ,BA,BB,BG,BR, BY,CA,CH,CN,CU,CZ,DE,DK,E E,ES,FI,GB,GE,GH,GM,GW,HR ,HU,ID,IL,IS,JP,KE,KG,KP, KR,KZ,LC,LK,LR,LS,LT,LU,L V,MD,MG,MK,MN,MW,MX,NO,NZ ,PL,PT,RO,RU,SD,SE,SG,SI, SK,SL,TJ,TM,TR,TT,UA,UG,U Z,VN,YU,ZW 【要約の続き】 ベースを使用するプロセッサに属するキャッシュメモリ に一度に読み込み可能なデータ情報量に高々等しいサイ ズに制限される。

Claims (27)

    【特許請求の範囲】
  1. 【請求項1】 データベースにエレメントを格納し、格納されたエレメント
    を検索する方法であって、データベースにデータエレメントを格納するための格
    納スペースに対するレファレンスが数学関数によって計算され、関数入力データ
    が前記エレメントに属する外部キーで構成され、前記数学関数から得られる結果
    がデータベース内部の前記エレメントの位置を指示し、前記結果が異なる部分に
    分割されるものとした前記方法において、前記結果は少なくとも3つの部分に分
    割され、第1の部分が前記データベースに属するフラグメントに対する直接また
    は間接レファレンスを構成し、第2の部分が前記フラグメント内のページに対す
    る直接または間接レファレンスを構成し、第3の部分が前記ページに属するいわ
    ゆるバケットに対する直接または間接レファレンスを構成するものとし、前記エ
    レメントを格納可能な、または既に前記エレメントを格納しているか、または前
    記エレメントに対する直接または間接レファレンスを格納している少なくとも1
    個の容器が前記バケットに含まれることを特徴とする前記方法。
  2. 【請求項2】 請求項1記載の方法において、直接的あるいは数学関数を介
    して所望位置を指示する内部アドレスで直接レファレンスが構成され、所望位置
    を直接指示する関連内部アドレスを含んでいるテーブルを指示するポインタで間
    接レファレンスが構成されることを特徴とする前記方法。
  3. 【請求項3】 請求項1記載の方法において、前記第1の部分が前記フラグ
    メントに属するすべてのレプリカに対する間接レファレンスを構成することを特
    徴とする前記方法。
  4. 【請求項4】 請求項1記載の方法において、前記第2の部分がレジスタを
    指示し、異なるページを指示するポインタのベクトルが前記レジスタに含まれる
    ことを特徴とする前記方法。
  5. 【請求項5】 請求項1記載の方法において、前記第3の部分が前記ページ
    に属する関連バケットを指示し、その指示動作が数学関数によって行われること
    を特徴とする前記方法。
  6. 【請求項6】 請求項1記載の方法において、それぞれのバケットが容器と
    、可能な場合には更にそれぞれのバケットに属するオーバフロー容器とを含むこ
    とを特徴とする前記方法。
  7. 【請求項7】 請求項1記載の方法において、ヘッダのサイズと前記容器に
    属するエレメントのサイズとに対応するサイズをそれぞれの容器に割り当て、前
    記サイズが前記容器に属するエレメントの数に応じて変化し、最大容器のサイズ
    が、データベースの中で動作するか、または前記データベースを使用するプロセ
    ッサに属するキャッシュメモリに一度に読み込み可能なデータ情報量に高々等し
    いサイズに制限されることを特徴とする前記方法。
  8. 【請求項8】 請求項7記載の方法において、キャッシュメモリに一度で読
    み込み可能な情報量の処理時間がキャッシュミスに伴う時間より長く、そしてキ
    ャッシュメモリに一度で読み込み可能なデータ情報量とは関係なく、最大サイズ
    容器の処理に要する時間がキャッシュミスに伴う時間経過よりも短くなるように
    、容器の最大拡張サイズが制限されることを特徴とする前記方法。
  9. 【請求項9】 請求項6から8のいずれかに記載の方法において、前記ペー
    ジが複数バッファに分割され、各バッファがいわゆるアベイラビリティリスト限
    度の第1部分と第2部分に分割されるものとし、前記第1および前記第2部分の
    全体を収容する最大サイズ容器、または前記第1の部分を始点として前記第2部
    分まで広がる第1の非最大容器、または前記第1部分を始点として前記第2部分
    まで広がらない第1の非最大容器が各バッファに含まれ、更に、各バッファが前
    記第2部分を始点とする第2の非最大容器を含むことを可能としたことを特徴と
    する前記方法。
  10. 【請求項10】 請求項9記載の方法において、共通バッファを共有する2
    つの容器のいずれかがアベイラビリティリスト限度を超過するか否かにかかわら
    ず、2つの容器間でバッファのメモリスペースを分割するか否かに関するチェッ
    クが前記2つの容器に対して行われることを特徴とする前記方法。
  11. 【請求項11】 請求項9記載の方法において、第1の複数バッファがスタ
    ティックバッファで構成され、第2の複数バッファがフリーバッファで構成され
    、前記スタティックバッファに属する第1部分が容器を含み、前記スタティック
    バッファに属する前記第2部分および前記フリーバッファに属する両部分がオー
    バフロー容器を含むことを特徴とする前記方法。
  12. 【請求項12】 請求項11記載の方法において、第1部分内に配置される
    容器が前記第1部分の最初を始点として、エレメントを追加するときには関連バ
    ッファの中央に向かって拡張し、また、第2部分内に配置される容器が前記第2
    部分の最後を始点として、エレメントを追加するときには関連バッファの中央に
    向かって拡張することを特徴とする前記方法。
  13. 【請求項13】 請求項11記載の方法において、関連バケットは、それに
    属する最大サイズ容器に追加エレメントが割り当てられる場合にオーバフロー容
    器を含むように構成され、前記追加エレメントに前記オーバフロー容器内の位置
    が割り当てられることを特徴とする前記方法。
  14. 【請求項14】 請求項11記載の方法において、前記ページで、前記スタ
    ティックバッファに属するすべての利用可能な第2部分と、前記フリーバッファ
    に属するすべての利用可能な第1および第2部分とがアベイラビリティリストに
    含まれることを特徴とする前記方法。
  15. 【請求項15】 請求項14記載の方法において、第1部分内の非最大容器
    のサイズがアベイラビリティリスト限度を超えるとき、バッファに属する利用可
    能な対応の第2部分が前記アベイラビリティリストから削除されることを特徴と
    する前記方法。
  16. 【請求項16】 請求項14記載の方法において、以前にアベイラビリティ
    リスト限度のサイズを超えたことがある第1部分内の容器が縮小して、アベイラ
    ビリティリスト限度以下になった場合、バッファに属する利用可能な対応の第2
    部分がアベイラビリティリストに追加されることを特徴とする前記方法。
  17. 【請求項17】 請求項15および16記載の方法において、前記第1部分
    の容器の拡張または縮小に関連して利用可能な第2部分がアベイラビリティリス
    トから削除またはアベイラビリティリストに追加されるとき、前記第1部分内の
    容器がアベイラビリティリスト限度から所定値だけ超過した場合に第2部分がア
    ベイラビリティリストから削除され、前記第1部分内の容器が縮小してアベイラ
    ビリティリスト限度から所定値だけ下回った場合に第2部分がアベイラビリティ
    リストに追加されるようなヒステリシスを導入することを特徴とする前記方法。
  18. 【請求項18】 請求項13および15記載の方法において、前記オーバフ
    ロー容器には、前記アベイラビリティリスト上で利用可能になっている部分内の
    位置が割り当てられ、そして前記割り当て実行時に、今まで利用可能になってい
    た部分がアベイラビリティリストから削除されることを特徴とする前記方法。
  19. 【請求項19】 請求項13および15記載の方法において、前記フラグメ
    ントに属するページの1つをオーバフローページとし、前記オーバフローページ
    にはフリーバッファのみが含まれ、アベイラビリティリスト上に利用可能部分が
    存在しない場合、オーバフロー容器に、オーバフローページ上でバッファに属す
    る部分内の位置が割り当てられることを特徴とする前記方法。
  20. 【請求項20】 請求項18および19記載の方法において、前記ヘッダは
    4つの情報フィールドを含み、第1の情報フィールドは前記容器のサイズに関す
    る情報を含むものとし、 バケットに容器が1個だけ含まれる場合、 − 第2の情報フィールドは、同じページにオーバフロー容器が存在する可能
    性を示し、 − 第3の情報フィールドは、オーバフロー容器が存在しないことを示し、 − 第4の情報フィールドは未使用とし、 バケットが同じページ上で容器およびオーバフロー容器を含む場合、 − 第2の情報フィールドは、同じページにオーバフロー容器が存在する可能
    性を示し、 − 第3の情報フィールドは、オーバフロー容器が存在することを示し、 − 第4の情報フィールドはオーバフロー容器を指示するものとし、 バケットが前記オーバフローページ上でオーバフロー容器を含む場合、 − 第2の情報フィールドは、オーバフローページ上にオーバフロー容器が存
    在することを示し、 − 第3の情報フィールドは、前記オーバフローページを指示するポインタを
    含み、 − 第4の情報フィールドは、オーバフロー容器を指示するポインタを含むも
    のとし、 それぞれのフィールドのサイズはそれぞれの状況に適応し、前記容器に属するエ
    レメントには、容器の中でヘッダ直後の連続する位置が割り当てられることを特
    徴とする前記方法。
  21. 【請求項21】 請求項6記載の方法において、前記数学関数によって指示
    される容器全体がエレメントを検索するプロセッサに属するキャッシュメモリに
    読み込まれることを特徴とする前記方法。
  22. 【請求項22】 請求項20および21記載の方法において、前記キャッシ
    ュメモリに読み込まれた容器の中で前記エレメントが検出されない場合、オーバ
    フロー容器全体が前記キャッシュメモリに読み込まれることを特徴とする前記方
    法。
  23. 【請求項23】 請求項1記載の方法において、前記エレメントは5つの情
    報グループを備えたヘッダを含み、前記エレメントがトランザクションに利用可
    能な場合、第1のグループが前記数学関数から得られる結果の一部部分を含み、
    第2のグループがエレメントステータスビットを含み、第3のグループがエレメ
    ントの非ロック状態を示す情報を含み、第4のグループが前記エレメントに属す
    るローカルキーの長さに関連する情報を含み、第5のグループが前記エレメント
    に属するエレメントキーの長さに関連する情報を含むものとし、前記エレメント
    が更に前記ローカルキーおよび前記エレメントキーを含むことを特徴とする前記
    方法。
  24. 【請求項24】 請求項23記載の方法において、進行中のトランザクショ
    ンに影響されてエレメントがトランザクション禁止状態にロックされている場合
    、第1および第2のグループが共同で前記トランザクションに属するトランザク
    ションレジスタを指示するポインタを含み、前記トランザクションレジスタが数
    学関数から得られる結果の前記部分と、前記ステータスビットと、前記エレメン
    トに適用されたロックのタイプとを含み、前記第3のグループが前記エレメント
    のロック状態を示す情報を含み、前記第4のグループが前記ローカルキーの長さ
    に関する情報を含み、前記第5のグループがエレメントキーの長さに関する情報
    を含むことを特徴とする前記方法。
  25. 【請求項25】 請求項24記載の方法において、前記ヘッダは4バイトで
    構成され、前記第1のグループが19ビットを含み、前記第2のグループが4ビ
    ットを含み、前記第3のグループが1ビットを含み、前記第4のグループが4ビ
    ットを含み、前記第5のグループが4ビットを含むことを特徴とする前記方法。
  26. 【請求項26】 請求項23記載の方法において、前記フラグメントのレプ
    リカ作成時など、エレメントのレプリカ作成プロセスで前記ステータスビットが
    使用され、前記エレメントがコピーされているか否かはそれぞれのビットで示さ
    れ、同時に行われる複数のレプリカ作成プロセスのそれぞれにおいてそれぞれの
    ステータスビットが使用されることを特徴とする前記方法。
  27. 【請求項27】 請求項23記載の方法において、前記数学関数から得られ
    る結果の前記部分がフラグメント分割プロセスおよびフラグメント結合プロセス
    で使用されることを特徴とする前記方法。
JP2000504498A 1997-07-21 1998-07-07 エレメントをデータベースに格納する方法 Pending JP2001511553A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SE9702760A SE510001C2 (sv) 1997-07-21 1997-07-21 Metod för att lagra element i en databas
SE9702760-1 1997-07-21
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
AU2003270828A1 (en) * 2002-09-18 2004-04-08 Netezza Corporation Asymmetric data streaming architecture having autonomous and asynchronous job processing unit
US7421562B2 (en) * 2004-03-01 2008-09-02 Sybase, Inc. Database system providing methodology for extended memory support
US11321408B2 (en) 2004-12-15 2022-05-03 Applied Invention, Llc Data store with lock-free stateless paging capacity
US7774308B2 (en) * 2004-12-15 2010-08-10 Applied Minds, Inc. Anti-item for deletion of content in a distributed datastore
US8275804B2 (en) 2004-12-15 2012-09-25 Applied Minds, Llc Distributed data store with a designated master to ensure consistency
US8996486B2 (en) * 2004-12-15 2015-03-31 Applied Invention, Llc Data store with lock-free stateless paging capability
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
US8856593B2 (en) 2010-04-12 2014-10-07 Sandisk Enterprise Ip Llc Failure recovery using consensus replication in a distributed flash memory system
US8725951B2 (en) 2010-04-12 2014-05-13 Sandisk Enterprise Ip Llc Efficient flash memory-based object store
US9164554B2 (en) 2010-04-12 2015-10-20 Sandisk Enterprise Ip Llc Non-volatile solid-state storage system supporting high bandwidth and random access
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
US8868487B2 (en) 2010-04-12 2014-10-21 Sandisk Enterprise Ip Llc Event processing in a flash memory-based object store
US8666939B2 (en) 2010-06-28 2014-03-04 Sandisk Enterprise Ip Llc Approaches for the replication of write sets
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
KR102171430B1 (ko) * 2019-02-26 2020-10-29 주식회사 퍼즐시스템즈 데이터베이스에서 조회된 대용량 데이터를 컬럼 별 바이너리 파일로 저장하는 시스템
KR102177792B1 (ko) * 2019-02-26 2020-11-11 주식회사 퍼즐시스템즈 컬럼 별 바이너리 파일 저장 구조를 이용하여 대용량 데이터를 메모리 용량 제약없이 차트로 표시하는 시스템
US20230135583A1 (en) * 2021-11-03 2023-05-04 Netapp, Inc. Distributed storage systems and methods to provide change tracking integrated with scalable databases

Family Cites Families (6)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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
US6308169B1 (en) 2001-10-23
WO1999005586A3 (en) 1999-04-15
SE9702760L (sv) 1999-01-22
BR9810767A (pt) 2001-01-16
KR20010022027A (ko) 2001-03-15
SE9702760D0 (sv) 1997-07-21
CN1111815C (zh) 2003-06-18
SE510001C2 (sv) 1999-03-29
CN1271439A (zh) 2000-10-25
EP0996881A2 (en) 2000-05-03
EP0996881B1 (en) 2004-09-15
DE69826283D1 (de) 2004-10-21
KR100529995B1 (ko) 2005-11-22
AU8365098A (en) 1999-02-16
WO1999005586A2 (en) 1999-02-04

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
JP2007523412A (ja) メモリ割当て
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) ファイル検索装置及びファイル検索方法
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