JP5893028B2 - キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのシステム及び方法 - Google Patents

キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのシステム及び方法 Download PDF

Info

Publication number
JP5893028B2
JP5893028B2 JP2013524856A JP2013524856A JP5893028B2 JP 5893028 B2 JP5893028 B2 JP 5893028B2 JP 2013524856 A JP2013524856 A JP 2013524856A JP 2013524856 A JP2013524856 A JP 2013524856A JP 5893028 B2 JP5893028 B2 JP 5893028B2
Authority
JP
Japan
Prior art keywords
sequential
sequential log
target size
cache
storage device
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.)
Expired - Fee Related
Application number
JP2013524856A
Other languages
English (en)
Other versions
JP2013539111A (ja
Inventor
クマー・アジャイ
チェプリ・ラジェッシュ
マラセ・シェイリッシェ
ペンドハーカー・ニランジャン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NortonLifeLock Inc
Original Assignee
Symantec 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 Symantec Corp filed Critical Symantec Corp
Publication of JP2013539111A publication Critical patent/JP2013539111A/ja
Application granted granted Critical
Publication of JP5893028B2 publication Critical patent/JP5893028B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection

Description

いくつかのアプリケーションは、最小限のレイテンシーを伴うトランザクションの安全な実行やエラーロギングなどの様々な目的のために、データをログに出力してもよい。多くの場合に、このログは、シーケンシャルログの形態をとってもよい。
シーケンシャルログは、書込みが多くて読取りが少ない入出力パターンを有してもよく、ロギング動作は、割り当てられた空間の開始点において始まり、且つ、割り当てられた空間の終了点にログが到達する時点までシーケンシャルに継続し、且つ、開始点に再度戻る。残念ながら、キャッシュフロントエンドを有するストレージ装置上においてシーケンシャルログが維持される際には、このフォーマットは、いくつかの非効率性を結果的にもたらすことになろう。例えば、ログに対する書込みが大きな空間にわたってシーケンシャルに発生することになるため、ログに割り当てられたディスク空間が、キャッシュに対してピン固定された状態には、決してならないであろう。この結果、読取りにおいて、データが、キャッシュではなく、ディスクからフェッチされることになろう。更には、又はこの代わりに、ログに対するシーケンシャルな書込みによって頻繁なキャッシュフラッシュがトリガされ、その結果、潜在的にログに対する書込み性能に影響が及ぶことにもなろう。更には、ストレージ装置が、シーケンシャルログが動作しているコンテキストを顧みることなしに、様々な不必要なキャッシュ動作を実行することにもなろう。従って、本開示は、キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングに対するニーズを識別するものである。
詳細に後述するように、本開示は、一般に、キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのシステム及び方法に関する。一例においては、本明細書に記述されているシステムは、1)キャッシュを有するストレージ装置を識別し、2)シーケンシャルログのためにストレージ装置上の空間を割り当て、3)シーケンシャルログに振り向けられる入出力負荷に少なくとも部分的に基づいてシーケンシャルログのターゲットサイズを算出し、且つ、次いで、4)シーケンシャルログをターゲットサイズに対応した割り当てられた空間の一部分に制限することにより、このタスクを実現してもよい。
シーケンシャルログのためにストレージ装置上の空間を割り当てる際に、本明細書に記述されているシステムは、ピーク負荷の際にすべての書込みの試みを受け入れるために、シーケンシャルログのために十分な空間を割り当ててもよい。シーケンシャルログのサイズを制限することに加えて、いくつかの例においては、本明細書に記述されているシステムは、1)シーケンシャルログに振り向けられる入出力負荷に少なくとも部分的に基づいてシーケンシャルログのターゲットサイズを再算出し、且つ、2)割り当てられた空間内においてシーケンシャルログをターゲットサイズに拡大してもよい。いくつかの例においては、本明細書に記述されているシステムは、入出力負荷が変化するのに伴ってターゲットサイズを動的に算出してもよい。
ターゲットサイズの算出は、様々な情報を含んでもよい。例えば、算出は、シーケンシャルログのデータの消費に関係する情報を含んでもよい。いくつかのコンテキストにおいては、シーケンシャルログは、ノードのクラスタに対してサービスしてもよい。これらのコンテキストにおいては、算出は、1)入出力負荷に寄与するノードのクラスタを識別するステップと、2)入出力負荷に対するノードの寄与度に基づいてクラスタ内のそれぞれのノードごとにターゲットサイズを算出するステップと、を含んでもよい。
シーケンシャルログのサイズを操作することに加えて、本明細書に記述されているシステムは、様々なキャッシュを意識した介入を通じてシーケンシャルロギングの効率を改善してもよい。これらは、1)割り当てられた空間の一部分をキャッシュに対してピン固定するステップ、2)シーケンシャルログを使用するように構成されたアプリケーション用の有効な情報を収容してはいない割り当てられた空間内の領域を破棄するようにキャッシュを構成するステップ、及び/又は、3)ストレージ装置が、シーケンシャルログへの最初の書込みの際に、ページをストレージ装置からキャッシュにフェッチすることを妨げるステップを含んでもよい。又、本明細書に記述されているシステムは、1)シーケンシャルログに対する潜在的なエントリを識別し、2)潜在的なエントリがシーケンシャルログ内に既に存在していることを判定し、且つ、次いで、3)潜在的なエントリがシーケンシャルログ内にリエントリされることを遮断することにより、望ましくないキャッシュ動作を回避してもよい。
詳細に後述するように、シーケンシャルログの境界を制限することにより、本明細書に記述されているシステム及び方法は、シーケンシャルログがその上部に維持されているストレージ装置のキャッシュ性能を改善してもよい。更には、本明細書に記述されているシステム及び方法は、シーケンシャルログ及び/又はシーケンシャルログを使用するアプリケーションを意識してキャッシングの決定を下すことにより、キャッシュ性能を改善してもよい。
上述の実施形態のうちのいずれかの実施形態の特徴を本明細書に記述されている一般的な原理に従って相互に組み合わせて使用してもよい。これらの及びその他の実施形態、特徴、利点については、添付の図面及び請求項との関連において以下の詳細な説明を参照することにより、更に十分に理解することができよう。
添付図面は、いくつかの例示的実施形態を示すと共に本明細書の一部分を構成している。これらの図面は、以下の説明と共に、本開示の様々な原理を実証及び説明している。
キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのための例示的システムのブロックダイアグラムである。 キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのための例示的システムのブロックダイアグラムである。 キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのための例示的方法の流れ図である。 キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのための例示的システムのブロックダイアグラムである。 本明細書に記述及び/又は図示されている実施形態のうちの1つ又は複数の実施形態を実装する能力を有する例示的演算システムのブロックダイアグラムである。 本明細書に記述及び/又は図示されている実施形態のうちの1つ又は複数の実施形態を実装する能力を有する例示的演算ネットワークのブロックダイアグラムである。
添付図面の全体を通じて、同一の参照符号及び説明により、類似の、但し、必ずしも同一ではない、要素を示している。本明細書に記述されている例示的実施形態には、様々な変更及び代替形態が可能であるが、図面には、特定の実施形態が一例として示されており、且つ、本明細書においては、これらの実施例について詳細に説明することとする。但し、本明細書に記述されている例示的実施形態は、開示されている具体的な形態に限定されるものと解釈してはならない。むしろ、本開示は、添付の請求項の範囲に含まれるすべての変更形態、均等物、及び代替形態をも含む。
以下、図1、図2、及び図4を参照し、キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのための例示的システムについて詳細に説明することとする。又、対応するコンピュータ実装方法についても、図3との関連において詳細に説明することとする。更には、本明細書に記述されている実施形態のうちの1つ又は複数の実施形態を実装する能力を有する例示的演算システム及びネットワークアーキテクチャについても、それぞれ、図5及び図6との関連において詳細に説明することとする。
図1は、キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのための例示的システム100のブロックダイアグラムである。この図に示されているように、例示的システム100は、1つ又は複数のタスクを実行するための1つ又は複数のモジュール102を含んでもよい。例えば、且つ、詳細に後述するように、例示的システム100は、キャッシュを有するストレージ装置を識別するようにプログラムされた識別モジュール104を含んでもよい。又、例示的システム100は、シーケンシャルログのためにストレージ装置上の空間を割り当てるようにプログラムされた割当モジュール106を含んでもよい。
更には、且つ、詳細に後述するように、例示的システム100は、シーケンシャルログに振り向けられる入出力負荷に少なくとも部分的に基づいてシーケンシャルログのターゲットサイズを算出するようにプログラムされた算出モジュール108を含んでもよい。又、例示的システムは、シーケンシャルログをターゲットサイズに対応した割り当てられた空間の一部分に制限するようにプログラムされた制限モジュール110を含んでもよい。別個の要素として示されているが、図1のモジュール102のうちの1つ又は複数のモジュールは、単一のモジュール又はアプリケーションの一部分を表してもよい。
特定の実施形態においては、図1のモジュール102のうちの1つ又は複数のモジュールは、演算装置によって実行された際に、演算装置に1つ又は複数のタスクを実行させてもよい1つ又は複数のソフトウェアアプリケーション又はプログラムを表してもよい。例えば、詳細に後述するように、モジュール102のうちの1つ又は複数のモジュールは、図2に示されている装置(例えば、演算システム202及び/又はストレージ装置206)、図5の演算システム510、及び/又は図6の例示的ネットワークアーキテクチャ600の一部分などの1つ又は複数の演算装置上に保存されると共にこれらの上部において稼働するように構成されたソフトウェアモジュールを表してもよい。又、図1のモジュール102のうちの1つ又は複数のモジュールは、1つ又は複数のタスクを実行するように構成された1つ又は複数の特殊目的コンピュータのすべて又は一部分を表してもよい。
図1の例示的システム100は、様々な方法によって実施してもよい。例えば、例示的システム100のすべて又は一部分は、図2に示されている例示的システム200などのクラウド演算環境又はネットワークに基づいた環境の一部分を表してもよい。クラウド演算環境及びネットワークに基づいた環境は、様々なサービス及びアプリケーションをインターネットを介して提供してもよい。これらのクラウドに基づいた及び/又はネットワークに基づいたサービス(例えば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしてのインフラストラクチャなど)には、ウェブブラウザ又はその他のリモートインターフェイスを通じてアクセス可能であってよい。本明細書に記述されている様々な機能は、リモートデスクトップ環境又は任意のその他のクラウドに基づいた又はネットワークに基づいた演算環境を通じて提供してもよい。
図2に示されているように、システム200は、ネットワーク204を介してストレージ装置206との通信状態にある演算システム202を含んでもよい。一実施形態においては、且つ、詳細に後述するように、演算システム202は、図1のモジュール102(例えば、識別モジュール104、割当モジュール106、算出モジュール108、及び制限モジュール110)を含んでもよい。
一例においては、且つ、詳細に後述するように、モジュール102は、1)キャッシュ(例えば、キャッシュ208)を有するストレージ装置(例えば、ストレージ装置206)を識別し、2)シーケンシャルログ(例えば、シーケンシャルログ212)のためにストレージ装置上の空間(例えば、割り当てられた空間210)を割り当て、3)(例えば、アプリケーション216に起因して)シーケンシャルログに振り向けられる入出力負荷に少なくとも部分的に基づいてシーケンシャルログのターゲットサイズ(例えば、ターゲットサイズ214)を算出し、且つ、次いで、4)シーケンシャルログをターゲットサイズに対応した割り当てられた空間の一部分に制限するように、演算システム202をプログラムしてもよい。
演算システム202は、一般に、コンピュータ実行可能命令を読み取る能力を有する任意のタイプ又は形態の演算装置を表している。演算システム202の例は、限定を伴うことなしに、ラップトップ、デスクトップ、サーバー、セルラー電話機、パーソナルデジタルアシスタント(PDA)、マルチメディアプレーヤー、埋込み型システム、これらのうちの1つ又は複数のものの組合せ、図5の例示的演算システム510、又は任意のその他の演算装置を含む。
ストレージ装置206は、一般に、キャッシングメカニズムを伴ってデータを保存及び/又は取得する能力を有する任意のタイプ又は形態の演算装置を表している。ストレージ装置206の例は、限定を伴うことなしに、ハードディスクドライブ又は半導体ドライブを含む。
ネットワーク204は、一般に、通信及びデータ転送を促進する能力を有する任意の媒体又はアーキテクチャを表している。ネットワーク204の例は、限定を伴うことなしに、イントラネット、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、ストレージエリアネットワーク(SAN)、パーソナルエリアネットワーク(PAN)、インターネット、電力線通信(PLC)、セルラーネットワーク(例えば、GSMネットワーク)、図6の例示的ネットワークアーキテクチャ600、又はこれらに類似したものを含む。ネットワーク204は、無線又は有線接続を使用して通信又はデータ転送を促進してもよい。一実施形態においては、ネットワーク204は、演算システム202とストレージ装置206の間の通信を促進してもよい。
図3は、キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのための例示的コンピュータ実装方法300の流れ図である。図3に示されているステップは、任意の適切なコンピュータ実行可能コード及び/又は演算システムによって実行してもよい。いくつかの実施形態においては、図3に示されているステップは、図1のシステム100及び/又は図2のシステム200のコンポーネントうちの1つ又は複数のコンポーネントによって実行してもよい。
図3に示されているように、ステップ302において、本明細書に記述されているシステムのうちの1つ又は複数のシステムは、キャッシュを有するストレージ装置を識別してもよい。例えば、ステップ302において、識別モジュール104は、図2の演算システム202の一部として、キャッシュ208を有するストレージ装置206を識別してもよい。
本明細書において使用されている「ストレージ装置」という用語は、データを保存するための任意の物理的、論理的、及び/又は仮想的装置を意味してもよい。例えば、ストレージ装置は、単一のドライブ、ストレージアレイ、LUN(Logical Unit Number)によって指定されたストレージアレイの一部分などを含んでもよい。同様に、本明細書において使用されている「キャッシュ」という用語は、アクセスされる可能性が高いデータを保存すると共に/又はこれを利用可能な状態とすることによってデータアクセスを促進するための任意のメカニズム及び/又はコンポーネントを意味してもよい。
識別モジュール104は、任意の適切な方式によってストレージ装置を識別してもよい。例えば、識別モジュール104は、ストレージ装置を識別する構成ファイルを読み取ることによってストレージ装置を識別してもよい。更には、又はこの代わりに、識別モジュール104は、アプリケーションからメッセージ(例えば、シーケンシャルログを使用しているアプリケーションからのメッセージ)を受け取ることによってストレージ装置を識別してもよい。いくつかの例においては、識別モジュール104は、ストレージ装置から通信文を受け取ることによってストレージ装置を識別してもよい。又、識別モジュール104は、ストレージ装置に問い合わせると共に/又はストレージ装置に関する情報をルックアップすることにより、ストレージ装置がキャッシュを含むことを判定してもよい。又、いくつかの例においては、識別モジュール104は、(例えば、キャッシングの観点において、シーケンシャルログの最適なサイズを判定するために)キャッシュの特性を判定してもよい。
ステップ304において、本明細書に記述されているシステムのうちの1つ又は複数のシステムは、シーケンシャルログのためにストレージ装置上の空間を割り当ててもよい。例えば、ステップ304において、割当モジュール106は、図2の演算システム202の一部分として、シーケンシャルログ212のためにストレージ装置206上に割り当てられた空間210を生成してもよい。
本明細書において使用されている「シーケンシャルログ」という用語は、任意のログ、ファイル、及び/又はデータをシーケンシャルに(例えば、ストレージ装置上に)保存するデータ構造を意味してもよい。又、いくつかの例においては、シーケンシャルログは、回転型のログ(rotating log)であってもよい(例えば、シーケンシャルログの終了点に到達したら、書込みがシーケンシャルログの開始点において継続する)。又、シーケンシャルログは、シーケンシャルログ内の有効であると共に/又は未使用であるデータ及びシーケンシャルログ内の無効であると共に/又は使用済みであるデータに関係したメタデータを含んでもよい。
シーケンシャルログは、様々なコンテキストにおいて存在してもよい。例えば、シーケンシャルログは、最小限のレイテンシーを伴ってトランザクションを安全に実行するためのメカニズムとして機能してもよい(例えば、アプリケーションは、トランザクションをリモートシステム又はビジー状態のデータベースに対して直接的に委ねるのではなく、シーケンシャルログに対して委ねてもよい)。様々な例においては、シーケンシャルログは、データの複製、ジャーナルの取得、システムの回復、エラーのチェック、回帰テストなどのために機能してもよい。
割当モジュール106は、ステップ304を任意の適切な方式によって実行してもよい。例えば、割当モジュール106は、ファイルシステムに対して空間を要求することにより、空間を割り当ててもよい。更には、又はこの代わりに、割当モジュール106は、空間のために、ストレージ装置上にパーティションを生成してもよい。いくつかの例においては、割当モジュール106は、シーケンシャルログのためにストレージ装置上の連続した空間を割り当ててもよい。
割当モジュール106は、シーケンシャルログのために、任意の適切な量の空間を割り当ててもよい。例えば、割当モジュール106は、ピーク負荷の際にすべての書込みの試みを受け入れるために、シーケンシャルログのために十分な空間を割り当ててもよい。割当モジュール106は、十分な空間の量を任意の適切な方法によって判定してもよい。例えば、割当モジュール106は、シーケンシャルログのための十分な量の空間を示す(例えば、管理者によって設定されたものやシーケンシャルログを使用するアプリケーションによって設定された既定値に対応したものなどの)シーケンシャルログの構成パラメータを識別してもよい。
ステップ306において、本明細書に記述されているシステムのうちの1つ又は複数のシステムは、シーケンシャルログに振り向けられる入出力負荷に少なくとも部分的に基づいてシーケンシャルログのターゲットサイズを算出してもよい。例えば、ステップ306において、算出モジュール108は、図2の演算システム202の一部として、(例えば、アプリケーション216から)シーケンシャルログ212に振り向けられる入出力負荷に少なくとも部分的に基づいてシーケンシャルログ212のターゲットサイズ214を算出してもよい。
算出モジュール108は、様々な方法により、入出力負荷に基づいてターゲットサイズを算出してもよい。例えば、算出モジュール108は、(例えば、アプリケーションによって未だ消費されてはいない有効なデータによって占有されているシーケンシャルログの百分率などの)現在使用中のシーケンシャルログの百分率に基づいてターゲットサイズを算出してもよい。更には、又はこの代わりに、算出モジュール108は、シーケンシャルログが成長する速度に基づいてターゲットサイズを算出してもよい。いくつかの例においては、算出モジュール108は、推定及び/又は計画された入出力負荷に基づいてターゲットサイズを算出してもよい。例えば、算出モジュール108は、シーケンシャルログに書き込むアプリケーションから入出力負荷を示す情報を受け取ってもよい。
又、算出モジュール108は、様々なその他の情報を使用してターゲットサイズを算出してもよい。例えば、算出モジュール108は、シーケンシャルログのデータの消費に少なくとも部分的に基づいてターゲットサイズを算出してもよい。本明細書において使用されている「消費」という用語は、データに適用された際には、データがアクセスされると共に/又はアプリケーションによってもはや必要とはされなくなる任意のプロセスを意味してもよい。算出モジュール108は、様々な方法により、データの消費に対してアクセスしてもよい。例えば、算出モジュール108は、存在するシーケンシャルログのヘッドに対する参照の数を識別してもよい。更には、又はこの代わりに、算出モジュール108は、未使用のデータを収容しているシーケンシャルログの百分率の変化速度を識別してもよい。いくつかの例においては、算出モジュール108は、(例えば、キャッシュのサイズや複数のアクセスに対するキャッシュの感度などの)ストレージ装置上のキャッシュの特性などのその他の情報を使用し、ターゲットサイズを算出してもよい。
いくつかの例においては、算出モジュール108は、ターゲットサイズの再算出の一部として、ターゲットサイズを算出してもよい。例えば、算出モジュール108は、シーケンシャルログのターゲットサイズを算出し(且つ、詳細に後述するように、シーケンシャルログをターゲットサイズに制限し)、且つ、その後に、ターゲットサイズを再算出してもよく、この結果、シーケンシャルログのサイズが増大又は減少してもよい。いくつかの例においては、算出モジュール108は、入出力負荷が変化するのに伴ってターゲットサイズを動的に算出してもよい。例えば、算出モジュール108は、上述の入出力負荷の変化の1つ又は複数のインジケータを連続的に且つ/又は定期的に監視してもよい。いくつかの例においては、算出モジュール108は、シーケンシャルログの空間が不足した際に、ターゲットサイズを大きなものに変更してもよい。
いくつかのコンテキストにおいては、ノードのクラスタが入出力負荷に寄与する場合がある。これらのコンテキストにおいては、算出モジュール108は、1)ノードのクラスタを識別し、且つ、次いで、2)入出力負荷に対するノードの寄与度に基づいてクラスタ内のそれぞれのノードごとにターゲットサイズを算出してもよい。例えば、図4は、キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのための例示的システム400を示している。図4に示されているように、例示的システム400は、ノード402(1)〜402(n)のクラスタ402を含んでもよい。ノード402(1)〜402(n)は、それぞれ、アプリケーション416(1)〜416(n)を稼働させてもよい。この例においては、算出モジュール108は、ストレージ装置406上のシーケンシャルファイル412のターゲットサイズ414(1)〜414(n)を算出してもよい。従って、クラスタ内のそれぞれのノードは、事実上、そのノード上におけるアプリケーション負荷に基づいて、そのアクティブなログ空間を管理してもよい。
いくつかの例においては、ノードのクラスタは、シーケンシャルログを共有してもよい。この例においては、算出モジュール108は、ノードのクラスタによって演算されるターゲットサイズを組み合わせることにより、シーケンシャルログのターゲットサイズを判定してもよい。更には、又はこの代わりに、ノードのクラスタ内のそれぞれのノードは、別個のシーケンシャルログを維持してもよい。この例においては、算出モジュール108によってそれぞれのノードごとに生成されたターゲットサイズが、そのノードのシーケンシャルログに適用されることになろう。
ステップ308において、本明細書に記述されているシステムのうちの1つ又は複数のシステムは、シーケンシャルログをターゲットサイズに対応した割り当てられた空間の一部分に制限してもよい。例えば、ステップ308において、制限モジュール110は、図2の演算システム202の一部として、シーケンシャルログ212をターゲットサイズ214に対応した割り当てられた空間210の一部分に制限してもよい。
制限モジュール110は、任意の適切な方式により、ステップ308を実行してもよい。例えば、制限モジュール110は、シーケンシャルログが割り当てられた空間の開始点に戻る地点を変化させてもよい。いくつかの例においては、制限モジュール110は、シーケンシャルログが割り当てられた空間の開始点に戻ると共にターゲットサイズの境界外の任意のロギングされたデータが消費される時点まで待った後にシーケンシャルログを制限してもよい。
上述のように、いくつかの例においては、算出モジュール108は、シーケンシャルログのターゲットサイズを再算出してもよく、且つ/又は、シーケンシャルログのターゲットサイズを動的に算出してもよい。これらの例においては、制限モジュール110は、シーケンシャルログのサイズを、再算出されたターゲットサイズに拡大してもよい。
シーケンシャルログのサイズを調節することにより、制限モジュール110は、シーケンシャルログ空間の一部分がストレージ装置のキャッシュに対してピン固定されることによってI/O性能を潜在的に改善することができるようにしてもよい。更には、シーケンシャルログに対する相対的に少ない書込みによって(書込みの実行のためにキャッシュ内の空間を必要とすることに起因して)キャッシュフラッシュをトリガし、これにより、I/O性能を潜在的に改善すると共にキャッシュフラッシュを防止してもよい。ステップ308の後に、方法300は終了してもよい。
いくつかの例においては、本明細書に記述されているシステムは、キャッシュ上における且つ/又はキャッシュに伴う様々な動作を通じてシーケンシャルロギングの効率を改善してもよい。例えば、図4は、キャッシュ408及びキャッシュモジュール412を有するストレージ装置406を示している。キャッシュモジュール412は、ストレージ装置及び/又はキャッシュとの関連において、様々な機能を実行し、シーケンシャルログとの関連においてキャッシュの効率を改善してもよい。
いくつかの例においては、キャッシュモジュール412は、ターゲットサイズに対応した割り当てられた空間の一部分(例えば、シーケンシャルログによって占有されている空間)をキャッシュに対してピン固定してもよい。キャッシュモジュール412は、任意の適切な方式により、割り当てられた空間の一部分をキャッシュに対してピン固定してもよい。例えば、キャッシュモジュール412は、命令をストレージ装置のキャッシュメカニズムに送信し、割り当てられた空間の一部分に対応したストレージ装置上のアドレスの範囲をピン固定してもよい。割り当てられた空間の全体ではなく割り当てられた空間の一部分をピン固定することにより、キャッシュモジュール412は、キャッシュ空間の浪費を伴うことなしに、シーケンシャルログからの読取り性能を改善してもよい。
又、キャッシュモジュール412は、シーケンシャルログを使用するように構成されたアプリケーション用の有効な情報を収容してはいない割り当てられた空間内の領域(extent)を破棄するように、キャッシュを構成してもよい。本明細書において使用されている「領域」という用語は、任意の領域、ブロック、部分、ページ、及び/又はデータのその他の単位を意味してもよい。例えば、キャッシュモジュール412は、領域が有効な情報を収容してはいないという通信文をアプリケーションから受け取ってもよい。次いで、キャッシュモジュール412は、情報をキャッシュに送信し、これにより、領域が値を有していないことを通知してもよい。この後に、キャッシュは、その領域の代わりにキャッシュフラッシュを回避してもよい。
いくつかの例においては、キャッシュモジュール412は、ストレージ装置が、シーケンシャルログへの最初の書込みの際に、ページをストレージ装置からキャッシュにフェッチすることを妨げてもよい。例えば、キャッシュモジュール412は、ページをフェッチする代わりに、ヌル(例えば、ゼロ化された)ページを生成するように、ストレージ装置を構成してもよい。この結果、キャッシュモジュール412は、キャッシュがキャッシュの現在の状態の不必要な混乱を回避できるようにしてもよい。
いくつかの例においては、本明細書に記述されているシステムは、シーケンシャルログに対する不必要な動作を防止することにより、シーケンシャルログとの関係においてキャッシュの効率性を改善してもよい。例えば、本明細書に記述されているシステムは、1)シーケンシャルログへの潜在的なエントリを識別し、2)潜在的なエントリがシーケンシャルログ内に既に存在していることを判定し、且つ、次いで、3)潜在的なエントリがシーケンシャルログ内にリエントリされることを遮断してもよい。例えば、本明細書に記述されているシステムは、シーケンシャルログに書き込むアプリケーションによるロギング動作を検査及び/又はフィルタリングしてもよい。シーケンシャルログに対する冗長なエントリを防止することにより、本明細書に記述されているシステムは、ログに対する冗長なエントリの書込みと関連したキャッシング動作を低減し、これにより、シーケンシャルログ内のその他のデータにおけるキャッシュと関連したI/O応答を潜在的に改善してもよい。
上述のように、シーケンシャルログの境界を制限することにより、本明細書に記述されているシステム及び方法は、シーケンシャルログがその上部に維持されているストレージ装置のキャッシュ性能を改善してもよい。更には、本明細書に記述されているシステム及び方法は、シーケンシャルログ及び/又はシーケンシャルログを使用するアプリケーションを意識してキャッシングの決定を下すことにより、キャッシュ性能を改善してもよい。
図5は、本明細書に記述及び/又は図示されている実施形態のうちの1つ又は複数の実施形態を実装する能力を有する例示的演算システム510のブロックダイアグラムである。演算システム510は、コンピュータ可読命令を実行する能力を有する任意のシングル又はマルチプロセッサ演算装置又はシステムを広範に表している。演算システム510の例は、限定を伴うことなしに、ワークステーション、ラップトップ、クライアントサイド端末、サーバー、分散型演算システム、ハンドヘルド型装置、又は任意のその他の演算システムを含む。その最も基本的な構成において、演算システム510は、少なくとも1つのプロセッサ514と、システムメモリ516と、を含んでもよい。
プロセッサ514は、一般に、データを処理する又は命令を解釈及び実行する能力を有する任意のタイプ又は形態の処理ユニットを表している。特定の実施形態においては、プロセッサ514は、ソフトウェアアプリケーション又はモジュールから命令を受け取ってもよい。これらの命令は、プロセッサ514が本明細書に記述及び/又は図示されている例示的実施形態のうちの1つ又は複数の実施形態の機能を実行するようにしてもよい。例えば、プロセッサ514は、単独で又はその他の要素との組合せにおいて、本明細書に記述されている識別、割当、算出、制限、増大、ピン固定、構成、防止、判定、及び/又は遮断ステップのうちの1つ又は複数のステップを実行してもよく、且つ/又は、これらを実行するための手段であってもよい。又、プロセッサ514は、本明細書に記述及び/又は図示されている任意のその他のステップ、方法、又はプロセスを実行してもよく、且つ/又は、これらを実行するための手段であってもよい。
システムメモリ516は、一般に、データ及び/又はその他のコンピュータ可読命令を保存する能力を有する任意のタイプ又は形態の揮発性又は不揮発性のストレージ装置又は媒体を表している。システムメモリ516の例は、限定を伴うことなしに、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、フラッシュメモリ、又は任意のその他のメモリ装置を含む。必須ではないが、特定の実施形態においては、演算システム510は、揮発性のメモリユニット(例えば、システムメモリ516)と不揮発性のストレージ装置(例えば、詳細に後述するプライマリストレージ装置532)の両方を含んでもよい。一例においては、図1のモジュール102のうちの1つ又は複数のモジュールは、システムメモリ516に読み込んでもよい。
又、特定の実施形態においては、例示的演算システム510は、プロセッサ514及びシステムメモリ516に加えて、1つ又は複数のコンポーネント又は要素を含んでもよい。例えば、図5に示されているように、演算システム510は、メモリコントローラ518、入出力(I/O)コントローラ520、及び通信インターフェイス522を含んでもよく、これらのそれぞれは、通信インフラストラクチャ512を介して相互接続してもよい。通信インフラストラクチャ512は、一般に、演算装置の1つ又は複数のコンポーネントの間の通信を促進する能力を有する任意のタイプ又は形態のインフラストラクチャを表している。通信インフラストラクチャ512の例は、限定を伴うことなしに、(ISA、PCI、PCIe、又は類似のバスなどの)通信バス及びネットワークを含む。
メモリコントローラ518は、一般に、メモリ又はデータを取り扱うと共に演算システム510の1つ又は複数のコンポーネントの間の通信を制御する能力を有する任意のタイプ又は形態の装置を表している。例えば、特定の実施形態においては、メモリコントローラ518は、プロセッサ514、システムメモリ516、及びI/Oコントローラ520の間の通信を通信インフラストラクチャ512を介して制御してもよい。特定の実施形態においては、メモリコントローラ518は、単独で又はその他の要素との組合せにおいて、識別、割当、算出、制限、増大、ピン固定、構成、防止、判定、及び/又は遮断などの本明細書に記述及び/又は図示されているステップ又は機能のうちの1つ又は複数のステップ又は機能を実行してもよく、且つ/又は、これらを実行するための手段であってもよい。
I/Oコントローラ520は、一般に、演算装置の入力及び出力機能を調整及び/又は制御する能力を有する任意のタイプ又は形態のモジュールを表している。例えば、特定の実施形態においては、I/Oコントローラ520は、プロセッサ514、システムメモリ516、通信インターフェイス522、ディスプレイアダプタ526、入力インターフェイス530、及びストレージインターフェイス534などの演算システム510の1つ又は複数の要素の間のデータの転送を制御又は促進してもよい。I/Oコントローラ520は、例えば、単独で又はその他の要素との組合せにおいて、本明細書に記述されている識別、割当、算出、制限、増大、ピン固定、構成、防止、判定、及び/又は遮断ステップのうちの1つ又は複数のステップを実行するように、且つ/又は、これらを実行するための手段となるように、使用されてもよい。又、I/Oコントローラ520は、本開示に記述されているその他のステップ及び機能を実行するように、且つ/又は、これらを実行するための手段となるように、使用されてもよい。
通信インターフェイス522は、例示的演算システム510と1つ又は複数の更なる装置の間の通信を促進する能力を有する任意のタイプ又は形態の通信装置又はアダプタを広範に表している。例えば、特定の実施形態においては、通信インターフェイス522は、演算システム510と更なる演算システムを含むプライベート又はパブリックネットワークの間の通信を促進してもよい。通信インターフェイス522の例は、限定を伴うことなし、有線ネットワークインターフェイス(ネットワークインターフェイスカードなど)、無線ネットワークインターフェイス(無線ネットワークインターフェイスカードなど)、モデム、及び任意のその他の適切なインターフェイスを含む。少なくとも1つの実施形態においては、通信インターフェイス522は、インターネットなどのネットワークに対する直接リンクを介してリモートサーバーに対する直接接続を提供してもよい。又、通信インターフェイス522は、例えば、ローカルエリアネットワーク(Ethernetネットワークなど)、パーソナルエリアネットワーク、電話又はケーブルネットワーク、セルラー電話接続、衛星データ接続、又は任意のその他の適切な接続などを通じて、このような接続を間接的に提供してもよい。
又、特定の実施形態においては、通信インターフェイス522は、演算システム510と1つ又は複数の更なるネットワーク又はストレージ装置の間の通信を外部バス又は通信チャネルを介して促進するように構成されたホストアダプタを表してもよい。ホストアダプタの例は、限定を伴うことなしに、SCSIホストアダプタ、USBホストアダプタ、IEEE1394ホストアダプタ、SATA及びeSATAホストアダプタ、ATA及びPATAホストアダプタ、Fibre Channelインターフェイスアダプタ、Ethernetアダプタ、又はこれらに類似したものを含む。又、通信インターフェイス522は、演算システム510が分散型又はリモート演算に関与できるようにしてもよい。例えば、通信インターフェイス522は、リモート装置から命令を受け取ると共に実行のために命令をリモート装置に送ってもよい。特定の実施形態においては、通信インターフェイス522は、単独で又はその他の要素との組合せにおいて、本明細書に開示されている識別、割当、算出、制限、増大、ピン固定、構成、防止、判定、及び/又は遮断ステップのうちの1つ又は複数のステップを実行してもよく、且つ/又は、これらを実行するための手段であってもよい。又、通信インターフェイス522は、本開示に記述されているその他のステップ及び機能を実行するために、且つ/又は、これらを実行するための手段となるように、使用されてもよい。
又、図5に示されているように、演算システム510は、ディスプレイアダプタ526を介して通信インフラストラクチャ512に結合された少なくとも1つの表示装置524を含んでもよい。表示装置524は、一般に、ディスプレイアダプタ526によって転送された情報を視覚的に表示する能力を有する任意のタイプ又は形態の装置を表している。同様に、ディスプレイアダプタ526は、一般に、表示装置524上における表示のために通信インフラストラクチャ512から(又は、当技術分野において既知のフレームバッファから)グラフィックス、テキスト、及びその他のデータを転送するように構成された任意のタイプ又は形態の装置を表している。
又、図5に示されているように、例示的演算システム510は、入力インターフェイス530を介して通信インフラストラクチャ512に結合された少なくとも1つの入力装置528を含んでもよい。入力装置528は、一般に、コンピュータ又は人間によって生成された入力を例示的演算システム510に提供する能力を有する任意のタイプ又は形態の入力装置を表している。入力装置528の例は、限定を伴うことなしに、キーボード、ポインティング装置、音声認識装置、又は任意のその他の入力装置を含む。少なくとも1つの実施形態においては、入力装置528は、単独で又はその他の要素との組合せにおいて、本明細書に開示されている識別、割当、算出、制限、増大、ピン固定、構成、防止、判定、及び/又は遮断ステップのうちの1つ又は複数のステップを実行してもよく、且つ/又は、これらを実行するための手段であってもよい。又、入力装置528は、本開示に記述されているその他のステップ及び機能を実行するように、且つ/又は、これらを実行するための手段となるように、使用されてもよい。
又、図5に示されているように、例示的演算システム510は、ストレージインターフェイス534を介して通信インフラストラクチャ512に結合されたプライマリストレージ装置532及びバックアップストレージ装置533を含んでもよい。ストレージ装置532及び533は、一般に、データ及び/又はその他のコンピュータ可読命令を保存する能力を有する任意のタイプ又は形態のストレージ装置又は媒体を表している。例えば、ストレージ装置532及び533は、磁気ディスクドライブ(例えば、所謂ハードドライブ)、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブ、又はこれらに類似したものであってもよい。ストレージインターフェイス534は、一般に、ストレージ装置532及び533と演算システム510のその他のコンポーネントの間においてデータを転送するための任意のタイプ又は形態のインターフェイス又は装置を表している。
特定の実施形態においては、ストレージ装置532及び533は、コンピュータソフトウェア、データ、又はその他のコンピュータ可読情報を保存するように構成された着脱自在のストレージユニットとの間において書込み及び/又は読取りを実行するように構成されてもよい。適切な着脱自在のストレージユニットの例は、限定を伴うことなしに、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリ装置、又はこれらに類似したものを含む。又、ストレージ装置532及び533は、コンピュータソフトウェア、データ、又はその他のコンピュータ可読命令を演算システム510に読み込むことができるようにするためのその他の類似の構造又は装置を含んでもよい。例えば、ストレージ装置532及び533は、ソフトウェア、データ、又はその他のコンピュータ可読情報を読み取ると共に書き込むように構成されてもよい。又、ストレージ装置532及び533は、演算システム510の一部分であってもよく、或いは、その他のインターフェイスシステムを通じてアクセスされる別個の装置であってもよい。
特定の実施形態においては、ストレージ装置532及び533は、例えば、単独で又はその他の要素との組合せにおいて、本明細書に記述されている識別、割当、算出、制限、増大、ピン固定、構成、防止、判定、及び/又は遮断ステップのうちの1つ又は複数のステップを実行するように、且つ/又は、これらを実行するための手段となるように、使用されてもよい。又、ストレージ装置532及び533は、本開示に記述されているその他のステップ及び機能を実行するように、且つ/又は、これらを実行するための手段となるように、使用されてもよい。
多くのその他の装置又はサブシステムを演算システム510に接続してもよい。逆に、本明細書に記述及び/又は図示されている実施形態を実施するために、図5に示されているコンポーネント及び装置のすべてが存在する必要であるというわけでもない。又、上述の装置及びサブシステムは、図5に示されている方法とは別の方法によって相互接続してもよい。又、演算システム510は、任意の数のソフトウェア、ファームウェア、及び/又はハードウェア構成を利用してもよい。例えば、本明細書に開示されている例示的実施形態のうちの1つ又は複数の実施形態は、コンピュータ可読媒体上のコンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御ロジックとも呼ばれる)としてエンコードしてもよい。「コンピュータ可読媒体」という用語は、一般に、コンピュータ可読命令を保存又は担持する能力を有する任意の形態の装置、担持体、又は媒体を意味している。コンピュータ可読媒体の例は、限定を伴うことなしに、搬送波などの送信タイプの媒体と、磁気ストレージ媒体(例えば、ハードディスクドライブ及びフロッピーディスクなど)、光ストレージ媒体(例えば、CD−ROM又はDVD−ROMなど)、電子ストレージ媒体(例えば、半導体ドライブ及びフラッシュ媒体など)、及びその他の配布システムなどの物理的媒体と、を含む。
コンピュータプログラムを収容するコンピュータ可読媒体を演算システム510に装填してもよい。次いで、コンピュータ可読媒体上に保存されているコンピュータプログラムのすべて又は一部をシステムメモリ516内に且つ/又はストレージ装置532及び533の様々な部分内に保存してもよい。演算システム510に読み込まれたコンピュータプログラムは、プロセッサ514によって実行された際に、プロセッサ514が本明細書に記述及び/又は図示されている例示的実施形態のうちの1つ又は複数の例示的実施形態の機能を実行するようにしてもよく、且つ/又は、これらを実行するための手段となるようにしてもよい。更には、又はこの代わりに、本明細書に記述及び/又は図示されている例示的実施形態のうちの1つ又は複数の例示的実施形態は、ファームウェア及び/又はハードウェアとして実装してもよい。例えば、演算システム510は、本明細書に開示されている例示的実施形態のうちの1つ又は複数の例示的実施形態を実行するように適合されたASIC(Application Specific Integrated Circuit)として構成してもよい。
図6は、例示的ネットワークアーキテクチャ600のブロックダイアグラムであり、この場合に、クライアントシステム610、620、及び630と、サーバー640及び645と、は、ネットワーク650に結合されてもよい。クライアントシステム610、620、及び630は、一般に、図5の例示的演算システム510などの任意のタイプ又は形態の演算装置又はシステムを表している。一例においては、クライアントシステム610は、図1のシステム100を含んでもよい。
同様に、サーバー640及び645は、一般に、様々なデータベースサービスを提供すると共に/又は特定のソフトウェアアプリケーションを実行するように構成されたアプリケーションサーバー又はデータベースサーバーなどの演算装置又はシステムを表している。ネットワーク650は、一般に、例えば、イントラネット、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、又はインターネットを含む任意の通信又はコンピュータネットワークを表している。
図6に示されているように、1つ又は複数のストレージ装置660(1)〜660(N)をサーバー640に直接的に装着してもよい。同様に、1つ又は複数のストレージ装置670(1)〜670(N)をサーバー645に直接的に装着してもよい。ストレージ装置660(1)〜660(N)及びストレージ装置670(1)〜670(N)は、一般に、データ及び/又はその他のコンピュータ可読命令を保存する能力を有する任意のタイプ又は形態のストレージ装置又は媒体を表している。特定の実施形態においては、ストレージ装置660(1)〜660(N)及びストレージ装置670(1)〜670(N)は、NFS、SMB、又はCIFSなどの様々なプロトコルを使用してサーバー640及び645と通信するように構成されたNAS(Network−Attached Storage)装置を表してもよい。
又、サーバー640及び645は、SAN(Storage Area Network)ファブリック680に接続されてもよい。SANファブリック680は、一般に、複数のストレージ装置の間の通信を促進する能力を有する任意のタイプ又は形態のコンピュータネットワーク又はアーキテクチャを表している。SANファブリック680は、サーバー640及び645と複数のストレージ装置690(1)〜690(N)及び/又はインテリジェントストレージアレイ695の間の通信を促進してもよい。又、SANファブリック680は、装置690(1)〜690(N)及びアレイ695がクライアントシステム610、620、及び630からローカルに装着された装置として見えるように、ネットワーク650及びサーバー640及び645を介して、クライアントシステム610、620、及び630とストレージ装置690(1)〜690(N)及び/又はインテリネントストレージアレイ695の間の通信を促進してもよい。ストレージ装置660(1)〜660(N)及びストレージ装置670(1)〜670(N)と同様に、ストレージ装置690(1)〜690(N)及びインテリジェントストレージアレイ695も、一般に、データ及び/又はその他のコンピュータ可読命令を保存する能力を有する任意のタイプ又は形態のストレージ装置又は媒体を表している。
特定の実施形態においては、且つ、図5の例示的演算システム510を参照すれば、図5の通信インターフェイス522などの通信インターフェイスは、それぞれのクライアントシステム610、620、及び630とネットワーク650の間の接続を提供するように使用されてもよい。クライアントシステム610、620、及び630は、例えば、ウェブブラウザ又はその他のクライアントソフトウェアを使用してサーバー640又は645上の情報にアクセス可能であってもよい。このようなソフトウェアは、クライアントシステム610、620、及び630が、サーバー640、サーバー645、ストレージ装置660(1)〜660(N)、ストレージ装置670(1)〜670(N)、ストレージ装置690(1)〜690(N)、又はインテリジェントストレージアレイ695によってホスティングされたデータに対してアクセスできるようにしてもよい。図6は、データ交換のための(インターネットなどの)ネットワークの使用を示しているが、本明細書に記述及び/又は図示されている実施形態は、インターネット又は任意の特定のネットワークに基づいた環境に限定されるものではない。
少なくとも1つの実施形態においては、本明細書に記述されている例示的実施形態のうちの1つ又は複数の例示的実施形態のすべて又は一部は、コンピュータプログラムとしてエンコードしてもよく、且つ、サーバー640、サーバー645、ストレージ装置660(1)〜660(N)、ストレージ装置670(N)〜670(N)、ストレージ装置690(1)〜690(N)、インテリジェントストレージアレイ695、又はこれらの任意の組合せに読み込んでもよく、且つ、これらによって実行してもよい。又、本明細書に開示されている例示的実施形態のうちの1つ又は複数の例示的実施形態のすべて又は一部は、コンピュータプログラムとしてエンコードしてもよく、サーバー640内に保存してもよく、サーバー645によって実行してもよく、且つ、ネットワーク650を通じてクライアントシステム610、620、及び630に配布してもよい。従って、ネットワークアーキテクチャ600は、単独で又はその他の要素との組合せにおいて、本明細書に開示されている識別、割当、算出、制限、増大、ピン固定、構成、防止、判定、及び/又は遮断ステップのうちの1つ又は複数のステップを実行してもよく、且つ/又は、これらを実行するための手段であってもよい。又、ネットワークアーキテクチャ600は、本開示に記述されているその他のステップ及び機能を実行するように、且つ/又は、これらを実行するための手段となるように、使用されてもよい。
以上において詳述したように、演算システム510及び/又はネットワークアーキテクチャ600の1つ又は複数のコンポーネントは、単独又はその他の要素との組合せにおいて、キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのための例示的方法の1つ又は複数のステップを実行してもよく、且つ/又は、これらを実行するための手段であってもよい。
以上の開示は、特定のブロックダイアグラム、フローチャート、及び例を使用して様々な実施形態について記述しているが、本明細書に記述及び/又は図示されているそれぞれのブロックダイアグラムのコンポーネント、フローチャートのステップ、動作、及び/又はコンポーネントは、様々なハードウェア、ソフトウェア、又はファームウェア(或いは、これらの任意の組合せ)の構成を使用し、個別に且つ/又は集合的に、実装してもよい。更には、多くのその他のアーキテクチャを実装して同一の機能を実現することができるため、その他のコンポーネント内に収容されたコンポーネントの任意の開示は、その特性が例示を目的としたものであるものと見なされたい。
本明細書に記述及び/又は図示されているプロセスパラメータ及びステップのシーケンスは、一例として付与されたものに過ぎず、且つ、必要に応じて変化することができる。例えば、本明細書に記述及び/又は図示されているステップは、特定の順序において図示又は記述されている場合があるが、これらのステップは、必ずしも、図示又は記述されている順序において実行する必要はない。又、本明細書に記述及び/又は図示されている様々な例示的方法は、本明細書に記述又は図示されているステップのうちの1つ又は複数のステップを省略してもよく、或いは、開示されているステップに加えて、更なるステップを含んでもよい。
本明細書には、様々な実施形態が、十分に機能可能な演算システムの文脈において記述及び/又は図示されているが、これらの例示的実施形態のうちの1つ又は複数の例示的実施形態は、配布を実際に実行するために使用されるコンピュータ可読媒体のタイプとは無関係に、様々な形態においてプログラムプロダクトとして配布されてもよい。又、本明細書に開示されている実施形態は、特定のタスクを実行するソフトウェアモジュールを使用して実装してもよい。これらのソフトウェアモジュールは、スクリプト、バッチ、又はコンピュータ可読ストレージ媒体上に又は演算システム内に保存されてもよいその他の実行可能なファイルを含んでもよい。いくつかの実施形態においては、これらのソフトウェアモジュールは、本明細書に開示されている例示的実施形態のうちの1つ又は複数の例示的実施形態を実行するように演算システムを構成してもよい。
更には、本明細書に記述されているモジュールのうちの1つ又は複数のモジュールは、データ、物理的装置、及び/又は物理的装置の表現の形態を変換してもよい。例えば、本明細書に記述されているモジュールのうちの1つ又は複数のモジュールは、ストレージ装置のキャッシングメカニズムをシーケンシャルロギングのための効率的なキャッシングメカニズムに変換してもよい。
以上の説明は、当業者が本明細書に開示されている例示的実施形態の様々な態様を最良に利用することができるようにするために提供されたものである。この例示的説明は、すべてを網羅したり、或いは、開示された任意の形態そのままに限定されることを意図したものではない。本開示の精神及び範囲を逸脱することなしに、多数の変更及び変形が可能である。本明細書に開示されている実施形態は、すべての側面において、限定ではなく例示を目的としたものであると見なされたい。本開示の範囲を判定する際には、添付の請求項及びその均等物を参照されたい。
特記されていない限り、本明細書及び添付の請求項において使用されている「1つの(a)」又は「1つの(an)」という用語は、「少なくとも1つの」を意味するものと解釈されたい。更には、使用の容易性の観点から、本明細書及び添付の請求項において使用されている「含む(including)」及び「有する(having)」という用語は、相互交換可能であり、且つ、「有する(comprising)」という用語と同一の意味を有する。

