JP4669067B2 - 動的フラグメントマッピング - Google Patents

動的フラグメントマッピング Download PDF

Info

Publication number
JP4669067B2
JP4669067B2 JP2009527480A JP2009527480A JP4669067B2 JP 4669067 B2 JP4669067 B2 JP 4669067B2 JP 2009527480 A JP2009527480 A JP 2009527480A JP 2009527480 A JP2009527480 A JP 2009527480A JP 4669067 B2 JP4669067 B2 JP 4669067B2
Authority
JP
Japan
Prior art keywords
fragment
map
computer
actual
data
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
Application number
JP2009527480A
Other languages
English (en)
Other versions
JP2010503117A (ja
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2010503117A publication Critical patent/JP2010503117A/ja
Application granted granted Critical
Publication of JP4669067B2 publication Critical patent/JP4669067B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/99937Sorting
    • 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/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • 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)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、動的フラグメントマッピングに関する。
データベースシステムは、行と列を有する一連の表形式データをさまざまな方法において記憶できる。データベースシステムは、データを揮発性メモリおよび不揮発性メモリ、データベースシステムに局部的な従来型ファイル記憶装置に配置されたファイル、ネットワーク上に配置された1または2以上の記憶システムに接続された従来型ファイル記憶装置に配置されたファイル等に記憶できる。データベースシステムは典型的に、データを一連のデータに対して追加または除去できるので、それら一連のデータは、時間とともに増減し得る。
しかし一連のデータが増えるにつれ、それら一連のデータが増大し過ぎて、記憶されている場所の保存能力の限度を超えるかもしれない。例えばデータセットは、ハードディスクドライブ上のファイルとして記憶できる。データセットがハードディスクドライブの容量よりも増大した場合、それらのデータセットを、より大きな容量のハードディスクドライブにまとめて移動させるか、1または2以上に細分化し、それぞれの部分を複数の物理的記憶場所の1つに移動させるかのどちらかにできる。
いったんデータセットが分割されると、データベースシステムは、固定した機能性を実装して、複数の物理的記憶場所のそれぞれに記憶されたデータを見つけ、検索できる。例えばデータベースシステムは、2つの物理的記憶場所を含むことができる。データベースシステムは、第1物理的記憶場所のデータセットの第1行と関連付けられたデータを記憶するために選択できる。データベースシステムは、第2物理的記憶場所のデータセットの第2行と関連付けられたデータを記憶するためにさらに選択できる。次にデータベースシステムは、第1物理的記憶場所のデータセットの第3行と関連付けられたデータを記憶するために選択できる。そのようなパターンは、データセットのそれぞれの行に対して繰り返すことができる。次にデータベースシステムは、そのような固定した機能性を逆行させ、データを見つけ、検索できる。例えばデータベースシステムは、第2物理的場所に記憶されたデータにアクセスすることによって、データセットの第2行と関連付けられたデータを検索できる。
第1物理的記憶場所か第2物理的記憶場所のどちらかの容量が一杯になった場合、追加的な物理的記憶場所をデータベースシステムに追加できる。しかしデータベースシステムが、固定した機能性を利用してデータの分割と検索を行うので、第1物理的記憶場所と第2物理的記憶場所に記憶されたすべてのデータは、第3物理的記憶場所の追加に対応するために入れ替えられなければならない。
例えばデータベースシステムは、第1物理的記憶場所の第1行と関連付けられたデータを記憶するために選択できる。データベースシステムは、第2物理的記憶場所の第2行と関連付けられたデータを記憶するためにさらに選択できる。次にデータベースシステムは、第3物理的記憶場所の第3行と関連付けられたデータを記憶するために選択できる。ここで留意すべきは、第3行と関連付けられたデータは以前に、第1物理的記憶場所に記憶されていたことである。しかしデータベースシステムによって用いることができる固定した機能性に従うためには、第3行と関連付けられたデータは、第3物理的記憶場所に入れ替えられなければならない。
あるいはデータベースシステムが、データセットを分割し、記憶するために固定した機能性を用いない場合、分割と参照の機能は、新しい物理的場所がデータベースシステムに対して追加または除去される度に変更されなければならない。例えばデータベースシステムは、行数および物理的記憶場所の数に基づいた数学的関数を実行することによって、データセットの行に対して物理的場所を選択する固定されていない機能を含むことができる。データのそれぞれの行の場所とそれぞれの行の場所を決定する数学的関数との両方は、物理的記憶場所の数に基づくので、数学的関数とそれぞれの行の場所との両方は、物理的記憶場所がデータベースシステムに対して追加または除去される度に再計算および入れ替えられなければならない。
物理的記憶場所が追加または除去される度にすべの物理的記憶場所のすべてのデータを入れ替える必要なく、データが一方の物理的記憶場所からもう一方の物理的記憶場所へ容易に移動できる方法を実装するシステムが有効になり得る。
以下に、読者に基本的な理解を提供するために本開示の簡単な概要を提示する。本概要は、本開示の広範囲の要約ではなく、本発明の主要な要素を明らかにするまたは本発明の範囲を明確にするものでもない。その唯一の目的は、後に提示されるより詳細な記述への前置きとして簡易形式によって、本明細書に開示された、いくつかの概念を提示することである。
本例では、動的フラグメントマッピングの構造および技術を提供する。テーブル、行セット、インデックス、またはテーブルもしくはインデックスのパーティション等のデータベースオブジェクトは、データフラグメントに分割またはデータフラグメントとして存在できる。行セットは、データベーステーブルの1または2以上の行のセットまたはインデックスのエントリと見なすことができる。行とレコードの語は、実質的に同一と見なすことができる。従って行セットは、レコードセットと同等にすることもできる。
実行可能な最大数のデータフラグメントを選択できる。データセットはフラグメントに分割されるので、データセットのそれぞれの部分に仮想識別子を割り当てることができる。行のセットを含むことができる物理的場所は、実フラグメントとして認識できる。配列は、実フラグメントの物理的場所を見つけるために逆に参照できる識別子トークンを含むそれぞれの要素を用いて生成できる。そのような配列は、仮想識別子から実フラグメントの物理的場所を見つけるためのマップとして動作できる。仮想識別子をマップインデックス値に相関させるマッピング機能は、関連付けられたマップインデックス値の要素の値を見つけるために呼び出すことができる。次にデータセットのそれぞれの部分は、マップインデックス値によって参照された場所に物理的に記憶できる。
マップの複数の要素は、同じ物理的場所を参照できる。新しい物理的場所を、既存の物理的場所を示す複数のマップインデックス要素の1つの値を変更することによって追加できる。次に以前にマップ要素と関連付けられていたデータの部分は、古い物理的場所から新しい物理的場所に移動できる。従って現存する物理的場所は、マップインデックス要素の値を別の既存の場所に変更し、削除される場所からのデータを前記既存の場所に移動することによって削除できる。
実フラグメントを備える要素のセットは、必要に応じて拡張または縮小できる。例えばマップが新しい物理的場所にもはや十分な記憶領域がない環境に起こり得る。次にマップ要素の数を、選択された要因によって増加することができる。マッピング機能は、仮想識別子をマップインデックス値に相関させることができるので、多数の仮想識別子の値を新しいマップインデックス値に相関させることができる。新しいインデックスのマップ要素の値を変更して、新しい物理的場所を参照できる。新しいマップインデックス値と関連付けられたデータのすべての部分を、新しい物理的場所に移動できる。
別の例において、物理的場所が、ほとんど行を記憶できない環境に起こり得る。マップインデックス要素の数を、減少できる。マッピング機能は、仮想識別子をマップインデックス値に相関させるので、多数の仮想識別子を新しいマップインデックス値に相関させることができる。マップインデックス要素の値を変更して、現存する物理的場所を参照できる。新しいマップインデックス値と関連付けられたデータのすべての部分を、現存する物理的場所に移動できる。
もう一つの例において、仮想識別子と関連付けられた物理的データが、物理的場所に対して増加し過ぎた場合がある。そのような条件は、データスキューとして認識できる。そのようなデータスキューの条件において、新しい物理的場所を追加し、新しい物理的アドレスを仮想識別子に割り当てることによって、情報を2つの部分に分割せずに、すべての情報を古い物理的場所から新しい場所に移動させることは不可能かもしれない。そのようなデータスキューの条件において、フラグをマップインデックスのエントリに追加し、マップインデックス値と関連付けられたデータをすべての物理的場所に分配できる。そのようなデータスキューフラグは、参照機能がデータの場所を見つけるためにすべての物理的場所を調べることができる機能を示すことができる。
フラグメントの物理的場所を見つけるために、仮想識別子はマッピング機能まで移動される。次にマッピング機能は、マップインデックス値を戻すことができる。マップインデックス値の要素は、フラグメントが記憶されている物理的場所を参照する識別子を含むことができる。次に識別子は、物理的場所を見つけるために逆に参照され、フラグメントを検索できる。
付随する機能の多くは、添付図に関連して考慮される以下の詳細な記述を参照することによって、より理解されると同様により容易に認識される。
本記述は、添付図に照らして読まれる以下の詳細な記述によってより理解される。
従来型データ記憶装置および参照システムを示すブロック図である。 フラグメントマップを生成する例示的方法、実フラグメントを分割する例示的方法、実フラグメントをマージする例示的方法、およびフラグメントの場所を参照する例示的方法を含む動的フラグメントシステムを示すブロック図である。 フラグメントマッピングのデータ構造を示すブロック図である。 フラグメントマップを生成する例示的方法を示すフロー図である。 実フラグメントを分割する例示的方法を示すフロー図である。 実フラグメント分割に及ぶ例示的フラグメントマップおよび例示的物理的場所における状態遷移を示すブロック図である。 実フラグメントをマージする例示的方法を示すフロー図である。 実フラグメントマージに及ぶ例示的フラグメントおよび例示的物理的場所における状態遷移を示すブロック図である。 フラグメント識別子を使用してフラグメントの物理的場所の識別子を参照する例示的方法を示すフロー図である。 実フラグメントを分割するおよびフラグメントをフラグメントマップにデータスキューを有するものとしてマークする例示的方法を示すフロー図である。 データスキューを含む実フラグメント分割の間の、例示的フラグメントマップおよび例示的物理的場所における状態遷移を示すブロック図である。 フラグメント識別子を使用してデータスキューを有するフラグメントの物理的場所の識別子を参照する例示的方法を示すフロー図である。 記述されたシステムおよび方法を実装する例示的コンピュータ装置を示す図である。
参照番号は、添付図の同じ番号部分を示すために使用される。
添付図に関連して以下に提供された詳細な記述は、本例の記述を目的とし、本例が構成または利用できる形態のみを表すことを目的としない。本記述は、例の機能およびそれらの例を構成ならびに動作するステップの順序を説明する。しかし同じまたは同等の機能および順序は、異なる例によって達成できる。
本例は、動的フラグメントのマッピングシステムに実装されるものとして本明細書に説明されるが、記述されたそれらのシステムは、例示として提供され、それらに限定されない。当業者には当然のことながら、本例は、動的フラグメントのマッピングシステムのさまざまな異なる種類のアプリケーションに適している。
図1は、従来型データセット110、従来型記憶および参照コンポーネント120、従来型物理的記憶装置130、従来型物理的記憶装置140、および従来型物理的記憶装置150を含む従来型データ参照システム100を示すブロック図である。
従来型データ参照システム100は、マイクロソフト(登録商標)SQLサーバ(登録商標)等の独立型データベースシステムと、マイクロソフト(登録商標).Net、サンマイクロシステムズJava(登録商標)等のマネージドもしくはインタプリタされた言語システムに組み込まれたデータベースシステムを含む典型的なデータベースシステムの任意の種類にできる。従来型データセット110は、従来型記憶および参照コンポーネント120に接続できる。従来型記憶および参照コンポーネント120は、従来型物理的記憶装置130、従来型物理的記憶装置140、および従来型物理的記憶装置150に接続できる。従来型物理的記憶装置130、従来型物理的記憶装置140、または従来型物理的記憶装置150のいずれかは、揮発性もしくは不揮発性の物理的メモリ、コンピュータハードディスクドライブ等の典型的なコンピュータ記憶形態にできる。
従来型データセット110は、表形式構造に記憶された任意の種類のデータにできる。例えば従来型データセット110は、従来型行ならびに従来型列、XML(extensible markup language)等を有する従来型データベーステーブルにできる。従来型記憶および参照コンポーネント120は、従来型データ参照システム100上で実行可能な、典型的に構成されたソフトウェアコンポーネントにできる。従来型記憶および参照コンポーネント120は、従来型記憶機能を実装できる。そのような従来型記憶機能は、従来型データセット110の1または2以上の行を記憶する機能性を、従来型物理的記憶装置130、従来型物理的記憶装置140、または従来型物理的記憶装置150の1つに提供できる。そのような従来型記憶機能は、従来型物理的記憶装置130、従来型物理的記憶装置140、または従来型物理的記憶装置150のどれに行を記憶できるかを決定する固定した機能性をさらに実装できる。
従来型記憶および参照コンポーネント120は、従来型の固定した参照機能をさらに実装できる。そのような従来型の固定した参照機能は、従来型物理的記憶装置130、従来型物理的記憶装置140、または従来型物理的記憶装置150に記憶された従来型データセット110の1または2以上の行の場所を見つける機能性を提供できる。そのような従来型の固定した参照機能は、従来型記憶機能によって使用される固定した機能性をさらに利用して、従来型データセット110の1または2以上の行の場所を見つけることできる。
例えば従来型記憶機能は、物理的記憶装置のカウントを利用して、従来型データセット110の1または2以上の行をどこに記憶させるかを決定できる。一例において、従来型記憶および参照コンポーネント120は最初に、従来型物理的記憶装置130と従来型物理的記憶装置140に接続できる。従来型記憶機能は、従来型物理的記憶装置130の奇数行と従来型物理的記憶装置140の偶数行に記憶できる。従って従来型参照機能は、従来型物理的記憶装置130の奇数行と関連付けられたデータと従来型物理的記憶装置140の偶数行と関連付けられたデータを見つけることができる。
続いての例において、従来型記憶および参照コンポーネント120は次に、従来型物理的記憶装置130か従来型物理的記憶装置140のどちらかの容量が一杯になるのを受けて、従来型物理的記憶装置150を追加できる。しかし従来型記憶および参照コンポーネント120は単に、従来型物理的記憶装置130または従来型物理的記憶装置140に記憶された行を、従来型物理的記憶装置150に移動させるだけではない。上述のように、従来型参照機能は、従来型物理的記憶装置130の奇数行と従来型物理的記憶装置150の偶数行を見つけることができる。従って従来型参照機能は、固定した機能性を拡張することができ、従来型データセット110の第1行を従来型物理的記憶装置130に記憶し、第2行を従来型物理的記憶装置140に記憶し、第3行を従来型物理的記憶装置150に記憶し、第4行を従来型物理的記憶装置130に記憶する等のパターンを繰り返す。
上記の例から分かるように、従来型物理的記憶装置150の追加は、以前に従来型物理的記憶装置130と従来型物理的記憶装置140に記憶されていたデータの完全な入れ替えを必要とする。あるいは従来型記憶および参照コンポーネント120を、新しい従来型記憶方法と新しい従来型参照方法を含むもう一つの従来型記憶および参照コンポーネントと置き換えることができる。そのような新しい従来型記憶方法と新しい従来型参照方法は、従来型物理的記憶装置130、従来型物理的記憶装置140、または従来型物理的記憶装置150のそれぞれからデータを記憶し、検索する機能性を含むことができる。しかし追加的な従来型物理的記憶場所が導入された場合、追加的な新しい従来型記憶および参照コンポーネントは、以前の従来型記憶および参照コンポーネントを置き換えなければならない。
物理的記憶場所が追加または除去される度にすべの物理的記憶場所のすべてのデータを入れ替える必要なく、データが一方の物理的記憶場所からもう一方の物理的記憶場所へ容易に移動できる方法を実装するシステムが有効になり得る。
図2は、フラグメントマップ400を生成する例示的方法、実フラグメントマップ500を分割する例示的方法、実フラグメント700をマージする例示的方法、およびフラグメント900の場所を参照する例示的方法を含む例示的参照コンポーネント210を含む動的フラグメントシステム200を示すブロック図である。
動的フラグメントシステム200は、マイクロソフト(登録商標)SQLサーバ(登録商標)等の独立型データベースシステムと、マイクロソフト(登録商標).Net、サンマイクロシステムズJava(登録商標)等のマネージドもしくはインタプリタされた言語システムに組み込まれたデータベースシステムを含む典型的なデータベースシステムの任意の種類にできる。しかし動的フラグメントシステム200を任意の種類のコンピュータシステムに使用して、本明細書に記述された機能性を提供できる。当業者は、動的フラグメントシステム200が、第1識別子が第2識別子にマッピングできる広範囲のアプリケーションに使用できる機能性を含むことを認識している。フラグメントは、データセットのサブセットとしても認識できる。
データセット110は、記憶および参照コンポーネント210に接続できる。記憶および参照コンポーネント210は、物理的記憶場所130、物理的記憶場所140、および物理的記憶場所150に接続できる。データセット110は、表形式構造に記憶された任意の種類のデータにできる。例えばデータセット110は、従来型行および従来型列を有する従来型データベーステーブルにできる。データセット110の従来型列は、固有の識別子または固有のキーを含むように指定できる。
記憶および参照コンポーネント210は典型的に、動的フラグメントシステム200上で実行可能なソフトウェアコンポーネントを構成できる。物理的記憶場所130、物理的記憶場所140、または物理的記憶場所150のいずれかは、揮発性もしくは不揮発性の物理的メモリ、コンピュータハードディスクドライブ等の典型的なコンピュータ記憶形態にできる。
記憶および参照コンポーネント210は、フラグメントマップ400を生成する例示的方法、実フラグメント500を分割する例示的方法、実フラグメント700をマージする例示的方法、フラグメント900の場所を参照する例示的方法等をさらに実装できる。フラグメントマップ400を生成する方法は、図4の記述においてより完全に論じられる。実フラグメント500を分割する方法は、図5の記述においてより完全に論じられる。実フラグメント700をマージする方法は、図7の記述においてより完全に論じられる。フラグメント900の場所を参照する方法は、図9の記述においてより完全に論じられる。
図3は、フラグメントマッピングのデータ構造300を示すブロック図である。フラグメントマッピングのデータ構造300、フラグメントマッピングのデータ構造300は、配列、リスト、集合、またはその他の特定のデータ型の同一要素のグループ化の形態における典型的なコンピュータデータ構造にできる。
フラグメントマッピングのデータ構造300は、論理フラグメントidでもある数字によってインデックス化された要素のセットを含むことができるマップ330から構成できる。マップ330は、実フラグメントマップ310および仮想実フラグメントマップ320からさらに構成できる。実フラグメントマップ310は、マップ330の任意の数の要素から構成できる。さらに実フラグメントマップ310のそれぞれの要素は、第1実フラグメント340および/または第2実フラグメント350等の実フラグメントを参照できる識別子、トークン等を含むことができる。もう一つの例において、実フラグメントマップ310のそれぞれの要素は、インデックスを別の同じフラグメントマップ構造の中に参照できる。
上述のように、マップ330のそれぞれの要素は、図3の0からn+1までの数字によって表されたように、数字によってインデックス化できる。さらに仮想実フラグメントマップ320に含まれるマップ330の要素は、インデックス値が機能を通過したとき、そのような機能が実フラグメントマップ310の範囲のインデックス値に戻ることができるインデックス値を有することができる。そのような方法において、仮想実フラグメントマップ320の要素のインデックス値は、実フラグメントマップ310の要素に一致させる機能を使用して「マッピング」される。そのような機能は、図4、図5、図7、および図9の記述においてより完全に説明される。
さらに、実フラグメントマップ310の要素が実フラグメント340、第2実フラグメント350等に一致する識別子を含むことができるので、仮想実フラグメントマップ320の要素は、実フラグメント340または第2実フラグメント350の1つを「ポイント」する。そのような関係は、実フラグメント340のインデックス値0、2,4,6からnまでと第2実フラグメント350のインデックス値1,3,5,7、ならびにn+1を含めることによって示される。
一実施形態において、フラグメントマッピングのデータ構造300の実フラグメントマップ310を使用して、データセットの行を物理的記憶場所にマッピングすることができる。もう一つの実施形態において、フラグメントマッピングのデータ構造300の実フラグメントマップ310を使用して、任意のインデックス化されたデータを任意の一致するフラグメント型にマッピングできる。もう一つの実施形態において、実フラグメントマップ310を使用して、仮想識別子を別のフラグメントマップ構造の実識別子にマッピングできる。フラグメントマップ構造の実施例を生成する例示的方法を論じることができる。
図4は、フラグメントマップ400を生成する例示的方法を示すフロー図である。
ブロック410は、フラグメントの最初の数を決定できる動作を示す。任意の方法を使用してフラグメントの最初の数を決定できる。一実施形態において、フラグメントの最初の数を出力2に決定できる。もう一つの例において、フラグメントの最初の数を実フラグメントマップのサイズの要因に決定できる。他のもう一つの例において、フラグメントの最初の数は、フラグメントの最初の数によって表されるデータセットのサイズに関連付けることができる。
ブロック420は、実フラグメントのサイズを決定できる動作を示す。実フラグメントマップは、識別子、トークン、または実フラグメント、物理的フラグメント、仮想フラグメント等を表すものを含むことができる。そのような決定は、任意の方法を使用して実行できる。一実施形態において、実フラグメントマップのサイズは、ブロック410において決定されたフラグメントの最初の数のサイズに基づいて決定される。それらの決定が出力2である実マップのサイズを得なかった場合、出力2に最も近いサイズが選択される。
ブロック430は、インデックス値および要素を有する配列を生成できる動作を示す。配列は、ブロック420において決定された実フラグメントマップのサイズのものを生成できる。もう一つの実施形態において、配列は、ブロック410において生成された最初のフラグメントマップのサイズとブロック420において生成された実フラグメントマップのサイズとを合わせたものと同等にできるものを生成できる。もう一つの実施形態において、ブロック410において生成された最初のフラグメントマップのサイズとブロック420において生成された実フラグメントマップのサイズを合わせたものより大きいか小さいかのどちらかの配列を生成し、他のサイズに動的に適応できる。
ブロック440は、ブロック420において決定されたような実フラグメントマップの要素を値に投入できる動作を示す。値は、任意の方法を使用して選択でき、そのような値は、識別子、トークン等にできる。一実施形態において、このような値は、実フラグメントの物理的場所に対する参照である。そのような値は、任意の方法を使用して実フラグメントマップに追加できる。
図5は、実フラグメント500を分割する例示的方法を示すフロー図である。フラグメントマップは、図3に論じたような配列にできる。
ブロック510は、増大し過ぎたフラグメントが識別される動作を示す。そのような識別は、フラグメントのクエリを行い、フラグメントの容量が一杯もしくは望ましいサイズより大きいので、追加的な情報を記憶できないという決定をさらに行う形態をとることができる。実証目的のために、LARGE_AFは、増大し過ぎたフラグメントを参照できる。
ブロック520は、LARGE_AFが実フラグメントマップにおいて1回より多く参照されるかどうかが決定される決定を示す。否定的な決定を受けて、フローはブロック530に続く。肯定的な決定を受けて、フローはブロック540に続く。
ブロック530は、実フラグメントマップのサイズが2倍になる動作を示す。しかし当業者によって認識されるように、実フラグメントマップは、任意の適正な要因によってサイズを大きくできる。実フラグメントマップのサイズを2倍にした後で、元の実フラグメントマップの要素の値は、新しく生成された実フラグメントマップの要素にコピーされる。
ブロック540は、新しい実フラグメントが生成される動作を示す。そのような実フラグメントは「エンプティ」であり、任意の情報等を含むことができない。そのような新しい実フラグメントは考察目的で、NEW AFによって参照できる。
ブロック550は、新しい識別子が、ブロック540において生成された実フラグメントに対して選択または生成される動作を示す。そのような識別子は、数字、トークン、任意の値等にできる。そのような新しい識別子は考察目的で、NEW AF IDによって参照できる。
ブロック560は、一度識別子LARGE_AFに投入された実フラグメントマップのエントリの1つが、ブロック550において選択または生成されたNEW AF IDに変更できる動作を示す。
ブロック570は、NEW AF IDを示す配列の仮想実フラグメントマップのIDと関連付けられたデータ行が、LARGE_AFフラグメントからNEW AFまで移動できる動作を示す。そのような情報の移動は、任意の手段を使用して達成できる。例えばそれらの情報は、一つの物理的記憶装置から他の物理的記憶装置にコピーでき、ネットワークを通じてコピーでき、物理的メモリの一つの領域から他の物理的メモリの領域にコピーできること等である。
以下の図では、一連の図を利用して図5の方法を示すことができる。
図6は、実フラグメント分割600に及ぶ例示的フラグメントマップおよび例示的物理的場所における状態遷移を示すブロック図である。
ブロックA610は、実フラグメントマップ640が2つの要素を含む状態を示す。実フラグメントマップ640の第1要素は、第1実フラグメント670に一致する識別子を含むことができる。実フラグメントマップ640の第2要素は、第2実フラグメント680に一致する識別子を含むことができる。ブロックA 610において、第2実フラグメント680は容量が一杯になっている。ここで留意すべきは、第1実フラグメント670に含まれる情報が以前に論じたように、マッピング機能を使用して実フラグメントマップ640の第1要素にマッピングできることである。さらに第2実フラグメント680に含まれる情報は、これも以前に論じたように、マッピング機能を使用して実フラグメントマップ640の第2要素にマッピングすることもできる。そのようなマッピングは、ブロックA610の配列によって表すことができる。
ブロックB620は、実フラグメントマップ640が、拡張された実フラグメントマップ650を生成するためにサイズが2倍になった状態を示す。実フラグメントマップ640の第1要素および第2要素に含まれる識別子を、拡張されたフラグメントマップ650の新しく生成された要素にコピーできる。ブロックB620に見られるように、拡張された実フラグメントマップ650の第1要素および第3要素は、第1実フラグメント670に一致できる。さらに拡張された実フラグメントマップ650の第2要素および第4要素は、第2実フラグメント680に一致できる。
ここで留意すべきは、拡張された実フラグメントマップ650と関連付けられた仮想実フラグメントの要素を第1実フラグメント670にマッピングし、拡張された実フラグメントマップ650の第2要素および第4要素を第2実フラグメント680にマッピングできるマッピング機能は、モジュロ機能にできることである。例えばモジュロ機能は、拡張された実フラグメントマップ650のサイズを、拡張された実フラグメントマップ650の要素のインデックス数または仮想実フラグメントマップ等の拡張された実フラグメントマップ650のインデックス値を超えた他の要素部分によって除した後の余りを戻すことができる。しかしそのような動きを作る任意の種類のハッシングまたはマッピング機能を使用できる。
ブロックC630は、第3実フラグメント690を追加できる状態を示す。拡張された実フラグメントマップ650の第4エントリを変更して、最後の拡張された実フラグメントマップ660を生成できる。最後の拡張された実フラグメントマップ660の第4要素は、第3実フラグメント690に一致できる。即ち以前に論じたマッピング機能が、仮想実フラグメントマップの要素を、最後の拡張された実フラグメントマップ660の第2要素か第4要素のどちらかにマッピングできるので、第2エントリに一致できる仮想実フラグメントマップの要素は、第4エントリに一致できる。従ってこのような要素は、新しいフラグメントである第3実フラグメント690に一致できる。最終的に、最後の拡張された実フラグメントマップ660の第4要素にマッピングする第2実フラグメント680上に記憶された任意の情報は、第3の実フラグメント690に移動される。
図7は、実フラグメント700をマージする例示的方法を示すフロー図である。
ブロック710は、実フラグメントがマージされる候補として識別される動作を示す。そのような識別は、実フラグメントのクエリを行い、フラグメントが大量の空いた記憶場所を有することができる決定をさらに行う形態をとることができる。そのような実フラグメントの候補は考察の目的で、AF_Mと呼ぶことができる。AF_M IDは、識別されたフラグメントと関連付けられた識別子を参照できる。
ブロック720は、実フラグメントマップが実フラグメントAF_Mの候補に対する潜在的マージパートナーを含むことができるかどうかを、実フラグメントマップが決定するためにクエリが行われる決定を示す。一実施形態において、空いた記憶場所等の同じ要因を有する実フラグメントマップの要素は、実フラグメントの1つが実フラグメントAF_Mの候補に対する潜在的マージパートナーであるかどうかを決定するためにクエリが行われる。しかし実フラグメントマップの任意の要素は、実フラグメントAF_Mの候補に対する潜在的マージパートナーにできる。否定的な決定を受けて、フローはブロック770に続く。肯定的な決定を受けて、実フラグメントの潜在的マージパートナーは、実フラグメントのマージパートナーになり、フローはブロック730に続く。
ブロック730は、実フラグメントAF_M上に記憶された任意の情報が、ブロック720において識別できた実フラグメントのマージパートナーに移動される動作を示す。
ブロック740は、実フラグメントAF_Mの候補に対する参照を以前に含んだ実フラグメントマップのマップエントリが、ブロック720において識別された実フラグメントのマージパートナーの識別子に対する参照を含むように変更された動作を示す。
ブロック750は、実フラグメントマップを折り畳むまたはサイズを小さくすることができるかどうかが決定される決定を示す。一実施形態において、実フラグメントマップが検査され、実フラグメントマップの要素が基準パターンを形成する識別子を含む場合、実フラグメントマップは、基準パターンが繰り返すことのできる回数に関連付けられた要因によって畳み込むことができる。例えば実フラグメントマップは、第1識別子を含む第1要素および第3要素と、第2識別子を含む第2要素および第4要素を有する4つの要素を含むことができる。実フラグメントマップは、識別子が第1識別子、第2識別子の繰り返されるパターンに従うため、畳み込むことができる。否定的な決定を受けて、フローはブロック770に続く。肯定的な決定を受けて、フローはブロック760に続く。
ブロック770は、それらの方法が終了できる動作を示す。
ブロック760は、実フラグメントマップが畳み込まれる動作を示す。そのような畳み込みは、任意の方法を使用して実行できる。一実施形態において実フラグメントマップは、実フラグメントマップに含まれる要素の数を減少させることによって畳み込みができる。以下の図では、一連の図形を利用して図7の方法を示すことができる。
図8は、実フラグメントマージング800に及ぶ例示的フラグメントマップおよび例示的物理的場所の状態遷移を示すブロック図である。
ブロックA810は、実フラグメントマップ840が4つの要素を含む状態を示す。実フラグメントマップ840の第1要素は、第1実フラグメント870に一致する識別子を含むことができる。実フラグメントマップ840の第2要素は、第2実フラグメント880に一致する識別子を含むことができる。実フラグメントマップ840の第3要素は、第1実フラグメント870に一致する識別子を含むことができる。最後に、実フラグメントマップ840の第4要素は、第3実フラグメント890に一致する識別子を含むことができる。
ブロックA810において、第3実フラグメント890は、ある最小限のデータよりも少ない量を記憶できる。ここで留意すべきは、第3実フラグメント890に含まれる情報を、実フラグメントマップ840の第4要素によって参照できることである。そのような参照は、ブロックA810の矢印によって表すことができる。仮想実フラグメントマップに関連付けられた要素は示していないが、仮想実フラグメントマップのそのような要素は以前に論じたように、マッピング機能を使用して実フラグメントマップ840の要素の1つと関連付けることができる。そのようなマッピング機能は、余りを決定するために実フラグメントマップ840のサイズを利用するモジュロ機能にできる。
ブロックB820は、変更された実フラグメントマップ850の第4要素を変更して、第2実フラグメント880に一致する識別子を含むことができる状態を示す。さらに第3実フラグメント890に記憶された情報は、第2実フラグメント880に移動できる。
ブロックC830は、ブロックB820の変更された実フラグメントマップ850を畳み込んで、畳み込まれた実フラグメントマップ860を作り出すことができる状態を示す。ここで留意すべきは、関連付けられた仮想実フラグメントマップの要素は、マッピング機能を使用して、実フラグメントマップの第3要素および第4要素に前もってマッピングできることである。そのようなマッピング機能は、畳み込まれた実フラグメントマップ860のサイズを利用するモジュロ機能にできるため、関連付けられた仮想実フラグメントマップの要素は、畳み込まれた実フラグメントマップ860の第1要素か第2要素のどちらかにマッピングできる。
図9は、フラグメント900の場所を参照する例示的方法を示すフロー図である。
ブロック910は、ハッシング機能を使用して、データセットの行を仮想実フラグメントマップに含むことができる要素にマッピングできる状態を示す。一実施形態においてハッシング機能は、データセットの行の列の値をパラメータと見なし、仮想実フラグメントマップのインデックス値の要素を戻すことができる。しかし情報を仮想実フラグメントマップのインデックスにマッピングできる任意のハッシュ機能を使用できる。
ブロック920では、ラッピング機能またはマッピング機能を使用して、ブロック910において決定された要素のインデックスがマッピングできる一致する実フラグメントの要素を見つけることができる動作を示す。一実施形態において、ラッピング機能は、ブロック910において決定された要素のインデックスを実フラグメントマップのサイズで除し、その余りを戻すことによって、実フラグメントマップのインデックスを戻すことができるモジュロ機能にできる。しかし仮想実フラグメントマップの要素のインデックスを実フラグメントマップの要素のインデックスにマッピングする任意のラッピング機能が、使用できる。
ブロック930は、ブロック920において決定された実フラグメントマップの要素のインデックスが配置される動作を示す。
ブロック940は、ブロック930に配置されている実フラグメントマップの要素のインデックスに記憶できる識別子が読み取られる動作を示す。そのような読み取り動作は、任意の典型的な配列データ読み取り動作を使用して実行できる。
図10は、フラグメントマップ1000において実フラグメントを分割し、データスキューを有するフラグメントとしてマーキングする例示的方法を示すフロー図である。
ブロック1010は、増大し過ぎたフラグメントが識別される動作を示す。そのような識別は、フラグメントのクエリを行い、フラグメントの容量が一杯もしくは望ましいサイズより大きいので、追加的な情報を記憶できないという決定をさらに行う形態をとることができる。考察の目的で、LARGE_AFは増大し過ぎたフラグメントを示す。
ブロック1020は、ブロック1010において識別されたフラグメントがデータスキューの条件であるかどうかを決定する決定を示す。データスキューは、既定の範囲を超える多数のデータの行が単一のフラグメントにマッピングできる条件を示す。さらに図5に説明したように、フラグメントマップは、フラグメントマップがもはや分割できない条件にできる。否定的な決定を受けて、フローは図5のブロック500に続く。肯定的な決定を受けて、フローは図5のブロック1030に続く。
ブロック1030は、ブロック1010において識別されたフラグメントがデータスキューフラグを有することができ、それらのフラグメントがデータスキューの条件であると指定するために要素インデックスに追加される動作を示す。そのようなフラグは、任意の種類のデータまたは情報にできる。例えばデータスキューフラグは、ブロック1010において識別された実フラグメントLARGE_AFにすでに記憶されている任意の情報とともに記憶される追加的なデータ部分にできる。
ブロック1040は、ブロック1010 LARGE_AFにおいて識別されたフラグメント上に以前に記憶されていた情報またはデータは、他のすべてのフラグメントに分配される動作を示す。そのような分配は、任意の方法を使用して実行できる。例えばLARGE_AF上に記憶される情報またはデータは、他のすべてのフラグメントによって表された局部的な物理的記憶場所にコピーでき、ネットワーク接続を通じて他のすべてのフラグメント等によって表された他の物理的記憶場所にコピーできる。
図11は、データスキュー1100を含む実フラグメント分割に及ぶ例示的フラグメントマップおよび例示的物理的場所の状態遷移を示すブロック図である。
ブロックA1110は、実フラグメントマップ1130が4つの要素を含む状態を示す。実フラグメントマップ1130の第1要素は、第1実フラグメント1150と一致する識別子を含むことができる。実フラグメントマップ1130の第2要素は、第2実フラグメント1160と一致する識別子を含むことができる。実フラグメントマップ1130の第3要素は、実フラグメント1150と一致する識別子を含むことができる。最後に実フラグメントマップ1130の第4要素は、第3実フラグメント1170に一致する識別子を含むことができる。ブロックA1110において、第3実フラグメント1170はデータスキューの条件にできる。
ブロックB1120は、実フラグメントマップ1140の第4要素が、図の小文字「x」によって表されたデータスキューフラグを含むことができる状態を示す。データスキューフラグの存在によって、実フラグメントマップ1140の第4要素が、実フラグメント1150、第2実フラグメント1160、および第3実フラグメント1170のすべてにマッピングできることを示すことができる。さらに第3実フラグメント1170に以前に記憶された情報は、実フラグメント1150および第2実フラグメント1160のそれぞれに移動できる。
図12は、フラグメント識別子1200を使用して、データスキューを有するフラグメントの物理的場所の識別子を参照する例示的方法を示すフロー図である。
ブロック900は、図9に記述されたフラグメントの識別子を使用して、フラグメントの物理的場所の識別子を参照する例示的方法を示す。
ブロック1210は、ブロック900において参照したフラグメントが、データスキューフラグを含むフラグメントマップの要素にマッピングするかどうかに関する決定を示す。そのような決定は任意の形態をとることができる。例えば、フラグメントと一致する要素は、読み取ることができ、戻った情報はクエリを行ってそれらの情報がデータスキューフラグを含むかどうかを決定できる。否定的な決定を受けて、フローはブロック1220に続く。肯定的な決定を受けて、フローはブロック1230に続く。
ブロック1220は、情報がブロック900において識別されたフラグメントから読み取られる動作を参照できる。
ブロック1230では、情報がフラグメントマップのそれぞれのフラグメントから読み取られる動作を示す。
図13に、上述のシステムおよび方法を実装する例示的コンピュータ装置1300を示す。その最も基本的な構成において、計算装置1300は典型的に、少なくとも1つのCPU(central processing unit)1305およびメモリ1310を含む。
具体的な構成および計算装置の種類によって、メモリ1310は、揮発性(例えばRAM等)、不揮発性(例えばROM、フラッシュメモリ等)、またはそれら2つのある組み合わせにできる。さらに計算装置1300は、追加的な機能/機能性も有することができる。例えば計算装置1300は、複数のCPUを含むことができる。上述の方法は、計算装置1300の任意の処理ユニットによって任意の方法において実行できる。例えば上述のプロセスは、複数のCPUを並行することによって実行できる。
計算装置1300は、磁気ディスクもしくは磁気テープまたは光ディスクもしくは光テープを含む追加的な記憶装置(取り外し可能および/または取り外し不可能なもの)を含むこともできるが、これらに限定されない。そのような追加的な記憶装置は、図13の記憶装置1315によって示される。コンピュータ記憶媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュールもしくは他のデータ等の情報を記憶する任意の方法または技術において実装される揮発性ならびに不揮発性媒体、取り外し可能ならびに取り外し不能媒体を含む。メモリ1310および記憶装置1315は、コンピュータ記憶媒体のすべての例である。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD―ROM、DVD(digital versatile disk)もしくは他の光学式記憶、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、または望ましい情報を記憶するために使用でき、計算装置1300によってアクセス可能なその他の媒体を含むが、これらに限定されない。そのような任意のコンピュータ記憶媒体は、計算装置1300の一部にできる。
計算装置1300は、その装置が他の装置と通信できる通信装置1340を含むこともできる。通信装置1340は、通信媒体の例である。通信媒体は典型的に、コンピュータ読み取り可能命令、データ構造、プログラムモジュールまたは搬送波もしくは他の転送機構等の変調されたデータ信号による他のデータを実施し、任意の情報送達媒体を含む。「変調されたデータ信号」の語は、その特性セットの1または2以上を有するまたはその信号の情報の符号化に関する方法に変更された信号を意味する。一例として通信媒体は、有線ネットワークまたは直接有線接続等の有線媒体、音響、RF、赤外線等の無線媒体および他の無線媒体を含むが、これらに限定されない。本明細書に使用されたコンピュータ読み取り可能媒体または装置読み取り可能媒体の語は、コンピュータ記憶媒体と通信媒体との両方を含む。記述された方法は、データ、コンピュータ実行可能命令等の任意の形態の任意のコンピュータ読み取り可能媒体において符号化できる。
コンピュータ装置1300は、キーボード、マウス、ペン、音声入力装置、タッチ入力装置等の入力装置1335を有することもできる。ディスプレイ、スピーカ、プリンタ等の出力装置1330も含むことができる。これらすべての装置は公知の技術であり、詳細に論じる必要はない。
当業者は、プログラム命令を記憶するために利用される記憶装置を、ネットワーク上で分配できることを認識している。例えばリモートコンピュータは、ソフトウェアとされているプロセスの例を記憶できる。ローカルコンピュータまたはターミナルコンピュータは、リモートコンピュータにアクセスし、ソフトウェアの一部またはすべてをダウンロードしてプログラムを実行できる。あるいはローカルコンピュータは、必要に応じてソフトウェアの一部をダウンロードでき、またはあるソフトウェアの命令をローカルターミナルにおいて実行し、別のあるソフトウェアの命令をリモートコンピュータ(もしくはコンピュータネットワーク)において実行することによって分配して処理できる。当業者は、当業者が認識する従来型技術を利用することによって、ソフトウェアの命令のすべてまたは一部がDSP、プログラム可能な論理配列等の専用回線によって実行できることも認識している。

