[go: up one dir, main page]

JP2013509658A - 将来の使用推量に基づく記憶メモリの割り当て - Google Patents

将来の使用推量に基づく記憶メモリの割り当て Download PDF

Info

Publication number
JP2013509658A
JP2013509658A JP2012537149A JP2012537149A JP2013509658A JP 2013509658 A JP2013509658 A JP 2013509658A JP 2012537149 A JP2012537149 A JP 2012537149A JP 2012537149 A JP2012537149 A JP 2012537149A JP 2013509658 A JP2013509658 A JP 2013509658A
Authority
JP
Japan
Prior art keywords
file
storage memory
storage
memory space
allocation
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
JP2012537149A
Other languages
English (en)
Inventor
ベックマン,チャールズ・イー
カドルビ,リチャード
クアン,ゲイリー
ジェンセン,クレイグ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Condusiv Technologies Corp
Original Assignee
Condusiv Technologies 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 Condusiv Technologies Corp filed Critical Condusiv Technologies Corp
Publication of JP2013509658A publication Critical patent/JP2013509658A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1727Details of free space management performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1004Defragmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

記憶メモリスペースを割り当てるための方法が提供される。方法は、現在のサイズのファイルのための記憶メモリの割り当て要求を受け取るステップと、少なくともファイルに関連付けられた特定の属性に基づき、ファイルの現在のサイズとは異なるファイルの将来のサイズを推量するステップと、ファイルの将来のサイズに基づいてファイルの記憶のための記憶メモリスペースの割り当てを引き起こすステップとを含む。

Description