Claims (15)

  1. キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのコンピュータ実装方法であって、前記方法の少なくとも一部分は、少なくとも1つのプロセッサを有する演算装置によって実行される、方法であって、
    キャッシュを有するストレージ装置を識別するステップと、
    シーケンシャルログのために前記ストレージ装置上の空間を割り当てるステップと、
    前記シーケンシャルログに振り向けられる入出力負荷に少なくとも部分的に基づいて前記シーケンシャルログのターゲットサイズを算出するステップと、
    前記シーケンシャルログを前記ターゲットサイズに対応した前記割り当てられた空間の一部分に制限するステップと、
    前記割り当てられた空間の前記一部分を前記キャッシュに対してピン固定することによって、前記シーケンシャルログとの関連において前記キャッシュの効率を改善するステップと、
    を有するコンピュータ実装方法。
  2. 前記空間を割り当てる前記ステップは、ピーク負荷の際にすべての書込みの試みを受け入れるために、前記シーケンシャルログのために十分な空間を割り当てるステップを有する請求項1に記載のコンピュータ実装方法。
  3. 前記シーケンシャルログに振り向けられる入出力負荷に少なくとも部分的に基づいて前記シーケンシャルログの前記ターゲットサイズを再算出するステップと、
    前記割り当てられた空間内において前記シーケンシャルログを前記ターゲットサイズに拡大させるステップと、
    を更に有する請求項1に記載のコンピュータ実装方法。
  4. 前記入出力負荷に少なくとも部分的に基づいて前記シーケンシャルログの前記ターゲットサイズを算出する前記ステップは、前記入出力負荷が変化するのに伴って前記ターゲットサイズを動的に算出するステップを有する請求項3に記載のコンピュータ実装方法。
  5. 前記ターゲットサイズを算出する前記ステップは、
    ノードのクラスタを識別するステップであって、前記クラスタ内のそれぞれのノードは、前記入出力負荷に寄与する、ステップと、
    前記入出力負荷に対する前記ノードの前記寄与に基づいて前記クラスタ内のそれぞれのノードごとにターゲットサイズを算出するステップと、
    を有する請求項1に記載のコンピュータ実装方法。
  6. 前記ターゲットサイズを算出する前記ステップは、前記シーケンシャルログのデータの消費に少なくとも部分的に基づいて前記ターゲットサイズを算出するステップを有する請求項1に記載のコンピュータ実装方法。
  7. 前記割り当てられた空間の前記一部分を前記キャッシュに対してピン固定するステップは、前記ストレージ装置のキャッシュメカニズムに対して命令を送信し、前記割り当てられた空間の前記一部分に対応した前記ストレージ装置上のアドレスの範囲をピン固定するステップを有する請求項1に記載のコンピュータ実装方法。
  8. 前記ストレージ装置が、前記シーケンシャルログへの最初の書込みの際に、ページを前記ストレージ装置から前記キャッシュにフェッチすることを妨げるステップを更に有する請求項1に記載のコンピュータ実装方法。
  9. 前記シーケンシャルログを使用するように構成されたアプリケーション用の有効な情報を収容してはいない前記割り当てられた空間内の領域を破棄するように前記キャッシュを構成するステップを更に有する請求項1に記載のコンピュータ実装方法。
  10. 前記シーケンシャルログに対する潜在的なエントリを識別するステップと、
    前記潜在的なエントリが前記シーケンシャルログ内に既に存在していることを判定するステップと、
    前記潜在的なエントリが前記シーケンシャルログ内にリエントリされることを遮断するステップと、
    を更に有する請求項1に記載のコンピュータ実装方法。
  11. キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのシステムであって、
    キャッシュを有するストレージ装置を識別するようにプログラムされた識別モジュールと、
    シーケンシャルログのために前記ストレージ装置上の空間を割り当てるようにプログラムされた割当モジュールと、
    前記シーケンシャルログに振り向けられる入出力負荷に少なくとも部分的に基づいて前記シーケンシャルログのターゲットサイズを算出するようにプログラムされた算出モジュールと、
    前記シーケンシャルログを前記ターゲットサイズに対応した前記割り当てられた空間の一部分に制限するようにプログラムされた制限モジュールと、
    前記割り当てられた空間の前記一部分を前記キャッシュに対してピン固定することによって、前記シーケンシャルログとの関連において前記キャッシュの効率を改善するようにプログラムされたキャッシュモジュールと、
    前記識別モジュール、前記割当モジュール、前記算出モジュール、前記制限モジュール及び前記キャッシュモジュールを実行するように構成された少なくとも1つのプロセッサと、
    を有するシステム。
  12. 前記割当モジュールは、ピーク負荷の際にすべての書込みの試みを受け入れるために前記シーケンシャルログのために十分な空間を割り当てることにより、前記空間を割り当てるようにプログラムされる請求項11に記載のシステム。
  13. 前記算出モジュールは、前記シーケンシャルログに振り向けられる入出力負荷に少なくとも部分的に基づいて前記シーケンシャルログの前記ターゲットサイズを再算出するように更にプログラムされ、
    前記制限モジュールは、前記割り当てられた空間内において前記シーケンシャルログを前記ターゲットサイズに拡大させるように更にプログラムされる請求項11に記載のシステム。
  14. 前記算出モジュールは、前記入出力負荷が変化するのに伴って前記ターゲットサイズを動的に算出することにより、前記入出力負荷に少なくとも部分的に基づいて前記シーケンシャルログの前記ターゲットサイズを算出するようにプログラムされる請求項13に記載のシステム。
  15. 前記算出モジュールは、
    ノードのクラスタを識別することであって、前記クラスタ内のそれぞれのノードは、前記入出力負荷に寄与していること、
    前記入出力負荷に対する前記ノードの前記寄与に基づいて前記クラスタ内のそれぞれのノードごとにターゲットサイズを算出すること、
    により、前記ターゲットサイズを算出するようにプログラムされる請求項11に記載のシステム。