Claims (11)

  1. コンピュータ実行可能命令を格納したコンピュータ読み取り可能記録媒体であって、コンピュータによって前記コンピュータ実行可能命令が実行されると、
    所定のサイズより大きいフラグメントを識別するステップと、
    前記フラグメントが、実フラグメントマップにおいて2回以上参照されるかどうかを決定するステップと、
    前記実フラグメントマップのサイズを大きくするステップと、
    新しい実フラグメントを識別するために新しいトークンを選択するステップと、
    前記新しいトークンを用いて前記実フラグメントマップのエントリを変更するステップ
    を備えた方法を実行することを特徴とするコンピュータ読み取り可能記録媒体。
  2. 前記実フラグメントマップのサイズを大きくするステップは、実フラグメントマップのサイズを2倍にすることを特徴とする請求項1に記載のコンピュータ読み取り可能記録媒体。
  3. 前記新しいトークンと関連付けられたデータは、前記フラグメントから前記新しいフラグメントに移動されることを特徴とする請求項1に記載のコンピュータ読み取り可能記録媒体。
  4. 前記フラグメントは、データセットのサブセットであることを特徴とする請求項1に記載のコンピュータ読み取り可能記録媒体。
  5. 前記実フラグメントマップは、配列であることを特徴とする請求項1に記載のコンピュータ読み取り可能記録媒体。
  6. 前記実フラグメントマップの少なくとも1つのエントリを変更するステップをさらに備えたことを特徴とする請求項1に記載のコンピュータ読み取り可能記録媒体。
  7. コンピュータ実行可能命令を格納したコンピュータ読み取り可能記録媒体であって、コンピュータによって前記コンピュータ実行可能命令が実行されると、
    既定のしきい値未満に縮小したサイズのフラグメントを識別するステップと、
    実フラグメントマップのフラグメントに対するマージパートナーを識別するステップと、
    前記マージパートナーの識別子を用いて前記実フラグメントマップの前記フラグメントに一致するエントリを変更するステップと、
    前記実フラグメントマップを縮小できる場合には、前記実フラグメントマップのサイズを縮小させるステップ
    を備えた方法を実行することを特徴とするコンピュータ読み取り可能記録媒体。
  8. 前記フラグメントと関連付けられたデータを、前記マージパートナーと関連付けられた物理的記憶装置に移動させるステップをさらに備えたことを特徴とする請求項7に記載のコンピュータ読み取り可能記録媒体。
  9. 前記フラグメントは、データセットのサブセットであることを特徴とする請求項7に記載のコンピュータ読み取り可能記録媒体。
  10. 前記実フラグメントマップのサイズを縮小させるステップは、前記実フラグメントマップの要素に特定の識別子が繰り返される配列からなる基準パターンの繰り返しを含む場合、前記基準パターンの繰り返しを畳み込むことにより、前記要素の数を減少させることを特徴とする請求項7に記載のコンピュータ読み取り可能記録媒体。
  11. 前記実フラグメントマップの少なくとも1つのエントリを変更するステップをさらに備えたことを特徴とする請求項7に記載のコンピュータ読み取り可能記録媒体。