発明の分野
本発明は、記憶メモリの割り当てまたは確保に関する。より具体的には、本発明は、ファイルの将来のサイズについての推量に基づいたファイル用の記憶メモリの割り当てまたは確保に関する。
背景
コンピュータシステムにおけるデータの断片化または空きスペースの断片化は、一般に記憶容量の減少および性能の低下などの非効率を招く。
断片化は、既に記憶されたファイルが変更され、変更されたファイルを同じ記憶メモリアドレスにおいて記憶するための連続した記憶メモリスペースが十分でない場合に起こり得る。この場合、変更されたファイルは断片化され得て、変更されたファイルの一部は異なる場所に記憶され得る。代替的に、変更されたファイルを記憶するために、変更されたファイルの全体を十分な連続した記憶メモリスペースを有する異なる記憶メモリアドレスに移動させなければならない可能性があり、これによって、入力/出力(I/O)の非効率が起こる。
ファイル自体が断片化されなくとも、関連するファイルを別個に記憶することによっても非効率が起こり得る。例えば、回転プラッタドライブにおいて、概して併せてアクセスされる2つのファイルが異なる2つの記憶メモリスペースに配置されると、2つのファイルの読み取りおよび/または書き込みに際し、一方の記憶メモリスペースから他方の記憶メモリスペースへの読み取り/書き込みヘッドの移動に遅れが生じ得る。
この箇所に記載されているアプローチは、追求することができるアプローチであるが、以前に着想または追求されたアプローチであるとは限らない。したがって、他に示されない限り、この箇所に記載されるいずれのアプローチも、単にこの箇所に含まれるからといって先行技術とみなされるべきではない。
本発明は、添付の図面において、限定としてではなく例として示され、類似の構成要素に対しては同様の参照番号が付与される。
1つ以上の実施例による、記憶メモリの割り当てのための例示的なシステムを示す図である。 1つ以上の実施例による、記憶メモリスペースの割り当てをもたらすフロー図である。 1つ以上の実施例による、記憶メモリスペースの割り当てをもたらすフロー図である。 1つ以上の実施例の実施に使用され得るコンピュータシステムのブロック図である。
詳細な説明
以下の詳細な説明においては、説明を目的として、本発明について十分に理解するための具体的な詳細をいくつか記載する。しかし、本発明はこれらの具体的な詳細がなくとも実施することができることは明らかである。他の例において、本発明が不必要に不明確となることを回避するために、公知の構造および装置はブロック図の形態で示される。
以下では、いくつかの特徴が記載され、これらの特徴はそれぞれ互いに独立して使用することができ、またはこれらの特徴と他の特徴とを組み合わせて使用することもできる。しかし、個々の特徴が上述の問題点に対処しない、または上述の問題のうちの1つしか対処しない場合もある。上述の問題点の一部は、ここに記載される特徴のいずれによっても完全に解決されない場合がある。見出しが付されているが、特定の見出しに関連しながらも、その見出しを有するセクションに見つからない情報は、本明細書中の他の箇所に見つけることができる場合がある。
概略
1つ以上の実施例において、1つのファイルに記憶メモリを割り当てる方法が記載される。本方法においては、ファイルの将来のサイズを推量し、ファイルの現在のサイズの代わりにファイルの将来のサイズに基づいて、ファイルを記憶するための記憶メモリスペースが割り当てられる。ファイルの将来のサイズは、記憶されているファイルの1つ以上の属性を有するファイルに関連付けられたパターンに基づいて、推量される。
1つ以上の数の実施例において、複数のファイルのための記憶メモリを割り当てる方法が記載される。本方法においては、第一のファイルのための記憶メモリ割り当て要求を受け取り、第一のファイルに関連する第二のファイルのための将来の割り当て要求を予測する。第二のファイルのための将来の割り当て要求の予測に基づき、第一のファイルおよび第二の関連するファイルの両方を記憶するための記憶メモリスペースが割り当てられる。第一のファイルおよび第二の関連するファイルに対しては、連続した記憶メモリスペースが割り当てられる。
方法ステップを実行する具体的な構成要素がここに記載されているが、他の実施例においては、これらの具体的な構成要素に代わって、エージェントまたは機構が方法ステップを実行してもよい。本発明は単一のシステムの構成要素に関して記載されているが、本発明は複数のシステムに分散した構成要素を利用して実施することができる。
本発明の実施例は、ここに記載される方法ステップを実行するための手段を有するいかなるシステムをも含む。本発明の実施例は、コンピュータ読み取り可能な媒体とこの媒体に記憶される指示とを含み、指示が実行されると、ここに記載される方法ステップが実行される。
システムアーキテクチャ
具体的なシステムアーキテクチャがここに記載されるが、本発明の他の実施例は、ファイルの配置に使用することができるいかなるアーキテクチャにも適用することができる。図1は、1つ以上の実施例による、記憶メモリの割り当てのための例示的なシステム(100)を示す。図1に示されるように、システム(100)は、記憶メモリ管理エンジン(108)と、記憶ドライバ(112)と、1つ以上の記憶リポジトリ(114)とを含む。ここには示されていないが、システム(100)は、1つ以上の実施例の実施に使用することができる他の構成要素を含んでもよい。これらの構成要素の各々は、同じ装置、または有線および/もしくは無線セグメントによってネットワーク(例えば、インターネット、イントラネット、エクストラネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)など)で接続された別個の装置、または他の手段によって接続された別個の装置に配置してもよい。本発明の1つ以上の実施例において、システム(100)は、クライアント−サーバトポロジを使用して実施することができる。システムは、さらに1つ以上のインターフェースを使用して他のマシンからアクセスすることができる。本発明の1つ以上の実施例において、システムは、1人以上のユーザによって、インターネットのようなネットワーク接続を介してアクセスすることができる。システムによって提供される情報および/またはサービスは、ネットワーク接続を介して記憶またはアクセスすることができる。
ファイル属性および環境属性
ファイル(104)は、記憶レポジトリ(114)に記憶されるいかなるデータをも概して示す。ファイル(104)は、システムファイル、アプリケーションファイル、データファイル、および/もしくは他のファイル、または情報の単一の集合体として論理的に考慮されるデータの集合であってもよい。ファイル(104)は、仮想記憶メモリスペース(物理的記憶メモリ)への記憶のために受け取られる、仮想システム上のファイルであってもよい。
一実施例において、ファイル(104)は、1つ以上の属性に関連付けられる。ファイルに関連付けられる属性は、ファイル属性(106)や環境属性(110)などを含んでもよい。ファイル属性(106)は、概してファイルの特徴を示す。例えば、ファイル(104)のファイル属性(106)は、ファイルの種類であってもよい。ファイルの種類の例としては、実行可能ファイル、データファイル、画像ファイル、ビデオファイル、テキストファイル、システムファイル、設定ファイル、デベロッパファイル、または他の考えられるファイル種類が含まれる。ファイルに関連付けられたファイルの種類は、例えばビットマップ画像ファイルまたはJPEG画像ファイルのような特定の種類でもよく、ファイルに関連付けられたファイルの種類は、画像カテゴリ(ビットマップ画像ファイルおよびJPEG画像ファイルを含む)のようなファイルのカテゴリであってもよい。
ファイル属性(106)は、ファイルのクラス分類またはカテゴリ分類を含んでもよい。例えば、起動処理において限定的に使用されるファイルを起動ファイルとして分類してもよい。一実施例において、ファイル属性はファイルの作成後に変化する。例えば、ファイルに関連付けられたユーザが変化したり、ファイルの内容が変化してもよい。
ファイル属性(106)の他の例としては、ファイルの以前の使用を含んでもよい。ファイルの以前の使用に関する属性は、ファイルを所有/制御する処理、ファイルの記憶またはファイルへのアクセスを要求するアプリケーション、ファイルに関連付けられたアクセス頻度、ファイルを共有したまたは現在共有している処理の回数、ファイルに関連付けられたユーザ、ファイルに含まれる内容もしくは情報、ファイルの古さ、ファイルに関連付けられた他のファイルの数/サイズなどを示しても良い。
一実施例において、ファイル(104)は、環境属性(110)である属性に関連付けられる。環境属性(110)は、ファイルが記憶される環境、アクセスされる環境、変更される環境、実行される環境などに関連付けられた特徴を概して表わす。環境属性(110)の例としては、ファイル(104)が記憶されている、または記憶される記憶レポジトリ(114)の空き記憶メモリスペースが含まれる。環境属性(110)の他の例としては、ファイルを管理するオペレーティングシステムであってもよい。環境属性(110)は、ファイルにアクセスするコンピュータシステムが配置される世界の地理的領域を含んでもよい。環境属性(110)は、使用背景を含んでもよい。例えば、環境属性(110)は、教育目的のために学生によって、または専門的目的のために従業員によって、ファイルがアクセスまたは変更されているかどうかなどを示してもよい。環境属性(110)は、ファイル(104)を管理するコンピュータシステムにアクセスしているユーザの数またはファイル(104)を変更する許可を得たユーザの数などを含んでもよい。環境属性(110)は、ファイル(104)に関連付けられた環境の他の特徴を含んでもよい。
属性パターン
一実施例において、ファイル(104)は、1つ以上の共通の属性(例えば、ファイル属性(106)や環境属性(110)など)に基づいてグループ化される。特定の属性を有するファイル(104)のグループに関連付けられた統計値は、属性と関連付けられた属性パターン(102)を識別するために使用される。属性パターン(102)は、統計値から導き出されたデータを概して含む。属性パターン(102)は、統計値に基づいて計算を実行したり、統計値のパターンを検出するなどによって定められたデータを含んでもよい。ファイル(104)のグループと関連付けられた全ての統計値、またはファイル(104)のグループと関連付けられた統計値の一部を使用してパターンを検出してもよい。例えば、統計値のパターンを検出する前に、異常値またはある組のデータとは実質的に異なるデータポイントを破棄してもよい。
一実施例において、属性パターン(102)は、サイズに基づく統計値を参照してもよい。特定の属性を有するファイルのセットの各ファイルのサイズがモニタリングされる。時間またはファイルへのアクセス数に対する特定のファイルのサイズがモニタリングされる。例えば、ファイルのグループ内の各ファイルのサイズが、ファイルの作成時およびファイルへの書き込みアクセスが二度行われた後にモニタリングされる。つぎに、ファイルのセットの各ファイルについて、二度の書き込みアクセス後のファイルのサイズから作成時のファイルのサイズを引くことにより、ファイルのサイズの実際の変化が定められる。各ファイルのファイルサイズのパーセント変化は、ファイルサイズの変化を作成時のファイルサイズで割ることにより定められる。ファイルのセットにおける実際の変化の平均、またはファイルのセットのパーセント変化の平均が定められる。特定の属性を有するファイルのセットに対応する属性パターン(102)は、平均変化を示すデータを含んでもよい。例えば、属性パターン(102)は、対応するファイルのセットの平均値に基づいた、ファイル作成時からのxバイトまたはyパーセントの予期されるサイズ増加を示すデータを含んでもよい。対応するファイルのセットの平均値の代わりに、最頻値または他の統計計算を使用して属性パターン(102)を定めてもよい。
一実施例において、ファイルサイズに基づいた属性パターン(102)は、サイズ範囲を示すデータを含む。例えば、ファイルのセットのファイルの中でモニタリングされた最も小さいファイルサイズの増加は10パーセントであるのに対して、ファイルのセットのファイルの中でモニタリングされた最も大きいファイルサイズの増加は25パーセントであってもよい。この例においては、増加の範囲は10パーセントから25パーセントである。予期される増加の属性パターン(102)は、ファイルの作成時(または他の特定の時間)から10パーセントから25パーセントの範囲であることを規定するデータを含む。
一実施例において、属性パターン(102)は、特定の属性を有するファイルのセットの最大のファイルサイズを示すデータを含む。属性パターン(102)は、ファイルの作成後にファイルが最大のファイルサイズに達するのに要する平均時間を示すデータを含んでもよい。属性パターン(102)は、各ファイルが最大ファイルサイズに達するまでに行われた変更回数の平均を示すデータを含んでもよい。
一実施例において、属性パターン(102)は、特定の属性を有するファイルのセット(104)の記憶メモリ割り当て要求パターンをいう。例えば、特定の処理によって所有されるファイルを記憶するための第一の記憶メモリ割り当て要求の次に、関連ファイルの記憶のための第二の記憶メモリ割り当て要求が行われる場合、属性パターン(102)は、第一の記憶メモリ割り当て要求から所定の時間内に、特定の処理が第二の記憶メモリ割り当て要求を出すことを示すデータを含んでもよい。第二の記憶メモリ割り当て要求は、第一の記憶メモリ割り当て要求の後のいかなる記憶メモリ割り当て要求を指してもよい。属性パターン(102)は、所定の処理にあるファイルのために使用される記憶メモリスペースの合計のパターンを指してもよい。属性パターン(102)は、処理またはアプリケーションによる初期の記憶メモリ使用を示すデータ、および処理またはアプリケーションによる後続のまたは最大の記憶メモリ使用を示すデータを含んでもよい。他の一実施例において、属性パターン(102)は、特定の属性を有するファイルのグループにおいて概して行われるアクションを指してもよい。例えば、属性パターンは、Unix(登録商標)オペレーティングシステムが実行されるシステムまたはアプリケーションXにおいて特定の処理にあるシステムにおいて、特定の起動ファイル上で「作成、アクセス、変更、変更、アクセス」の動作が概して行われることを示すデータを含んでもよい。各動作は、対応するファイルサイズの変化に関連付けられてもよい。
一実施例において、属性パターン(102)は、ファイルのセットのファイルアクセス順序を指してもよい。たとえば、ファイルB、C、R、GおよびEが、この特定の順序で、またはほぼ同時に繰り返しアクセスされる場合、属性パターン(102)は、ファイルアクセス順序を示すデータを含んでもよい。この例において、ファイルB、C、R、G、およびEに共通の属性は、共通の所有者処理であること、またはファイルの全てが単に同じアクセス順序の一部であることである。ここに記載した例において、特定の属性(例えば、ファイルの種類)を示したが、本発明の実施例は、ファイルに関連付けられるいかなる属性にも適用することができる。したがって、属性パターン(102)は、ファイルに関連付けられるいかなる属性(例えば、ファイル属性(106)、環境属性(110)など)にも識別されることができる。
一実施例において、複数の属性パターン(102)を特定の属性に関連づけてもよく、複数の属性を特定の属性パターン(102)に関連付けてもよい。例えば、特定の処理によって所有されるファイルのセット(104)は、共有の統計値を識別するためにモニタリングされる。共有の統計値は、(1)ファイルのセットが平均して最初の作成から40%増加したこと、および(2)特定の処理によって最初に作成されたファイルは短い期間内に消去され、その後に特定の処理によって作成されたファイルは消去されないことを示す。ファイルのセット(104)の第一の属性パターン(102)は、最初の作成から平均してサイズが40%増加したことを示すデータを含んでもよい。同じファイルの組の第二の属性パターン(102)は、特定の処理の初期化からx分以内に特定の処理によって作成されたファイルは一時ファイルであり、処理によってx分が経過した後に作成されたファイルは長い期間保持されることを示すデータを含んでもよい。第二の属性パターン(102)は、他の処理によって作成されたファイルの第二の組(たとえば、他の属性を有するファイルの第二の組)に適用してもよい。
記憶レポジトリ
記憶レポジトリ(114)は、ファイルを記憶することができる記憶場所を有する1つ以上の記憶装置を概して示す。記憶レポジトリ(114)は、部分的にシステム(100)に直接的に接続してもよく、ネットワーク(116)または他の適切なインターフェースを介して接続してもよい。記憶レポジトリ(114)は、当該技術において知られるいかなる種類の記憶装置を含んでもよい。例えば、記憶レポジトリ(114)は、従来の回転プラッタドライブ、半導体ドライブ(SSD)、従来の回転プラッタドライブとSSDとのハイブリッド、ストレージエリアネットワーク(SAN)のような別個の記憶システム、ネットワーク接続ストレージ(NAS)装置、または記憶部として機能するがランダムアクセスメモリ(RAM)によって構成されるRAM装置を含んでもよい。さらに、記憶レポジトリ(114)内の各記憶装置は、異なる種類の記憶場所を含んでもよい。例えば、記憶レポジトリ(114)内のSSDは、シングルレベルセル(SLC)、マルチレベルセル(MLC)、またはこれらの組み合わせのような、異なるセルを含んでもよい。これにより、システム(100)の記憶部のために用意された記憶レポジトリ(114)内の記憶場所は、単一の記憶装置、または異なる記憶装置において様々な構成を有する複数の記憶装置に置くことができる、あるいは単一の記憶装置内にも置くことができる。
記憶ドライバ
一実施例において、記憶ドライバ(112)は、記憶メモリ管理エンジン(108)から直接的または間接的に受け取る一組の指示に基づいて、記憶レポジトリ(114)にファイルを記憶したり、記憶レポジトリ(114)内のファイルを検索したりする。例えば、記憶メモリ管理エンジン(108)は、ファイル(104)およびファイルを記憶するための記憶場所をファイルシステムに提供し、その後、ファイルシステムは記憶ドライバ(112)に指示を転送する。記憶ドライバ(112)が受け取る指示は、単に記憶装置を特定する。この場合、記憶ドライバ(112)は、記憶装置内のどこにファイルを記憶するかを定める。この指示は、記憶装置の領域、記憶装置上の具体的な記憶場所、記憶レポジトリ、または記憶レポジトリ内の場所を特定してもよい。
一実施例において、記憶ドライバ(112)は、ファイル(104)の将来のサイズの推量(または予測)を得るように構成されている。例えば、記憶ドライバ(112)は、ファイル(104)の将来のサイズの推量を算出してもよく、または記憶メモリ管理エンジン(108)やファイルシステムなどからファイル(104)の将来のサイズの推量を取得してもよい。記憶ドライバ(112)は、ファイルの将来のサイズに基づいて、どのくらいの記憶スペースを割り当てるかについて定めてもよく、将来のファイルのサイズに基づいて、どのくらいの記憶スペースを割り当てるかについての情報を記憶メモリ管理エンジン(108)やファイルシステムなどから取得してもよい。
記憶メモリ管理エンジン
一実施例において、システム(100)内の記憶メモリ管理エンジン(108)は、属性パターン(102)を識別するように構成され得たソフトウェアおよび/またはハードウェアを概して表わす。記憶メモリ管理エンジン(108)は、論理的にアプリケーション/オペレーションシステムとファイルシステムとの間、またはファイルシステムと記憶ドライバ(112)との間に適用してもよい。記憶メモリ管理エンジン(108)は、ファイルシステムのコンポーネントとして適用してもよい。記憶メモリ管理エンジン(108)は、1つ以上のサーバで実行されるアプリケーションであってもよく、いくつかの実施例においては、ピアツーピア型アプリケーション、または単一のコンピュータシステム(たとえば、パーソナルコンピュータ、携帯機器、キオスク、車載コンピュータ、または記憶装置を有する他のシステム)に駐在させてもよい。
一実施例において、記憶メモリ管理エンジン(108)は、特定の属性(例えば、ファイル属性(106)や環境属性(110))を有する1つ以上のファイル、または属性の特定の組み合わせをモニタリングし、特定の属性または属性の特定の組み合わせと関連づけられた属性パターン(102)を識別するように構成されている。ファイル(104)は、記憶メモリ管理エンジン(108)がファイル(104)の実際のサイズを定期的に確認し、時間の関数として実際のサイズを記録することによってモニタリングされ得る。ファイル(104)は、ファイル(104)に変更が加えられる度にファイルのサイズを記録することによってモニタリングしてもよい。一実施例において、ファイルのサイズは、ファイル(104)がアクセスされた回数の関数としてモニタリングしてもよい。例えば、ファイル(104)へのアクセス回数(例えば、5回目のアクセス、9回目のアクセス、120回目のアクセスなど)に対するファイルのサイズを示すデータを取得してもよい。一実施例において、実際のファイルのサイズに加え、または実際のファイルのサイズに替えて、ファイルのサイズの変化をモニタリングして記録してもよい。ファイルのサイズの変化は、ファイルサイズのパーセント変化または絶対変化を含んでもよい。ファイルサイズの変化は、以前に記録されたファイルサイズ、またはファイル(104)が最初に作られた時の元のファイルのサイズと比較してモニタリングおよび記録してもよい。
一実施例において、記憶メモリ管理エンジン(108)は、属性に関連付けられたファイル(104)に基づいた属性の属性パターン(102)を識別する。例えば、起動処理において特定のアプリケーションによって使用されるログファイル全体の中から共通のパターンを検出する。共通の検出パターンは、各ログファイルが作られ、その後の起動処理の間に変更され、ログファイルのファイルサイズが最初の作成と比して二倍となるようなパターンである。この例において、ログファイルの共通の属性は、特定のアプリケーションとの関連付けである。記憶メモリ管理エンジン(108)は、属性と関連付けられた属性パターン(102)を識別し、この属性は、起動処理において特定のアプリケーションによって使用されるログファイルのサイズが起動処理の間に最初の作成と比して二倍となったことを示すデータを含む。起動処理において特定の処理によって使用されるログファイルの特定の閾値または割合のパターンを識別することで、パターンを属性パターン(102)として識別してもよい。
一実施例において、記憶メモリ管理エンジン(108)は、図2を参照して以下に記載するように、ファイル(104)の将来のサイズに基づいてファイル(104)の記憶のための記憶メモリスペースを割り当てる論理を含む。一実施例において、図3を参照して以下に記載されるように、記憶メモリ管理エンジン(108)は、第一のファイルのための記憶メモリ割り当て要求を受け取り、第二のファイルを記憶するための記憶メモリスペースを割り当てまたは確保を行う。ここでは、具体的な構成要素が特定の動作を行うように記載されているが、本発明の実施例は、ここに記載される(または記載されていない)動作を行ういかなる構成要素を含む。
ファイルの将来のサイズに基づいた記憶メモリスペースの割り当て
図2は、本発明の1つ以上の実施例による記憶メモリスペースの割り当てを行うためのフロー図を示す。1つ以上の実施例において、以下に記載される1つ以上のステップは、省略してもよく、または繰り返しで実行、および/または異なる順序で実行してもよい。したがって、図2に示されるステップの具体的な配列は、本発明の範囲を限定するものとして解釈されるべきではない。
一実施例において、現在のサイズのファイルを記憶するための要求を受け取る(ステップ202)。ファイルを記憶するための要求は、アプリケーションまたはオペレーティングシステムによってファイルが最初に作られた時にファイルを最初に記憶するためのものであってもよい。ファイルを記憶するための要求は、以前に記憶されたファイルの変更を記憶するためであってもよい。一実施例において、現在のサイズは、これから記憶されるファイルのサイズに対応する。変更されたファイルを記憶するための要求を受け取ると、現在のサイズは、記憶されている変更後のファイルのサイズに対応する。
一実施例において、ファイルに関連づけられた属性パターンが識別される(ステップ204)。属性パターンは、まずファイルに関連する1つ以上の数の属性を識別することにより識別してもよい。例えば、ファイルの種類、ファイルを所有する処理/アプリケーション、ファイルが記憶される環境、またはここに記載される他の属性を識別してもよい。つぎに、ファイルの1つ以上の属性に関連付けられた属性パターンが識別される。例えば、属性パターンを識別するために、属性を属性パターンと合致させるテーブルの問い合わせを行ってもよい。一実施例において、ファイルの記憶のための要求を受ける前に属性パターンは知られていなくてもよい。この場合、記憶されているファイルに関連付けられた属性が一度識別されると、同じ属性に関連付けられた他のファイルが識別される。つぎに、他のファイルを解析して属性パターンを定めてもよい。一実施例において、属性パターンは、他の組のファイルの各ファイルの最大のサイズ、または他の組のファイルの各ファイルの最大サイズの平均値または最頻値を含んでもよい。
一実施例において、属性パターンに基づいて、ファイルの将来のサイズが算出(推量)される(ステップ206)。ファイルの将来のサイズは、所定回数の変更後のファイルのサイズ、所定時間後のファイルのサイズ、ファイルが増大し得る最大のサイズなどに対応してもよい。例えば、特定の属性に関連付けられたファイルの将来のサイズは、同じ特定の属性に関連付けられた他の組のファイルの各ファイルの最大サイズに基づいて計算してもよい。記憶されているファイルの将来のサイズ(例えば、将来の最大サイズ)は、他のファイルのモニタリングされた最大のサイズの平均値または最頻値に基づいて推量してもよい。ファイルの将来の最大サイズは、他のファイルのモニタリングされた最大サイズのうち最も大きいサイズに基づいて推量してもよい。同様に、所定回数の変更後に記憶されるファイルのサイズは、他のファイルのそれぞれの所定回数の変更後の他のファイルのモニタリングされたサイズに基づいて推量してもよい。記憶されているファイルの所定期間後のサイズは、他のファイルのそれぞれを作成した後の所定期間経過後の他のファイルのモニタリングされたサイズに基づいて推量してもよい。
一実施例において、将来のサイズの計算は、分散を考慮に入れ、計算された値を特定の数量だけ増加させることをさらに含む。例えば、まず他のファイルの最大サイズを平均化して第一の値を得て、その第一の値を特定の割合または特定の数値分増加させることによって計算してもよい。第一の値は、他のファイルに対応する最大値の組の標準偏差に基づいて増加させてもよい。例えば、他のファイルの最大値が小さい範囲内(例えば、小さい標準偏差)にある場合、第一の計算値からの小さい増加率を使用し、記憶されているファイルの推量最大サイズを計算することができる。逆に、他のファイルの最大値が幅広い範囲内(例えば、大きい標準偏差)にある場合、第一の計算値からの大きい増加率を使用して、記憶されているファイルの推量最大サイズを計算してもよい。記憶されているファイルの将来のサイズの計算における増加率または増加値は、同じ属性に関連付けられた他のファイルのサイズの標準偏差に直接的に関連させてもよい。一実施例において、分散値を許容するためのバッファは、空いている記憶メモリスペースに直接的に従属させてもよい。例えば、空いている記憶メモリスペースが大きければ大きいほど、より大きいバッファを使用してもよい。逆に、空いている記憶メモリスペースが小さければ小さいほど、より小さいバッファを使用してもよい。具体的な例では最大サイズが使用されているが、本発明の実施例はファイルの他のサイズ(例えば、特定回数の変更を行った後のサイズや、作成から特定の期間後のサイズ)にも適用することができる。
一実施例において、将来サイズの予測のために、アクセス種類順序を含む属性パターンが使用される。例えば、属性パターンが最初の書き込み後の読み取りのみを含む場合、将来のサイズの推量は、現在のサイズの推量と同じであってもよい。属性パターンが一連の読み取りおよび書き込みの後に続く最初の書き込みを含み、全ての変更を通して最大サイズが元のサイズの2倍となる場合、記憶されているファイルの将来のサイズの推量は元のサイズの2倍であってもよい。一実施例において、記憶されているファイルに対する変更は、アクセス順序内において識別される。例えば、ファイルに対する変更は、属性パターン内の一連の5回の変更のうちの3つめの変更として認識されてもよい。一連の変更における位置に基づいて、将来のサイズを判定してもよい。上述の例において、3回目の変更に続く4回目および5回目の変更後に推測される2つのファイルのサイズのうち、大きい方に基づいて将来のサイズの推量を行ってもよい。
一実施例において、ファイルの記憶のための記憶メモリスペースは、計算された将来のサイズに基づいて割り当てられる(ステップ208)。計算された将来のサイズ以上の連続する記憶メモリスペースをファイルの記憶のために割り当ててもよい。一実施例において、計算された将来のサイズの一時ファイルが生成され、連続する記憶メモリスペースに記憶され、その後に記憶メモリに記憶される実際のファイルによって上書きされる。一実施例において、2つのファイル(例えば、記憶される実際のファイルおよび一時的にスペースを満たすファイル)は、連続する記憶メモリスペースに記憶されてもよい。その後、実際のファイルに変更を加えるためにスペースが必要となった場合、一時的にスペースを満たすファイルはサイズが縮小されるか、消去される。一実施例において、ファイルシステムまたは記憶ドライバに対する具体的な指示により、ファイルの記憶には使用されないが将来の推量に基づいて必要となる追加の記憶メモリスペースを確保してもよい。例えば、メタデータは、特定のファイルのサイズの将来的な増大のために特定の記憶メモリスペースが確保される旨を示してもよい。ファイルの現在のサイズと異なるファイルの将来のサイズ(推量または予測)に基づいてファイルの記憶のための記憶メモリスペースの割り当てまたは確保を可能とする他の適切な方法を使用してもよい。一実施例において、ファイルの推量された将来のサイズに基づいて割り当てまたは確保された追加のスペースは、条件付きで保持してもよい。例えば、記憶レポジトリのメモリ容量が小さい場合、確保された記憶メモリスペースまたは不必要に割り当てられた記憶メモリスペースは、ファイルシステムで使用するためにガベージコレクトされ得る。一実施例において、超過して割り当てられたメモリスペースは、新たなメモリ割り当てのために開放され得る。超過して割り当てられたメモリの開放は、拡張されたファイルまたは記憶する必要のある新しいファイルに関連付けられたファイルに対する超過した割り当てメモリの相対的な位置に基づいて行われてもよい。一実施例において、既存の超過したメモリスペースの開放は、開放されたメモリスペースに適合することが可能な新しいファイル、または開放されたメモリスペースに適合することが可能な、以前に記憶されたファイルの拡張に基づいて行ってもよい。
記憶メモリスペースにデータを記憶するための要求を受け取る前の記憶メモリスペースの割り当て
図3は、本発明の1つ以上の実施例による記憶メモリスペースの割り当てを行うためのフロー図である。1つ以上の実施例において、以下に記載されるステップは、省略、また繰り返しで実行、および/または異なる順序で実行してもよい。したがって、図3に示されるステップの具体的な配列は、本発明の範囲を限定するものとして解釈されるべきではない。
一実施例において、現在のサイズの第一のファイルを記憶するための要求が受け取られ(ステップ302)、第一のファイルに関連付けられた属性パターンが識別される(ステップ304)。ステップ302およびステップ304は、それぞれ上述のステップ202およびステップ204に類似する。一実施例において、第一のファイルを記憶するための第一の記憶メモリスペースが割り当てられる(ステップ306)。上述のステップ208に記載されるように、第一の記憶メモリスペースの割り当ては、第一のファイルの現在のサイズ、または第一のファイルの将来のサイズに基づいて行われてもよい。
一実施例において、第二の記憶メモリスペースは、第一のファイルに関連付けられた属性パターンに基づいて割り当てまたは確保が行われてもよい(ステップ308)。第二の記憶メモリスペースの割り当てまたは確保は、第二の記憶メモリスペースにデータを記憶するための命令を受ける前に行ってもよい。第一のファイルを記憶するための第一の記憶メモリスペースの割り当て要求を受け取り、この要求に応じて第二の記憶メモリスペースを割り当てまたは確保してもよい。第二の記憶メモリスペースは、第一の記憶メモリスペースに隣接してもよい。例えば、第一の記憶メモリスペースと第二の記憶メモリスペースとは連続した記憶メモリスペースを形成してもよい。一実施例において、第二の記憶メモリスペースは、第一のファイルの変更版(たとえば、将来において第一のファイルが変更されてサイズが大きくなる場合)を記憶するために割り当てまたは確保されてもよい。
一実施例において、第二の記憶メモリスペースは、第一のファイルに関連する少なくとも1つの他のファイルを記憶するために割り当てまたは確保されてもよい。例えば、属性パターンは、第一のファイルの割り当て要求の次に第一のファイルに関連する第二のファイルのための割り当て要求が概して続くことを示してもよい。第二のファイルは、第一のファイルと同じ属性に関連付けられたファイルであってもよい。例えば、第二のファイルは、第一のファイルに対する処理と同じ処理に所有されてもよい。属性パターンは、第一のファイルのすぐ後に続いて、または第一のファイルとほぼ同じ時間枠において概してアクセスされる第二のファイルが作成されることを示してもよい。第一の記憶メモリスペースに隣接する第二の記憶メモリスペースに第二のファイルを記憶させると、I/O速度が速くなり得る(例えば、回転プラッタヘッドの動作が最小限となるため)。したがって、第二の記憶メモリスペースに第二のファイルを記憶させるための要求を受ける前に、特に第二のファイルのために第二の記憶メモリスペースを割り当てまたは確保してもよい。特に第二のファイルのための第二の記憶メモリスペースは、第二のファイルが作成される前に割り当てまたは確保されてもよい。一実施例において、第一のファイルと同じ時間枠においてアクセスされる第二のファイルは、事前に作られ、他の場所に記憶されていてもよい。この場合、第一のファイルに関連する、記憶された第二のファイルは、第一のファイルおよび第二のファイルがほぼ同じ時間枠においてアクセスされることを示す属性パターンに応じて、第一の記憶メモリスペースに隣接する第二の記憶メモリスペースに移動させることができる。第二の記憶メモリスペースの確保は、第二の記憶メモリスペースに第二のファイルが記憶される時に消去または上書きされる第二の記憶メモリスペース内の一時ファイルを記憶することを含んでもよい。第二の記憶メモリスペースの確保は、記憶メモリスペースを第二のファイルのために確保することを(例えば、記憶メモリスペースと関連付けて記憶されるメタデータを介して、)ファイルシステムまたは記憶ドライバに指示することを含んでもよい。第二の記憶メモリスペースの確保は、記憶メモリスペースに対応するテーブルを適用し、確保された記憶メモリスペースが特定の表示(例えば、フラグ)を有するようにしてもよい。一実施例において、第二の記憶メモリスペースの確保には、第二の記憶メモリスペースに一時ファイルまたは場所保持ファイルを記憶することを伴ってもよい。一時ファイルまたは場所保持ファイルは、以前に記憶された第一のファイルに関連する第二のファイルの記憶のために第二のメモリスペースが使用される時に消去または上書きされてもよい。
一実施例において、第一のファイルに関連づけられた第二のファイルを記憶するための記憶メモリの割り当て要求が受け取られる(ステップ310)。第二のファイルは、属性パターンに基づいて識別されてもよい。例えば、同じ時間枠内に概してアクセスされる2つの関連するファイルのために2つの記憶メモリを割り当てる要求を行う処理を識別してもよい。第一の要求に応答して、第一のファイルのために第一の記憶メモリスペースが割り当てられ、将来の第二のファイルのために第二の記憶メモリスペースの割り当てまたは確保が行われた後、処理からの要求は追加の記憶メモリ割り当て要求のためにモニタリングされる。記憶メモリ割り当てのための第二の要求が、モニタリングされた処理から受けられると、第二の記憶メモリスペースは、第二の要求に関連付けられたデータ(すなわち、第一のファイルに関連する第二のファイル)を記憶するために使用される(ステップ312)。一実施例において、第二のファイルを記憶するための要求は、第二のファイルが第一のファイルと関連し、第一のファイルと併せて記憶されることを示すメタデータを含んでもよい。
ハードウェアの概要
図4は、本発明の実施例が適用されるコンピュータシステム400を示すブロック図である。コンピュータシステム400は、情報通信のためのバス402または他の通信機構と、バス402と結合された情報処理のためのプロセッサ404とを含む。コンピュータシステム400は、ランダムアクセスメモリ(RAM)または他の動的記憶装置のようなメインメモリ406も含む。メインメモリ406は、バス402に結合され、情報およびプロセッサ404によって実行される指示を記憶する。メインメモリ406は、プロセッサ404により指示が実行される間、一時的な可変要素または他の中間情報を記憶するために使用されてもよい。コンピュータシステム400は、バス402に結合されたリードオンリメモリ(ROM)408または他の静的記憶装置を含み、静的情報およびプロセッサ404への指示を記憶する。磁気ディスクまたは光ディスクのような記憶装置410が設けられ、バス402に結合されて、情報および指示を記憶する。
コンピュータシステム400は、コンピュータのユーザに情報を表示するための、陰極線管(CRT)のようなディスプレイ412にバス402を介して結合されてもよい。英数字および他のキーを含む入力装置404は、バス402に結合され、情報およびコマンド選択の通信をプロセッサ404に対して行う。他の種類のユーザ入力装置としては、マウス、トラックボール、またはカーソル方向キーのような、方向情報およびプロセッサ404に対するコマンド選択の通信やディスプレイ412上でのカーソル動作の制御のカーソル制御416がある。この入力装置は、典型的には2つの軸において2つの自由度を有する。2つの軸は、第一の軸(例えば、x)および第二の軸(例えば、y)であり、装置が面における位置を特定することを可能とする。
本発明は、ここに記載される技術を適用するためのコンピュータシステム400の使用に関する。本発明の一実施例によれば、これらの技術は、メインメモリ406に含まれる1つ以上の指示の1つ以上のシーケンスを実行するプロセッサ404に応答して、コンピュータシステム400により実行される。このような指示は、記憶装置410のような他の装置読み取り可能媒体からメインメモリ406に読み込まれてもよい。メインメモリ406に収容される一連の指示を実行することにより、プロセッサ404はここに記載される処理ステップを行う。代替的な実施例において、本発明を適用するために、ソフトウェアによる指示と置き換えて、またはソフトウェアによる指示と組み合わせて、配線回路を使用してもよい。本発明の実施例は、配線回路およびソフトウェアの具体的な組み合わせには限定されない。
ここで使用される「装置読み取り可能媒体」の用語は、装置に特定の方法で動作を行わせるデータの提供に関わる媒体を指す。コンピュータシステム400を使用して実施される一実施例において、様々な装置読み取り可能媒体が、例えば、プロセッサ404に実行させる指示の提供に関わる。このような媒体は様々な形態をとり、記憶媒体および伝送媒体を含むが、これらの媒体に限定されない。記憶媒体は、不揮発性媒体および揮発性媒体の両方を含む。不揮発性媒体は、例えば、記憶装置410のような光ディスクまたは磁気ディスクを含む。揮発性媒体は、メインメモリ406のような動的メモリを含む。伝送媒体は、同軸ケーブル、銅線、および光ファイバを含み、バス402などの配線も含む。伝送媒体は、電波および赤外線ファイル通信の際に発生する音波または光波の形態をとることも可能である。全てのこのような媒体は、媒体によって運ばれる指示が装置に指示を読み込む物理的機構により検出されるように、有形である必要がある。
装置読み取り可能な媒体の一般的な形態として、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープもしくは他の磁気媒体、CD−ROM、他の光媒体、パンチカード、紙テープ、穴のパターンを有する他の物理的媒体、RAM、PROM、EPROM、フラッシュEPROM、他のメモリチップもしくはカートリッジ、以下に記載する搬送波、または他のコンピュータ読み取り可能媒体がある。
様々な形態の装置読み取り可能媒体が、プロセッサ404に実行させるための1つ以上の指示の1つ以上のシーケンスを運ぶことに関わってもよい。例えば、指示は、最初はリモートコンピュータの磁気ディスクによって運ばれてもよい。リモートコンピュータは、その動的メモリに指示を読み込み、モデムを使用して電話回線を介してその指示を送ってもよい。コンピュータシステム400に備わったモデムは、電話回線によりファイルを受け取ることができ、赤外線送信機を使用してファイルを赤外線信号に変換する。赤外線検出器は赤外線信号により運ばれたファイルを受信することができ、適切な回路によってファイルをバス402上に配置することができる。バス402は、ファイルをメインメモリ406に運び、プロセッサ404はメインメモリ406から指示を検索して実行する。メインメモリ406が受け取る指示は、プロセッサ404により実行された後または実行される前に選択的に記憶装置410に記憶されてもよい。
コンピュータシステム400は、バス402に結合された通信インターフェース418も含む。通信インターフェース418は、ローカルネットワーク422に接続されたネットワークリンク420に結合された双方向ファイル通信を提供する。例えば、通信インターフェース418は、総合デジタル通信網(ISDN)またはデジタル加入者回線(DSL)の形態の対応する種類の電話回線にファイル通信接続を提供するためのカードまたはモデムであってもよい。他の例として、通信インターフェース418は、互換性のあるLANへのファイル通信接続を提供するローカルエリアネットワーク(LAN)カードであってもよい。無線リンクもまた適用することができる。このような適用において、通信インターフェース418は、様々な種類の情報を示すデジタルファイルストリームを有する、電気信号、電磁信号、または光信号を送受信する。
ネットワークリンク420は、典型的に他のファイル装置に対して1つ以上のネットワークを介してファイル通信を提供する。例えば、ネットワークリンク420は、ホストコンピュータ424またはインターネットサービスプロバイダ(ISP)426により運用されるファイル機器に対してネットワーク422を介した接続を提供する。ISP426は、現在では一般的に「インターネット」(428)と呼ばれる全世界パケットファイル通信ネットワークを介してファイル通信サービスを同様に提供する。ローカルネットワーク422およびインターネット428の両方は、デジタルファイルストリームを運ぶ電気信号、電磁信号、または光信号を使用する。様々なネットワークを介する信号、ネットワークリンク420上の信号、およびデジタルファイルをコンピュータシステム400に対して運ぶコミュニケーションインターフェース418を介する信号は、情報を運ぶ搬送波の典型的な形態である。
コンピュータシステム400は、ネットワーク、ネットワークリンク420、および通信インターフェース418を介してメッセージの送信およびプログラムコードを含むファイルの受信を行うことができる。インターネットの例では、サーバ430は、インターネット428、ISP426、ローカルネットワーク422、および通信インターフェース418を介してアプリケーションプログラムに要求されるコードを送信し得る。
受信されたコードは、そのままプロセッサ404によって実行される、および/または後の実行のために記憶装置410もしくは他の不揮発性記憶装置に記憶される。この態様により、コンピュータシステム400は搬送波の形態でアプリケーションコードを取得する。
一実施例において、ここに記載される技術または方法は、いかなるコンピュータ装置においても実行される。コンピュータ装置の例としては、コンピュータシステム、デスクトップ、ラップトップ、モバイル装置、サーバ、キオスク、タブレット、携帯電話、ゲームコンソール、またはここに記載される方法の少なくとも一部を実行するために使用されるハードウェアを含むいかなる他の装置をも含むが、これらに限定されない。
拡張および代替例
上記の明細書では、本発明の実施例について、実現化例ごとに異なり得る数多くの具体的な詳細事項を参照しながら説明してきた。したがって、この発明とは何かを唯一かつ排他的に示すものであり、出願人が発明であると意図するものは、本願から提供される請求項であり、このような請求項が提供される特定の形態にはその後の訂正が含まれる。本明細書においてこのような請求項に含まれる用語について明記した何らかの定義は、請求項に使用される用語の基準となるものである。こうした請求項に明記されていない限定、構成要素、性質、特徴、利点または属性は、このような請求項の範囲をいかなる形でも限定してはならない。明細書および図面はしたがって、限定的な意味ではなく例示的な意味で捉えられるべきものである。

