JP5142995B2 - メモリページ管理 - Google Patents

メモリページ管理 Download PDF

Info

Publication number
JP5142995B2
JP5142995B2 JP2008519413A JP2008519413A JP5142995B2 JP 5142995 B2 JP5142995 B2 JP 5142995B2 JP 2008519413 A JP2008519413 A JP 2008519413A JP 2008519413 A JP2008519413 A JP 2008519413A JP 5142995 B2 JP5142995 B2 JP 5142995B2
Authority
JP
Japan
Prior art keywords
queue
memory page
memory
page
access entity
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
JP2008519413A
Other languages
English (en)
Other versions
JP2008544422A (ja
Inventor
クレイグ ダブリュ スタンフィル
Original Assignee
アビニシオ テクノロジー エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アビニシオ テクノロジー エルエルシー filed Critical アビニシオ テクノロジー エルエルシー
Publication of JP2008544422A publication Critical patent/JP2008544422A/ja
Application granted granted Critical
Publication of JP5142995B2 publication Critical patent/JP5142995B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

発明の詳細な説明
発明の背景
本発明はメモリページの管理に関する。
揮発性メモリ格納(例えば、ランダムアクセスメモリ(RAM))を用いて、不揮発性メモリ格納(例えば、一つ以上のディスクドライブ)にも格納されているデータと連携をとることは有用である。例えば、揮発性メモリ格納は、普通は不揮発性メモリ格納よりアクセスおよび読み出し時間が高速である。揮発性メモリ格納および不揮発性メモリ格納のアドレス空間は、所定数の連続するアドレス配置にまたがるページに編成することができる。コンピュータシステムは、ページング技法を用いて、例えば、プログラミングまたはデータ構造が使用する揮発性メモリからメモリページを割り当てる。不揮発性メモリ格納は、普通は揮発性メモリ格納よりずっと規模が大きい。仮想メモリ方式を用いて、使用していない(例えば、現在、書き込みも読み出しもしていない)揮発性メモリ格納内のページを不揮発性メモリ格納へ書き込んでおいて、後で必要な時に、不揮発性メモリ格納から再度読み出すことができる。したがって、揮発性メモリ格納内のページは、各種のプログラミングおよび/またはデータ構造による使用のために「リサイクル(再使用)」される。ページを前後しての移動と関係付けられるオーバーヘッドを低減するために、技法によっては、最長時間未使用(LRU)方式に基づいてページをリサイクルする。LRU方式では、不揮発性メモリ格納へ書き込まれたページが揮発性メモリ格納への移動対象であるにもかかわらず、揮発性メモリ格納内に空きページがない場合、揮発性メモリ格納から不揮発性メモリ格納へリサイクル(つまり、スワッピングまたはページアウト)するように選択されるページは、未使用時間が最長の(例えば、最も長い時間、読み出しまたは書き込みがなされていない)ページである。
発明の概要
一般的な態様において、本発明は、シーケンシャルアクセスされる一つ以上のデータ構造のために用いられるメモリをページングするための方法、ならびにそれに対応するソフトウエアおよびシステムを特徴とする。本方法は、メモリページの再使用順序を表すデータ構造を提供するステップ、およびシーケンシャルアクセスされるデータ構造の一つと関係付けられた、メモリページへのアクセス履歴に基づいて、データ構造を維持するステップを含み、よって、その順序におけるメモリページの位置を、メモリページからのシーケンシャルアクセスの移行に依存させる。
この態様は、以下の特徴の一つ以上を含む:
メモリページからのシーケンシャルアクセスの移行は、メモリページからのポインタの移行に対応する。
その順序におけるメモリページの位置は、シーケンシャルアクセスの移行が、メモリページからの書き込みアクセスの移行に対応するかどうかに依存する。
シーケンシャルアクセスされるデータ構造の一つと関係付けられた、メモリページへのアクセス履歴に基づくデータ構造を維持するステップが、メモリページからの書き込みアクセスの移行に応じて、順序を表すデータ構造の第1エンドに、メモリページ用の識別子を配置するステップと、閉じられているメモリページと関係付けられる、シーケンシャルアクセスされるデータ構造に応じて、順序を表すデータ構造の第2エンドに、メモリページ用の識別子を配置するステップとを含む。
本方法は、順序を表すデータ構造の第1エンドからのメモリページを再使用するステップをさらに含む。
本方法は、空きメモリページリストが空であることを判定した後、データ構造の第1エンドからの前記メモリページを再使用するステップをさらに含む。
メモリページを再使用するステップは、メモリページの現在のコンテンツを不揮発性メモリ格納へ書き込むステップを含む。
メモリページを再使用するステップは、不揮発性メモリ格納からのメモリページをメモリページへ書き込むステップをさらに含む。
メモリページと関係付けられる、シーケンシャルアクセスされるデータ構造は、待ち行列を含む。
一般的な態様において、本発明は、シーケンシャルアクセスされる一つ以上のデータ構造のために用いられるメモリをページングするための方法、ならびにそれに対応するソフトウエアおよびシステムを特徴とし、第1のケースでは最長時間使用方式に基づき、第2のケースでは最長時間未使用方式に基づいて、シーケンシャルアクセスされるデータ構造に関係付けられるメモリページを再使用するステップを含む。
本態様は以下の特徴の一つ以上を含むことができる:
第1のケースは、メモリページからの書き込みポインタの移行を含む。
第2のケースは、シーケンシャルアクセスされるデータ構造を閉じるアクセスエンティティを含む。
第2のケースは、メモリページからの読み出しポインタの移行を含む。
本発明の態様は、以下の利点の一つ以上を含むことができる:
再使用のためのページを順序付けるステップは、待ち行列または他のシーケンシャルI/Oデータ構造を格納するメモリシステムに対して、どのページがすぐに再使用される可能性があるのか、より良好な予測を提供できる。書き込まれたばかりの(すなわち、書き込みポインタがページを去ったばかりの)ページは、読み出しポインタが書き込みポインタに「追いつかなければ」ならないので、すぐに再使用される可能性が少ない。したがって、これらのページは、最初にリサイクルされる。さらに、閉じたばかりの待ち行列に対するページは、すぐに再オープンされて、再使用されるかもしれないので、後までリサイクルされない。しばらく閉じたままのページはその間にどこかにリサイクルされる。
待ち行列特有のページングアルゴリズムの使用は、待ち行列構造またはアクセスパターンを利用しないページングアルゴリズムの使用を超える高い効率を提供できる。データ格納待ち行列のページングは、どのページが再使用されるかを決定する際に、待ち行列アクセス履歴を利用することにより改良できる。例えば、アクセス履歴に基づいて、幾つかのページは他のページより早く再アクセスされる、と予測することができる。この改良により、作業している記憶装置内に必要なページが存在する可能性がより高くなるので、作業中の記憶装置へデータを転送して戻すことに起因する遅延を低減できる。
本発明の他の特徴および利点は、以下の説明および特許請求の範囲から明らかになろう。
詳細な説明
図1を参照すると、待ち行列システム100により、アクセスエンティティ102A〜102Pは、1セット以上の待ち行列QUEUE_1〜QUEUE_Nへメッセージを追加し、待ち行列からメッセージを読み出すことができる。アクセスエンティティは待ち行列マネージャ102を介してシステム100と相互作用する。待ち行列マネージャ102はメモリ管理モジュール(MMM)106を用いて、データ読み書きのアクセスが相対的に高速な一時的作業記憶装置である揮発性メモリ格納108と、データの永続性が相対的に高い恒久的記憶装置であって揮発性格納より読み書きのアクセスが相対的に低速な不揮発性メモリ110との間で、ページのスワッピングを支援する。MMM106は、ソフトウエアまたはハードウエアまたはその両方で実装できる。MMMは、揮発性メモリアドレス空間と不揮発性メモリアドレス空間との間のページアドレスを翻訳する。MMMは揮発性メモリへのページ参照の監視も行い、利用不可のページ(例えば、揮発性メモリページが不揮発性メモリへ書き込まれた後、新規使用のためにリサイクルされたページ)への参照を検出できる。MMMは、この「ページフォールト」について、待ち行列マネージャ102に警告することにより応答する。次いで、待ち行列マネージャ102は、参照されたページを不揮発性メモリから読み出し、揮発性メモリの空きページ内へそのページをコピーする。揮発性メモリに空きページがない場合、待ち行列マネージャ102は、後で詳細に説明するように、「リサイクルリスト」に基づいてページをリサイクルする。待ち行列マネージャ102およびMMM106は、任意の種類のオペレーティングシステムおよびコンピュータ環境で実装できる。待ち行列マネージャおよび/またはMMM106は、オペレーティングシステム内へ統合できる。代替として、オペレーティングシステムは、待ち行列マネージャ102へ割り当てられないページを管理するための、別の仮想メモリシステムを有してもよい。
所与の待ち行列(例えばQUEUE_2)は一連の記録を格納でき、一セットの「待ち行列ページ」内に、シーケンシャル待ち行列メッセージおよびこれらのメッセージの管理に関連する記録を含む。メッセージおよび待ち行列ページの相対的なサイズに応じて、待ち行列ページは一つ以上のメッセージ、または一つのメッセージの一部を保持できる。待ち行列マネージャ102は、一セットの待ち行列ページに待ち行列を割り当て、待ち行列が成長すると、そのセットへページを追加できる。図示の実施の形態では、セット内の待ち行列ページは全て不揮発性メモリ格納110内に格納され、アクティブな待ち行列ページのサブセットは揮発性メモリ格納108内に格納される。
待ち行列(または他のシーケンシャルアクセスされるデータ構造)の「シーケンシャル」状況は、メッセージ(またはデータ構造の他の要素)の論理的順序を参照する。メッセージの格納配置は、必ずしも、システム100の物理的または仮想的なアドレス空間内のシーケンシャルアドレスにある必要はない。
揮発性メモリ格納108内の待ち行列ページのコンテンツが変更された場合、その待ち行列ページは「ダーティ」とマーキングされる。ダーティ待ち行列ページが揮発性メモリ格納108から削除された場合、不揮発性メモリ格納110内の待ち行列ページの古いコピーは、その変更により更新される(すなわち、待ち行列ページは、不揮発性メモリ格納110へ「同期」される)。ダーティ待ち行列ページは、待ち行列ページが揮発性メモリ格納108から削除される前に、不揮発性メモリ格納110に同期させることもできる。待ち行列マネージャは、待ち行列が待ち行列ページをもはや必要としなくなった後(例えば、待ち行列が削除された後)、待ち行列に対する幾つかのまたは全ての待ち行列ページを回収する。
図2Aを参照すると、リサイクルリスト200は、リサイクルされる可能性がある揮発性メモリ内のページを識別する。リサイクルリスト200は、第1の「ヘッド」エンド202および第2の「テール」エンド204を有する。ページは、後述するように、テールまたはヘッドエンドのどちらかに追加することができ、ヘッドエンド202から削除される。リサイクルリストは、例えば、二重リンクされたリストとして実装できる。
一実施の形態では、リサイクルリスト200は、ページテーブル206内の待ち行列ページを識別する「仮想アドレス」を格納する(例えば、QUEUE_1へ割り当てられた待ち行列ページ「5」を識別する「Q1/P5」)。ページテーブル206は、待ち行列システム100内の待ち行列へ割り当てられる待ち行列ページそれぞれに対するエントリを含む。図では、ページテーブル206は、それぞれのエントリに対して、不揮発性メモリ空間208内に不揮発性メモリページアドレス「N-PAGE」を含み、揮発性メモリ空間210内に揮発性メモリページアドレス「V-PAGE」を含む。揮発性メモリページアドレスは、揮発性メモリ格納108内に格納されない待ち行列ページに対しては空(例えば、未使用アドレス値と一致)であってもよい。ページテーブル206は、待ち行列ページがリサイクルリスト200内にあるかどうかを指示する「リサイクルビット」を含む。ページテーブルは、幾つのアクセスエンティティが待ち行列ページにアクセスしているかを示す「参照カウント」を含む。
各待ち行列は、不揮発性メモリ格納110内に格納される割り当て待ち行列ページセットを有する(例えば、図3Bで、QUEUE_2は、アドレスN-PAGE_10〜N-PAGE_16に格納されるページQ2/P1〜Q2/P7を有する)。待ち行列ページによっては、揮発性および不揮発性メモリの両方にコピーを持つことができる(例えば、図3Aおよび3BのページQ2/P3〜Q2/P7)。揮発性メモリ格納108内に格納される待ち行列ページに対しては、ページテーブル206は、「ダーティビット」を用いて、まだ不揮発性メモリ格納110へ戻して同期していない、待ち行列ページのコンテンツへ変更があるかどうかを示す。
例えば、待ち行列へ新規に追加されたメッセージは、単に揮発性メモリ内に格納されているだけとしてもよい。関係する待ち行列メッセージを格納する待ち行列ページは、待ち行列ページが揮発性メモリから不揮発性メモリへコミット操作で同期されるので、揮発性および不揮発性メモリの両方に格納されていてもよい。(幾つかの方式の何れかを用いて、関係するメッセージを同期させることでメッセージが失われないようにすることができる。メッセージを確実にする一手法は、引用して本明細書に組み込まれる同時係属/同時出願の「メッセージ待ち行列管理」に記載されている)。待ち行列ページを格納する揮発性メモリのページは、不揮発性メモリ内のコピーだけを残して、リサイクルしてしまってもよい(例えば、別の待ち行列が使用するために)。
一つ以上のアクセスエンティティは、読み出しおよび/または書き込みのために待ち行列を開くことができる。アクセスエンティティは、待ち行列を開いて、待ち行列の最後に一つ以上のメッセージを追加することができる。アクセスエンティティは、待ち行列を開いて、待ち行列の前から、または待ち行列内の特定の場所(例えば、以前に待ち行列から読み出した時に到達した場所)から、関係するメッセージを読み出すことができる。アクセスエンティティによるアクセスに対して待ち行列が開かれると、待ち行列システム100は、アクセスエンティティに対して読み出しおよび/または書き込みポインタを設定する等の、開くための作業を実行する。アクセスエンティティが待ち行列へのアクセス終了後、アクセスエンティティは待ち行列を閉じ、待ち行列システム100は、閉じるための適切な作業を実行する。多数のアクセスエンティティが、同一待ち行列へ同時にアクセスできる。したがって、待ち行列は、幾つかのアクセスエンティティのアクセスに対して開くことができ、他のアクセスエンティティに対して閉じることができる。
アクセスエンティティが待ち行列を開くと、アクセスエンティティは、アクセスされている待ち行列ページに対する参照カウントをインクリメントする。アクセス対象である待ち行列ページが既に揮発性メモリ格納108内にない場合、その待ち行列ページは、不揮発性メモリ格納110から、揮発性メモリ格納108へコピーされる。アクセスエンティティが待ち行列ページへのアクセスを終了した後(例えば、待ち行列を閉じた後または待ち行列ページの最後を越えて書き込んだ後)、アクセスエンティティは、その待ち行列ページに対する参照カウントをデクリメントする。
待ち行列システム100は、アクセスエンティティが読み出しポインタでデータを読み出している場所、およびアクセスエンティティが書き込みポインタでデータを追加(すなわち書き込み)している場所のトラックを保持する。アクセスエンティティが待ち行列から読み出し、またはそれへ書き込んでいる間、アクセスされている待ち行列ページは、揮発性メモリ格納108内にある。待ち行列システム100は、空きリスト212により利用可能な揮発性メモリページのトラックを保持する。新規待ち行列ページが不揮発性メモリ格納110から揮発性メモリ格納108へコピーされる対象であるのに、空きページがない場合(すなわち、空きリストが空の場合)、待ち行列システム100は、リサイクルリスト200に基づいて揮発性メモリページをリサイクルする。
揮発性メモリページをリサイクルするには、待ち行列システム100が、リサイクルリスト200のヘッド202で識別されるページをチェックすることにより、リサイクルするページを探す。識別されたページが、所定の基準によりリサイクル可能なページとして適格である場合(例えば、読み出しまたは書き込みポインタが現在参照していないことを示す参照カウントゼロをそのページが有する)、そのページの現在のコンテンツは、(必要なら)不揮発性メモリ格納110へ書き込まれ、そのページは割り当てが自由になる(次いで、リサイクルリスト200から削除される)。そのページの現在のコンテンツが、既に不揮発性メモリに同期している場合、待ち行列システム100は、不揮発性メモリへの書き込みをせずにページを開放する。識別されたページが、リサイクル可能なページとして不適格である場合、そのページはリサイクルリストから削除され、リサイクルリストの新規ヘッド202が、リサイクル可能ページに対するチェックを受ける。
一実施では、待ち行列システム100が、リサイクルリスト200へ揮発性メモリページを追加する(すなわち、そのページは、開放される可能性のある候補となる)のには、2つのケースがある。
ケース1:書き込みポインタがページから移動し、他の読み出しまたは書き込みポインタがどれもそのページを指し示さず、そのページは既にリサイクルリスト200上にない。
ケース2:ページを使用している待ち行列が閉じられ、他の読み出しまたは書き込みポインタがどれもそのページを指し示さず、そのページは既にリサイクルリスト200上にない。
ケース1は、例えば、待ち行列に一連のメッセージを追加しているアクセスエンティティが、メッセージで待ち行列ページを埋める場合に生じる可能性がある。ケース1では、待ち行列システム100は、リサイクルリスト200のヘッド202へそのページを追加する。このケースは、より新しく書き込まれたページが、それより前に書き込まれたページの前にリサイクルされるので、最長時間使用(MRU)方式に対応する。
ケース2では、待ち行列システム100は、リサイクルリスト200のテール204へそのページを追加する。このケースは、ページがリサイクルリストの先頭から用いられ、それにより、古い閉じられたページが、より新しい閉じられたページの前にリサイクルされるので、最長時間未使用(LRU)方式に対応する。
他の実施では、ページをリサイクルリスト200へ追加するために他のケースを含めることができる。例えば、ページをリサイクルリスト200のテール204へ追加することができる別のケースは:
ケース3:読み出しポインタがページから移動し、他の読み出しまたは書き込みポインタがどれもそのページを指し示さず、そのページは既にリサイクルリスト200上にない。
他の実施は、各ページへのアクセス履歴に基づいて、リサイクルリスト内でページ順序を維持するための多様な規則のどれかを含むことができる。メモリページからのシーケンシャルアクセスの移行(例えば、ページから移動する書き込みポインタ)に依存するよう、メモリページの少なくとも幾つかの位置を順序よく編成することにより、本システムは、シーケンシャルアクセスされるデータ構造の統計的特性を利用して、ページングの効率を高めることができる。
空きリスト212内のページは、もはや必要ではない、したがって、待ち行列ページと関係付けられないページに対応する。待ち行列システム100がページを空きリスト212へ追加するケースは様々である。あるケースでは、システム100は、リーダー(読み出し者)として待ち行列へ申し込んでいる、全てのアクセスエンティティにより読み出された(すなわち、全ての申し込み者の読み出しポインタが、ページ上の各メッセージを処理してしまい、そのページから去ってしまった)待ち行列メッセージを保持するページを開放する。待ち行列システム100は、何らかの様々な他の理由でページを開放できる。例えば、ページ上のメッセージ全てが、削除されるかまたは「片づけられた」場合、ページが開放される。
実施によっては、ページは時間制限に基づいて開放される。例えば、ページは、ページと関係付けられる待ち行列が、所定時間(例えば2分間)を越えて閉じていた後に、開放される。別のケースでは、ページは、関係する待ち行列が開いていても、所定時間(例えば10分間)を越えてアクセスされなかった後は開放される。
さらに、待ち行列マネージャ102は、他のプログラムまたはデータ構造が使用する揮発性メモリページを開放して、待ち行列システム100が待ち行列ページを割り当てるために使用できる。待ち行列システム100は、全ての揮発性メモリページを開放するために用いることもできるグローバルフリーリスト212を用いることができ、さもなければ代替として、待ち行列ページに用いる揮発性メモリページに対してセパレートフリーリスト212を用いることができる。
図2Bに示すのは、仮想アドレスに基づいてシーケンシャルに並べたQUEUE_1に対するページQ1/P1〜Q1/P8のセットの実施例である。本実施例では、一つの書き込みアクセスエンティティが、一連のメッセージを待ち行列に書き込んでいて、二つの読み出しアクセスエンティティが、利用可能になった時にメッセージを読み出している。書き込みアクセスエンティティは、シーケンシャルに増加する仮想アドレスで、ページ上にメッセージを書き込む書き込みポインタWRITER_1を有する。書き込みポインタWRITER_1がページQ1/P7からページQ1/P8へ移動した後、ページQ1/P7は、ケース1のもとでリサイクルリスト200のヘッド202上に配置可能となる。読み出しポインタREADER_2がページQ1/P2からページQ1/P3へ移動した後、ページQ1/P2は、ケース3のもとでリサイクルリスト200のテール204上に配置可能となる。
第1の読み出しアクセスエンティティは読み出しポインタREADER_1を有し、このポインタが、書き込みポインタWRITER_1を何ページかの待ち行列ページ分だけ遅延させる。この遅延は、そのアクセスエンティティが待ち行列システム100と相互作用する時に短くなったり長くなったりする。第2の読み出しアクセスエンティティは、同様に、書き込みポインタWRITER_1を遅延させる読み出しポインタREADER_2を有する。空きページがライターにとって利用可能なままである場合、リーダーは、揮発性メモリ格納108から、書き込まれたページにアクセスできる。空きページを利用できない場合(例えば、揮発性メモリ空間が、リーダーによる大きな遅延が原因で一杯になっている場合)、書き込まれたページの幾つかをリサイクルできるかもしれない。例えば、このページ管理方式のもとでは、最新使用ページが繰り返しリサイクルされることになり、揮発性メモリ内には、遅れているリーダーが利用可能な最長時間未使用ページのシーケンスが残される。
QUEUE_1を閉じた後、リサイクルリスト200上に既にない待ち行列ページはどれも、リサイクルリスト200のテール204上に配置可能となる。テール204上に配置される最新の閉じた待ち行列に対するこのような待ち行列ページはどれも、テール204からヘッド202まで、そのページがリサイクルリスト200を上方「スクロール」するまで、別のアクセスエンティティによるアクセスに対して揮発性メモリ格納108内に利用可能なまま残る。
図3Aは、揮発性メモリ格納108に対するメモリアドレス空間210内の待ち行列ページの実施例を示す。ページアドレスV-PAGE_1〜V-PAGE_2は空なので、図3Dに示す空きリスト212内に含まれる。アドレスV-PAGE_3〜V-PAGE_7を用いて、QUEUE_2の待ち行列ページを格納する。読み出しアクセスエンティティは、待ち行列ページQ2/P3内のメッセージを読み出すための、V-PAGE_2内に配置された読み出しポインタREADER_1を有する(本実施例では待ち行列ページは複数のメッセージを格納する)。書き込みアクセスエンティティは、待ち行列ページQ2/P7内にメッセージを書き込むための、V-PAGE_7内に配置された書き込みポインタWRITER_1を有する。アドレスV-PAGE_8〜V-PAGE_10を用いて、閉じられるQUEUE_1の待ち行列ページを格納する。アドレスV-PAGE_11〜V-PAGE_12を用いて他のデータを格納する。
図3Bに示すのは、不揮発性メモリ格納110のメモリアドレス空間208の実施例である。不揮発性メモリ格納110は、同期されている(例えばコミット操作による同期)QUEUE_1およびQUEUE_2の待ち行列ページを格納し、その内の幾つかは揮発性メモリ格納108にも新しくロードされている。本実施例では、揮発性メモリ内の待ち行列ページQ2/P7は、不揮発性メモリとまだ同期していない新規メッセージで書き込まれている。
図3Cは、揮発性メモリ格納108内の活動履歴に対応するリサイクルリスト200を示す。例えば、QUEUE_1は閉じたばかりなので、待ち行列システム100は、LRU方式に基づいてリサイクルするために、リサイクルリスト200のテールエンド204上にこれらの仮想アドレスを配置することにより、待ち行列ページQ1/P3〜Q1/P5を記録したところである。書き込みポインタWRITER_1は、待ち行列ページQ2/P4、Q2/P5、およびQ2/P6(この順序で)から移動したばかりである。したがって、待ち行列システム100は、これらの仮想アドレスを、リサイクルリスト200の、テールエンド204ではなくヘッドエンド202上に配置したところである。
図4A〜4Cは、続いて起こる活動の後の、揮発性アドレス空間210、不揮発性アドレス空間208、およびリサイクルリスト200の状態をそれぞれ示す。書き込みポインタWRITER_1は、空きリスト212から割り当てられるアドレスV-PAGE_2で新規待ち行列ページQ2/P8上に移動したところである。第2の読み出しアクセスエンティティは、V-PAGE_1内に配置された読み出しポインタREADER_2を有し、空きリスト212から割り当てられた待ち行列ページQ1/P1内のメッセージを読み出す。これらのページ割り当て後、空きリスト212は空になる。
図5A〜5Cは、リサイクルリスト200からのページ割り当て後の、揮発性アドレス空間210、不揮発性アドレス空間208、およびリサイクルリスト200の状態をそれぞれ示す。書き込みポインタWRITER_1は、待ち行列ページQ2/P8上に残る。読み出しポインタREADER_1は、V-PAGE_4で待ち行列ページQ2/P4上に移動したところである。読み出しポインタREADER_2は、リサイクルリスト200(図4C)のヘッド202から割り当てられた待ち行列ページQ1/P2上に移動したところである。このページ割り当て後、リサイクルリスト200の新規ヘッド202は、Q2/P6となる(図5C)。待ち行列ページQUEUE_1AおよびQUEUE_1Cはもはや必要でなくなるので、アドレスV-PAGE_1およびV-PAGE_3は、空きリスト204(図5D)上に配置される。
この実施例では、単一ライターおよび単一リーダーが所与の待ち行列にアクセスする。その他の実施例では、多数のアクセスエンティティ(例えば、加入者および/またはライター)が同一の待ち行列と相互作用できる(それぞれが自身の読み出しまたは書き込みポインタを有する)。多数のアクセスエンティティが一つの待ち行列と相互作用する場合、メモリページをリサイクルするために上記説明の同一ケースを用いることができる。
待ち行列システム100は、本明細書で説明した技法と組み合わせた他の技法を用いてシステム性能を高めることができる。例えば、待ち行列マネージャ102は、ページが要求されようとしている時を予測でき、多数のページを同時にリサイクルできる。待ち行列マネージャ102は、例えば、リサイクルリスト内のページが追加された後にそれを並べ替えることによりリサイクルリストを修正することもできる。
上記のページ管理方式は、コンピュータ上で実行するためのソフトウエアを用いて実施できる。例えば、このソフトウエアは、プログラムされるか、またはプログラム可能な一台以上のコンピュータシステム(分散型、クライアント/サーバ型、またはグリッド型のような各種アーキテクチャで構成できる)上で実行される、一つ以上のコンピュータプログラム内の手順を形成し、上記コンピュータシステムはそれぞれ、少なくとも一つのプロセッサ、少なくとも一つのデータ記憶装置システム(揮発性および不揮発性メモリおよび/または記憶素子を含む)、少なくとも一つの入力装置または入力ポート、および少なくとも一つ出力装置または出力ポートを含む。このソフトウエアは、例えば、計算グラフの設計および構成に関連する他のサービスを提供する大規模なプログラムの一つ以上のモジュールを形成してもよい。グラフのノードおよび要素は、コンピュータ読取り可能な媒体内に格納されるデータ構造、またはデータ収納庫内に格納されるデータモデルに準拠した他の体系化されたデータとして実装できる。
このソフトウエアは、汎用または専用のプログラマブルコンピュータが読みとれるCD−ROMのような、または実行している場所のコンピュータにネットワークを介して配信(伝送信号に符号化されて)可能な媒体上で提供できる。機能は全て、専用コンピュータ上で、またはコプロセッサのような専用ハードウエアを用いて実行できる。本ソフトウエアは、ソフトウエアが規定する、計算の異なる部分を異なるコンピュータで実行する分散方式で実施することができる。このようなコンピュータプログラムはそれぞれ、コンピュータシステムが記憶媒体または装置を読みとって本明細書に記載する手順を実行する場合、コンピュータを構成し、動作させるために、汎用または専用プログラマブルコンピュータが読みとれる記憶媒体または装置(例えば、固体のメモリもしくは媒体または磁気もしくは光の媒体)に格納するか、ダウンロードするのが好ましい。本発明のシステムは、コンピュータプログラムとともに構成されるコンピュータ読取り可能な記憶媒体として、実装されるべきであると考えることもでき、そのように構成された記憶媒体は、コンピュータシステムを特定のおよび所定の方法で動作させ、本明細書に記載の機能を実行させる。
言うまでもなく、上記記載は説明用であって、本発明の範囲を制限するものではなく、その範囲は、付帯する特許請求の範囲により定義される。例えば、上記の幾つかの機能ステップは、処理全体へ実質的に影響を及ぼさずに異なる順序で実行できる。他の実施の形態は、以下の特許請求の範囲内にある。
図1は、待ち行列システムの図である。 図2Aは、揮発性および不揮発性メモリ空間へリサイクルリストをリンクするページテーブルの図である。 図2Bは、メモリページの図である。 図3Aは、揮発性および不揮発性メモリ空間内のメモリページの図である。 図3Bは、揮発性および不揮発性メモリ空間内のメモリページの図である。 図3Cは、図3Aの揮発性メモリ空間に対応するリサイクルリストおよび空きリストの図である。 図3Dは、図3Aの揮発性メモリ空間に対応するリサイクルリストおよび空きリストの図である。 図4Aは、揮発性および不揮発性メモリ空間内のメモリページの図である。 図4Bは、揮発性および不揮発性メモリ空間内のメモリページの図である。 図4Cは、図4Aの揮発性メモリ空間に対応するリサイクルリストの図である。 図5Aは、揮発性および不揮発性メモリ空間内のメモリページの図である。 図5Bは、揮発性および不揮発性メモリ空間内のメモリページの図である。 図5Dは、図5Aの揮発性メモリ空間に対応するリサイクルリストおよび空きリストの図である。 図5Dは、図5Aの揮発性メモリ空間に対応するリサイクルリストおよび空きリストの図である。

Claims (47)

  1. 一つ以上の待ち行列のために用いられるメモリをページングするための方法であって、
    前記待ち行列の少なくとも一部を格納する少なくとも幾つかのメモリページを含むメモリページを識別するとともに、前記識別されるメモリページが再使用される順序を表すリサイクルリストデータ構造を提供するステップと、
    前記待ち行列の少なくとも一つの一部を格納するメモリページへのアクセス履歴に基づいて、前記リサイクルリストデータ構造を維持して、前記順序における前記メモリページの位置を、前記メモリページからのシーケンシャルアクセスの移行に依存させるステップ
    とを含む方法。
  2. 前記メモリページからのシーケンシャルアクセスの前記移行は、前記メモリページからのポインタの移行に対応する請求項1の方法。
  3. 前記順序における前記メモリページの前記位置は、シーケンシャルアクセスの前記移行が、前記メモリページからの書き込みアクセスの移行に対応するかどうかに依存する請求項1の方法。
  4. 前記待ち行列の一つと関係付けられた、メモリページへのアクセス履歴に基づいて、前記順序を表す前記リサイクルリストデータ構造を維持するステップは、
    前記メモリページからの書き込みアクセスの移行に応じて、前記リサイクルリストデータ構造の第1エンドに、前記メモリページのための識別子を配置するステップと、
    閉じている前記メモリページと関係付けられる前記待ち行列に応じて、前記リサイクルリストデータ構造の第2エンドに、前記メモリページのための識別子を配置するステップ
    とを含む請求項1の方法。
  5. 前記リサイクルリストデータ構造の前記第1エンドからのメモリページを再使用するステップをさらに含む請求項4の方法。
  6. 空きメモリページリストが空であることを判定した後、前記リサイクルリストデータ構造の前記第1エンドから前記メモリページを再使用するステップをさらに含む請求項5の方法。
  7. 前記メモリページを再使用するステップは、前記メモリページの現在のコンテンツを不揮発性メモリ格納へ書き込むステップを含む請求項5の方法。
  8. 前記メモリページを再使用するステップは、前記不揮発性メモリ格納からのメモリページを前記メモリページへ書き込むステップをさらに含む請求項7の方法。
  9. 一つ以上の待ち行列のために用いられるメモリをページングするための、コンピュータ読取り可能な記録媒体上に格納されるソフトウエアであって、
    前記待ち行列の一部を格納する少なくとも幾つかのメモリページを含むメモリページを識別するとともに、前記識別されるメモリページが再使用される順序を表すリサイクルリストデータ構造を提供する命令と、
    前記待ち行列の少なくとも一つの一部を格納するメモリページへのアクセス履歴に基づいて、前記リサイクルリストデータ構造を維持して、前記順序における前記メモリページの位置を、前記メモリページからのシーケンシャルアクセスの移行に依存させる命令とをコンピュータシステムに実行させるソフトウエア。
  10. 一つ以上の待ち行列のために用いられるメモリをページングするためのシステムであって、
    前記待ち行列の一部を格納する少なくとも幾つかのメモリページを含むメモリページを識別するとともに、前記識別されるメモリページが再使用される順序を表すリサイクルリストデータ構造を提供するための手段と、
    前記待ち行列の少なくとも一つの一部を格納するメモリページへのアクセス履歴に基づいて、前記リサイクルリストデータ構造を維持して、前記順序における前記メモリページの位置を、前記メモリページからのシーケンシャルアクセスの移行に依存させる手段とを備えたシステム。
  11. 一つ以上の待ち行列のために用いられるメモリをページングするための方法であって、
    前記待ち行列の少なくとも一部を格納するメモリページを識別するとともに、前記識別されるメモリページが再使用される順序を表すリサイクルリストデータ構造を提供するステップと、
    第1のケースでは最新使用方式に基づいて、前記リサイクルリストデータ構造の第1エンドで識別されたメモリページを再使用し、第2のケースでは最長時間未使用方式に基づいて、前記リサイクルリストデータ構造の第2エンドで識別されたメモリページを再使用するステップを含む方法。
  12. 前記第1のケースは、前記メモリページからの書き込みポインタの移行に応じて発生する請求項11の方法。
  13. 前記第2のケースは、アクセスエンティティが前記待ち行列を閉じることに応じて発生する請求項11の方法。
  14. 前記第2のケースは、前記メモリページからの読み出しポインタの移行に応じて発生する請求項11の方法。
  15. 一つ以上の待ち行列のために用いられるメモリをページングするための、コンピュータ読取り可能な記録媒体上に格納されるソフトウエアであって、
    前記待ち行列の少なくとも一部を格納するメモリページを識別するとともに、前記識別されるメモリページが再使用される順序を表すリサイクルリストデータ構造を提供する命令と、
    第1のケースでは最新使用方式に基づいて、前記リサイクルリストデータ構造の第1エンドで識別されたメモリページを再使用し、第2のケースでは最長時間未使用方式に基づいて、前記リサイクルリストデータ構造の第2エンドで識別されたメモリページを再使用させるための命令を、コンピュータシステムに実行させるソフトウエア。
  16. 前記リサイクルリストデータ構造によって識別されたメモリページを再使用して、前記待ち行列の一つの一部を格納するステップをさらに含む請求項1の方法。
  17. 前記リサイクルリストデータ構造によって識別された前記再使用されるメモリページは、再使用される前に前記待ち行列の一つの別の一部を格納していた請求項16の方法。
  18. 前記再使用されるメモリページに格納されている、前記待ち行列の一つの前記一部は、待ち行列に書き込まれている待ち行列メッセージを含む請求項16の方法。
  19. 前記待ち行列を格納する前記メモリページは、待ち行列メッセージと、前記待ち行列メッセージの管理に関連する記録とを格納する請求項1の方法。
  20. 前記第1のケースでは、前記メモリページは、待ち行列の第1の部分を格納し、前記待ち行列の第2の部分を格納するために再使用される請求項11の方法。
  21. 書き込みアクセスエンティティは、書き込みポインタで前記第2の部分を前記メモリページに書き込み、読み出しアクセスエンティティは、前記書き込みポインタから遅延する読み出しポインタで前記待ち行列からデータを読み出す請求項20の方法。
  22. 前記メモリページは、他のメモリページを使用する前に、一つ以上の最長時間未使用メモリページを前記読み出しアクセスエンティティのために利用可能としたまま、前記書き込みアクセスエンティティによって前記待ち行列に書き込むために繰り返し再使用される請求項21の方法。
  23. 前記第2のケースでは、前記メモリページは、第1の待ち行列の一部を格納し、第2の待ち行列の一部を格納するために再使用される請求項11の方法。
  24. 前記第2の待ち行列の前記一部は、アクセスエンティティによって前記第1の待ち行列が閉じられた後に、前記メモリページに格納される請求項23の方法。
  25. 前記第2のケースでは、前記メモリページは、待ち行列の第1の部分を格納し、前記待ち行列の第2の部分を格納するために再使用される請求項11の方法。
  26. 書き込みアクセスエンティティは、前記第1の部分を読み出す読み出しアクセスエンティティの読み出しポインタが前記メモリページから移行した後に、前記第2の部分を前記メモリページに書き込む請求項25の方法。
  27. 前記待ち行列に格納される論理的に順序付けられたエレメントは、複数のシーケンシャル待ち行列メッセージを含む請求項1の方法。
  28. 前記論理的に順序付けられたエレメントは、前記シーケンシャル待ち行列メッセージに関連する少なくとも1つの記録を含む請求項27の方法。
  29. 前記待ち行列に格納される論理的に順序付けられたエレメントは、書き込みアクセスエンティティによって書き込まれ、少なくとも一つの読み出しアクセスエンティティによって読み出される請求項1の方法。
  30. 前記書き込みアクセスエンティティと前記読み出しアクセスエンティティとは異なる請求項29の方法。
  31. 第1のメモリページのコンテンツを揮発性メモリ格納から不揮発性メモリ格納に書き込んだ後に第1の待ち行列の一部を前記第1のメモリページに格納するステップを含む、第1のアクセスエンティティからの要求に応じて前記第1の待ち行列を開くステップと、
    前記第1のキューのための書き込みポインタを前記第1のアクセスエンティティに提供するステップとをさらに含む請求項1の方法。
  32. 前記第1の待ち行列のための一つ以上の読み出しポインタを一つ以上の追加のアクセスエンティティに提供するステップをさらに含む請求項31の方法。
  33. 前記第1の待ち行列の一部を格納する第2のメモリページを、前記書き込みポインタまたは前記読み出しポインタの何れも前記第2のメモリページを指し示していないことを判定した後に、前記リサイクルリストデータ構造に移動させるステップをさらに含む請求項32の方法。
  34. 前記第1のケースでは、前記メモリページは、待ち行列の第1の部分を格納し、前記待ち行列の第2の部分を格納するために再使用される請求項15のソフトウェア。
  35. 書き込みアクセスエンティティは、書き込みポインタで前記第2の部分を前記メモリページに書き込み、読み出しアクセスエンティティは、前記書き込みポインタから遅延する読み出しポインタで前記待ち行列からデータを読み出す請求項34のソフトウェア。
  36. 前記メモリページは、他のメモリページを使用する前に、一つ以上の最長時間未使用メモリページを前記読み出しアクセスエンティティのために利用可能としたまま、前記書き込みアクセスエンティティによって前記待ち行列に書き込むために繰り返し再使用される請求項35のソフトウェア。
  37. 前記第2のケースでは、前記メモリページは、第1の待ち行列の一部を格納し、第2の待ち行列の一部を格納するために再使用される請求項15のソフトウェア。
  38. 前記第2の待ち行列の前記一部は、アクセスエンティティによって前記第1の待ち行列が閉じられた後に、前記メモリページに格納される請求項37のソフトウェア。
  39. 前記第2のケースでは、前記メモリページは、待ち行列の第1の部分を格納し、前記待ち行列の第2の部分を格納するために再使用される請求項15のソフトウェア。
  40. 書き込みアクセスエンティティは、前記第1の部分を読み出す読み出しアクセスエンティティの読み出しポインタが前記メモリページから移行した後に、前記第2の部分を前記メモリページに書き込む請求項39のソフトウェア。
  41. 記メモリページは、待ち行列の第1の部分を格納し、前記待ち行列の第2の部分を格納するために再使用される請求項10のシステム。
  42. 書き込みアクセスエンティティは、書き込みポインタで前記第2の部分を前記メモリページに書き込み、読み出しアクセスエンティティは、前記書き込みポインタから遅延する読み出しポインタで前記待ち行列からデータを読み出す請求項41のシステム。
  43. 前記メモリページは、他のメモリページを使用する前に、一つ以上の最長時間未使用メモリページを前記読み出しアクセスエンティティのために利用可能としたまま、前記書き込みアクセスエンティティによって前記待ち行列に書き込むために繰り返し再使用される請求項42のシステム。
  44. 記メモリページは、第1の待ち行列の一部を格納し、第2の待ち行列の一部を格納するために再使用される請求項10のシステム。
  45. 前記第2の待ち行列の前記一部は、アクセスエンティティによって前記第1の待ち行列が閉じられた後に、前記メモリページに格納される請求項44のシステム。
  46. 記メモリページは、待ち行列の第1の部分を格納し、前記待ち行列の第2の部分を格納するために再使用される請求項10のシステム。
  47. 書き込みアクセスエンティティは、前記第1の部分を読み出す読み出しアクセスエンティティの読み出しポインタが前記メモリページから移行した後に、前記第2の部分を前記メモリページに書き込む請求項46のシステム。
JP2008519413A 2005-06-27 2006-06-22 メモリページ管理 Active JP5142995B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/169,246 US7673105B2 (en) 2005-06-27 2005-06-27 Managing memory pages
US11/169,246 2005-06-27
PCT/US2006/024291 WO2007002282A2 (en) 2005-06-27 2006-06-22 Managing memory pages

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012225139A Division JP5647203B2 (ja) 2005-06-27 2012-10-10 メモリページ管理

Publications (2)

Publication Number Publication Date
JP2008544422A JP2008544422A (ja) 2008-12-04
JP5142995B2 true JP5142995B2 (ja) 2013-02-13

Family

ID=37568978

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2008519413A Active JP5142995B2 (ja) 2005-06-27 2006-06-22 メモリページ管理
JP2012225139A Active JP5647203B2 (ja) 2005-06-27 2012-10-10 メモリページ管理

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2012225139A Active JP5647203B2 (ja) 2005-06-27 2012-10-10 メモリページ管理

Country Status (8)

Country Link
US (2) US7673105B2 (ja)
EP (1) EP1896951B1 (ja)
JP (2) JP5142995B2 (ja)
KR (1) KR101372964B1 (ja)
CN (1) CN101189584B (ja)
AU (1) AU2006262111B2 (ja)
CA (1) CA2610180C (ja)
WO (1) WO2007002282A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013037718A (ja) * 2005-06-27 2013-02-21 Ab Initio Technology Llc メモリページ管理

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7694091B2 (en) * 2006-10-23 2010-04-06 Hewlett-Packard Development Company, L.P. Non-volatile storage for backing up volatile storage
JP4978264B2 (ja) * 2007-03-23 2012-07-18 京セラドキュメントソリューションズ株式会社 画像形成装置及びメモリ資源確保方法
US8010519B2 (en) * 2008-07-29 2011-08-30 International Business Machines Corporation Method and system for mitigating impact of user errors in data stores
KR101581679B1 (ko) * 2009-03-18 2015-12-31 삼성전자주식회사 저장 장치 및 저장 장치의 버퍼 메모리 관리 방법
CN102460400B (zh) * 2009-06-29 2014-09-24 惠普开发有限公司 基于管理程序的本地和远程虚拟内存页面管理
US9684455B2 (en) * 2013-03-04 2017-06-20 Seagate Technology Llc Method and apparatus for sequential stream I/O processing
CN103516580B (zh) * 2012-06-26 2017-06-23 北京大学 一种基于消息队列实现消息接收与转发的方法及系统
JP6323986B2 (ja) * 2012-06-26 2018-05-16 シャープ株式会社 画像表示装置、それを含む画像表示システム、及びその制御方法
US9417757B1 (en) * 2013-09-20 2016-08-16 Emc Corporation Scalable hierarchical user interface display
EP2985690B1 (en) * 2014-08-11 2018-07-18 Dot Hill Systems Corporation Method and apparatus for sequential stream i/o processing
CN104239248B (zh) * 2014-09-16 2017-06-06 国家计算机网络与信息安全管理中心 Pci‑e多缓冲区dma数据传输方法
US10067981B2 (en) 2014-11-21 2018-09-04 Sap Se Intelligent memory block replacement
CN106843756B (zh) * 2017-01-13 2019-12-31 中国科学院信息工程研究所 基于页面分类的内存页面回收方法及系统
GB201709499D0 (en) 2017-06-15 2017-08-02 Microsoft Technology Licensing Llc Memory management in non-volatile memory
CN111290848B (zh) * 2018-12-06 2025-01-14 中兴通讯股份有限公司 一种内存优化方法、终端和计算机可读存储介质
CN111679914B (zh) * 2020-06-12 2023-06-27 北京字节跳动网络技术有限公司 一种内存管理方法、系统、计算机设备及存储介质
CN112052089B (zh) * 2020-09-01 2023-03-28 Oppo(重庆)智能科技有限公司 内存回收方法、装置以及电子设备

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5597081A (en) * 1979-01-12 1980-07-23 Fujitsu Ltd Page send-out system
JPS6086638A (ja) * 1983-10-18 1985-05-16 Fujitsu Ltd プログラムの記憶管理方式
CA1279731C (en) * 1986-06-27 1991-01-29 Ruby Bei-Loh Lee Cache memory with variable fetch and replacement schemes
US5125086A (en) * 1989-06-29 1992-06-23 Digital Equipment Corporation Virtual memory paging apparatus with variable size in-page clusters
US5426747A (en) 1991-03-22 1995-06-20 Object Design, Inc. Method and apparatus for virtual memory mapping and transaction management in an object-oriented database system
JP2618149B2 (ja) 1991-04-22 1997-06-11 インターナショナル・ビジネス・マシーンズ・コーポレイション キャッシュ内のデータ記憶スペースを管理する方法及びキャッシュ内でページ置換を行う装置
JPH0546668A (ja) * 1991-08-07 1993-02-26 Nec Corp 分散データ制御システム
US5504899A (en) 1991-10-17 1996-04-02 Digital Equipment Corporation Guaranteeing global serializability by applying commitment ordering selectively to global transactions
US5530848A (en) 1992-10-15 1996-06-25 The Dow Chemical Company System and method for implementing an interface between an external process and transaction processing system
US5455944A (en) 1993-03-16 1995-10-03 International Business Machines Corporation Method for managing logging and locking of page free space information in a transaction processing system
US5617537A (en) * 1993-10-05 1997-04-01 Nippon Telegraph And Telephone Corporation Message passing system for distributed shared memory multiprocessor system and message passing method using the same
US5586312A (en) 1994-10-11 1996-12-17 Unisys Corporation Method and apparatus for using an independent transaction processing application as a service routine
US5857204A (en) 1996-07-02 1999-01-05 Ab Initio Software Corporation Restoring the state of a set of files
US6327644B1 (en) 1998-08-18 2001-12-04 International Business Machines Corporation Method and system for managing data in cache
US6594751B1 (en) 1999-03-25 2003-07-15 Progress Software Corporation Method and apparatus for pointer relocation optimization for virtual memory mapping and transaction management in a database system
JP2002183074A (ja) * 2000-12-14 2002-06-28 Fuji Xerox Co Ltd データ転送制御装置
JP2004152173A (ja) * 2002-10-31 2004-05-27 Sharp Corp ディスク装置およびディスク装置のキャッシュメモリ制御方法
US7673105B2 (en) * 2005-06-27 2010-03-02 Ab Inition Technology LLC Managing memory pages

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013037718A (ja) * 2005-06-27 2013-02-21 Ab Initio Technology Llc メモリページ管理

Also Published As

Publication number Publication date
CN101189584A (zh) 2008-05-28
EP1896951A4 (en) 2009-01-28
WO2007002282A2 (en) 2007-01-04
KR101372964B1 (ko) 2014-03-13
CA2610180A1 (en) 2007-01-04
US7673105B2 (en) 2010-03-02
CA2610180C (en) 2016-11-29
JP2013037718A (ja) 2013-02-21
AU2006262111A1 (en) 2007-01-04
EP1896951A2 (en) 2008-03-12
AU2006262111A2 (en) 2007-01-04
US20100122048A1 (en) 2010-05-13
KR20080021623A (ko) 2008-03-07
AU2006262111B2 (en) 2011-03-17
US7949839B2 (en) 2011-05-24
EP1896951B1 (en) 2019-10-16
JP5647203B2 (ja) 2014-12-24
JP2008544422A (ja) 2008-12-04
CN101189584B (zh) 2010-12-15
US20060294330A1 (en) 2006-12-28
WO2007002282A3 (en) 2007-09-20

Similar Documents

Publication Publication Date Title
JP5647203B2 (ja) メモリページ管理
RU2671049C2 (ru) Выгрузка в файловой системе
US20120079212A1 (en) Architecture for sharing caches among multiple processes
US20130091331A1 (en) Methods, apparatus, and articles of manufacture to manage memory
JP2004062869A (ja) コンピュータ・システムでのトランザクションの選択的キャッシングの方法および装置
US9767015B1 (en) Enhanced operating system integrity using non-volatile system memory
JP3485598B2 (ja) ファイルの配置方法、データ多重化方法及びデータ処理システム
US10210097B2 (en) Memory system and method for operating the same
JP4189342B2 (ja) ストレージ装置、ストレージコントローラ及びライトバックキャッシュ制御方法
US11874767B2 (en) Memory partitions for processing entities
US11249646B1 (en) Large segment management
WO2006130768A2 (en) Transactional file system with client partitioning
US6728854B2 (en) System and method for providing transaction management for a data storage space
CN111435285B (zh) 存储卷写数据方法、装置、电子设备及机器可读存储介质
CN121029096B (zh) 通过LRU算法优化虚拟NVMe读写性能的方法及虚拟NVMe系统
JP4131579B2 (ja) データ管理システムおよびデータ管理方法
HK1114205A (en) Managing memory pages
HK1114205B (en) Managing memory pages
Greenberg et al. The multics multilevel paging hierarchy
CN121657941A (zh) 一种通用大尺寸数据存储方法及系统
CN120973752A (zh) 分布式存储数据一致性处理方法及装置
CN118689642A (zh) 一种基于持久内存的尾延迟优化系统、方法及设备
Zhou Memory management for networked servers
JPH04111026A (ja) データベースに対する更新履歴情報の書き込み方式

Legal Events

Date Code Title Description
A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20080902

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090604

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20100624

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100625

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111220

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120309

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20120316

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120316

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120419

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120419

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121010

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

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

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

Free format text: PAYMENT UNTIL: 20151130

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5142995

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

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