(57)【特許請求の範囲】
【請求項１】
キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのコンピュータ実装方法であって、前記方法の少なくとも一部分は、少なくとも１つのプロセッサを有する演算装置によって実行される、方法であって、
キャッシュを有するストレージ装置を識別するステップと、
シーケンシャルログのために前記ストレージ装置上の空間を割り当てるステップと、
前記シーケンシャルログに振り向けられる入出力負荷に少なくとも部分的に基づいて前記シーケンシャルログのターゲットサイズを算出するステップと、
前記シーケンシャルログを前記ターゲットサイズに対応した前記割り当てられた空間の一部分に制限するステップと、
前記割り当てられた空間の前記一部分を前記キャッシュに対してピン固定することによって、前記シーケンシャルログとの関連において前記キャッシュの効率を改善するステップと、
を有するコンピュータ実装方法。
【請求項２】
前記空間を割り当てる前記ステップは、ピーク負荷の際にすべての書込みの試みを受け入れるために、前記シーケンシャルログのために十分な空間を割り当てるステップを有する請求項１に記載のコンピュータ実装方法。
【請求項３】
前記シーケンシャルログに振り向けられる入出力負荷に少なくとも部分的に基づいて前記シーケンシャルログの前記ターゲットサイズを再算出するステップと、
前記割り当てられた空間内において前記シーケンシャルログを前記ターゲットサイズに拡大させるステップと、
を更に有する請求項１に記載のコンピュータ実装方法。
【請求項４】
前記入出力負荷に少なくとも部分的に基づいて前記シーケンシャルログの前記ターゲットサイズを算出する前記ステップは、前記入出力負荷が変化するのに伴って前記ターゲットサイズを動的に算出するステップを有する請求項３に記載のコンピュータ実装方法。
【請求項５】
前記ターゲットサイズを算出する前記ステップは、
ノードのクラスタを識別するステップであって、前記クラスタ内のそれぞれのノードは、前記入出力負荷に寄与する、ステップと、
前記入出力負荷に対する前記ノードの前記寄与に基づいて前記クラスタ内のそれぞれのノードごとにターゲットサイズを算出するステップと、
を有する請求項１に記載のコンピュータ実装方法。
【請求項６】
前記ターゲットサイズを算出する前記ステップは、前記シーケンシャルログのデータの消費に少なくとも部分的に基づいて前記ターゲットサイズを算出するステップを有する請求項１に記載のコンピュータ実装方法。
【請求項７】
前記割り当てられた空間の前記一部分を前記キャッシュに対してピン固定するステップは、前記ストレージ装置のキャッシュメカニズムに対して命令を送信し、前記割り当てられた空間の前記一部分に対応した前記ストレージ装置上のアドレスの範囲をピン固定するステップを有する請求項１に記載のコンピュータ実装方法。
【請求項８】
前記ストレージ装置が、前記シーケンシャルログへの最初の書込みの際に、ページを前記ストレージ装置から前記キャッシュにフェッチすることを妨げるステップを更に有する請求項１に記載のコンピュータ実装方法。
【請求項９】
前記シーケンシャルログを使用するように構成されたアプリケーション用の有効な情報を収容してはいない前記割り当てられた空間内の領域を破棄するように前記キャッシュを構成するステップを更に有する請求項１に記載のコンピュータ実装方法。
【請求項１０】
前記シーケンシャルログに対する潜在的なエントリを識別するステップと、
前記潜在的なエントリが前記シーケンシャルログ内に既に存在していることを判定するステップと、
前記潜在的なエントリが前記シーケンシャルログ内にリエントリされることを遮断するステップと、
を更に有する請求項１に記載のコンピュータ実装方法。
【請求項１１】
キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのシステムであって、
キャッシュを有するストレージ装置を識別するようにプログラムされた識別モジュールと、
シーケンシャルログのために前記ストレージ装置上の空間を割り当てるようにプログラムされた割当モジュールと、
前記シーケンシャルログに振り向けられる入出力負荷に少なくとも部分的に基づいて前記シーケンシャルログのターゲットサイズを算出するようにプログラムされた算出モジュールと、
前記シーケンシャルログを前記ターゲットサイズに対応した前記割り当てられた空間の一部分に制限するようにプログラムされた制限モジュールと、
前記割り当てられた空間の前記一部分を前記キャッシュに対してピン固定することによって、前記シーケンシャルログとの関連において前記キャッシュの効率を改善するようにプログラムされたキャッシュモジュールと、
前記識別モジュール、前記割当モジュール、前記算出モジュール、前記制限モジュール及び前記キャッシュモジュールを実行するように構成された少なくとも１つのプロセッサと、
を有するシステム。
【請求項１２】
前記割当モジュールは、ピーク負荷の際にすべての書込みの試みを受け入れるために前記シーケンシャルログのために十分な空間を割り当てることにより、前記空間を割り当てるようにプログラムされる請求項１１に記載のシステム。
【請求項１３】
前記算出モジュールは、前記シーケンシャルログに振り向けられる入出力負荷に少なくとも部分的に基づいて前記シーケンシャルログの前記ターゲットサイズを再算出するように更にプログラムされ、
前記制限モジュールは、前記割り当てられた空間内において前記シーケンシャルログを前記ターゲットサイズに拡大させるように更にプログラムされる請求項１１に記載のシステム。
【請求項１４】
前記算出モジュールは、前記入出力負荷が変化するのに伴って前記ターゲットサイズを動的に算出することにより、前記入出力負荷に少なくとも部分的に基づいて前記シーケンシャルログの前記ターゲットサイズを算出するようにプログラムされる請求項１３に記載のシステム。
【請求項１５】
前記算出モジュールは、
ノードのクラスタを識別することであって、前記クラスタ内のそれぞれのノードは、前記入出力負荷に寄与していること、
前記入出力負荷に対する前記ノードの前記寄与に基づいて前記クラスタ内のそれぞれのノードごとにターゲットサイズを算出すること、
により、前記ターゲットサイズを算出するようにプログラムされる請求項１１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
いくつかのアプリケーションは、最小限のレイテンシーを伴うトランザクションの安全な実行やエラーロギングなどの様々な目的のために、データをログに出力してもよい。多くの場合に、このログは、シーケンシャルログの形態をとってもよい。
【背景技術】
【０００２】
シーケンシャルログは、書込みが多くて読取りが少ない入出力パターンを有してもよく、ロギング動作は、割り当てられた空間の開始点において始まり、且つ、割り当てられた空間の終了点にログが到達する時点までシーケンシャルに継続し、且つ、開始点に再度戻る。残念ながら、キャッシュフロントエンドを有するストレージ装置上においてシーケンシャルログが維持される際には、このフォーマットは、いくつかの非効率性を結果的にもたらすことになろう。例えば、ログに対する書込みが大きな空間にわたってシーケンシャルに発生することになるため、ログに割り当てられたディスク空間が、キャッシュに対してピン固定された状態には、決してならないであろう。この結果、読取りにおいて、データが、キャッシュではなく、ディスクからフェッチされることになろう。更には、又はこの代わりに、ログに対するシーケンシャルな書込みによって頻繁なキャッシュフラッシュがトリガされ、その結果、潜在的にログに対する書込み性能に影響が及ぶことにもなろう。更には、ストレージ装置が、シーケンシャルログが動作しているコンテキストを顧みることなしに、様々な不必要なキャッシュ動作を実行することにもなろう。従って、本開示は、キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングに対するニーズを識別するものである。
【発明の概要】
【課題を解決するための手段】
【０００３】
詳細に後述するように、本開示は、一般に、キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのためのシステム及び方法に関する。一例においては、本明細書に記述されているシステムは、１）キャッシュを有するストレージ装置を識別し、２）シーケンシャルログのためにストレージ装置上の空間を割り当て、３）シーケンシャルログに振り向けられる入出力負荷に少なくとも部分的に基づいてシーケンシャルログのターゲットサイズを算出し、且つ、次いで、４）シーケンシャルログをターゲットサイズに対応した割り当てられた空間の一部分に制限することにより、このタスクを実現してもよい。
【０００４】
シーケンシャルログのためにストレージ装置上の空間を割り当てる際に、本明細書に記述されているシステムは、ピーク負荷の際にすべての書込みの試みを受け入れるために、シーケンシャルログのために十分な空間を割り当ててもよい。シーケンシャルログのサイズを制限することに加えて、いくつかの例においては、本明細書に記述されているシステムは、１）シーケンシャルログに振り向けられる入出力負荷に少なくとも部分的に基づいてシーケンシャルログのターゲットサイズを再算出し、且つ、２）割り当てられた空間内においてシーケンシャルログをターゲットサイズに拡大してもよい。いくつかの例においては、本明細書に記述されているシステムは、入出力負荷が変化するのに伴ってターゲットサイズを動的に算出してもよい。
【０００５】
ターゲットサイズの算出は、様々な情報を含んでもよい。例えば、算出は、シーケンシャルログのデータの消費に関係する情報を含んでもよい。いくつかのコンテキストにおいては、シーケンシャルログは、ノードのクラスタに対してサービスしてもよい。これらのコンテキストにおいては、算出は、１）入出力負荷に寄与するノードのクラスタを識別するステップと、２）入出力負荷に対するノードの寄与度に基づいてクラスタ内のそれぞれのノードごとにターゲットサイズを算出するステップと、を含んでもよい。
【０００６】
シーケンシャルログのサイズを操作することに加えて、本明細書に記述されているシステムは、様々なキャッシュを意識した介入を通じてシーケンシャルロギングの効率を改善してもよい。これらは、１）割り当てられた空間の一部分をキャッシュに対してピン固定するステップ、２）シーケンシャルログを使用するように構成されたアプリケーション用の有効な情報を収容してはいない割り当てられた空間内の領域を破棄するようにキャッシュを構成するステップ、及び／又は、３）ストレージ装置が、シーケンシャルログへの最初の書込みの際に、ページをストレージ装置からキャッシュにフェッチすることを妨げるステップを含んでもよい。又、本明細書に記述されているシステムは、１）シーケンシャルログに対する潜在的なエントリを識別し、２）潜在的なエントリがシーケンシャルログ内に既に存在していることを判定し、且つ、次いで、３）潜在的なエントリがシーケンシャルログ内にリエントリされることを遮断することにより、望ましくないキャッシュ動作を回避してもよい。
【０００７】
詳細に後述するように、シーケンシャルログの境界を制限することにより、本明細書に記述されているシステム及び方法は、シーケンシャルログがその上部に維持されているストレージ装置のキャッシュ性能を改善してもよい。更には、本明細書に記述されているシステム及び方法は、シーケンシャルログ及び／又はシーケンシャルログを使用するアプリケーションを意識してキャッシングの決定を下すことにより、キャッシュ性能を改善してもよい。
【０００８】
上述の実施形態のうちのいずれかの実施形態の特徴を本明細書に記述されている一般的な原理に従って相互に組み合わせて使用してもよい。これらの及びその他の実施形態、特徴、利点については、添付の図面及び請求項との関連において以下の詳細な説明を参照することにより、更に十分に理解することができよう。
【０００９】
添付図面は、いくつかの例示的実施形態を示すと共に本明細書の一部分を構成している。これらの図面は、以下の説明と共に、本開示の様々な原理を実証及び説明している。
【図面の簡単な説明】
【００１０】
【図１】キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのための例示的システムのブロックダイアグラムである。
【図２】キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのための例示的システムのブロックダイアグラムである。
【図３】キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのための例示的方法の流れ図である。
【図４】キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのための例示的システムのブロックダイアグラムである。
【図５】本明細書に記述及び／又は図示されている実施形態のうちの１つ又は複数の実施形態を実装する能力を有する例示的演算システムのブロックダイアグラムである。
【図６】本明細書に記述及び／又は図示されている実施形態のうちの１つ又は複数の実施形態を実装する能力を有する例示的演算ネットワークのブロックダイアグラムである。
【発明を実施するための形態】
【００１１】
添付図面の全体を通じて、同一の参照符号及び説明により、類似の、但し、必ずしも同一ではない、要素を示している。本明細書に記述されている例示的実施形態には、様々な変更及び代替形態が可能であるが、図面には、特定の実施形態が一例として示されており、且つ、本明細書においては、これらの実施例について詳細に説明することとする。但し、本明細書に記述されている例示的実施形態は、開示されている具体的な形態に限定されるものと解釈してはならない。むしろ、本開示は、添付の請求項の範囲に含まれるすべての変更形態、均等物、及び代替形態をも含む。
【００１２】
以下、図１、図２、及び図４を参照し、キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのための例示的システムについて詳細に説明することとする。又、対応するコンピュータ実装方法についても、図３との関連において詳細に説明することとする。更には、本明細書に記述されている実施形態のうちの１つ又は複数の実施形態を実装する能力を有する例示的演算システム及びネットワークアーキテクチャについても、それぞれ、図５及び図６との関連において詳細に説明することとする。
【００１３】
図１は、キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのための例示的システム１００のブロックダイアグラムである。この図に示されているように、例示的システム１００は、１つ又は複数のタスクを実行するための１つ又は複数のモジュール１０２を含んでもよい。例えば、且つ、詳細に後述するように、例示的システム１００は、キャッシュを有するストレージ装置を識別するようにプログラムされた識別モジュール１０４を含んでもよい。又、例示的システム１００は、シーケンシャルログのためにストレージ装置上の空間を割り当てるようにプログラムされた割当モジュール１０６を含んでもよい。
【００１４】
更には、且つ、詳細に後述するように、例示的システム１００は、シーケンシャルログに振り向けられる入出力負荷に少なくとも部分的に基づいてシーケンシャルログのターゲットサイズを算出するようにプログラムされた算出モジュール１０８を含んでもよい。又、例示的システムは、シーケンシャルログをターゲットサイズに対応した割り当てられた空間の一部分に制限するようにプログラムされた制限モジュール１１０を含んでもよい。別個の要素として示されているが、図１のモジュール１０２のうちの１つ又は複数のモジュールは、単一のモジュール又はアプリケーションの一部分を表してもよい。
【００１５】
特定の実施形態においては、図１のモジュール１０２のうちの１つ又は複数のモジュールは、演算装置によって実行された際に、演算装置に１つ又は複数のタスクを実行させてもよい１つ又は複数のソフトウェアアプリケーション又はプログラムを表してもよい。例えば、詳細に後述するように、モジュール１０２のうちの１つ又は複数のモジュールは、図２に示されている装置（例えば、演算システム２０２及び／又はストレージ装置２０６）、図５の演算システム５１０、及び／又は図６の例示的ネットワークアーキテクチャ６００の一部分などの１つ又は複数の演算装置上に保存されると共にこれらの上部において稼働するように構成されたソフトウェアモジュールを表してもよい。又、図１のモジュール１０２のうちの１つ又は複数のモジュールは、１つ又は複数のタスクを実行するように構成された１つ又は複数の特殊目的コンピュータのすべて又は一部分を表してもよい。
【００１６】
図１の例示的システム１００は、様々な方法によって実施してもよい。例えば、例示的システム１００のすべて又は一部分は、図２に示されている例示的システム２００などのクラウド演算環境又はネットワークに基づいた環境の一部分を表してもよい。クラウド演算環境及びネットワークに基づいた環境は、様々なサービス及びアプリケーションをインターネットを介して提供してもよい。これらのクラウドに基づいた及び／又はネットワークに基づいたサービス（例えば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしてのインフラストラクチャなど）には、ウェブブラウザ又はその他のリモートインターフェイスを通じてアクセス可能であってよい。本明細書に記述されている様々な機能は、リモートデスクトップ環境又は任意のその他のクラウドに基づいた又はネットワークに基づいた演算環境を通じて提供してもよい。
【００１７】
図２に示されているように、システム２００は、ネットワーク２０４を介してストレージ装置２０６との通信状態にある演算システム２０２を含んでもよい。一実施形態においては、且つ、詳細に後述するように、演算システム２０２は、図１のモジュール１０２（例えば、識別モジュール１０４、割当モジュール１０６、算出モジュール１０８、及び制限モジュール１１０）を含んでもよい。
【００１８】
一例においては、且つ、詳細に後述するように、モジュール１０２は、１）キャッシュ（例えば、キャッシュ２０８）を有するストレージ装置（例えば、ストレージ装置２０６）を識別し、２）シーケンシャルログ（例えば、シーケンシャルログ２１２）のためにストレージ装置上の空間（例えば、割り当てられた空間２１０）を割り当て、３）（例えば、アプリケーション２１６に起因して）シーケンシャルログに振り向けられる入出力負荷に少なくとも部分的に基づいてシーケンシャルログのターゲットサイズ（例えば、ターゲットサイズ２１４）を算出し、且つ、次いで、４）シーケンシャルログをターゲットサイズに対応した割り当てられた空間の一部分に制限するように、演算システム２０２をプログラムしてもよい。
【００１９】
演算システム２０２は、一般に、コンピュータ実行可能命令を読み取る能力を有する任意のタイプ又は形態の演算装置を表している。演算システム２０２の例は、限定を伴うことなしに、ラップトップ、デスクトップ、サーバー、セルラー電話機、パーソナルデジタルアシスタント（ＰＤＡ）、マルチメディアプレーヤー、埋込み型システム、これらのうちの１つ又は複数のものの組合せ、図５の例示的演算システム５１０、又は任意のその他の演算装置を含む。
【００２０】
ストレージ装置２０６は、一般に、キャッシングメカニズムを伴ってデータを保存及び／又は取得する能力を有する任意のタイプ又は形態の演算装置を表している。ストレージ装置２０６の例は、限定を伴うことなしに、ハードディスクドライブ又は半導体ドライブを含む。
【００２１】
ネットワーク２０４は、一般に、通信及びデータ転送を促進する能力を有する任意の媒体又はアーキテクチャを表している。ネットワーク２０４の例は、限定を伴うことなしに、イントラネット、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、ストレージエリアネットワーク（ＳＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、インターネット、電力線通信（ＰＬＣ）、セルラーネットワーク（例えば、ＧＳＭネットワーク）、図６の例示的ネットワークアーキテクチャ６００、又はこれらに類似したものを含む。ネットワーク２０４は、無線又は有線接続を使用して通信又はデータ転送を促進してもよい。一実施形態においては、ネットワーク２０４は、演算システム２０２とストレージ装置２０６の間の通信を促進してもよい。
【００２２】
図３は、キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのための例示的コンピュータ実装方法３００の流れ図である。図３に示されているステップは、任意の適切なコンピュータ実行可能コード及び／又は演算システムによって実行してもよい。いくつかの実施形態においては、図３に示されているステップは、図１のシステム１００及び／又は図２のシステム２００のコンポーネントうちの１つ又は複数のコンポーネントによって実行してもよい。
【００２３】
図３に示されているように、ステップ３０２において、本明細書に記述されているシステムのうちの１つ又は複数のシステムは、キャッシュを有するストレージ装置を識別してもよい。例えば、ステップ３０２において、識別モジュール１０４は、図２の演算システム２０２の一部として、キャッシュ２０８を有するストレージ装置２０６を識別してもよい。
【００２４】
本明細書において使用されている「ストレージ装置」という用語は、データを保存するための任意の物理的、論理的、及び／又は仮想的装置を意味してもよい。例えば、ストレージ装置は、単一のドライブ、ストレージアレイ、ＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）によって指定されたストレージアレイの一部分などを含んでもよい。同様に、本明細書において使用されている「キャッシュ」という用語は、アクセスされる可能性が高いデータを保存すると共に／又はこれを利用可能な状態とすることによってデータアクセスを促進するための任意のメカニズム及び／又はコンポーネントを意味してもよい。
【００２５】
識別モジュール１０４は、任意の適切な方式によってストレージ装置を識別してもよい。例えば、識別モジュール１０４は、ストレージ装置を識別する構成ファイルを読み取ることによってストレージ装置を識別してもよい。更には、又はこの代わりに、識別モジュール１０４は、アプリケーションからメッセージ（例えば、シーケンシャルログを使用しているアプリケーションからのメッセージ）を受け取ることによってストレージ装置を識別してもよい。いくつかの例においては、識別モジュール１０４は、ストレージ装置から通信文を受け取ることによってストレージ装置を識別してもよい。又、識別モジュール１０４は、ストレージ装置に問い合わせると共に／又はストレージ装置に関する情報をルックアップすることにより、ストレージ装置がキャッシュを含むことを判定してもよい。又、いくつかの例においては、識別モジュール１０４は、（例えば、キャッシングの観点において、シーケンシャルログの最適なサイズを判定するために）キャッシュの特性を判定してもよい。
【００２６】
ステップ３０４において、本明細書に記述されているシステムのうちの１つ又は複数のシステムは、シーケンシャルログのためにストレージ装置上の空間を割り当ててもよい。例えば、ステップ３０４において、割当モジュール１０６は、図２の演算システム２０２の一部分として、シーケンシャルログ２１２のためにストレージ装置２０６上に割り当てられた空間２１０を生成してもよい。
【００２７】
本明細書において使用されている「シーケンシャルログ」という用語は、任意のログ、ファイル、及び／又はデータをシーケンシャルに（例えば、ストレージ装置上に）保存するデータ構造を意味してもよい。又、いくつかの例においては、シーケンシャルログは、回転型のログ（ｒｏｔａｔｉｎｇ  ｌｏｇ）であってもよい（例えば、シーケンシャルログの終了点に到達したら、書込みがシーケンシャルログの開始点において継続する）。又、シーケンシャルログは、シーケンシャルログ内の有効であると共に／又は未使用であるデータ及びシーケンシャルログ内の無効であると共に／又は使用済みであるデータに関係したメタデータを含んでもよい。
【００２８】
シーケンシャルログは、様々なコンテキストにおいて存在してもよい。例えば、シーケンシャルログは、最小限のレイテンシーを伴ってトランザクションを安全に実行するためのメカニズムとして機能してもよい（例えば、アプリケーションは、トランザクションをリモートシステム又はビジー状態のデータベースに対して直接的に委ねるのではなく、シーケンシャルログに対して委ねてもよい）。様々な例においては、シーケンシャルログは、データの複製、ジャーナルの取得、システムの回復、エラーのチェック、回帰テストなどのために機能してもよい。
【００２９】
割当モジュール１０６は、ステップ３０４を任意の適切な方式によって実行してもよい。例えば、割当モジュール１０６は、ファイルシステムに対して空間を要求することにより、空間を割り当ててもよい。更には、又はこの代わりに、割当モジュール１０６は、空間のために、ストレージ装置上にパーティションを生成してもよい。いくつかの例においては、割当モジュール１０６は、シーケンシャルログのためにストレージ装置上の連続した空間を割り当ててもよい。
【００３０】
割当モジュール１０６は、シーケンシャルログのために、任意の適切な量の空間を割り当ててもよい。例えば、割当モジュール１０６は、ピーク負荷の際にすべての書込みの試みを受け入れるために、シーケンシャルログのために十分な空間を割り当ててもよい。割当モジュール１０６は、十分な空間の量を任意の適切な方法によって判定してもよい。例えば、割当モジュール１０６は、シーケンシャルログのための十分な量の空間を示す（例えば、管理者によって設定されたものやシーケンシャルログを使用するアプリケーションによって設定された既定値に対応したものなどの）シーケンシャルログの構成パラメータを識別してもよい。
【００３１】
ステップ３０６において、本明細書に記述されているシステムのうちの１つ又は複数のシステムは、シーケンシャルログに振り向けられる入出力負荷に少なくとも部分的に基づいてシーケンシャルログのターゲットサイズを算出してもよい。例えば、ステップ３０６において、算出モジュール１０８は、図２の演算システム２０２の一部として、（例えば、アプリケーション２１６から）シーケンシャルログ２１２に振り向けられる入出力負荷に少なくとも部分的に基づいてシーケンシャルログ２１２のターゲットサイズ２１４を算出してもよい。
【００３２】
算出モジュール１０８は、様々な方法により、入出力負荷に基づいてターゲットサイズを算出してもよい。例えば、算出モジュール１０８は、（例えば、アプリケーションによって未だ消費されてはいない有効なデータによって占有されているシーケンシャルログの百分率などの）現在使用中のシーケンシャルログの百分率に基づいてターゲットサイズを算出してもよい。更には、又はこの代わりに、算出モジュール１０８は、シーケンシャルログが成長する速度に基づいてターゲットサイズを算出してもよい。いくつかの例においては、算出モジュール１０８は、推定及び／又は計画された入出力負荷に基づいてターゲットサイズを算出してもよい。例えば、算出モジュール１０８は、シーケンシャルログに書き込むアプリケーションから入出力負荷を示す情報を受け取ってもよい。
【００３３】
又、算出モジュール１０８は、様々なその他の情報を使用してターゲットサイズを算出してもよい。例えば、算出モジュール１０８は、シーケンシャルログのデータの消費に少なくとも部分的に基づいてターゲットサイズを算出してもよい。本明細書において使用されている「消費」という用語は、データに適用された際には、データがアクセスされると共に／又はアプリケーションによってもはや必要とはされなくなる任意のプロセスを意味してもよい。算出モジュール１０８は、様々な方法により、データの消費に対してアクセスしてもよい。例えば、算出モジュール１０８は、存在するシーケンシャルログのヘッドに対する参照の数を識別してもよい。更には、又はこの代わりに、算出モジュール１０８は、未使用のデータを収容しているシーケンシャルログの百分率の変化速度を識別してもよい。いくつかの例においては、算出モジュール１０８は、（例えば、キャッシュのサイズや複数のアクセスに対するキャッシュの感度などの）ストレージ装置上のキャッシュの特性などのその他の情報を使用し、ターゲットサイズを算出してもよい。
【００３４】
いくつかの例においては、算出モジュール１０８は、ターゲットサイズの再算出の一部として、ターゲットサイズを算出してもよい。例えば、算出モジュール１０８は、シーケンシャルログのターゲットサイズを算出し（且つ、詳細に後述するように、シーケンシャルログをターゲットサイズに制限し）、且つ、その後に、ターゲットサイズを再算出してもよく、この結果、シーケンシャルログのサイズが増大又は減少してもよい。いくつかの例においては、算出モジュール１０８は、入出力負荷が変化するのに伴ってターゲットサイズを動的に算出してもよい。例えば、算出モジュール１０８は、上述の入出力負荷の変化の１つ又は複数のインジケータを連続的に且つ／又は定期的に監視してもよい。いくつかの例においては、算出モジュール１０８は、シーケンシャルログの空間が不足した際に、ターゲットサイズを大きなものに変更してもよい。
【００３５】
いくつかのコンテキストにおいては、ノードのクラスタが入出力負荷に寄与する場合がある。これらのコンテキストにおいては、算出モジュール１０８は、１）ノードのクラスタを識別し、且つ、次いで、２）入出力負荷に対するノードの寄与度に基づいてクラスタ内のそれぞれのノードごとにターゲットサイズを算出してもよい。例えば、図４は、キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのための例示的システム４００を示している。図４に示されているように、例示的システム４００は、ノード４０２（１）〜４０２（ｎ）のクラスタ４０２を含んでもよい。ノード４０２（１）〜４０２（ｎ）は、それぞれ、アプリケーション４１６（１）〜４１６（ｎ）を稼働させてもよい。この例においては、算出モジュール１０８は、ストレージ装置４０６上のシーケンシャルファイル４１２のターゲットサイズ４１４（１）〜４１４（ｎ）を算出してもよい。従って、クラスタ内のそれぞれのノードは、事実上、そのノード上におけるアプリケーション負荷に基づいて、そのアクティブなログ空間を管理してもよい。
【００３６】
いくつかの例においては、ノードのクラスタは、シーケンシャルログを共有してもよい。この例においては、算出モジュール１０８は、ノードのクラスタによって演算されるターゲットサイズを組み合わせることにより、シーケンシャルログのターゲットサイズを判定してもよい。更には、又はこの代わりに、ノードのクラスタ内のそれぞれのノードは、別個のシーケンシャルログを維持してもよい。この例においては、算出モジュール１０８によってそれぞれのノードごとに生成されたターゲットサイズが、そのノードのシーケンシャルログに適用されることになろう。
【００３７】
ステップ３０８において、本明細書に記述されているシステムのうちの１つ又は複数のシステムは、シーケンシャルログをターゲットサイズに対応した割り当てられた空間の一部分に制限してもよい。例えば、ステップ３０８において、制限モジュール１１０は、図２の演算システム２０２の一部として、シーケンシャルログ２１２をターゲットサイズ２１４に対応した割り当てられた空間２１０の一部分に制限してもよい。
【００３８】
制限モジュール１１０は、任意の適切な方式により、ステップ３０８を実行してもよい。例えば、制限モジュール１１０は、シーケンシャルログが割り当てられた空間の開始点に戻る地点を変化させてもよい。いくつかの例においては、制限モジュール１１０は、シーケンシャルログが割り当てられた空間の開始点に戻ると共にターゲットサイズの境界外の任意のロギングされたデータが消費される時点まで待った後にシーケンシャルログを制限してもよい。
【００３９】
上述のように、いくつかの例においては、算出モジュール１０８は、シーケンシャルログのターゲットサイズを再算出してもよく、且つ／又は、シーケンシャルログのターゲットサイズを動的に算出してもよい。これらの例においては、制限モジュール１１０は、シーケンシャルログのサイズを、再算出されたターゲットサイズに拡大してもよい。
【００４０】
シーケンシャルログのサイズを調節することにより、制限モジュール１１０は、シーケンシャルログ空間の一部分がストレージ装置のキャッシュに対してピン固定されることによってＩ／Ｏ性能を潜在的に改善することができるようにしてもよい。更には、シーケンシャルログに対する相対的に少ない書込みによって（書込みの実行のためにキャッシュ内の空間を必要とすることに起因して）キャッシュフラッシュをトリガし、これにより、Ｉ／Ｏ性能を潜在的に改善すると共にキャッシュフラッシュを防止してもよい。ステップ３０８の後に、方法３００は終了してもよい。
【００４１】
いくつかの例においては、本明細書に記述されているシステムは、キャッシュ上における且つ／又はキャッシュに伴う様々な動作を通じてシーケンシャルロギングの効率を改善してもよい。例えば、図４は、キャッシュ４０８及びキャッシュモジュール４１２を有するストレージ装置４０６を示している。キャッシュモジュール４１２は、ストレージ装置及び／又はキャッシュとの関連において、様々な機能を実行し、シーケンシャルログとの関連においてキャッシュの効率を改善してもよい。
【００４２】
いくつかの例においては、キャッシュモジュール４１２は、ターゲットサイズに対応した割り当てられた空間の一部分（例えば、シーケンシャルログによって占有されている空間）をキャッシュに対してピン固定してもよい。キャッシュモジュール４１２は、任意の適切な方式により、割り当てられた空間の一部分をキャッシュに対してピン固定してもよい。例えば、キャッシュモジュール４１２は、命令をストレージ装置のキャッシュメカニズムに送信し、割り当てられた空間の一部分に対応したストレージ装置上のアドレスの範囲をピン固定してもよい。割り当てられた空間の全体ではなく割り当てられた空間の一部分をピン固定することにより、キャッシュモジュール４１２は、キャッシュ空間の浪費を伴うことなしに、シーケンシャルログからの読取り性能を改善してもよい。
【００４３】
又、キャッシュモジュール４１２は、シーケンシャルログを使用するように構成されたアプリケーション用の有効な情報を収容してはいない割り当てられた空間内の領域（ｅｘｔｅｎｔ）を破棄するように、キャッシュを構成してもよい。本明細書において使用されている「領域」という用語は、任意の領域、ブロック、部分、ページ、及び／又はデータのその他の単位を意味してもよい。例えば、キャッシュモジュール４１２は、領域が有効な情報を収容してはいないという通信文をアプリケーションから受け取ってもよい。次いで、キャッシュモジュール４１２は、情報をキャッシュに送信し、これにより、領域が値を有していないことを通知してもよい。この後に、キャッシュは、その領域の代わりにキャッシュフラッシュを回避してもよい。
【００４４】
いくつかの例においては、キャッシュモジュール４１２は、ストレージ装置が、シーケンシャルログへの最初の書込みの際に、ページをストレージ装置からキャッシュにフェッチすることを妨げてもよい。例えば、キャッシュモジュール４１２は、ページをフェッチする代わりに、ヌル（例えば、ゼロ化された）ページを生成するように、ストレージ装置を構成してもよい。この結果、キャッシュモジュール４１２は、キャッシュがキャッシュの現在の状態の不必要な混乱を回避できるようにしてもよい。
【００４５】
いくつかの例においては、本明細書に記述されているシステムは、シーケンシャルログに対する不必要な動作を防止することにより、シーケンシャルログとの関係においてキャッシュの効率性を改善してもよい。例えば、本明細書に記述されているシステムは、１）シーケンシャルログへの潜在的なエントリを識別し、２）潜在的なエントリがシーケンシャルログ内に既に存在していることを判定し、且つ、次いで、３）潜在的なエントリがシーケンシャルログ内にリエントリされることを遮断してもよい。例えば、本明細書に記述されているシステムは、シーケンシャルログに書き込むアプリケーションによるロギング動作を検査及び／又はフィルタリングしてもよい。シーケンシャルログに対する冗長なエントリを防止することにより、本明細書に記述されているシステムは、ログに対する冗長なエントリの書込みと関連したキャッシング動作を低減し、これにより、シーケンシャルログ内のその他のデータにおけるキャッシュと関連したＩ／Ｏ応答を潜在的に改善してもよい。
【００４６】
上述のように、シーケンシャルログの境界を制限することにより、本明細書に記述されているシステム及び方法は、シーケンシャルログがその上部に維持されているストレージ装置のキャッシュ性能を改善してもよい。更には、本明細書に記述されているシステム及び方法は、シーケンシャルログ及び／又はシーケンシャルログを使用するアプリケーションを意識してキャッシングの決定を下すことにより、キャッシュ性能を改善してもよい。
【００４７】
図５は、本明細書に記述及び／又は図示されている実施形態のうちの１つ又は複数の実施形態を実装する能力を有する例示的演算システム５１０のブロックダイアグラムである。演算システム５１０は、コンピュータ可読命令を実行する能力を有する任意のシングル又はマルチプロセッサ演算装置又はシステムを広範に表している。演算システム５１０の例は、限定を伴うことなしに、ワークステーション、ラップトップ、クライアントサイド端末、サーバー、分散型演算システム、ハンドヘルド型装置、又は任意のその他の演算システムを含む。その最も基本的な構成において、演算システム５１０は、少なくとも１つのプロセッサ５１４と、システムメモリ５１６と、を含んでもよい。
【００４８】
プロセッサ５１４は、一般に、データを処理する又は命令を解釈及び実行する能力を有する任意のタイプ又は形態の処理ユニットを表している。特定の実施形態においては、プロセッサ５１４は、ソフトウェアアプリケーション又はモジュールから命令を受け取ってもよい。これらの命令は、プロセッサ５１４が本明細書に記述及び／又は図示されている例示的実施形態のうちの１つ又は複数の実施形態の機能を実行するようにしてもよい。例えば、プロセッサ５１４は、単独で又はその他の要素との組合せにおいて、本明細書に記述されている識別、割当、算出、制限、増大、ピン固定、構成、防止、判定、及び／又は遮断ステップのうちの１つ又は複数のステップを実行してもよく、且つ／又は、これらを実行するための手段であってもよい。又、プロセッサ５１４は、本明細書に記述及び／又は図示されている任意のその他のステップ、方法、又はプロセスを実行してもよく、且つ／又は、これらを実行するための手段であってもよい。
【００４９】
システムメモリ５１６は、一般に、データ及び／又はその他のコンピュータ可読命令を保存する能力を有する任意のタイプ又は形態の揮発性又は不揮発性のストレージ装置又は媒体を表している。システムメモリ５１６の例は、限定を伴うことなしに、ランダムアクセスメモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、フラッシュメモリ、又は任意のその他のメモリ装置を含む。必須ではないが、特定の実施形態においては、演算システム５１０は、揮発性のメモリユニット（例えば、システムメモリ５１６）と不揮発性のストレージ装置（例えば、詳細に後述するプライマリストレージ装置５３２）の両方を含んでもよい。一例においては、図１のモジュール１０２のうちの１つ又は複数のモジュールは、システムメモリ５１６に読み込んでもよい。
【００５０】
又、特定の実施形態においては、例示的演算システム５１０は、プロセッサ５１４及びシステムメモリ５１６に加えて、１つ又は複数のコンポーネント又は要素を含んでもよい。例えば、図５に示されているように、演算システム５１０は、メモリコントローラ５１８、入出力（Ｉ／Ｏ）コントローラ５２０、及び通信インターフェイス５２２を含んでもよく、これらのそれぞれは、通信インフラストラクチャ５１２を介して相互接続してもよい。通信インフラストラクチャ５１２は、一般に、演算装置の１つ又は複数のコンポーネントの間の通信を促進する能力を有する任意のタイプ又は形態のインフラストラクチャを表している。通信インフラストラクチャ５１２の例は、限定を伴うことなしに、（ＩＳＡ、ＰＣＩ、ＰＣＩｅ、又は類似のバスなどの）通信バス及びネットワークを含む。
【００５１】
メモリコントローラ５１８は、一般に、メモリ又はデータを取り扱うと共に演算システム５１０の１つ又は複数のコンポーネントの間の通信を制御する能力を有する任意のタイプ又は形態の装置を表している。例えば、特定の実施形態においては、メモリコントローラ５１８は、プロセッサ５１４、システムメモリ５１６、及びＩ／Ｏコントローラ５２０の間の通信を通信インフラストラクチャ５１２を介して制御してもよい。特定の実施形態においては、メモリコントローラ５１８は、単独で又はその他の要素との組合せにおいて、識別、割当、算出、制限、増大、ピン固定、構成、防止、判定、及び／又は遮断などの本明細書に記述及び／又は図示されているステップ又は機能のうちの１つ又は複数のステップ又は機能を実行してもよく、且つ／又は、これらを実行するための手段であってもよい。
【００５２】
Ｉ／Ｏコントローラ５２０は、一般に、演算装置の入力及び出力機能を調整及び／又は制御する能力を有する任意のタイプ又は形態のモジュールを表している。例えば、特定の実施形態においては、Ｉ／Ｏコントローラ５２０は、プロセッサ５１４、システムメモリ５１６、通信インターフェイス５２２、ディスプレイアダプタ５２６、入力インターフェイス５３０、及びストレージインターフェイス５３４などの演算システム５１０の１つ又は複数の要素の間のデータの転送を制御又は促進してもよい。Ｉ／Ｏコントローラ５２０は、例えば、単独で又はその他の要素との組合せにおいて、本明細書に記述されている識別、割当、算出、制限、増大、ピン固定、構成、防止、判定、及び／又は遮断ステップのうちの１つ又は複数のステップを実行するように、且つ／又は、これらを実行するための手段となるように、使用されてもよい。又、Ｉ／Ｏコントローラ５２０は、本開示に記述されているその他のステップ及び機能を実行するように、且つ／又は、これらを実行するための手段となるように、使用されてもよい。
【００５３】
通信インターフェイス５２２は、例示的演算システム５１０と１つ又は複数の更なる装置の間の通信を促進する能力を有する任意のタイプ又は形態の通信装置又はアダプタを広範に表している。例えば、特定の実施形態においては、通信インターフェイス５２２は、演算システム５１０と更なる演算システムを含むプライベート又はパブリックネットワークの間の通信を促進してもよい。通信インターフェイス５２２の例は、限定を伴うことなし、有線ネットワークインターフェイス（ネットワークインターフェイスカードなど）、無線ネットワークインターフェイス（無線ネットワークインターフェイスカードなど）、モデム、及び任意のその他の適切なインターフェイスを含む。少なくとも１つの実施形態においては、通信インターフェイス５２２は、インターネットなどのネットワークに対する直接リンクを介してリモートサーバーに対する直接接続を提供してもよい。又、通信インターフェイス５２２は、例えば、ローカルエリアネットワーク（Ｅｔｈｅｒｎｅｔネットワークなど）、パーソナルエリアネットワーク、電話又はケーブルネットワーク、セルラー電話接続、衛星データ接続、又は任意のその他の適切な接続などを通じて、このような接続を間接的に提供してもよい。
【００５４】
又、特定の実施形態においては、通信インターフェイス５２２は、演算システム５１０と１つ又は複数の更なるネットワーク又はストレージ装置の間の通信を外部バス又は通信チャネルを介して促進するように構成されたホストアダプタを表してもよい。ホストアダプタの例は、限定を伴うことなしに、ＳＣＳＩホストアダプタ、ＵＳＢホストアダプタ、ＩＥＥＥ１３９４ホストアダプタ、ＳＡＴＡ及びｅＳＡＴＡホストアダプタ、ＡＴＡ及びＰＡＴＡホストアダプタ、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌインターフェイスアダプタ、Ｅｔｈｅｒｎｅｔアダプタ、又はこれらに類似したものを含む。又、通信インターフェイス５２２は、演算システム５１０が分散型又はリモート演算に関与できるようにしてもよい。例えば、通信インターフェイス５２２は、リモート装置から命令を受け取ると共に実行のために命令をリモート装置に送ってもよい。特定の実施形態においては、通信インターフェイス５２２は、単独で又はその他の要素との組合せにおいて、本明細書に開示されている識別、割当、算出、制限、増大、ピン固定、構成、防止、判定、及び／又は遮断ステップのうちの１つ又は複数のステップを実行してもよく、且つ／又は、これらを実行するための手段であってもよい。又、通信インターフェイス５２２は、本開示に記述されているその他のステップ及び機能を実行するために、且つ／又は、これらを実行するための手段となるように、使用されてもよい。
【００５５】
又、図５に示されているように、演算システム５１０は、ディスプレイアダプタ５２６を介して通信インフラストラクチャ５１２に結合された少なくとも１つの表示装置５２４を含んでもよい。表示装置５２４は、一般に、ディスプレイアダプタ５２６によって転送された情報を視覚的に表示する能力を有する任意のタイプ又は形態の装置を表している。同様に、ディスプレイアダプタ５２６は、一般に、表示装置５２４上における表示のために通信インフラストラクチャ５１２から（又は、当技術分野において既知のフレームバッファから）グラフィックス、テキスト、及びその他のデータを転送するように構成された任意のタイプ又は形態の装置を表している。
【００５６】
又、図５に示されているように、例示的演算システム５１０は、入力インターフェイス５３０を介して通信インフラストラクチャ５１２に結合された少なくとも１つの入力装置５２８を含んでもよい。入力装置５２８は、一般に、コンピュータ又は人間によって生成された入力を例示的演算システム５１０に提供する能力を有する任意のタイプ又は形態の入力装置を表している。入力装置５２８の例は、限定を伴うことなしに、キーボード、ポインティング装置、音声認識装置、又は任意のその他の入力装置を含む。少なくとも１つの実施形態においては、入力装置５２８は、単独で又はその他の要素との組合せにおいて、本明細書に開示されている識別、割当、算出、制限、増大、ピン固定、構成、防止、判定、及び／又は遮断ステップのうちの１つ又は複数のステップを実行してもよく、且つ／又は、これらを実行するための手段であってもよい。又、入力装置５２８は、本開示に記述されているその他のステップ及び機能を実行するように、且つ／又は、これらを実行するための手段となるように、使用されてもよい。
【００５７】
又、図５に示されているように、例示的演算システム５１０は、ストレージインターフェイス５３４を介して通信インフラストラクチャ５１２に結合されたプライマリストレージ装置５３２及びバックアップストレージ装置５３３を含んでもよい。ストレージ装置５３２及び５３３は、一般に、データ及び／又はその他のコンピュータ可読命令を保存する能力を有する任意のタイプ又は形態のストレージ装置又は媒体を表している。例えば、ストレージ装置５３２及び５３３は、磁気ディスクドライブ（例えば、所謂ハードドライブ）、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブ、又はこれらに類似したものであってもよい。ストレージインターフェイス５３４は、一般に、ストレージ装置５３２及び５３３と演算システム５１０のその他のコンポーネントの間においてデータを転送するための任意のタイプ又は形態のインターフェイス又は装置を表している。
【００５８】
特定の実施形態においては、ストレージ装置５３２及び５３３は、コンピュータソフトウェア、データ、又はその他のコンピュータ可読情報を保存するように構成された着脱自在のストレージユニットとの間において書込み及び／又は読取りを実行するように構成されてもよい。適切な着脱自在のストレージユニットの例は、限定を伴うことなしに、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリ装置、又はこれらに類似したものを含む。又、ストレージ装置５３２及び５３３は、コンピュータソフトウェア、データ、又はその他のコンピュータ可読命令を演算システム５１０に読み込むことができるようにするためのその他の類似の構造又は装置を含んでもよい。例えば、ストレージ装置５３２及び５３３は、ソフトウェア、データ、又はその他のコンピュータ可読情報を読み取ると共に書き込むように構成されてもよい。又、ストレージ装置５３２及び５３３は、演算システム５１０の一部分であってもよく、或いは、その他のインターフェイスシステムを通じてアクセスされる別個の装置であってもよい。
【００５９】
特定の実施形態においては、ストレージ装置５３２及び５３３は、例えば、単独で又はその他の要素との組合せにおいて、本明細書に記述されている識別、割当、算出、制限、増大、ピン固定、構成、防止、判定、及び／又は遮断ステップのうちの１つ又は複数のステップを実行するように、且つ／又は、これらを実行するための手段となるように、使用されてもよい。又、ストレージ装置５３２及び５３３は、本開示に記述されているその他のステップ及び機能を実行するように、且つ／又は、これらを実行するための手段となるように、使用されてもよい。
【００６０】
多くのその他の装置又はサブシステムを演算システム５１０に接続してもよい。逆に、本明細書に記述及び／又は図示されている実施形態を実施するために、図５に示されているコンポーネント及び装置のすべてが存在する必要であるというわけでもない。又、上述の装置及びサブシステムは、図５に示されている方法とは別の方法によって相互接続してもよい。又、演算システム５１０は、任意の数のソフトウェア、ファームウェア、及び／又はハードウェア構成を利用してもよい。例えば、本明細書に開示されている例示的実施形態のうちの１つ又は複数の実施形態は、コンピュータ可読媒体上のコンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御ロジックとも呼ばれる）としてエンコードしてもよい。「コンピュータ可読媒体」という用語は、一般に、コンピュータ可読命令を保存又は担持する能力を有する任意の形態の装置、担持体、又は媒体を意味している。コンピュータ可読媒体の例は、限定を伴うことなしに、搬送波などの送信タイプの媒体と、磁気ストレージ媒体（例えば、ハードディスクドライブ及びフロッピーディスクなど）、光ストレージ媒体（例えば、ＣＤ−ＲＯＭ又はＤＶＤ−ＲＯＭなど）、電子ストレージ媒体（例えば、半導体ドライブ及びフラッシュ媒体など）、及びその他の配布システムなどの物理的媒体と、を含む。
【００６１】
コンピュータプログラムを収容するコンピュータ可読媒体を演算システム５１０に装填してもよい。次いで、コンピュータ可読媒体上に保存されているコンピュータプログラムのすべて又は一部をシステムメモリ５１６内に且つ／又はストレージ装置５３２及び５３３の様々な部分内に保存してもよい。演算システム５１０に読み込まれたコンピュータプログラムは、プロセッサ５１４によって実行された際に、プロセッサ５１４が本明細書に記述及び／又は図示されている例示的実施形態のうちの１つ又は複数の例示的実施形態の機能を実行するようにしてもよく、且つ／又は、これらを実行するための手段となるようにしてもよい。更には、又はこの代わりに、本明細書に記述及び／又は図示されている例示的実施形態のうちの１つ又は複数の例示的実施形態は、ファームウェア及び／又はハードウェアとして実装してもよい。例えば、演算システム５１０は、本明細書に開示されている例示的実施形態のうちの１つ又は複数の例示的実施形態を実行するように適合されたＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）として構成してもよい。
【００６２】
図６は、例示的ネットワークアーキテクチャ６００のブロックダイアグラムであり、この場合に、クライアントシステム６１０、６２０、及び６３０と、サーバー６４０及び６４５と、は、ネットワーク６５０に結合されてもよい。クライアントシステム６１０、６２０、及び６３０は、一般に、図５の例示的演算システム５１０などの任意のタイプ又は形態の演算装置又はシステムを表している。一例においては、クライアントシステム６１０は、図１のシステム１００を含んでもよい。
【００６３】
同様に、サーバー６４０及び６４５は、一般に、様々なデータベースサービスを提供すると共に／又は特定のソフトウェアアプリケーションを実行するように構成されたアプリケーションサーバー又はデータベースサーバーなどの演算装置又はシステムを表している。ネットワーク６５０は、一般に、例えば、イントラネット、ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、パーソナルエリアネットワーク（ＰＡＮ）、又はインターネットを含む任意の通信又はコンピュータネットワークを表している。
【００６４】
図６に示されているように、１つ又は複数のストレージ装置６６０（１）〜６６０（Ｎ）をサーバー６４０に直接的に装着してもよい。同様に、１つ又は複数のストレージ装置６７０（１）〜６７０（Ｎ）をサーバー６４５に直接的に装着してもよい。ストレージ装置６６０（１）〜６６０（Ｎ）及びストレージ装置６７０（１）〜６７０（Ｎ）は、一般に、データ及び／又はその他のコンピュータ可読命令を保存する能力を有する任意のタイプ又は形態のストレージ装置又は媒体を表している。特定の実施形態においては、ストレージ装置６６０（１）〜６６０（Ｎ）及びストレージ装置６７０（１）〜６７０（Ｎ）は、ＮＦＳ、ＳＭＢ、又はＣＩＦＳなどの様々なプロトコルを使用してサーバー６４０及び６４５と通信するように構成されたＮＡＳ（Ｎｅｔｗｏｒｋ−Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）装置を表してもよい。
【００６５】
又、サーバー６４０及び６４５は、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）ファブリック６８０に接続されてもよい。ＳＡＮファブリック６８０は、一般に、複数のストレージ装置の間の通信を促進する能力を有する任意のタイプ又は形態のコンピュータネットワーク又はアーキテクチャを表している。ＳＡＮファブリック６８０は、サーバー６４０及び６４５と複数のストレージ装置６９０（１）〜６９０（Ｎ）及び／又はインテリジェントストレージアレイ６９５の間の通信を促進してもよい。又、ＳＡＮファブリック６８０は、装置６９０（１）〜６９０（Ｎ）及びアレイ６９５がクライアントシステム６１０、６２０、及び６３０からローカルに装着された装置として見えるように、ネットワーク６５０及びサーバー６４０及び６４５を介して、クライアントシステム６１０、６２０、及び６３０とストレージ装置６９０（１）〜６９０（Ｎ）及び／又はインテリネントストレージアレイ６９５の間の通信を促進してもよい。ストレージ装置６６０（１）〜６６０（Ｎ）及びストレージ装置６７０（１）〜６７０（Ｎ）と同様に、ストレージ装置６９０（１）〜６９０（Ｎ）及びインテリジェントストレージアレイ６９５も、一般に、データ及び／又はその他のコンピュータ可読命令を保存する能力を有する任意のタイプ又は形態のストレージ装置又は媒体を表している。
【００６６】
特定の実施形態においては、且つ、図５の例示的演算システム５１０を参照すれば、図５の通信インターフェイス５２２などの通信インターフェイスは、それぞれのクライアントシステム６１０、６２０、及び６３０とネットワーク６５０の間の接続を提供するように使用されてもよい。クライアントシステム６１０、６２０、及び６３０は、例えば、ウェブブラウザ又はその他のクライアントソフトウェアを使用してサーバー６４０又は６４５上の情報にアクセス可能であってもよい。このようなソフトウェアは、クライアントシステム６１０、６２０、及び６３０が、サーバー６４０、サーバー６４５、ストレージ装置６６０（１）〜６６０（Ｎ）、ストレージ装置６７０（１）〜６７０（Ｎ）、ストレージ装置６９０（１）〜６９０（Ｎ）、又はインテリジェントストレージアレイ６９５によってホスティングされたデータに対してアクセスできるようにしてもよい。図６は、データ交換のための（インターネットなどの）ネットワークの使用を示しているが、本明細書に記述及び／又は図示されている実施形態は、インターネット又は任意の特定のネットワークに基づいた環境に限定されるものではない。
【００６７】
少なくとも１つの実施形態においては、本明細書に記述されている例示的実施形態のうちの１つ又は複数の例示的実施形態のすべて又は一部は、コンピュータプログラムとしてエンコードしてもよく、且つ、サーバー６４０、サーバー６４５、ストレージ装置６６０（１）〜６６０（Ｎ）、ストレージ装置６７０（Ｎ）〜６７０（Ｎ）、ストレージ装置６９０（１）〜６９０（Ｎ）、インテリジェントストレージアレイ６９５、又はこれらの任意の組合せに読み込んでもよく、且つ、これらによって実行してもよい。又、本明細書に開示されている例示的実施形態のうちの１つ又は複数の例示的実施形態のすべて又は一部は、コンピュータプログラムとしてエンコードしてもよく、サーバー６４０内に保存してもよく、サーバー６４５によって実行してもよく、且つ、ネットワーク６５０を通じてクライアントシステム６１０、６２０、及び６３０に配布してもよい。従って、ネットワークアーキテクチャ６００は、単独で又はその他の要素との組合せにおいて、本明細書に開示されている識別、割当、算出、制限、増大、ピン固定、構成、防止、判定、及び／又は遮断ステップのうちの１つ又は複数のステップを実行してもよく、且つ／又は、これらを実行するための手段であってもよい。又、ネットワークアーキテクチャ６００は、本開示に記述されているその他のステップ及び機能を実行するように、且つ／又は、これらを実行するための手段となるように、使用されてもよい。
【００６８】
以上において詳述したように、演算システム５１０及び／又はネットワークアーキテクチャ６００の１つ又は複数のコンポーネントは、単独又はその他の要素との組合せにおいて、キャッシングに対応したストレージ装置上における効率的なシーケンシャルロギングのための例示的方法の１つ又は複数のステップを実行してもよく、且つ／又は、これらを実行するための手段であってもよい。
【００６９】
以上の開示は、特定のブロックダイアグラム、フローチャート、及び例を使用して様々な実施形態について記述しているが、本明細書に記述及び／又は図示されているそれぞれのブロックダイアグラムのコンポーネント、フローチャートのステップ、動作、及び／又はコンポーネントは、様々なハードウェア、ソフトウェア、又はファームウェア（或いは、これらの任意の組合せ）の構成を使用し、個別に且つ／又は集合的に、実装してもよい。更には、多くのその他のアーキテクチャを実装して同一の機能を実現することができるため、その他のコンポーネント内に収容されたコンポーネントの任意の開示は、その特性が例示を目的としたものであるものと見なされたい。
【００７０】
本明細書に記述及び／又は図示されているプロセスパラメータ及びステップのシーケンスは、一例として付与されたものに過ぎず、且つ、必要に応じて変化することができる。例えば、本明細書に記述及び／又は図示されているステップは、特定の順序において図示又は記述されている場合があるが、これらのステップは、必ずしも、図示又は記述されている順序において実行する必要はない。又、本明細書に記述及び／又は図示されている様々な例示的方法は、本明細書に記述又は図示されているステップのうちの１つ又は複数のステップを省略してもよく、或いは、開示されているステップに加えて、更なるステップを含んでもよい。
【００７１】
本明細書には、様々な実施形態が、十分に機能可能な演算システムの文脈において記述及び／又は図示されているが、これらの例示的実施形態のうちの１つ又は複数の例示的実施形態は、配布を実際に実行するために使用されるコンピュータ可読媒体のタイプとは無関係に、様々な形態においてプログラムプロダクトとして配布されてもよい。又、本明細書に開示されている実施形態は、特定のタスクを実行するソフトウェアモジュールを使用して実装してもよい。これらのソフトウェアモジュールは、スクリプト、バッチ、又はコンピュータ可読ストレージ媒体上に又は演算システム内に保存されてもよいその他の実行可能なファイルを含んでもよい。いくつかの実施形態においては、これらのソフトウェアモジュールは、本明細書に開示されている例示的実施形態のうちの１つ又は複数の例示的実施形態を実行するように演算システムを構成してもよい。
【００７２】
更には、本明細書に記述されているモジュールのうちの１つ又は複数のモジュールは、データ、物理的装置、及び／又は物理的装置の表現の形態を変換してもよい。例えば、本明細書に記述されているモジュールのうちの１つ又は複数のモジュールは、ストレージ装置のキャッシングメカニズムをシーケンシャルロギングのための効率的なキャッシングメカニズムに変換してもよい。
【００７３】
以上の説明は、当業者が本明細書に開示されている例示的実施形態の様々な態様を最良に利用することができるようにするために提供されたものである。この例示的説明は、すべてを網羅したり、或いは、開示された任意の形態そのままに限定されることを意図したものではない。本開示の精神及び範囲を逸脱することなしに、多数の変更及び変形が可能である。本明細書に開示されている実施形態は、すべての側面において、限定ではなく例示を目的としたものであると見なされたい。本開示の範囲を判定する際には、添付の請求項及びその均等物を参照されたい。
【００７４】
特記されていない限り、本明細書及び添付の請求項において使用されている「１つの（ａ）」又は「１つの（ａｎ）」という用語は、「少なくとも１つの」を意味するものと解釈されたい。更には、使用の容易性の観点から、本明細書及び添付の請求項において使用されている「含む（ｉｎｃｌｕｄｉｎｇ）」及び「有する（ｈａｖｉｎｇ）」という用語は、相互交換可能であり、且つ、「有する（ｃｏｍｐｒｉｓｉｎｇ）」という用語と同一の意味を有する。
【図１】
0005893028.tif 000002
【図２】
0005893028.tif 000003
【図３】
0005893028.tif 000004
【図４】
0005893028.tif 000005
【図５】
0005893028.tif 000006
【図６】
0005893028.tif 000007