Claims (14)

  1. 方法であって、
    現在のサイズのファイルのための記憶メモリ割り当ての要求を受け取るステップと、
    ファイルに関連付けられた特定の属性に少なくとも基づいて、ファイルの現在のサイズとは異なるファイルの将来のサイズを推量するステップと、
    ファイルの将来のサイズに基づいてファイルの記憶のための記憶メモリの割り当てを引き起こすステップとを備え、
    方法は、1つ以上のコンピュータ装置によって行われる、方法。
  2. 特定の属性を有する複数のファイルの各ファイルのサイズをモニタリングするステップと、
    モニタリングに基づき、複数のファイルに関連付けられたパターンを定めるステップとをさらに備え、
    ファイルの将来のサイズは、複数のファイルに関連付けられたパターンに基づいて推量される、請求項1に記載の方法。
  3. ファイルの将来のサイズを推量するステップは、ファイルに対する予測される変更に基づいて予期されるファイルのサイズの増加を推量するステップを含み、変更は、少なくとも部分的に特定の属性に基づいて推量される、請求項1に記載の方法。
  4. 記憶メモリの割り当ての要求は、ファイルの最初の作成に応答して受け取られる、請求項1に記載の方法。
  5. 記憶メモリの割り当ての要求は、事前に記憶されたバージョンのファイルからのファイルの変更に応答して受け取られる、請求項1に記載の方法。
  6. 特定の属性は、ファイルの種類である、請求項1に記載の方法。
  7. 特定の属性は、
    ファイルの以前の使用、
    ファイルの種類、
    ファイルを所有するアプリケーション、
    ファイルの記憶を要求するアプリケーション、
    ファイルに関連付けられた優先度、
    ファイルに関連付けられた現在のアクセス頻度および予測されるアクセス頻度、
    ファイルに関連付けられた環境、
    ファイルに関連付けられた予期される継続時間、
    ファイルを共有する処理の回数、
    ファイルに関連付けられたユーザ、
    ファイルの記憶のための空き記憶メモリスペース、
    ファイルに記憶された情報、
    ファイルの古さ、または
    ファイルに対する、1つもしくはそれ以上の他のファイルまたはアプリケーションの関係、のいずれかである、請求項1に記載の方法。
  8. 方法であって、
    第一のファイルの記憶メモリ割り当てのための第一の要求を受け取るステップと、
    第一の要求の受け取りに応答して、第一のファイルの記憶のための第一の記憶メモリスペースの割り当てを引き起こすステップと、
    要求を受け取った時点において第一のファイルと関連付けられた属性に少なくとも基づいて第二の記憶メモリスペースの割り当てまたは第二の記憶メモリスペースの確保を引き起こすステップとを備え、
    方法は、1つ以上のコンピュータ装置によって実行される、方法。
  9. 第二の記憶メモリスペースの割り当てまたは第二の記憶メモリスペースの確保を引き起こすステップは、第一の要求の受け取りに応答して行われる、請求項8に記載の方法。
  10. 第二の記憶メモリスペースの割り当てまたは確保は、第二の記憶メモリスペースへのデータの記憶をもたらす第二の要求を受け取る前に行われる、請求項8に記載の方法。
  11. 特定の属性を有する複数のファイルの各ファイルについて記憶メモリ割り当てパターンを検出するために、記憶メモリの割り当てをモニタリングするステップをさらに備え、
    各ファイルの記憶メモリ割り当てパターンは、
    特定の属性を有するファイルを記憶するための記憶メモリ割り当てを行うステップと、
    所定の時間間隔で、特定の属性を有するファイルに関連する他のファイルの記憶のための記憶メモリ割り当てを行うステップとを含み、
    第二のファイルのための記憶メモリ割り当てのための第二の要求を受け取る前に、第一のファイルに関連する第二のファイルのために第二の記憶メモリスペースの割り当てまたは確保を記憶メモリ割り当てパターンに基づいて行う、請求項8に記載の方法。
  12. 第一の記憶メモリスペースの割り当てを引き起こすステップおよび第二の記憶メモリスペースの割り当てまたは第二の記憶メモリスペースの確保を引き起こすステップは、第一の記憶メモリスペースと第二の記憶メモリスペースとを含む連続した記憶メモリスペースを特定するステップを有する、請求項8に記載の方法。
  13. 一連の指示を含むコンピュータ読み取り可能な記憶媒体であって、指示が1つ以上のプロセッサによって実行されると、請求項1から12のいずれか1項に記載の方法が行われる、コンピュータ読み取り可能な記憶媒体。
  14. 1つ以上の数のプロセッサを備え、請求項1から12のいずれかに記載のステップを行うように構成された、装置。