JP2009527480A 2006-09-06 2007-08-18 動的フラグメントマッピング Active JP4669067B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/470,586 US7523288B2 (en) 2006-09-06 2006-09-06 Dynamic fragment mapping
PCT/US2007/076257 WO2008030694A1 (en) 2006-09-06 2007-08-18 Dynamic fragment mapping

Publications (2)

Publication Number Publication Date
JP2010503117A JP2010503117A (ja) 2010-01-28
JP4669067B2 true JP4669067B2 (ja) 2011-04-13

Family

ID=39153420

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009527480A Active JP4669067B2 (ja) 2006-09-06 2007-08-18 動的フラグメントマッピング

Country Status (7)

Country Link
US (1) US7523288B2 (ja)
EP (1) EP2069979B1 (ja)
JP (1) JP4669067B2 (ja)
KR (1) KR101467589B1 (ja)
CN (1) CN101512526B (ja)
TW (1) TWI372981B (ja)
WO (1) WO2008030694A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7992037B2 (en) * 2008-09-11 2011-08-02 Nec Laboratories America, Inc. Scalable secondary storage systems and methods
EP2605143A4 (en) * 2010-08-13 2014-10-08 Fujitsu Ltd MEMORY CONTROL DEVICE, INFORMATION PROCESSING DEVICE AND CONTROL METHOD FOR A MEMORY CONTROL DEVICE
GB2489405B (en) * 2011-03-22 2018-03-07 Advanced Risc Mach Ltd Encrypting and storing confidential data
KR20130014943A (ko) * 2011-08-01 2013-02-12 삼성전자주식회사 임의의 메모리 집합을 지원하는 메모리 구성 장치 및 방법
US20140344235A1 (en) * 2013-05-17 2014-11-20 Emmanuel Zarpas Determination of data modification
CN103441937A (zh) * 2013-08-21 2013-12-11 曙光信息产业(北京)有限公司 组播数据的发送方法和接收方法
US9405643B2 (en) 2013-11-26 2016-08-02 Dropbox, Inc. Multi-level lookup architecture to facilitate failure recovery
US9547706B2 (en) * 2014-03-10 2017-01-17 Dropbox, Inc. Using colocation hints to facilitate accessing a distributed data storage system
US20170255565A1 (en) * 2016-03-02 2017-09-07 Intel Corporation Method and apparatus for providing a contiguously addressable memory region by remapping an address space
US10509798B2 (en) * 2016-05-11 2019-12-17 Informatica Llc Data flow design with static and dynamic elements
CN106227678B (zh) * 2016-07-21 2018-12-28 北京四维益友信息技术有限公司 一种虚拟存储介质的存取方法
CN108509438B (zh) * 2017-02-24 2021-08-31 南京烽火星空通信发展有限公司 一种ElasticSearch分片扩展方法
WO2018199795A1 (en) 2017-04-27 2018-11-01 EMC IP Holding Company LLC Best-effort deduplication of data
US11402998B2 (en) 2017-04-27 2022-08-02 EMC IP Holding Company LLC Re-placing data within a mapped-RAID environment comprising slices, storage stripes, RAID extents, device extents and storage devices
WO2018199796A1 (en) 2017-04-27 2018-11-01 EMC IP Holding Company LLC Consolidating temporally-related data within log-based storage
WO2019022631A1 (en) * 2017-07-27 2019-01-31 EMC IP Holding Company LLC STORING DATA IN DIFFERENTLY SIZED WAFERS WITHIN DIFFERENT STORAGE LEVELS
CN107465573B (zh) * 2017-08-04 2020-08-21 苏州浪潮智能科技有限公司 一种提高ssr客户端在线监控效能的方法
US11461287B2 (en) 2017-10-26 2022-10-04 EMC IP Holding Company LLC Managing a file system within multiple LUNS while different LUN level policies are applied to the LUNS
US11461250B2 (en) 2017-10-26 2022-10-04 EMC IP Holding Company LLC Tuning data storage equipment based on comparing observed I/O statistics with expected I/O statistics which are defined by operating settings that control operation
US11199968B2 (en) 2017-10-26 2021-12-14 EMC IP Holding Company LLC Using recurring write quotas to optimize utilization of solid state storage in a hybrid storage array
CN108776692A (zh) * 2018-06-06 2018-11-09 北京京东尚科信息技术有限公司 用于处理信息的方法和装置
CN112306372B (zh) 2019-07-31 2024-07-05 伊姆西Ip控股有限责任公司 用于处理数据的方法、设备和程序产品

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555404A (en) * 1992-03-17 1996-09-10 Telenor As Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas
JPH1131096A (ja) * 1997-07-11 1999-02-02 Anetsukusu Syst Kk データ格納検索方式
US5881379A (en) * 1996-05-20 1999-03-09 International Business Machines Corporation System, method, and program for using duplicated direct pointer sets in keyed database records to enhance data recoverability without logging
JPH11110262A (ja) * 1997-10-01 1999-04-23 Toshiba Corp 情報管理システム
JP2001142751A (ja) * 1999-11-12 2001-05-25 Hitachi Ltd データベース管理方法および装置並びにデータベース管理プログラムを記録した記憶媒体
US6523036B1 (en) * 2000-08-01 2003-02-18 Dantz Development Corporation Internet database system
JP2004021797A (ja) * 2002-06-19 2004-01-22 Hitachi Ltd データベース管理方法および装置
WO2004025475A1 (ja) * 2002-09-10 2004-03-25 Annex Systems Incorporated データベースの再編成システム、並びに、データベース
JP2005533324A (ja) * 2002-07-17 2005-11-04 オラクル・インターナショナル・コーポレイション モバイルアプリケーション用データをキャッシュするためのシステムおよび方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6055604A (en) * 1997-08-26 2000-04-25 Hewlett-Packard Company Forced transaction log posting using a least busy storage media without maintaining redundancy of the transaction log
US6405284B1 (en) * 1998-10-23 2002-06-11 Oracle Corporation Distributing data across multiple data storage devices in a data storage system
US7162478B2 (en) * 2001-02-28 2007-01-09 International Business Machines Corporation System and method for correlated fragmentations in databases
US7237062B2 (en) * 2004-04-02 2007-06-26 Seagate Technology Llc Storage media data structure system and method

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555404A (en) * 1992-03-17 1996-09-10 Telenor As Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas
US5881379A (en) * 1996-05-20 1999-03-09 International Business Machines Corporation System, method, and program for using duplicated direct pointer sets in keyed database records to enhance data recoverability without logging
JPH1131096A (ja) * 1997-07-11 1999-02-02 Anetsukusu Syst Kk データ格納検索方式
JPH11110262A (ja) * 1997-10-01 1999-04-23 Toshiba Corp 情報管理システム
JP2001142751A (ja) * 1999-11-12 2001-05-25 Hitachi Ltd データベース管理方法および装置並びにデータベース管理プログラムを記録した記憶媒体
US6523036B1 (en) * 2000-08-01 2003-02-18 Dantz Development Corporation Internet database system
JP2004021797A (ja) * 2002-06-19 2004-01-22 Hitachi Ltd データベース管理方法および装置
JP2005533324A (ja) * 2002-07-17 2005-11-04 オラクル・インターナショナル・コーポレイション モバイルアプリケーション用データをキャッシュするためのシステムおよび方法
WO2004025475A1 (ja) * 2002-09-10 2004-03-25 Annex Systems Incorporated データベースの再編成システム、並びに、データベース