JP2013524856A 2010-08-16 2011-07-22 キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのシステム及び方法 Expired - Fee Related JP5893028B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/856,985 2010-08-16
US12/856,985 US8380962B2 (en) 2010-08-16 2010-08-16 Systems and methods for efficient sequential logging on caching-enabled storage devices
PCT/US2011/044988 WO2012024054A2 (en) 2010-08-16 2011-07-22 Systems and methods for efficient sequential logging on caching-enabled storage devices

Publications (2)

Publication Number Publication Date
JP2013539111A JP2013539111A (ja) 2013-10-17
JP5893028B2 true JP5893028B2 (ja) 2016-03-23

Family

ID=44583385

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013524856A Expired - Fee Related JP5893028B2 (ja) 2010-08-16 2011-07-22 キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのシステム及び方法

Country Status (5)

Country Link
US (1) US8380962B2 (ja)
EP (1) EP2606429B1 (ja)
JP (1) JP5893028B2 (ja)
CN (1) CN103140839B (ja)
WO (1) WO2012024054A2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9800455B1 (en) * 2012-02-08 2017-10-24 Amazon Technologies, Inc. Log monitoring system
US9342457B2 (en) * 2014-03-11 2016-05-17 Amazon Technologies, Inc. Dynamically modifying durability properties for individual data volumes
CN104021088B (zh) * 2014-06-24 2017-11-21 广东睿江云计算股份有限公司 日志存储方法和装置
CN106527959B (zh) * 2015-09-10 2019-07-26 阿里巴巴集团控股有限公司 刷新磁盘输入输出请求的处理方法及设备
KR20210097010A (ko) * 2020-01-29 2021-08-06 삼성전자주식회사 키-값 스토리지 장치들에 대한 입출력 성능을 향상을 위한 키 값 객체 입출력들 그룹화
US11157198B2 (en) * 2020-03-12 2021-10-26 EMC IP Holding Company LLC Generating merge-friendly sequential IO patterns in shared logger page descriptor tiers

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802291A (en) * 1995-03-30 1998-09-01 Sun Microsystems, Inc. System and method to control and administer distributed object servers using first class distributed objects
US6321234B1 (en) 1996-09-18 2001-11-20 Sybase, Inc. Database server system with improved methods for logging transactions
US6324623B1 (en) * 1997-05-30 2001-11-27 Oracle Corporation Computing system for implementing a shared cache
JPH11306050A (ja) * 1998-04-21 1999-11-05 Mitsubishi Electric Corp エラーログ収集方法および装置
US6694336B1 (en) * 2000-01-25 2004-02-17 Fusionone, Inc. Data transfer and synchronization system
US6516380B2 (en) * 2001-02-05 2003-02-04 International Business Machines Corporation System and method for a log-based non-volatile write cache in a storage controller
JP2004139483A (ja) * 2002-10-21 2004-05-13 Hitachi Ltd 障害発生時のログ情報出力方法
JP2004213435A (ja) 2003-01-07 2004-07-29 Hitachi Ltd 記憶装置システム
US7139909B2 (en) * 2003-10-16 2006-11-21 International Business Machines Corporation Technique for system initial program load or boot-up of electronic devices and systems
JP4521865B2 (ja) * 2004-02-27 2010-08-11 株式会社日立製作所 ストレージシステム、計算機システムまたは記憶領域の属性設定方法
US7370163B2 (en) 2004-05-03 2008-05-06 Gemini Storage Adaptive cache engine for storage area network including systems and methods related thereto
US7231504B2 (en) * 2004-05-13 2007-06-12 International Business Machines Corporation Dynamic memory management of unallocated memory in a logical partitioned data processing system
US20060020634A1 (en) 2004-07-20 2006-01-26 International Business Machines Corporation Method, system and program for recording changes made to a database
WO2006061262A1 (en) * 2004-12-09 2006-06-15 International Business Machines Corporation An on demand message based financial network integration middleware
KR100567158B1 (ko) * 2005-01-10 2006-04-03 삼성전자주식회사 캐쉬기능을 가지는 와이어드 오어 타입의 페이지 버퍼 및이를 포함하는 불휘발성 반도체 메모리 장치, 그리고,이를 이용한 프로그램 방법
US7461231B2 (en) * 2006-01-12 2008-12-02 International Business Machines Corporation Autonomically adjusting one or more computer program configuration settings when resources in a logical partition change
JP2008026970A (ja) * 2006-07-18 2008-02-07 Toshiba Corp ストレージ装置
JP4692501B2 (ja) * 2007-03-08 2011-06-01 日本電気株式会社 データ記憶システム、及びデータ記憶方法