JP2012537149A 2009-10-29 2010-10-29 将来の使用推量に基づく記憶メモリの割り当て Pending JP2013509658A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US25629909P 2009-10-29 2009-10-29
US61/256,299 2009-10-29
US12/854,804 2010-08-11
US12/854,804 US8521986B2 (en) 2009-10-29 2010-08-11 Allocating storage memory based on future file size or use estimates
PCT/US2010/054856 WO2011059837A1 (en) 2009-10-29 2010-10-29 Allocating storage memory based on future use estimates

Publications (1)

Publication Number Publication Date
JP2013509658A true JP2013509658A (ja) 2013-03-14

Family

ID=43926620

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012537149A Pending JP2013509658A (ja) 2009-10-29 2010-10-29 将来の使用推量に基づく記憶メモリの割り当て

Country Status (10)

Country Link
US (2) US8521986B2 (ja)
EP (1) EP2494436A1 (ja)
JP (1) JP2013509658A (ja)
KR (1) KR20120102664A (ja)
CN (1) CN102713824A (ja)
AU (1) AU2010319840A1 (ja)
CA (1) CA2778147A1 (ja)
RU (1) RU2012120252A (ja)
TW (1) TW201140430A (ja)
WO (1) WO2011059837A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9225871B2 (en) 2014-01-31 2015-12-29 Kyocera Document Solutions Inc. Data storage apparatus and data storage method

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110106861A1 (en) * 2009-11-04 2011-05-05 Nokia Corporation Interface Techniques Providing Contiguous Storage For Files
US8775766B2 (en) * 2010-02-02 2014-07-08 International Business Machines Corporation Extent size optimization
US8745232B2 (en) * 2010-08-18 2014-06-03 Dell Products L.P. System and method to dynamically allocate electronic mailboxes
US8566336B2 (en) 2011-03-30 2013-10-22 Splunk Inc. File identification management and tracking
US8548961B2 (en) * 2011-03-30 2013-10-01 Splunk Inc. System and method for fast file tracking and change monitoring
US9229657B1 (en) 2012-11-01 2016-01-05 Quantcast Corporation Redistributing data in a distributed storage system based on attributes of the data
US9792295B1 (en) 2013-02-06 2017-10-17 Quantcast Corporation Distributing data of multiple logically independent file systems in distributed storage systems including physically partitioned disks
US9811529B1 (en) * 2013-02-06 2017-11-07 Quantcast Corporation Automatically redistributing data of multiple file systems in a distributed storage system
US9740481B2 (en) 2013-12-03 2017-08-22 Samsung Electronics Co., Ltd. Electronic device and method for memory allocation in electronic device
GB2520943B (en) * 2013-12-03 2016-12-28 Samsung Electronics Co Ltd Memory allocation for applications based on identified allocation history
CN103970641A (zh) * 2014-05-15 2014-08-06 浪潮电子信息产业股份有限公司 一种基于容量预测技术的设备扩容方法
CN105700819B (zh) 2014-11-28 2019-04-12 国际商业机器公司 用于网络数据存储的方法和系统
US10788994B1 (en) * 2014-12-30 2020-09-29 EMC IP Holding Company LLC Disaggregation of flash management
US9696930B2 (en) 2015-06-10 2017-07-04 International Business Machines Corporation Reducing new extent failures on target device during non-disruptive logical data set migration
US10120920B2 (en) * 2015-07-10 2018-11-06 International Business Machines Corporation Increasing storage space for processes impacting data storage systems
US11625181B1 (en) 2015-08-24 2023-04-11 Pure Storage, Inc. Data tiering using snapshots
US11294588B1 (en) * 2015-08-24 2022-04-05 Pure Storage, Inc. Placing data within a storage device
CN105354315B (zh) * 2015-11-11 2018-10-30 华为技术有限公司 分布式数据库中子表分裂的方法、子表节点和系统
CN105787012B (zh) * 2016-02-23 2019-08-27 深圳市瑞驰信息技术有限公司 一种提高存储系统处理小文件的方法以及存储系统
US10228886B2 (en) 2016-04-20 2019-03-12 International Business Machines Corporation Storage device volume selection for improved space allocation
US9886449B1 (en) * 2016-07-22 2018-02-06 Red Hat, Inc. Delayed allocation for data object creation
US9588976B1 (en) * 2016-07-22 2017-03-07 Red Hat, Inc. Delayed allocation for a direct access non-volatile file system
US11977456B2 (en) * 2016-11-23 2024-05-07 2236008 Ontario Inc. File system framework
US9996293B1 (en) * 2016-12-12 2018-06-12 International Business Machines Corporation Dynamic management of memory allocation in a database
CN109032965B (zh) * 2017-06-12 2021-01-12 华为技术有限公司 一种数据读取方法、主机及存储设备
US10684902B2 (en) * 2017-07-28 2020-06-16 Advanced Micro Devices, Inc. Method and apparatus for memory vulnerability prediction
US11061734B2 (en) * 2019-01-31 2021-07-13 Salesforce.Com, Inc. Performing customized data compaction for efficient parallel data processing amongst a set of computing resources
KR102407263B1 (ko) * 2019-08-09 2022-06-13 한국전자기술연구원 뉴로모픽 메모리 관리 시스템 및 이를 통한 가중치 연산 방법
US11449738B2 (en) 2019-08-09 2022-09-20 Korea Electronics Technology Institute Neuromorphic memory management system and method thereof
KR102408966B1 (ko) * 2019-08-09 2022-06-15 한국전자기술연구원 뉴로모픽 메모리 관리 시스템 및 관리 방법
KR102362319B1 (ko) * 2019-08-09 2022-02-15 한국전자기술연구원 메모리 할당 방법 및 이를 수행하기 위한 메모리 관리 시스템
KR102609577B1 (ko) * 2019-11-11 2023-12-05 주식회사 케이티 양자 암호키 관리 장치, 방법 및 컴퓨터 프로그램
CN110968272B (zh) * 2019-12-16 2021-01-01 华中科技大学 基于时间序列预测的海量小文件存储性能优化方法及系统
CA3109862A1 (en) * 2020-02-20 2021-08-20 Comcast Cable Communications, Llc Systems, methods, and apparatuses for storage management
CN114063885B (zh) * 2020-07-31 2024-07-09 伊姆西Ip控股有限责任公司 用于管理存储空间的方法、设备和计算机程序产品
TWI866616B (zh) * 2023-11-16 2024-12-11 威聯通科技股份有限公司 完整儲存區容量擴充方法、電腦可讀取儲存媒體及資料儲存裝置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61292758A (ja) * 1985-06-20 1986-12-23 Fujitsu Ltd 直接アクセス装置の領域割当て方式
JPH0546456A (ja) * 1991-08-08 1993-02-26 Sharp Corp 追記型記憶媒体のアクセス方式
JP2003076586A (ja) * 2001-09-05 2003-03-14 Nec Corp コンピュータシステム、記憶装置、ファイル配置方法、及びファイル配置プログラム
JP2004355640A (ja) * 2004-06-25 2004-12-16 Sharp Corp ファイル管理方法及び装置
JP2005309791A (ja) * 2004-04-22 2005-11-04 Hitachi Ltd ディスク装置及びスワップファイルの再配置方法
JP2006146812A (ja) * 2004-11-24 2006-06-08 Sony Corp 情報処理装置、情報処理方法、プログラム
JP2007221489A (ja) * 2006-02-16 2007-08-30 Kyocera Corp 通信端末及び通信方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088764A (en) * 1997-07-14 2000-07-11 International Business Machines Corporation Method and apparatus for reducing space allocation failures in storage management systems
US6948089B2 (en) * 2002-01-10 2005-09-20 Hitachi, Ltd. Apparatus and method for multiple generation remote backup and fast restore
US7203713B2 (en) * 2002-09-20 2007-04-10 International Business Machines Corporation Method and apparatus for optimizing extent size
WO2007081638A2 (en) 2005-12-21 2007-07-19 Sandisk Corporation Non-volatile memories and methods with adaptive file handling in a directly mapped file storage system
US20070150492A1 (en) * 2005-12-27 2007-06-28 Hitachi, Ltd. Method and system for allocating file in clustered file system
US8275967B2 (en) 2008-03-13 2012-09-25 Bright Technologies, Inc. Storage of sequentially sensitive data

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61292758A (ja) * 1985-06-20 1986-12-23 Fujitsu Ltd 直接アクセス装置の領域割当て方式
JPH0546456A (ja) * 1991-08-08 1993-02-26 Sharp Corp 追記型記憶媒体のアクセス方式
JP2003076586A (ja) * 2001-09-05 2003-03-14 Nec Corp コンピュータシステム、記憶装置、ファイル配置方法、及びファイル配置プログラム
JP2005309791A (ja) * 2004-04-22 2005-11-04 Hitachi Ltd ディスク装置及びスワップファイルの再配置方法
JP2004355640A (ja) * 2004-06-25 2004-12-16 Sharp Corp ファイル管理方法及び装置
JP2006146812A (ja) * 2004-11-24 2006-06-08 Sony Corp 情報処理装置、情報処理方法、プログラム
JP2007221489A (ja) * 2006-02-16 2007-08-30 Kyocera Corp 通信端末及び通信方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9225871B2 (en) 2014-01-31 2015-12-29 Kyocera Document Solutions Inc. Data storage apparatus and data storage method

Also Published As

Publication number Publication date
US20110107053A1 (en) 2011-05-05
KR20120102664A (ko) 2012-09-18
RU2012120252A (ru) 2013-12-10
US20130332693A1 (en) 2013-12-12
AU2010319840A1 (en) 2012-05-17
EP2494436A1 (en) 2012-09-05
TW201140430A (en) 2011-11-16
CN102713824A (zh) 2012-10-03
US8521986B2 (en) 2013-08-27
WO2011059837A1 (en) 2011-05-19
CA2778147A1 (en) 2011-05-19

Similar Documents

Publication Publication Date Title
JP2013509658A (ja) 将来の使用推量に基づく記憶メモリの割り当て
US10496548B2 (en) Method and system for user-space storage I/O stack with user-space flash translation layer
US8856484B2 (en) Mass storage system and methods of controlling resources thereof
US9274714B2 (en) Method and system for managing storage capacity in a storage network
KR101357397B1 (ko) 데이터 프로세싱 시스템의 메모리 사용을 추적하는 방법
US10296264B2 (en) Automatic I/O stream selection for storage devices
US9058212B2 (en) Combining memory pages having identical content
CN105637470B (zh) 用于脏数据管理的方法和计算设备
CN109213696B (zh) 用于缓存管理的方法和设备
JP2017021805A (ja) 不揮発性メモリ装置内でデータ属性基盤データ配置を利用可能にするインターフェイス提供方法及びコンピュータ装置
TW201250471A (en) Managing data placement on flash-based storage by use
JP4699837B2 (ja) ストレージシステム、管理計算機及びデータ移動方法
KR20170120489A (ko) 통지와 함께 백그라운드 활동을 효율적으로 관리하는 ssd를 위한 메카니즘
US20100235599A1 (en) Access control device, storage system, and access control method
CN101968755A (zh) 一种自适应应用负载变化的快照生成方法
US9792050B2 (en) Distributed caching systems and methods
US11169933B2 (en) Integration of application indicated maximum time to cache for a two-tiered cache management mechanism
JP5414943B2 (ja) 仮想テープ・ライブラリ・ドメインを管理するためのシステムおよび方法
CN103685359B (zh) 数据处理方法及装置
CN112445412A (zh) 一种数据存储方法及装置
CN117032596B (zh) 数据访问方法及装置、存储介质及电子设备
JP2014203280A (ja) データ管理プログラム,データ管理装置およびデータ管理方法
JP2008269611A (ja) 安全なデータ消去プロセス用のテープ・ドライブの割り振りを決定するための方法、コンピュータ・プログラム及びシステム
CN115421904A (zh) 管理内存的方法及装置、电子设备及可读存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130731

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140218

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140805