Also Published As

Publication number Publication date
TW200825800A (en) 2008-06-16
CN101512526B (zh) 2011-12-07
EP2069979B1 (en) 2018-10-24
EP2069979A1 (en) 2009-06-17
EP2069979A4 (en) 2016-08-03
WO2008030694A1 (en) 2008-03-13
JP2010503117A (ja) 2010-01-28
US7523288B2 (en) 2009-04-21
US20080059749A1 (en) 2008-03-06
KR20090048624A (ko) 2009-05-14
TWI372981B (en) 2012-09-21
KR101467589B1 (ko) 2014-12-02
CN101512526A (zh) 2009-08-19

Similar Documents

Publication Publication Date Title
JP4669067B2 (ja) 動的フラグメントマッピング
US11169978B2 (en) Distributed pipeline optimization for data preparation
CN101719141B (zh) 基于目录对象的文件处理方法和系统
US11461304B2 (en) Signature-based cache optimization for data preparation
CN103914483B (zh) 文件存储方法、装置及文件读取方法、装置
JP5499825B2 (ja) データベース管理方法、データベースシステム、プログラム及びデータベースのデータ構造
US10642815B2 (en) Step editor for data preparation
KR101744892B1 (ko) 시계열 계층 인덱싱을 이용한 데이터 검색 시스템 및 데이터 검색 방법
EP3362808B1 (en) Cache optimization for data preparation
US8271500B2 (en) Minimal perfect hash functions using double hashing
WO2024078122A1 (zh) 数据库表扫描的方法、装置以及设备
CN104537023A (zh) 一种反向索引记录的存储方法及装置
US20210056090A1 (en) Cache optimization for data preparation
CN108984780B (zh) 基于支持重复键值树数据结构管理磁盘数据的方法和装置
US11288447B2 (en) Step editor for data preparation
US20220335030A1 (en) Cache optimization for data preparation
CN115374127B (zh) 数据存储方法及装置
CN114201487A (zh) 智能合约的存储装置和方法
WO2008091054A1 (en) Enhanced file system and method of managing files using the file system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091218

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20100126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100604

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100716

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101014

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: 20110107

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140121

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4669067

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250