JP2014504381A - データオブジェクトの構成 - Google Patents
データオブジェクトの構成 Download PDFInfo
- Publication number
- JP2014504381A JP2014504381A JP2013510730A JP2013510730A JP2014504381A JP 2014504381 A JP2014504381 A JP 2014504381A JP 2013510730 A JP2013510730 A JP 2013510730A JP 2013510730 A JP2013510730 A JP 2013510730A JP 2014504381 A JP2014504381 A JP 2014504381A
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage unit
- data object
- objects
- length
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
i.データオブジェクトを、他のデータオブジェクトの記憶空間内に記憶することができる。その場合、そのデータオブジェクトは、子データオブジェクトまたはネストされたデータオブジェクトと呼ばれる。
ii.あるいは、データオブジェクトは、それ自体の記憶空間内に記憶してもよい。そのデータオブジェクトのポインタ、参照、ハンドル、または他のアドレスが他のデータオブジェクト内に記憶される。したがって、そのデータオブジェクトは他のデータオブジェクトの要素ではない。代わりに、それらのポインタ、参照、ハンドル、または他のアドレスが、他のデータオブジェクト内の子データオブジェクトまたはネストされたデータオブジェクトである。
既存のデータオブジェクトを修正することを含む、データオブジェクトを動的に構成することは追加の記憶空間を必要とする。使用可能な記憶空間、または未使用の記憶空間は、以下のようにいくつかの場所で見つけることができる。
1.未使用記憶空間は、新たな記憶ユニットを作成することにより割り当てることができる。したがって、記憶空間を提供するために、新たなメモリ領域または新たなファイル等を作成することができる。
2.未使用記憶空間は、その目的で予備空間が確保されている場合、データオブジェクト内で見つけることができる。
3.未使用記憶空間は、ヒープまたは他のヒープライク(heap−like)な動的記憶域マネージャによって提供することができる。ヒープは、大きなメモリ領域で構成され、そのメモリ領域から、可変長データオブジェクトを記憶するためのいくつかのより小さな小領域を割り当てる。したがって、
a.C言語は、ヒープから数バイト割り当てるための「malloc」関数を提供する。
b.多くのファイル構造では、ヒープライクなメモリマネージャが、未使用の記憶領域を追跡し、記憶空間を動的に提供するために使用される。
4.未使用記憶空間は、論理アドレス空間の末尾に割り当てることができる。例えば、
a.ファイルの末尾にある記憶空間を使用することにより、テキストファイル内にいくつかの行を挿入することができる。
b.多くのCコンパイラは、プロセススタックの最上部の可変長メモリ領域を割り当てるために使用される「alloca」関数を実装する。
データオブジェクトを構成するためのいくつかの方法が存在する。方法の選択は、記憶する必要があるデータの特性、およびデータに対して行われることが予期される操作によって通常決まる。既存の各データ構成方法には長所と短所がある。短所がない既存の方法はない。データオブジェクトがネストされる場合、さらなる厄介な問題が生じる。方法の利点の多くは、データオブジェクトがネストされる場合は利用できない可能性がある。
i.データオブジェクト内で可変長データ要素を維持する必要がある。
ii.データオブジェクト内で可変数のデータ要素を維持する必要がある。
iii.ネストされたデータオブジェクトを含め、データオブジェクト内で実行時にデータ要素を挿入しまたは除去する必要がある。
iv.高水準の動作効率を維持する必要がある。
v.利用可能な記憶空間を賢明に使用する必要がある。
vi.システムを誤りなしに維持する必要がある。
vii.ダイナミックメモリの割当て後、データの配置の順序を維持する必要がある。
viii.ダイナミックメモリを割り当てるためのそれぞれの方法には、欠点がある。
i.「The‘C’Programming Language」、KernighanおよびRitchie著は、C言語でデータオブジェクトを構成するための方法について記載する。
ii.文献「Data Structures and Algorithms」、Aho、Hopcroft、およびUllman著は、データ構造を構成するための方法について記載する。
iii.文献「File Structures, An Object−Oriented Approach with C++」、Folk、Zoellick、およびRiccardi著は、ディスクまたはファイル内に記憶するためのデータオブジェクトを構成するための方法について記載する。
データオブジェクトを構成する一般に使用される方法によれば、記憶ユニット内の連続した論理アドレスに、いくつかの固定された同じサイズのデータオブジェクトが記憶される。この方法は、データオブジェクトのリストを維持するのに有用である。
i.いくつかの追加エントリをbツリーノード内に挿入できるが、その目的でbツリーノード内に確保される予備空間の量によって制限される。
ii.それ自体のファイル内に記憶されるデータ表の中に追加のレコードを挿入することができる。
i.前もってその目的で確保される任意の記憶空間を超えるデータの挿入はできない。さらに、データオブジェクトを記憶するために境界のない論理アドレス空間を設けることは、必ずしも可能または有利とは限らない。
ii.データオブジェクトが固定された等しいサイズのものでない場合、この方法は不適当である。
iii.この方法は、データオブジェクト間の関係(親−子関係や他の関係など)を確立しない。
別の方法によれば、記憶ユニット内の連続した論理アドレスに、いくつかの可変長データオブジェクトが記憶される。各データオブジェクトは、「分離記号」または「区切り記号」により、その隣接するデータオブジェクトから隔てられもしくは区切られる。
i.テキストファイルでは、「改行」文字を使用して、ある行を別の行と分ける。
ii.コンマ区切りファイルでは、コンマまたは他の区切り記号を使用してフィールドを区切る。
iii.bツリーノードでは、区切り記号により、可変長エントリを他のエントリと分けることができる。
iv.xmlドキュメントでは、分離記号として「<」および「/>」タグが使用される。
i.「分離記号」がデータオブジェクトと混同されないことを保証する必要がある。
ii.前もってその目的で確保される任意の記憶空間を超える、境界のないデータオブジェクト内のデータの挿入および除去はできない。多くの場合、境界のないアドレス空間をデータオブジェクトに与えることは可能でも有利でもない。したがって、bツリーノード内へのエントリの挿入は、bツリーノードのサイズによって限定される。
iii.データ要素の相対アドレスまたは長さは追跡されず、また容易に分かることもない。そのためこの方法は、データオブジェクトへの直接アクセスを提供しない。例えば、テキストファイルでは、所定の行にアクセスするために改行文字をスキャンする必要がある。したがって、この方法は、データが頻繁に修正されることが予期され、データ量が多く、またはシステム効率が極めて重要な場合は不適当である。
iv.この方法は、たとえデータオブジェクト間の関係がデータ内に記載される場合があっても、データオブジェクト間の関係を確立しない。したがって、データオブジェクトの他のデータオブジェクトとの関係(親−子関係など)を容易に推測できず、そのような関係を求める前に全データをスキャンする必要がある。
別の方法によれば、システムが、データオブジェクトに関する「データタイプ」または「データテンプレート」を維持する。データタイプは、データオブジェクト内にいくつかのデータ要素を記憶するための記憶パターンを提供する。記憶パターンは、データ要素のアドレスを求めるために使用される。
i.記憶空間の量を前もって推定する必要がある。
ii.確保した記憶空間が大きすぎる場合、記憶空間を無駄にすることになる。
iii.記憶する必要があるデータ量が確保した空間よりも大きい場合、データを記憶し損なうことになる。
別の方法によれば、データオブジェクト内のいくつかの可変長データ要素が、データオブジェクトの記憶空間内のいくつかのアドレスに記憶される。
i.各エントリの始めに長さインジケータを記憶する。
ii.全エントリの長さインジケータをノード内に記憶し、その後にエントリが続く。
iii.エントリのオフセットをノード内に記憶し、その後にエントリが続く。
iv.エントリの累積長さをノード内に記憶し、その後にエントリが続く。
i.必要な予備空間の量を前もって推定する必要がある。
ii.予備空間が大きすぎる場合、記憶空間を無駄にすることになる。
iii.記憶する必要があるデータ量が予備空間よりも大きい場合、データを記憶し損なうことになる。
別の方法によれば、線形記憶空間内にいくつかのデータオブジェクトが記憶される。データオブジェクトが他のいくつかのデータオブジェクトに関係するように、データオブジェクト間の関係が確立される。
i.より大きい新規フィールドを記憶するために、ファイルの末尾に新たなデータ領域を割り当て、
ii.ファイル内のデータオブジェクトの中の既存フィールドを無効化し、
iii.その場所に、ファイルの末尾にある新たなデータ領域へのポインタを記憶すること
により、より大きなフィールドで置き換えることができる。
i.この方法は、データを修正する度にいくつかの小さなデータ領域を作り、データにアクセスする際の効率の悪さの原因となる。
ii.この方法の結果として参照の局所性は保たれず、多数のページフォルトおよびキャッシュミス、ならびにシステム動作の効率の悪さを招く。
iii.データを修正するとき、ファイル内にいくつかの未使用の、無効化されたデータ領域が作成される。
iv.データが、その最適な方法で維持されない。修正する度に、ますます多くの乱れがデータ内に取り入れられる。
v.動作の効率を取り戻すために、データを新たなファイルに適切な順序で周期的に書き換えなければならない。
この方法によれば、新たなデータ要素が挿入され、除去され、または修正されるときにデータオブジェクトを再作成することにより、そのデータオブジェクトは可変長データを維持することができる。例えば、
i.C言語では、アレイは固定数の要素を記憶することができる。追加の要素を挿入するために、新たなメモリ空間を割り当てることにより、新たなアレイが作成される。次いで、元のアレイ内のいくつかの既存の要素が、新たな要素とともに新たなアレイにコピーされる。その後、元のアレイは通常破棄され、代わりに新たなアレイが使用される。
ii.ファイル内にデータ要素を挿入するために、元のファイルのコンテンツを新たなデータ要素とともに新たなファイルにコピーすることができる。その後、元のファイルは通常破棄され、代わりに新たなファイルが使用される。
別の方法によれば、ヒープから割り当てられた記憶空間を使用して可変長データが記憶される。データオブジェクトは、データ自体は記憶しない。代わりに、データオブジェクトは、データへのポインタ、参照、または他のハンドルを記憶する。データの構成において、ポインタ、参照、または他のハンドルは、データオブジェクト内の子要素である。
i.この方法は、ヒープ内の未使用の記憶領域を管理することを必要とする。
ii.この方法が要求するデータ要素の管理および追跡は、多くの障害の原因である。
iii.この方法は、記憶空間の断片化、ならびにページフォルトおよびキャッシュミスの増加を招き、それによりシステムを遅くする。
iv.参照の局所性が保たれず、それにより効率の悪さを招く。
v.この方法は、使用できない記憶空間の領域を作成することになる。
vi.データをその最適な位置に記憶することは通常できない。
i.この方法は、ポインタを使用する必要なしに可変長データを記憶する能力を提供する。データオブジェクトは、可変数のデータ要素を含むことができる。データオブジェクトの長さは、都度異なり得る。データ要素のサイズは、固定される必要も等しい必要もない。
ii.この方法は、ネストされたデータオブジェクト内のデータの挿入および除去をサポートする。追加データの挿入をサポートするために、予備空間を確保する必要はない。
iii.この方法は、データ要素を、その最適な位置に記憶することをサポートする。
iv.この方法は、システムがより効率的に実行されることを可能にする。
v.この方法は、データを挿入しまたは除去した後でさえ、データ要素の直接アクセスを可能にする。
vi.この方法は、データ要素の名前またはインデックスにより、そのデータ要素にアクセスできるようにするのに有用である。
vii.断片化、ページフォルト、およびキャッシュミスが減る。データを挿入しまたは除去した後でさえ、参照の局所性が維持される。
viii.動的に割り当てられる記憶空間を維持し、または管理する必要がない。
ix.ヒープ内の使用できない記憶領域の問題が低減する。
x.この方法は、データ要素のデータタイプを修正するのに有用である。
xi.この方法は、欠落したデータ要素のデフォルト値を維持するのに有用である。
i.追加のデータを記憶するための、記憶ユニット内の論理アドレスを識別する。
ii.そのように識別した論理アドレスに追加のデータを記憶するために、記憶ユニット内に追加の記憶空間を挿入する。それにより、前述の論理アドレスを越えて記憶された1つまたは複数の既存のデータオブジェクトが、その既存の論理アドレスから、より高位の論理アドレスに移され得る。
iii.挿入した記憶空間の中に追加のデータを記憶し、それにより、追加のデータオブジェクトをシステム内に挿入し、またはデータオブジェクトの長さを増加させる。
iv.追加のデータオブジェクトは、他のデータオブジェクトの子オブジェクトとして挿入することもできる。データオブジェクトを子データオブジェクトとして挿入する場合、結果として親データオブジェクトの長さも増加する。
最も一般に使用される、使用される記憶ユニットは、データを効率的に挿入しまたは除去する能力を提供しない。概して、記憶ユニット内でデータを挿入しまたは除去するのにかかる時間は、挿入点または除去点より先の記憶ユニット内のデータの量に依存する。したがって、挿入点より先の記憶ユニット内のデータの量が多い場合、データを挿入するのにその分だけ多くの時間がかかる。このことは、データの挿入および除去を非実用的にする。これらの記憶ユニット内での挿入および除去操作は、O(n)程度であると言われ、ただしnは記憶ユニット内のデータ量である。
i.本出願人の発明(特許出願第PCT/IN2010/000259号明細書)では、ファイルシステムやメモリシステムなど、記憶ユニット内でデータを効率的に挿入し除去する記憶システムについて記載している。
ii.本出願人の発明(特許出願第PCT/IN2010/000641号明細書)では、可変サイズのページを使用し、仮想メモリシステム内でデータを効率的に挿入し除去する仮想メモリシステムについて記載している。
iii.Sinclair、Alan Welshによって記載された、フラッシュにより最適化されたファイルシステム(特許出願第PCT/UD2007/088165号明細書)は、フラッシュベースのファイルシステム内でデータを効率的に挿入しまたは除去する、ファイルシステムである。
iv.Simon Tathamによって記載されたカウントbツリー(counted b−tree)は、指定のインデックスにおいて、ソートされていないbツリー内で項目を挿入しまたは除去することをサポートする、bツリーデータ構造の一形態である(http://www.chiark.greenend.org.uk/〜sgtatham/algorithms/cbtree.html)。
i.本出願人の発明(上記の番号i.)の記憶ユニット(ファイルやメモリ領域など)は、データを記憶するためのいくつかの論理アドレスを提供する。この記憶ユニットは、データをその中に物理的に記憶する可変サイズの記憶ブロックのリストも含む。記憶ブロックは、予備容量も含むことができる。記憶ブロック内のアドレスは、論理アドレス空間にマップされる。記憶ブロック内のデータの論理アドレスは、先行する記憶ブロック内の使用済み容量によって決まる。
i.Lenフィールド202、および
ii.データ空間フィールド203
を含む。
i.ステップ301で、新たなレコードのサイズに等しい追加の記憶空間を記憶ユニット102内に挿入し、それにより、
a.挿入点以降にあるデータ処理システム102内の1つまたは複数の既存のデータオブジェクトがより高位のアドレスに移され、
b.データ空間フィールド303の長さが増加され、
ii.ステップ302で、Lenフィールドの値を更新し、
iii.ステップ303で、新たなデータ要素をデータ空間フィールド内に記憶する。
i.データタイプフィールド402、
ii.データ空間フィールド403、および
iii.データ要素404
を含む。
i.ステップ501で、新たなデータタイプをデータタイプフィールド内に記憶する。
ii.ステップ502で、新たなデータタイプの記憶要件を、データ空間フィールドに既に割り当てられた記憶空間の量と比較する。
iii.ステップ503で、新たなデータタイプの記憶要件がデータ空間フィールドの既存の長さを上回る場合、追加の記憶空間をデータ空間フィールド内に挿入し、それによりVTDOのサイズを増加させる。
iv.ステップ504で、新たなデータタイプの記憶要件がデータ空間フィールドの既存の長さを下回る場合、データ空間フィールド内の余分な記憶空間を除去し、それによりVTDOのサイズを減らす。
v.ステップ505で、新たなデータタイプに応じたデータ要素の値をデータ空間フィールド内に記憶する。
i.要素数フィールド702、
ii.データオブジェクトマネージャ703、
iii.データ空間フィールド707
を含む。
i.要素サイズフィールド704、
ii.データタイプフィールド705、および
iii.要素名フィールド706
を含む。
i.要素数フィールド内の値をゼロに設定すること、
ii.空の要素サイズフィールドを作成すること、
iii.空のデータタイプフィールドを作成すること、
iv.空の要素名フィールドを作成すること、および
v.空のデータ空間フィールドを作成すること
によって作成される。
i.ステップ801で、要素数フィールドの値をインクリメントし、
ii.ステップ802で、新たなデータ要素のサイズを示すために、所定のインデックスにおいて要素サイズフィールド内に整数値を挿入し、
iii.ステップ803で、新たなデータ要素のデータタイプを示すために、所定のインデックスにおいてデータタイプフィールド内にデータタイプ値を挿入し、
iv.ステップ804で、新たなデータ要素の名前を示すために、所定のインデックスにおいて要素名フィールド内に名前値を挿入し、
v.ステップ805で、新たなデータ要素のサイズに等しい記憶空間を、データ空間フィールド内の適切な位置に挿入し、それにより、
a.データ空間フィールドの長さが増加され、
b.挿入点以降にある既存のデータ要素がより高位のアドレスに移され、
iv.ステップ806で、ステップ805で挿入した記憶空間内に新たなデータ要素を記憶する。
i.ステップ901で、ネストされたデータオブジェクト内に追加のデータ要素を挿入することにより、ネストされたデータオブジェクトの長さを増加させる。その結果、ネストされたデータオブジェクトより先の、記憶ユニット内の1つまたは複数のデータオブジェクトが新たなアドレスに移される。次のステップは、ステップ902である。
ii.ステップ902で、データオブジェクトの長さをCO内の要素サイズフィールド内で更新する。次のステップは、ステップ903である。
iii.ステップ901および902の結果として、親データオブジェクトCOのサイズも修正される。ステップ903で、COが他のデータオブジェクト内にネストされている場合、ステップ902を実行することにより、COの新たな長さを、その親データオブジェクトの要素サイズフィールド内で更新する。さもなければ、次のステップは、ステップ904である。
iv.ステップ904で、ネストされたオブジェクト内にデータを挿入するプロセスは完全である。
i.CO内のデータオブジェクトマネージャでは、要素サイズフィールドの代わりに、要素アドレスフィールドを置き換えることができる。要素アドレスフィールドは、CO内に記憶されるデータ要素の相対アドレスを追跡する。
ii.データタイプフィールドを使用してデータタイプを追跡することができ、それによりデータ要素の長さを追跡することができる。そのような場合、要素サイズフィールドは必要でないことがある。
iii.各データ要素のデータタイプが同じであり、またさもなければ求めることができる場合、データタイプフィールドは必要でないことがある。
iv.データ要素に名前でアクセスする必要がない場合、要素名フィールドは必要でないことがある。
v.この方法は、欠落したデータ要素のデフォルト値を提供するよう、容易に向上させることができる。例えば、データオブジェクト内の欠落した要素のデフォルト値は、データオブジェクトのデータテンプレート内に規定することができる。
i.いくつかのデータオブジェクト1102、および
ii.仮想メモリ領域1103
を含む。
i.論理アドレス空間1104、
ii.ページのリスト1105、および
iii.メモリ管理ユニット1106
を含む。
i.ステップ1201で、対応するページテーブルエントリを「不存在」値で印付けすることにより、メモリ管理ユニット内のいくつかのページをマップ解除する。
ii.ステップ1202で、ページのリスト内に、適切なサイズの1つまたは複数の追加のページを挿入する。このことは以下の効果を有する。
a.リスト内の1つまたは複数の他のページをより高位の論理アドレスに移すこと、および
b.追加のデータを仮想メモリ領域内に挿入すること。
iii.ステップ1203で、対応するページテーブルエントリを「存在」値で印付けすることにより、リスト内の1つまたは複数のページを仮想メモリ領域にマップする。
i.いくつかのデータオブジェクト1302、および
ii.仮想メモリ領域1303
を含む。
i.論理アドレス空間1304、
ii.ページのリスト1305、
iii.メモリ管理ユニット1306、および
iv.ページスワッピング装置1307
を含む。
ii.
a.記憶ブロック内の予備容量を使用すること、または
b.1つまたは複数の追加の記憶ブロックを挿入することにより、ファイル内に追加の予備容量を挿入すること
により、ファイル内に追加の記憶空間を挿入し、
iii.1つまたは複数のページを論理アドレス空間にマップすること
により、仮想メモリ領域内にいくつかの追加のバイトを挿入することができる。
したがって、様々な実施形態のデータ処理システムを使用して、大きく複雑なデータオブジェクトを効率的に作成し、操作することができる。
Claims (14)
- データを処理するための方法であって、
a.データを記憶するためのいくつかの順次的な論理アドレスを含む記憶ユニットを提供するステップと、
b.前記記憶ユニット内に記憶される、いくつかの固定長または可変長のデータオブジェクトを提供するステップと、
c.前記記憶ユニット内の前記データを修正するステップであって、前記データの修正は
i.前記記憶ユニット内の所定の論理アドレスに追加の記憶空間を挿入することと、
ii.前記所定の論理アドレス以降に記憶されるいくつかのデータオブジェクトを、前記記憶ユニット内の新たな論理アドレスに再配置することと、
iii.必要な場合、前記記憶ユニット内に追加のデータを記憶することと、
iv.1つまたは複数のデータオブジェクトの前記新たなアドレスまたは新たな長さを追跡することと
によって特徴付けられる、ステップと
を含む、方法。 - 前記データの修正が、
a.前記記憶ユニット内への追加のデータオブジェクトの挿入、または
b.データオブジェクト内へのデータ要素の挿入、または
c.前記記憶ユニットからのデータオブジェクトの除去、または
d.ネストされたデータオブジェクトの、その親データオブジェクトからの除去、または
e.データオブジェクトの前記長さの修正、または
f.ネストされたデータオブジェクトの前記長さ、およびその親データオブジェクトの前記長さの修正、または
g.データオブジェクトのデータタイプの修正、または
h.データオブジェクトの再命名
の性質を帯びる、請求項1に記載の方法。 - 親データオブジェクトのその子データオブジェクトとの関係に加え、データオブジェクトの、前記記憶ユニット内の1つまたは複数の他のデータオブジェクトとの関係が表される、請求項1に記載の方法。
- 前記記憶ユニットが、仮想メモリ領域、またはファイル、またはアレイ、またはカウントツリー、または他のデータ構造である、請求項1に記載の方法。
- 前記所定の論理アドレス以降に記憶される一部のまたは全てのデータが、
a.前記データをコピーすることなしに、または
b.前記データにアクセスすることなしに
前記記憶ユニット内の新たな論理アドレスに再配置される、請求項1に記載の方法。 - a.前記記憶ユニットが、いくつかの物理アドレスをさらに含み、
b.前記物理アドレスの1つまたは複数が、前記記憶ユニット内の前記論理アドレスのうちの1つまたは複数に関連し、
c.前記所定の論理アドレス以降に記憶される一部のまたは全てのデータを、前記記憶ユニット内の新たな論理アドレスに再配置することが、
i.1つまたは複数の物理アドレスを、前記記憶ユニット内の1つまたは複数の論理アドレスから切り離し、
ii.前記1つまたは複数の物理アドレスを、前記記憶ユニット内の1つまたは複数の新たな論理アドレスに再び関連させること
によって行われる、請求項1に記載の方法。 - a.前記記憶ユニットが、1つまたは複数の記憶ブロックをさらに含み、
b.前記物理アドレスが、前記記憶ユニット内の1つまたは複数の記憶ブロック内に含まれる
請求項6に記載の方法。 - データを処理するための装置であって、
a.データを記憶するためのいくつかの順次的な論理アドレスを含む記憶ユニットと、
b.前記記憶ユニット内に記憶される、いくつかの固定長または可変長のデータオブジェクトと、
c.前記記憶ユニット内の前記データを修正するための装置であって、前記データの修正は
i.前記記憶ユニット内の所定の論理アドレスへの追加の記憶空間の挿入、
ii.前記所定の論理アドレス以降に記憶されるいくつかのデータオブジェクトの、前記記憶ユニット内の新たな論理アドレスへの再配置、
iii.必要な場合、前記記憶ユニット内への追加のデータの記憶、および
iv.1つまたは複数のデータオブジェクトの前記新たなアドレスまたは新たな長さの追跡
によって特徴付けられる、装置と
を含む、装置。 - 前記データの修正が、
a.前記記憶ユニット内への追加のデータオブジェクトの挿入、または
b.データオブジェクト内へのデータ要素の挿入、または
c.前記記憶ユニットからのデータオブジェクトの除去、または
d.ネストされたデータオブジェクトの、その親データオブジェクトからの除去、または
e.データオブジェクトの前記長さの修正、または
f.ネストされたデータオブジェクトの前記長さ、およびその親データオブジェクトの前記長さの修正、または
g.データオブジェクトのデータタイプの修正、または
h.データオブジェクトの再命名
の性質を帯びる、請求項8に記載の装置。 - 親データオブジェクトのその子データオブジェクトとの関係に加え、データオブジェクトの、前記記憶ユニット内の1つまたは複数の他のデータオブジェクトとの関係が維持される、請求項8に記載の装置。
- 前記記憶ユニットが、仮想メモリ領域、またはファイル、またはアレイ、またはカウントツリー、または他のデータ構造である、請求項8に記載の装置。
- 前記所定の論理アドレス以降に記憶される一部のまたは全てのデータが、
a.前記データをコピーすることなしに、または
b.前記データにアクセスすることなしに
前記記憶ユニット内の新たな論理アドレスに再配置される、請求項8に記載の装置。 - a.前記記憶ユニットが、いくつかの物理アドレスをさらに含み、
b.前記物理アドレスの1つまたは複数が、前記記憶ユニット内の前記論理アドレスのうちの1つまたは複数に関連し、
c.前記所定の論理アドレス以降に記憶される一部のまたは全てのデータを、前記記憶ユニット内の新たな論理アドレスに再配置することが、
i.1つまたは複数の物理アドレスを、前記記憶ユニット内の1つまたは複数の論理アドレスから切り離し、
ii.前記1つまたは複数の物理アドレスを、前記記憶ユニット内の1つまたは複数の新たな論理アドレスに再び関連させること
によって行われる、請求項8に記載の装置。 - a.前記記憶ユニットが、1つまたは複数の記憶ブロックをさらに含み、
b.前記物理アドレスが、前記記憶ユニット内の1つまたは複数の記憶ブロック内に含まれる
請求項13に記載の装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN2846CH2009 | 2010-05-19 | ||
IN2846/CHE/2009 | 2010-05-19 | ||
PCT/IN2011/000344 WO2011145114A2 (en) | 2010-05-19 | 2011-05-18 | Composition of data objects |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014504381A true JP2014504381A (ja) | 2014-02-20 |
Family
ID=44511140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013510730A Pending JP2014504381A (ja) | 2010-05-19 | 2011-05-18 | データオブジェクトの構成 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9047175B2 (ja) |
EP (1) | EP2572283A2 (ja) |
JP (1) | JP2014504381A (ja) |
CN (1) | CN103124959A (ja) |
CA (1) | CA2800843A1 (ja) |
WO (1) | WO2011145114A2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8838931B1 (en) * | 2012-03-30 | 2014-09-16 | Emc Corporation | Techniques for automated discovery and performing storage optimizations on a component external to a data storage system |
US9110680B1 (en) * | 2013-03-14 | 2015-08-18 | Amazon Technologies, Inc. | Avoiding or deferring data copies |
RU2610587C2 (ru) * | 2014-09-16 | 2017-02-13 | Общество С Ограниченной Ответственностью "Яндекс" | Способ пространственного хранения объекта посредством гибкой иерархической структуры и постоянный носитель информации |
US9766808B1 (en) * | 2014-11-20 | 2017-09-19 | Medallia, Inc. | Expanding variable sub-column widths as needed to store data in memory |
US10055162B2 (en) * | 2015-10-30 | 2018-08-21 | Netapp, Inc. | Using a tree-based data structure to map logical addresses to physical addresses on a storage device |
US11113190B2 (en) * | 2016-11-11 | 2021-09-07 | Microsoft Technology Licensing, Llc | Mutable type builder |
CN106936820B (zh) * | 2017-03-06 | 2020-12-25 | 桂林电子科技大学 | 数据变长修改方法及其在大数据加密中的应用 |
CN113392133A (zh) * | 2021-06-29 | 2021-09-14 | 浪潮软件科技有限公司 | 一种基于机器学习的数据智能识别的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6279548A (ja) * | 1985-10-02 | 1987-04-11 | Sekisui Chem Co Ltd | 記憶装置 |
JP2010515162A (ja) * | 2006-12-26 | 2010-05-06 | サンディスク コーポレイション | 連続論理アドレス空間インターフェイスを備えるダイレクトデータファイルシステムの使用 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000057276A1 (en) * | 1999-03-25 | 2000-09-28 | Excelon Corporation | Method and apparatus for pointer relocation optimization for virtual memory mapping and transaction management in a database system |
US7343452B2 (en) * | 2004-03-31 | 2008-03-11 | Kabushiki Kaisha Toshiba | Apparatus for direct access to only specific lower hierarchy data in a nest structure |
US7386663B2 (en) * | 2004-05-13 | 2008-06-10 | Cousins Robert E | Transaction-based storage system and method that uses variable sized objects to store data |
US20070005874A1 (en) * | 2005-07-01 | 2007-01-04 | Dan Dodge | File system storing transaction records in flash-like media |
CN100418090C (zh) * | 2005-08-31 | 2008-09-10 | 国际商业机器公司 | 一种存储数据的方法 |
US7917723B2 (en) * | 2005-12-01 | 2011-03-29 | Microsoft Corporation | Address translation table synchronization |
US7739444B2 (en) * | 2006-12-26 | 2010-06-15 | Sandisk Corporation | System using a direct data file system with a continuous logical address space interface |
JPWO2009096180A1 (ja) * | 2008-01-30 | 2011-05-26 | パナソニック株式会社 | メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム |
CA2758235A1 (en) * | 2009-04-27 | 2010-11-04 | Kamlesh Gandhi | Device and method for storage, retrieval, relocation, insertion or removal of data in storage units |
US8478799B2 (en) * | 2009-06-26 | 2013-07-02 | Simplivity Corporation | Namespace file system accessing an object store |
EP2529309A2 (en) * | 2009-09-25 | 2012-12-05 | Kamlesh Gandhi | Virtual-memory system with variable-sized pages |
-
2011
- 2011-05-18 US US13/698,607 patent/US9047175B2/en not_active Expired - Fee Related
- 2011-05-18 WO PCT/IN2011/000344 patent/WO2011145114A2/en active Application Filing
- 2011-05-18 EP EP11738495.8A patent/EP2572283A2/en not_active Withdrawn
- 2011-05-18 CN CN2011800346786A patent/CN103124959A/zh active Pending
- 2011-05-18 JP JP2013510730A patent/JP2014504381A/ja active Pending
- 2011-05-18 CA CA2800843A patent/CA2800843A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6279548A (ja) * | 1985-10-02 | 1987-04-11 | Sekisui Chem Co Ltd | 記憶装置 |
JP2010515162A (ja) * | 2006-12-26 | 2010-05-06 | サンディスク コーポレイション | 連続論理アドレス空間インターフェイスを備えるダイレクトデータファイルシステムの使用 |
Also Published As
Publication number | Publication date |
---|---|
US20130073830A1 (en) | 2013-03-21 |
EP2572283A2 (en) | 2013-03-27 |
WO2011145114A3 (en) | 2012-03-08 |
WO2011145114A2 (en) | 2011-11-24 |
CN103124959A (zh) | 2013-05-29 |
US9047175B2 (en) | 2015-06-02 |
CA2800843A1 (en) | 2011-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2014504381A (ja) | データオブジェクトの構成 | |
US10649910B2 (en) | Persistent memory for key-value storage | |
JP5647252B2 (ja) | メモリ管理装置及び仮想メモリ領域を提供する方法 | |
US6895418B1 (en) | Versatile indirection in an extent based file system | |
US6654772B1 (en) | Multi-volume extent based file system | |
US20120042146A1 (en) | Device and method for storage, retrieval, relocation, insertion or removal of data in storage units | |
US7496586B1 (en) | Method and apparatus for compressing data in a file system | |
US9086820B2 (en) | System and methods for managing storage space allocation | |
KR101289931B1 (ko) | 다양한 블록 크기를 지원하는 주소 사상을 사용하여 플래시 메모리 내에 데이터를 저장하는 방법 및 장치 | |
KR101467589B1 (ko) | 데이터 구조를 가지는 하나 이상의 장치 판독가능 매체, 및장치 실행가능 명령어를 구비한 하나 이상의 장치 판독가능 매체 | |
US7415653B1 (en) | Method and apparatus for vectored block-level checksum for file system data integrity | |
US6697795B2 (en) | Virtual file system for dynamically-generated web pages | |
US7225314B1 (en) | Automatic conversion of all-zero data storage blocks into file holes | |
TW200900930A (en) | Hierarchical immutable content-addressable memory processor | |
JP2015512604A (ja) | 暗号ハッシュ・データベース | |
US20090182785A1 (en) | Multi-Way Checkpoints in a Data Storage System | |
US7499961B2 (en) | Method and apparatus for limiting the size and facilitating maintenance of remembered sets in a space incremental garbage collector | |
US7424574B1 (en) | Method and apparatus for dynamic striping | |
JP3796391B2 (ja) | 多用途な間接指定又は複数ボリュームを有するエクステント・ベース・ファイルシステム | |
Chen et al. | KVFTL: Optimization of storage space utilization for key-value-specific flash storage devices | |
JP6006740B2 (ja) | インデックス管理装置 | |
Golovin | B-treaps: A uniquely represented alternative to B-trees | |
US9753850B1 (en) | On-heap huge slab allocator | |
KR20100078450A (ko) | 플래시 메모리 장치 및 플래시 메모리 장치에서의 메모리 관리 방법 | |
JP3846614B2 (ja) | 記憶領域管理装置および記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140516 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150306 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150408 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150707 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150807 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150907 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151008 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151125 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20160225 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20160323 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20160422 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20160901 |