(58)【調査した分野】(Int.Cl.,DB名)
前記複数のエンティティのうちの各エンティティに関連する断片化パラメータを識別するステップであって、前記断片化パラメータは、データ・ログの断片化基準を各エンティティごとに異なるサイズで規定する、ステップと、
前記複数のエンティティのうちのエンティティのそれぞれによって生成されたデータ・ログを、前記識別された断片化パラメータに基づいて前記異なるサイズに断片化するステップと
を含む請求項1に記載の方法。
前記各エンティティごとに前記異なるサイズで断片化されたデータ・ログの前記サイズは、前記エンティティに割り当てられたデータベースの格納サイズ、および前記エンティティによって生成されたデータ・ログの数に基づいている請求項2に記載の方法。
前記データ・ログの消去は、事前規定された時間および前記パーティションに格納されたデータ・ログのしきい値数にさらに基づき、前記事前規定された時間およびデータ・ログのしきい値は、瞬間に格納されたデータ・ログを示している請求項1に記載の方法。
前記複数のエンティティのうちの各エンティティに関連する上書き要素を識別するステップであって、前記上書き要素は、あるパーティションから他のパーティションへのデータ・ログの上書き基準を規定する、ステップと、
前記上書き要素に基づいて、前記エンティティのデータ・ログを他のエンティティの未使用のパーティションに格納するステップと
をさらに含む請求項1に記載の方法。
各エンティティに関連する上書き要素は、使用可能な記憶空間、前記データ・ログの重要度、およびエンティティのパーティションの共有能力の少なくとも1つを含む請求項6に記載の方法。
前記複数のエンティティの記憶空間の変化する要件に基づいて、前記複数のエンティティの間で前記記憶空間を動的に区分するステップをさらに含む請求項1に記載の方法。
前記複数のエンティティのうちの各エンティティに関連する断片化パラメータを識別し、前記断片化パラメータは、データ・ログの断片化基準を各エンティティごとに異なるサイズで規定し、
前記複数のエンティティのうちの前記エンティティのそれぞれによって生成されたデータ・ログを、前記識別された断片化パラメータに基づいて前記異なるサイズに断片化する
ように構成された断片化モジュール(124)をさらに含む請求項9に記載のシステム(102)。
前記複数のエンティティのうちの各エンティティに関連する上書き要素を識別し、前記上書き要素は、あるパーティションから他のパーティションへのデータ・ログの上書き基準を規定し、
前記上書き要素に基づいて、前記エンティティのデータ・ログを未使用の他のエンティティのパーティションに格納する
ように構成された上書きモジュール(128)をさらに含む請求項9に記載のシステム(102)。
前記区分モジュール(122)は、前記複数のエンティティの記憶空間の変化する要件に基づいて、前記複数のエンティティの間で前記記憶空間を動的に区分するようにさらに構成される請求項9に記載のシステム(102)。
前記複数のエンティティのうちの各エンティティに関連する断片化パラメータを識別するステップであって、前記断片化パラメータは、データ・ログの断片化基準を各エンティティごとに異なるサイズで規定する、ステップと、
前記複数のエンティティのうちのエンティティのそれぞれによって生成された前記データ・ログを、前記識別された断片化パラメータに基づいて前記異なるサイズに断片化するステップと
をさらに含む請求項13に記載のコンピュータ可読媒体。
【発明を実施するための形態】
【0015】
データ・ログの効率的な格納を可能にするために、マルチクライアント・アーキテクチャにおけるデータ・ログ管理のためのシステムおよび方法について記述する。方法は、様々なネットワークを通じて通信する様々なコンピューティング・デバイスに実装することができる。本明細書の記述は、通信ネットワークのシステムに関するものであるが、方法およびシステムは、少数の変化はあるが、当業者によって理解されるように、データ・ログを格納できる他のシステムに実装することができる。
【0016】
データ・ログは、一般的に、異なるときに発生している、異なるイベントに関係する詳細を維持するために、システムのメモリ・コンポーネントに格納される。そのようなデータ・ログは、発生したイベントの履歴を含む。組織では、データ・ログは、ウイルス対策ソフトウェア、ファイアウォール、ならびに侵入検出および防止システムなどのセキュリティ・ソフトウェア、サーバ、ワークステーション、およびネットワーク装置のオペレーティング・システム、ならびにアプリケーションを含む多数のソースおよび複数のイベントによって生成することができる。ソースのそれぞれのデータ・ログは、将来的な使用のために格納および維持されるため、組織によって管理されるデータ・ログの数、量、および種類は非常に多い。
【0017】
異なるイベントに対して異なるソースによって生成されたデータ・ログは、送信、分析、および処理するために格納されるか、または破棄するために処理される。データ・ログを格納するサーバの記憶空間は制限されているため、データ・ログは、また、新しいデータ・ログの格納のためにメモリを更新するために定期的に破棄される。たとえば、組織は、異なるアプリケーションの毎日の動作および様々なプロセスの処理から生成されたログを格納するために、そのサーバで100GBの空間を利用することができる。実例では、組織の様々なすべてのイベントが、ほぼ2GBのデータ・ログを毎日生成する場合、利用された空間が99GBなど、サーバには、2GB未満のデータ記憶空間しか残されない可能性がある。そのような状況では、次の日に生成されるすべてのデータ・ログを効果的に格納するために、サーバは、使用可能な空き空間がここで2GBを超えるように、以前に格納されたデータ・ログまたは不必要なデータ・ログの一部を破棄しなければならない場合がある。
【0018】
非常に大量の生成されたデータ・ログを管理し、以前に格納されたデータ・ログまたは不必要なデータ・ログを破棄することによって記憶空間を放棄するために、データ・ログを処理するサーバは、現在、ログ管理技術として知られているデータ・ログ管理の技術を利用している。
【0019】
従来から利用されているデータ・ログ管理技術は、折に触れて異なるビジネス・プロセスの変化する要件に基づいて、データ・ログの格納、処理、送信、および消去を管理する。特に、データ・ログを消去し記憶空間を放棄するために、ログ管理技術では、格納の日付に基づいてデータ・ログを削除する、つまり、新しいデータ・ログを格納するための記憶空間を作るために、より以前に格納されたデータ・ログは最初に削除される。そのような消去技術は、より早く格納されたデータは、後に格納されたデータより前に解放される、先入れ先出し方式(FIFO)の技術に類似している。そのような消去技術により、記憶空間の放棄が可能になるが、消去する前にデータ・ログに関連する臨界の重要性を考慮していない。これは、多くの場合、記憶空間にまだ格納されている可能性がある一部の不可欠でないデータ・ログよりも、将来的な使用に役立つ可能性がある不可欠なデータ・ログの破壊につながる場合がある。
【0020】
さらに、すでに記述したように、異なるアプリケーションおよびソースが、1つの記憶空間に格納されるデータ・ログを生成する場合がある。複数のソースからのデータ・ログを格納する間、1つの特定のアプリケーションのデータ・ログは、別のアプリケーションのデータ・ログより不可欠な場合がある。しかし、異なるソースおよび様々なアプリケーションからのログを管理している間、FIFO手法では、同じ方法ですべてのアプリケーションを比較検討し、そのため特定のアプリケーションのデータ・ログに対して特定の優先度、またはアプリケーションに対して特定の記憶容量を提供することが認められない。
【0021】
本発明の主題の一実装形態により、重要かつ不可欠なデータ・ログの格納に優先順位を付けるためのデータ・ログ管理の方法について、本明細書に記述する。上記の方法は、一方では、異なるアプリケーションからのデータ・ログの効率的な格納を可能にし、他方では、新しいデータ・ログのために空き記憶空間を作るために効率的な消去メカニズムを提供する。本発明の主題の記述した実装形態によると、データ・ログは、ウイルス対策ソフトウェア、ファイアウォール、ならびに侵入検出および防止システムを含むセキュリティ・ソフトウェア、サーバ、ワークステーション、およびネットワーク装置のオペレーティング・システムなど異なるアプリケーションから受信することができる。さらに、データ・ログは、通話ログ、セキュリティ・ログ、ネットワーキング・ログ、および通信ログに関係する場合がある。通信ログに関して記述しているが、記述した技術は、少数の変化はあるが、当業者によって理解されるように、他の型のデータ・ログにも実装することができる。
【0022】
さらに、データ・ログは、メール・サーバ、中央ディレクトリ・サーバ、データベース・サーバ、ファイル・サーバ、プリント・サーバ、ウェブ・サーバ、アプリケーション・サーバ、ノート型コンピュータ、タブレット、ネットワーク・アクセス・アダプタなど、異なる機能を扱う/利用する異なるサーバおよびユーザを通じて受信することができる。
【0023】
本発明の主題の一実装形態では、データ・ログの記憶空間は、複数のパーティションに割り当てられ、各パーティションは、アプリケーションまたは個々のユーザのいずれかを含むエンティティのデータ・ログの格納のためだけに使われる。各エンティティは、また、データ・ログの格納の目的のために集められたアプリケーションまたはユーザの組み合わせによって形成することができる。前述の実装形態では、ユーザまたはアプリケーションなど、1つの特定のエンティティに利用されるときに、各パーティションには、その特定のエンティティのデータ・ログの格納に使用できる、事前規定された記憶空間が提供される。たとえば、本発明の主題の前述の実装形態によると、3つのアプリケーションが組織の1つの共通のサーバにそれらのデータ・ログを格納する場合、このサーバの記憶空間は、3つのパーティションに区分することができる。異なるパーティションへと記憶空間を分割することで、様々なエンティティに基づく記憶空間の管理が可能になるため、各パーティションにおいて、異なるデータ・ログ管理技術を個々に実装することができる。
【0024】
本発明の主題の一実装形態では、全体的な記憶空間を不均等に区分することができること、異なるアプリケーションが、データ・ログに対して異なる量の記憶空間を利用できることなどのように、記憶空間の区分化は、異なるアプリケーションの要件に基づくことができる。たとえば、3つのアプリケーションの間で、それらの特定の要件に基づいて、全体的な記憶空間の30%は、第1のアプリケーションに提供することができ、空間の60%は、第2のアプリケーションに提供することができ、最後に残りの10%は、第3のアプリケーションに割り当てることができる。各アプリケーションに特有の特定の要件は、決定された要件に基づいて記憶空間を区分するように構成できるデータ・ログ管理システムによって決定することができる。
【0025】
さらに、使用可能な記憶空間のパーティションに基づいて、記述したシナリオの3つのアプリケーションなど、各エンティティに対するデータ・ログ管理技術は異なる場合があり、各アプリケーションの要件に基づく場合がある。言い換えると、各パーティションのデータ・ログの優先度および重要性に基づいて、消去技術、異なるパーティションに対する格納技術など、データ・ログ管理は、ビジネス要件に合わせるために変えることができる。たとえば、3つの異なるデータ・パーティションに格納される3つの異なるアプリケーションのデータ・ログについての上記の状況では、他のときと比較して1日の特定のときに、1つのアプリケーションが不可欠なデータを格納するものであってもよい。そのような状況では、この特定のアプリケーションのデータ・ログを格納するデータ・パーティションは、必要な特定のときに十分な記憶空間を使用可能であるように技術を用いて実装することができる。そのような状況では、他の2つのアプリケーションに対するデータ・ログ管理の技術は、第1のアプリケーションとは異なる場合があることを理解されるであろう。
【0026】
同様に、上記のように、それらの特定の要件に基づいて、データ・ログの消去は、異なるアプリケーション毎に異なる場合がある。本発明の一実装形態では、パーティションのそれぞれに格納されたデータ・ログは、各アプリケーションのパーティションに最大限のデータ・ログを格納する確率を高めるために、それら自身、より小さなサイズに断片化することができる。たとえば、アプリケーションがサイズ70MBのデータ・ログを生成し、アプリケーションに割り当てられるパーティションで使用可能な全空間が550MBであるシナリオでは、データ・ログの格納によって満たすことができる最大の空間は490MBであり、60MBの残り空間は常に未使用であろう。よって、より小さなサイズのデータ・ログへとデータ・ログを断片化する、そのようなシナリオでは、パーティションを効率的に利用することができる。この例では、70MBのデータ・ログを60MBおよび10MBへと断片化できるため、サイズ60MBのデータ・ログの断片をパーティションの記憶域の未使用部分に収容することができる。断片化により、記憶域の完全な利用が可能になる。さらに、データ・ログの断片化により、また、効率的な処理が可能になり、それによって、より大きなデータ・ログの処理によるパフォーマンスへのどのような影響も回避することができる。
【0027】
さらに、前述の実装形態では、データ・ログは、特定のアプリケーションの要件に基づいて断片化できるため、異なるアプリケーションに対して異なる形で実装することができる。すなわち、1つのアプリケーションについて、空間の効率的な利用のために、データ・ログ毎に10MBのサイズへと断片化を行うべきであると決定することができる。しかし、他のアプリケーションについて、効率的な記憶空間の利用のために、断片化は8MBへと制限することができる。さらに、異なるパーティションで断片化を実装できることを記述してきたが、データ・ログの断片化は、また、記憶空間が異なるエンティティの中で区分されず、様々なアプリケーションおよびユーザのデータ・ログがまとめて格納されているという状況で実行できることを当業者は理解されるであろう。
【0028】
他の実装形態では、異なるアプリケーションに対するデータ・ログ管理は、データ・ログ消去の異なる技術を利用して変えることができる。たとえば、上記のシナリオでは、特定の期間に第1のアプリケーションに対するデータ・ログの格納のために記憶空間が利用可能であることを保証するために、データ・ログを消去する方法は、特定のデータ・パーティションについて修正できるため、他の期間の通常の消去と比較して、特定の期間の前にデータ・ログの消去が発生する。言い換えると、消去するときまたは記憶空間に対して消去が発生するときは、データ・ログ格納の要件に合わせて修正することができる。
【0029】
したがって、記憶空間の区分化および異なるエンティティへの区分された空間の割り当てに基づいて、それらの個々の特定の要件に基づいて異なるエンティティについて、異なるデータ・ログ管理技術を実装することができる。各エンティティの特定の要件は、データ・ログ管理技術を実装するためにユーザが規定できることを理解されるであろう。
【0030】
同様に、本発明の主題の他の実装形態では、他のアプリケーションに割り当てられたデータ・パーティションの未使用の記憶空間は、また、割り当てられた記憶空間が枯渇した状況において不可欠なデータ・ログの格納の目的のために、任意の特定のアプリケーションによって利用することができる。たとえば、前述した3つのアプリケーションの中で、不可欠なデータ・ログが第2のアプリケーションによって保存され、第2のアプリケーションへの割り当てられた記憶空間が枯渇している場合、他の2つのアプリケーションに割り当てられた未使用の記憶空間は、第1のアプリケーションによるそのような不可欠なデータ・ログを格納するために利用することができる。
【0031】
本発明の主題の一実装形態によると、他のアプリケーションおよびエンティティに割り当てられたパーティションへのデータ・ログの格納は、各パーティションに関連する上書き要素に基づいている。上書き要素は、使用可能な記憶空間、データ・ログの臨界、およびパーティションの共有能力などのパラメータを含むことができ、これに基づいて、異なるエンティティの中で各エンティティのパーティションを共有することができる。異なるシナリオにおけるそのようなパラメータの実装および使用について、添付した図の特定の実施形態に関してより詳細に記述している。
【0032】
本発明の主題の他の実装形態によると、記憶空間の区分化は、また、使用可能な記憶空間に基づいて動的に修正できるため、区分された記憶空間の割り当てられたサイズは、折に触れてエンティティの修正された要件に基づいて変更される。たとえば、利用可能な空間の合計が30GBであり、アプリケーションの間の記憶空間の区分化は、30%、20%、および50%という基準に基づく状況である。しかし、第3のアプリケーションの要件が50%の基準を超えて上昇し、最初の2つのアプリケーションで記憶空間を使用可能である状況では、第3のアプリケーションに、より多くの記憶空間を提供するために、区分化は、20%、10%、および70%へと動的に修正することができる。一実装形態では、データ・ログ管理システムは、利用可能な空間を再評価するように構成することができ、要件に基づいて再分配を動的に実行することができる。
【0033】
記憶空間の動的な割り当てに基づいて、効果的なデータ・ログ管理のために、異なるエンティティの変化する要件を考慮することができる。本発明の主題の他の実装形態では、パーティションの消去メカニズムは、パーティションに関連するエンティティの選択に基づいている。すなわち、それらの割り当てられたパーティションにデータ・ログを格納するエンティティについて、異なる要素に基づいて、エンティティの要件に従って消去メカニズムをカスタマイズすることができる。一実装形態では、エンティティは、データ・ログが格納されている期間に基づいてデータを消去することができる。
【0034】
データ・ログは、異なるときに、および異なる目的のために格納されることを当業者は理解されるであろう。動作中のシステムの状態をログに記録するために、特定のデータ・ログは、事前に決定された期間毎の後に格納される。他のデータ・ログは、監視されているアプリケーションまたはシステムのいずれかの機能において任意の特定のエラーがあるときに生成されるエラー・ログである。一般的に、エラー・データ・ログは、異常なイベントまたは特定のプロセスの障害のためにエラーが突然発生したために、短いバースト期間内に生成される。そのようなエラー・データ・ログは、エラーのトラブルシューティングのため、およびより詳細なエラーの理解のために、後に重要である。よって、エラー・データ・ログは、通常のデータ・ログより極めて重要であることも理解されるであろう。
【0035】
本発明の主題の実装形態によると、短いバースト期間、または瞬間、または最大のデータ・ログが格納される期間に格納されたデータ・ログは維持されて、より長い期間消去されない一方、他のデータ・ログは、より早く消去されるため、それによって記憶空間が放棄される。短いバーストの間に格納されず、通常のデータ・ログの可能性があるデータ・ログは、エラー・データ・ログなどの不可欠なデータをより少なく破棄して消去することができる。消去する時間および消去する頻度は、効率的かつ適切なデータ・ログ管理のためにエンティティの選択に従って変動させることができることをさらに理解されるであろう。
【0036】
本発明の主題のさらに他の実装形態では、データ・ログは、各データ・ログに関連する臨界ポイントに基づいて消去される。たとえば、エラー・データ・ログなど、非常に重要で不可欠なデータ・ログは、最も高い臨界ポイントに関連させることができ、通常のデータ・ログなど、あまり重要でないデータ・ログは、最も低い臨界ポイントに関連させることができる。各データ・ログの臨界ポイントに基づいて、前述の実装形態によると、データ・ログの消去を行うことができる。たとえば、各エンティティは、データ・ログに関連する臨界ポイントに基づいて、最初に消去されるデータ・ログを規定することができる。あるエンティティは、他のデータ・ログの消去と比較して、最初に最も低い臨界ポイントを持つデータ・ログを消去するように規定することができる。同様に、他のエンティティは、最初に最も高い臨界ポイントを持つデータ・ログの消去を選択することができる。
【0037】
したがって、異なるデータ・ログに関連する臨界ポイントに基づいて、消去メカニズムは、記憶空間を放棄するために選択および適用することができる。これにより、異なるエンティティが、異なるときに異なる優先度を持つ異なる型のデータ・ログの消去を規定することを可能にすることができる。
【0038】
記述は、本発明の主題の原理を示すにすぎないことを注意されたい。本明細書に明示的に記述していないが、本発明の主題の原理を具体化し、その趣旨および範囲に含まれる様々な配置を当業者であれば考案できることを理解されるであろう。さらに、本明細書に列挙したすべての例は、原則として、読者が本発明の原理、およびその技術を推進する発明者(ら)によって提供された概念を理解するのを支援するために、教育のみを目的とすることを明確に意図するものであり、そのような具体的に列挙された例および条件に限定しないものとして解釈するべきである。さらに、本明細書において、本発明の原理、態様、および実施形態を列挙するすべての記述、およびその具体例は、その等価物を包含することを意図するものである。
【0039】
実質的な分散リストを提供するシステムおよび方法を実装する方法について、
図1および
図2に関して詳細に説明する。任意の数の異なるコンピューティング・システム、送信環境、および/または構成において、実質的な分散リストを提供するための記述されたシステムおよび方法の態様を実装することができるが、実施形態は、以下の例示的なシステムの状況において記述されている。
【0040】
本明細書で使用する、の間に(during)、間(while)、およびとき(when)という言葉は、開始動作のときに動作が即座に起こることを意味する正確な用語でなく、伝播遅延など、最初の動作と、最初の動作によって開始される反応との間に、小さいが妥当な遅延があってもよいことを当業者は理解されるであろう。さらに、「接続された(connected)」および「結合された(coupled)」という言葉は、記述の明瞭さのために全体を通して使用するものであり、直接接続または間接接続のいずれかを含むことができる。
【0041】
図1は、本発明の主題の実施形態により、データ・ログを実装するために、データ・ログ管理システム(DLMS)102を実装する、ネットワーク環境100を示している。説明のために、以下、DLMSをシステム102と呼ぶ。本明細書に記述したシステム102は、ルータ、ブリッジ、サーバ、コンピューティング・デバイス、記憶装置などを含む、様々なネットワーク・デバイスを含む任意のネットワーク環境に実装することができる。一実装形態では、システム102は、ネットワーク106を通じて、1つまたは複数のクライアント・デバイス104−1、104−2、104−3・・・104−Nに接続され、以下、個々におよびまとめてクライアント・デバイス104と呼ぶ。異なるユーザおよび個々の組織によって必要とされるように、クライアント・デバイス104は、複数の機能を実行するために実行している場合がある複数のアプリケーションを含むことができる。さらに、クライアント・デバイス104は、また、クライアント・デバイス104が、コントローラ、モデム・ボード、および無線ボードなど、無線基地局装置の内部コンポーネントである3Gネットワークなど、任意のネットワーク要素の内部コンポーネントの場合がある。
【0042】
システム102は様々なサーバおよび通信デバイスとして実装することができる。上記の方法を実装できるサーバおよびコンピューティング・システムは、限定しないが、メール・サーバ、中央ディレクトリ・サーバ、データベース・サーバ、ファイル・サーバ、プリント・サーバ、ウェブ・サーバ、アプリケーション・サーバなどを含む。システム102は、また、ラップトップ型コンピュータ、デスクトップ型コンピュータ、ノート型コンピュータ、ワークステーション、メインフレーム・コンピュータ、サーバなど、コンピューティング・デバイスとして実装することができる。本明細書に記述したシステム102は、また、ルータ、ブリッジ、サーバ、コンピューティング・デバイス、記憶装置などを含む様々なネットワーク・デバイスを含む任意のネットワーク環境に実装することができる。
【0043】
クライアント・デバイス104は、限定しないが、デスクトップ型コンピュータ、携帯端末、ラップトップ型コンピュータまたは他の携帯用コンピュータ、タブレット・コンピュータ、モバイル電話、PDA、スマートフォン、セキュリティ機器、監視装置などとして実装することができる。さらに、クライアント・デバイス104は、異なる通信デバイスおよびコンピューティング・システムに接続を提供するためにデータを交換できるデバイスを含むことができる。そのようなデバイスは、限定しないが、データ・カード、モバイル・アダプタ、ワイヤレス(WiFi(商標))アダプタ、ルータ、無線モデム、ワイヤレス通信デバイス、コードレス電話機、ワイヤレス・ローカル・ループ(WLL)ステーションなどを含むことができる。クライアント・デバイス104は、固定型または移動型の場合があるため、それらは、また、移動局、端末、アクセス端末、加入者ユニット、ステーションなどであると理解することができる。
【0044】
ネットワーク106は、無線もしくは有線のネットワーク、またはそれらの組み合わせの場合がある。ネットワーク106は、互いに相互連結され単一の大規模なネットワーク(たとえばインターネットまたはイントラネット)として機能する個別のネットワークの集合でもよい。そのような個別のネットワークの例として、限定しないが、グローバル・システム・フォー・モバイル・コミュニケーションズ(GSM:Global System for Mobile Communication)ネットワーク、ユニバーサル・モバイル・テレコミュニケーション・システム(UMTS:Universal Mobile Telecommunications System)ネットワーク、パーソナル通信サービス(PCS:Personal Communications Service)ネットワーク、時分割多元接続(TDMA:Time Division Multiple Access)ネットワーク、符号分割多元接続(CDMA:Code Division Multiple Access)ネットワーク、次世代ネットワーク(NGN:Next Generation Network)、公衆交換電話網(PSTN:Public Switched Telephone Network)、およびサービス総合デジタル網(ISDN:Integrated Services Digital Network)が含まれる。技術により、ネットワーク106は、ゲートウェイ、ルータなど様々なネットワーク・エンティティを含むが、そのような詳細は、理解を容易にするために省略した。
【0045】
一実施形態では、システム102は、異なる地理的な領域からのクライアント・デバイス104から受信したデータ・ログを格納する、データベース108に関連する。データベース108はシステム102の外部に図示しているが、データベース108は、システム102の内部の場合もあることを理解されるであろう。さらに、データベース108は、たとえば単一のレポジトリ、分散されたレポジトリ、または分散されたレポジトリの集合として実装することができる。
【0046】
一実装形態では、システム102は、プロセッサ112を含む。プロセッサ112は、1つまたは複数のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、中央制御装置、ステート・マシン、論理回路、および/または動作命令に基づいて信号を操作する任意のデバイスとして実装することができる。他の機能の中で、プロセッサは、メモリに格納されたコンピュータ可読命令を取り込み実行するように構成される。
【0047】
「プロセッサ」と書かれた任意の機能ブロックを含む、図に示す様々な要素の機能は、専用ハードウェア、および適切なソフトウェアと連携してソフトウェアを実行する機能を持つハードウェアの利用を通じて提供することができる。プロセッサによって提供される場合、機能は、単一の専用プロセッサによって、単一の共有プロセッサによって、またはその一部を共有できる、複数の個々のプロセッサによって提供することができる。さらに、「プロセッサ」という用語の明示的な使用は、ソフトウェアを実行できるハードウェアを排他的に指すものと解釈するべきではなく、デジタル・シグナル・プロセッサ(DSP:Digital Signal Processor)ハードウェア、ネットワーク・プロセッサ、特定用途向けIC(ASIC:Application Specific Integrated Circuit)、フィールド・プログラマブル・ゲートアレイ(FPGA:Field Programmable Gate Array)、ソフトウェアを格納するための読み取り専用メモリ(ROM:Read Only Memory)、ランダム・アクセス・メモリ(RAM:Random Access Memory)、および不揮発性記憶装置を限定することなく、暗黙的に含むことができる。従来型および/またはカスタムの他のハードウェアも含むことができる。
【0048】
また、システム102はインターフェース114を含む。インターフェース114は、システム102がネットワーク106のエンティティと、または相互に対話することを可能にする、様々なソフトウェアおよびハードウェアのインターフェースを含むことができる。インターフェース114は、たとえばLAN、ケーブルなどの配線網およびたとえばWLAN、セル方式、衛星に基づくネットワークなどのワイヤレス・ネットワークを含む、多種多様なネットワークおよびプロトコルのタイプで複数の通信を促進することができる。
【0049】
本発明の主題の他の実施形態では、システム102は、また、メモリ116を含むことができる。メモリ116は、プロセッサ112に結合することができる。メモリ116は、たとえば、静的ランダム・アクセス・メモリ(SRAM:Static Random Access Memory)およびダイナミック・ランダム・アクセス・メモリ(DRAM:Dynamic Random Access Memory)などの揮発性メモリ、および/または読み取り専用メモリ(ROM:Read Only Memory)、消去可能なプログラマブルROM、フラッシュ・メモリ、ハード・ディスク、光ディスク、および磁気テープなどの不揮発性メモリなどを含む当技術分野で既知の任意のコンピュータ可読媒体を含むことができる。
【0050】
さらに、システム102は、モジュール118およびデータ120を含むことができる。モジュール118およびデータ120は、プロセッサ112に結合することができる。モジュール118は、中でも、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含み、これらは特定のタスクを実行するか、または特定の抽象データ型を実装する。モジュール118は、また、信号プロセッサ、ステート・マシン、論理回路、および/または動作命令に基づいて信号を操作する他のデバイスもしくはコンポーネントとして実装することができる。
【0051】
さらに、モジュール118は、ハードウェア、処理ユニットによって実行される命令、またはそれらの組み合わせによって実装することができる。処理ユニットは、コンピュータ、プロセッサ、ステート・マシン、論理アレイ、または命令を処理できる他の適切なデバイスを含むことができる。処理ユニットは、必要なタスクを汎用プロセッサに実行させる命令を実行する汎用プロセッサでもよく、または、処理ユニットは必要な機能を実行するためだけに使うことができる。
【0052】
本発明の主題の他の態様では、モジュール118は、プロセッサ/処理ユニットによって実行された場合、記述された機能のいずれかを実行する機械可読の命令(ソフトウェア)の場合がある。機械可読の命令は、電子メモリ・デバイス、ハード・ディスク、光ディスク、または他の機械可読の記憶媒体もしくは非一時的媒体に格納することができる。一実装形態では、機械可読の命令は、また、ネットワーク接続を介して記憶媒体にダウンロードすることができる。
【0053】
一実装形態では、モジュール118は、区分モジュール122、断片化モジュール124、消去モジュール126、上書きモジュール128、および他のモジュール130を含む。他のモジュール130は、システム102によって実行されるアプリケーションまたは機能を補足するプログラムまたは符号化された命令を含むことができる。前述の実装形態では、データ120は、エンティティ・データ132、データ・ログ・データ134、臨界データ136、および他のデータ138を含む。他のデータ138は、中でも、モジュール118の1つまたは複数のモジュールの実行の結果として処理、受信、または生成されるデータを格納するためのレポジトリとして機能することができる。データ120は、システム102の内部に示されているが、データ120は、システム102に結合できる外部レポジトリ(図示せず)に存在できることを理解することができる。システム102は、データ120から情報を取得するために、インターフェース114を通じて外部レポジトリと通信することができる。
【0054】
すでに述べたように、システム102は、データ・ログの効率的な格納およびそれらの消去メカニズムを実現するために、異なるエンティティのデータ・ログを管理するように構成される。データ・ログは、折に触れて様々な異なる理由のためにクライアント・デバイス104によって提供することができる。特定のデータ・ログは、異なるクライアント・デバイスおよびアプリケーションの状態を格納するために、事前に決定された期間毎の後に格納される場合がある。しかし、他のデータ・ログは、クライアント・デバイスの障害、または任意のアプリケーションにおける予期しないエラーなど、危機的な状態に格納することができる。そのようなデータ・ログは、また、エラーの考えられる理由など、エラーが発生したときの異なる基準、エラーが発生したときのデバイスの状態、およびエラーが発生したときを示すタイムスタンプを格納するエラー・データ・ログを含むことができる。本発明の主題の一実装形態では、クライアント・デバイス104によって提供されるすべてのデータ・ログは、システム102によってデータベース108に格納される。
【0055】
データ・ログの効率的な格納のために、本発明の主題の一実装形態では、システム102の区分モジュール122は、異なるエンティティの中でデータベース108の記憶空間を区分するように構成される。各エンティティは、単一のクライアント・デバイス104か、または複数のクライアント・デバイス104の組み合わせの場合がある。さらに、各エンティティは、1つのアプリケーションを含むことができるか、またはアプリケーションの群を含むことができる。前述の実装形態では、区分モジュール122は、異なるエンティティの記憶空間要件を規定できる特定の区分パラメータに基づいてデータベース108を区分することができる。すなわち、各エンティティによって必要とされる記憶空間の量は、エンティティのそれぞれに関連する区分パラメータによって規定することができる。一実装形態では、エンティティのそれぞれの要件は、各エンティティに関連する臨界、エンティティによって生成されたデータ・ログのサイズ、およびデータ・ログがエンティティによって生成される頻度の1つまたは複数に基づくことができる。したがって、これらの基準に基づいて、各エンティティの区分パラメータを決定し、エンティティに関連させることができる。
【0056】
一実装形態では、区分モジュール122は、エンティティのそれぞれに関連する区分パラメータに基づいて、複数のパーティションへとデータベース108を区分することができる。エンティティに関連する区分パラメータは、各エンティティに対する記憶空間を決定するために、区分モジュール122によって受信することができる。すなわち、区分モジュール122は、エンティティのそれぞれに関連する区分パラメータに基づいて、データベース108において各エンティティへと個別の記憶空間を割り当てることができる。たとえば、区分モジュール122は、5つの異なるエンティティへとデータベース108の記憶空間を区分することができる。各エンティティは、それに関連する関連する区分パラメータを持つことができる。エンティティのそれぞれについて関連する区分パラメータに基づいて、区分モジュール122は、データベース108を区分できるため、第1のエンティティは、使用可能な記憶空間の20%の割り当て分を割り当てられ、第2のエンティティは、使用可能な記憶空間の50%の割り当て分を割り当てられ、残りのエンティティは、それぞれ10%の割り当て分を割り当てられる。
【0057】
データベース108の全体的な記憶空間は、データ・ログを格納する目的のために、システム102によって利用できず、それゆえ、データ・ログ格納の目的のために利用された記憶空間のみを異なるエンティティの中で区分モジュール122によって区分できることを理解されるであろう。
【0058】
異なるエンティティに対して異なるパーティションへとデータベース108の記憶空間を区分化することで、エンティティの特定の要件に基づいて、システム102が、データ・ログ管理の異なる技術を異なるパーティションに適用することを可能にすることができる。
【0059】
本発明の主題の一実装形態では、システム102の断片化モジュール124は、割り当てられたパーティションでの効率的な格納のために、より小さなサイズのデータ・ログへとエンティティによって生成されたデータ・ログを断片化するように構成される。データ・ログの断片化は、データベース108に格納されたすべてのデータ・ログに対して行うことができるか、または個々のエンティティの特定の要件に基づく場合がある。前述の実装形態では、データ・ログの断片化は、各エンティティに割り当てられた記憶空間のサイズ、および各エンティティによって生成されたデータ・ログのサイズに基づく場合がある。たとえば、断片化モジュール124は、生成されたデータ・ログが、事前に決定したサイズより大きなサイズである5つのうち3つのエンティティのデータ・ログを断片化することを決定することができる。
【0060】
さらに、また、エンティティは、それらによって生成されたデータ・ログを断片化するために、断片化モジュール124への入力を規定および提供できることがある。そのようなシナリオでは、断片化モジュール124は、断片化に関係する任意の入力を提供したエンティティのデータ・ログを区分することができる。一実装形態では、エンティティは、断片化パラメータの形で断片化モジュール124に入力を提供することができる。断片化パラメータは、データ・ログが断片化されるサイズ、それを超えると断片化が発生するデータ・ログの任意のしきい値サイズなどを含むことができ、それに基づいて、データ・ログの断片化を断片化モジュール124によって実行することができる。
【0061】
一実装形態では、断片化モジュール124は、エンティティに割り当てられたパーティション・サイズ、およびエンティティによって生成されたデータ・ログの数に基づいて、データ・ログを断片化するように構成される。前述の実装形態では、断片化モジュール124は、パーティション・サイズの割合およびデータ・ログの数に基づいて、断片化されたデータ・ログのサイズを決定することができる。言い換えると、断片化されたデータ・ログのサイズは、以下のように表すことができる。
【数1】
【0062】
上に規定した関係(1)に基づいて、断片化モジュール124は、データ・ログを効率的に格納し、格納パーティション空間をより良好に利用するために、異なるエンティティのデータ・ログを異なるサイズに断片化できることを理解されるであろう。
【0063】
データベース108に格納されたデータ・ログは、新しいデータ・ログの格納のために記憶空間を放棄するために、規則的な間隔で消去されることを理解されるであろう。しかし、重要なデータ・ログの消去は、他の重要でないデータ・ログを犠牲にして行うべきでない。よって、重要なデータ・ログの消去前に、それほど重要でないデータ・ログを消去するための効率的な消去メカニズムが、システム102によって利用される。
【0064】
本発明の主題の他の実装形態では、消去モジュール126は、データベース108の記憶空間に格納されたデータ・ログを効率的に消去するように構成される。消去モジュール126は、各パーティションのエンティティに基づいて、異なる方法で異なるパーティションのデータ・ログを消去するように構成される、一実装形態では、パーティションでのデータ・ログの消去は、エンティティの要件に基づく場合がある。たとえば、あるエンティティは、毎日、特定の所定時刻に機密に関わるデータ・ログを格納することができる。たとえば、午前11:00から正午12:00の間に、すべての支店のデータ・ログを格納するバンキング・アプリケーションなどである。毎日、このときに格納されるデータ・ログは、組織にとって重要であり、データ・ログが失われないように、このエンティティに割り当てられたパーティションに記憶空間を必要とする場合がある。そのようなシナリオでは、消去モジュール126は、使用可能な記憶空間を保証するために、毎日午前11:00前に、このエンティティに割り当てられたパーティションに格納されたより古いデータ・ログを消去することを決定することができる。午前11:00以外に、異なるときに、他のパーティションに対するデータ・ログを消去できることを理解されるであろう。
【0065】
他のほとんどのエンティティは、アプリケーションおよびクライアント・デバイス104の状態を格納するために、事前規定された期間毎の後に、データ・ログを格納することができない。しかし、アプリケーションにエラーおよび障害がある状況では、突然の瞬間にデータ・ログがエンティティによって格納される場合がある。言い換えると、多くのデータ・ログは、そのような予期されないエラーまたは障害の間に、短い時間内に生成および格納することができる。したがって、異なるエンティティについて、事前規定された時間およびデータ・ログのしきい値を規定することができ、それに基づいて、データ・ログが突然の瞬間に格納されたかどうかを決定することができる。たとえば、エンティティについて、事前規定された時間が5分であり、データ・ログのしきい値が50である場合、50を超えるデータ・ログが5分の範囲内に格納される状況では、データ・ログは、突然の瞬間に格納されるデータ・ログとしてマークすることができる。さらに、そのようなデータ・ログは、また、さらなる分析および障害の検出のために重要である場合があるため、一実装形態では、消去モジュール126は、突然の瞬間に短い時間内に格納されたデータ・ログの前に、通常の間隔に格納されたデータ・ログを消去することを決定することができる。
【0066】
他の実装形態では、消去モジュール126は、異なるエンティティのデータ・ログに関連する臨界ポイントに基づいてデータ・ログを消去することができる。すでに記述したように、異なるデータ・ログは、それらに関連する重要度に基づいて異なる臨界を持つことができる。すなわち、異なるデータ・ログは、そのようなデータ・ログを格納するエンティティに関して、変えられた相対的な重要度を持つ情報を格納することができる。したがって、異なるデータ・ログに関連する臨界ポイントは、異なる場合がある。消去モジュール126は、関連に基づいて臨界ポイントをデータ・ログに関連させることができ、たとえば、事前に決定された期間毎の後に生成および格納された通常のデータ・ログなど、より重要度が低いデータ・ログは、低い臨界ポイントに関連させることができる。同様に、エラー・データ・ログなど高い重要性に関連するデータ・ログは、高い臨界ポイントに関連させることができる。前述の実装形態では、消去モジュール126は、エンティティのパーティションにおいて記憶空間を放棄するために、高い臨界ポイントのデータ・ログの前に、低い臨界ポイントを持つデータ・ログを消去することを決定することができる。
【0067】
一実装形態では、消去モジュール126は、また、消去パラメータにより規定できるエンティティの要件に基づいて、エンティティに割り当てられたパーティションからデータ・ログを消去することができる。各エンティティは、データ・ログを消去する時間、データ・ログを消去する頻度、最初に消去するデータ・ログの臨界ポイント、および格納されたデータ・ログを消去するべき、または消去するべきでない時間を規定するために消去パラメータを規定することができる。したがって、異なるエンティティの要件に基づいて、データ・ログ消去メカニズムは、様々なパーティションで、システム102によって独立して実装することができる。
【0068】
本発明の主題の一実装形態によると、システム102の上書きモジュール128は、データベース108の記憶空間を管理するように構成されるため、それぞれのパーティションに各エンティティによって格納されたデータ・ログは、また、割り当てられたパーティションで記憶空間が枯渇している間に、他のパーティションに格納することができる。前述の実装形態では、上書きモジュール128は、その記憶空間がほぼ枯渇している任意のエンティティのデータ・ログを格納するために、他のエンティティのパーティションで未使用の記憶空間を決定することができる。たとえば、データベース108は、10のエンティティの中の区分モジュール122によって区分することができ、使用可能な記憶空間の10%だけが、8番目のエンティティに割り当てられる。さらに、8番目のエンティティは、ときには、非常に短い時間に大量のデータ・ログを格納する。そのようなシナリオでは、8番目のエンティティの10%の記憶空間が、大量のデータ・ログを格納するイベントの間に枯渇した場合、上書きモジュール128は、そのようなデータ・ログを格納するために、3番目のエンティティの未使用の記憶空間を利用することができる。
【0069】
他の実装形態では、上書きモジュール128は、各パーティションに関連する上書き要素に基づいて、他のエンティティの格納パーティションに1つのエンティティのデータ・ログを格納することができる。上書き要素に基づいて、エンティティは、どのような型のデータ・ログに対して、他のエンティティの記憶空間のパーティションへの上書きが、上書きモジュール128によって実行できるかを規定することができる。言い換えると、エンティティは、他のエンティティのパーティションに格納するために、自身によって生成された特定の型のデータ・ログについてのみデータを格納するように規定することができる。たとえば、10個のエンティティを用いる上記のシナリオでは、8番目のエンティティは、エラー・データ・ログのみを他のエンティティのパーティションに格納することができ、他のデータ・ログは、記憶空間が枯渇した状況で拒否されることを規定することができる。同様に、他のエンティティは、高い臨界ポイントを持つデータ・ログのみを他のエンティティのパーティションへ格納することが上書きモジュール128によって実行できることを規定することができる。前述の実装形態では、各エンティティは、また、他のエンティティのデータ・ログを格納する目的のために、上書きモジュール128によって利用されるそれらのパーティションの最大サイズを独自に規定することができる。
【0070】
一実装形態では、上書き要素に基づいて、一部のエンティティは、また、使用可能な記憶空間にかかわらず、他のエンティティからのデータ・ログの格納のために、それらのパーティションを共有しないように規定することができる。したがって、エンティティは、また、上書き要素を使って、データ・ログの上書きに関して、データ・ログの管理を規定できることを理解されるであろう。一実装形態では、上書き要素は、異なるエンティティの要件を規定するために、使用可能な記憶空間、データ・ログの臨界、およびパーティションの共有能力などのパラメータを含むことができる。異なるエンティティは、それらの要件およびニーズに合わせるために、異なる方法で異なるパラメータを規定できることを理解されるであろう。
【0071】
本発明の主題のさらに他の実装形態では、システム102の区分モジュール122は、すでに区分されているデータベース108の区分化を動的に修正するように構成される。そのような動的な区分化は、データ・ログの数および生成されたデータ・ログのサイズに依存する場合があるエンティティの変化する要件に基づく場合がある。たとえば、データベース108の利用可能な空間の合計は30GBであり、区分モジュール122は、それぞれ30%、20%、および50%の割り当て分に3つのアプリケーションの間でデータベース108を区分した状況では、任意の1つのエンティティ、たとえばエンティティ3の要件は、アプリケーションの格納障害およびエラー・データ・ログの格納のために急に増加する場合がある。そのような状況では、区分モジュール122は、第3のエンティティに、より多くの記憶空間を提供するために、エンティティの割り当て分をそれぞれ20%、10%、および70%へと動的に修正することができる。
【0072】
図2は、本発明の主題の実施形態による、マルチクライアント・アーキテクチャにおけるデータ・ログ管理のための方法200を示している。方法200が記述されている順は、制限するものとして解釈されることを意図するものではなく、任意の数の上記方法のブロックを、方法200または任意の代替方法を実装するために任意の順に組み合わせることができる。さらに、個々のブロックは、本明細書に記述した主題の趣旨および範囲から逸脱することなく、方法から削除することができる。さらに、方法は、任意の適切なハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせに実装することができる。
【0073】
方法について、コンピュータ実行可能命令の一般的な文脈で記述することができる。一般的に、コンピュータ実行可能命令は、特定の機能を実行するルーチン、プログラム、オブジェクト、コンポーネント、データ構造、手順、モジュール、機能などを含むことができるか、または特定の抽象データ型を実装することができる。方法は、また、通信ネットワークを通じてリンクされたリモート処理デバイスによって機能が実行される、分散されたコンピューティング環境に実施することができる。分散されたコンピューティング環境では、コンピュータ実行可能命令は、メモリ記憶デバイスを含むローカルおよびリモートのコンピュータ記憶媒体の両方に位置することができる。
【0074】
当業者は、プログラムされたコンピュータによって方法のステップを実行できることを容易に認識するであろう。本明細書において、一部の実施形態は、また、機械またはコンピュータで読み取り可能であり、装置で実行可能またはコンピュータで実行可能なプログラム命令をエンコードする、たとえば、デジタル・データ記憶媒体など、プログラム記憶装置を包含することを意図するものであり、前述の命令は、記述した方法のステップの一部またはすべてを実行する。プログラム記憶装置は、たとえば、デジタル・メモリ、磁気ディスクや磁気テープなどの磁気記憶媒体、ハード・ドライブ、または光学的に読み取り可能なデジタル・データ記憶媒体などでもよい。実施形態は、また、例示的な方法の前述のステップを実行するように構成された通信ネットワークおよび通信デバイスの両方を対象にすることを意図するものである。
【0075】
図2を参照すると、ブロック202で、データ・ログのための記憶空間は、複数のエンティティの間で割り当てるために複数のパーティションへと区分され、複数のエンティティの中の各エンティティは、少なくとも1つのパーティションを割り当てられる。一実装形態では、システム102などデータ・ログ管理システムは、記憶空間を区分するために利用することができる。前述の実装形態では、システム102の区分モジュール122は、データ・ログの格納に利用可能な記憶空間を複数のパーティションに区分することができる。他の実装形態では、記憶空間の分配は、複数のエンティティの要件に基づく場合がある。
【0076】
ブロック204で、各エンティティに関連する消去パラメータは、複数のエンティティの中から特定され、消去パラメータは、記憶空間を放棄するためにデータ・ログを消去する基準として、消去の頻度を少なくとも含む。消去パラメータは、基準を規定することができ、それに基づいてパーティションでデータ・ログの消去が発生する場合がある。たとえば、あるエンティティは、消去する頻度を1日に3回に規定できる一方、他のエンティティは、頻度を1日1回に規定することができる。同様に、消去パラメータは、また、エンティティによって規定できるデータ・ログを消去する時間、エンティティに関連する最初に消去されるデータ・ログの臨界ポイント、および格納されたデータ・ログを消去するべき、または消去するべきでない時間を含むことができる。
【0077】
ブロック206で、複数のエンティティのパーティションに格納されたデータ・ログは、複数のエンティティのうちの各エンティティに関連する消去パラメータに基づいて消去される。一実装形態では、消去されるデータ・ログは、断片化されたデータ・ログ、および記憶空間のパーティションに格納された断片化されていないデータ・ログを含むことができる。データ・ログの消去は、エンティティの個々の要件に基づく場合がある。たとえば、複数のエンティティのうちのあるエンティティは、消去またはエラー・データ・ログの前に、通常のデータ・ログの消去を必要とする場合がある。同様に、他のエンティティは、12時間に1回である他のエンティティのデータ・ログの通常の消去と比較して、12時間に2回、データ・ログを消去することを必要とする場合がある。
【0078】
主題は、特定の実施形態に関して記述したものであるが、この記述は、限定的な意味で解釈されことを意図するものではない。開示した実施形態の様々な修正だけでなく、主題の代替的な実施形態は、主題の記述を参照すると当業者には明白になるであろう。したがって、そのような修正は、規定したような本発明の主題の要旨または範囲から逸脱することなく実施できるものと考えられる。