Also Published As

Publication number Publication date
CN103140839B (zh) 2016-03-16
JP2013539111A (ja) 2013-10-17
EP2606429B1 (en) 2015-10-14
WO2012024054A3 (en) 2012-05-18
CN103140839A (zh) 2013-06-05
EP2606429A2 (en) 2013-06-26
US20120042125A1 (en) 2012-02-16
US8380962B2 (en) 2013-02-19
WO2012024054A2 (en) 2012-02-23

Similar Documents

Publication Publication Date Title
US11797181B2 (en) Hardware accessible external memory
EP2891051B1 (en) Block-level access to parallel storage
US9430368B1 (en) System and method for caching data
US8782335B2 (en) Latency reduction associated with a response to a request in a storage system
US8966188B1 (en) RAM utilization in a virtual environment
US10175891B1 (en) Minimizing read latency for solid state drives
US9213500B2 (en) Data processing method and device
JP5893028B2 (ja) キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのシステム及び方法
US9182912B2 (en) Method to allow storage cache acceleration when the slow tier is on independent controller
US11262945B2 (en) Quality of service (QOS) system and method for non-volatile memory express devices
CN112262407A (zh) 分布式文件系统中基于gpu的服务器
US10831684B1 (en) Kernal driver extension system and method
US20160283134A1 (en) Data replication across host systems via storage controller
US9781226B2 (en) System and method for cache management
US9477421B1 (en) System and method for storage management using root and data slices
CN105074654B (zh) 用于存储设备上的文件系统命令的特权化执行支持的方法和系统
US10101940B1 (en) Data retrieval system and method
US9811286B1 (en) System and method for storage management
US20240126687A1 (en) Garbage collection processing in storage systems
US10120616B1 (en) Storage management system and method
US9817585B1 (en) Data retrieval system and method
US9135176B1 (en) System and method for thin provisioning
JP2013011971A (ja) 分散共有メモリ管理システム、分散共有メモリ管理方法、および分散共有メモリ管理プログラム

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20131115

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140528

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141105

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150825

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160223

R150 Certificate of patent or registration of utility model

Ref document number: 5893028

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees