JP2004187040A - ネットワークシステムのイベント発生順序判定方法およびシステム - Google Patents
ネットワークシステムのイベント発生順序判定方法およびシステム Download PDFInfo
- Publication number
- JP2004187040A JP2004187040A JP2002352124A JP2002352124A JP2004187040A JP 2004187040 A JP2004187040 A JP 2004187040A JP 2002352124 A JP2002352124 A JP 2002352124A JP 2002352124 A JP2002352124 A JP 2002352124A JP 2004187040 A JP2004187040 A JP 2004187040A
- Authority
- JP
- Japan
- Prior art keywords
- node
- time
- value
- log record
- event
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Small-Scale Networks (AREA)
Abstract
【課題】ネットワークで接続されたノードからなるネットワークシステムにおけるイベントの発生順序の判定は、予期せぬタイミングで修正されるOSの時刻に依存したり、イベントが発生するたびにネットワーク上のタイムサーバにアクセスするなどの問題があった。本発明では、外部の時刻に依存せず、ノードが内蔵する、精度の高いカウンタを用いて各ノードで生成されるログの発生順序を判定することを目的とする。
【解決手段】ノード10でイベントが発生すると、ログレコード生成手段14はログレコードを新規作成し、カウンタ12の値を含める。また定期的に、基準カウンタであるノード20のカウンタ22の値を参照しログレコードに含める。カウンタ22の値を参照しない場合は、カウンタ22の値を参照するログレコードのカウンタ12の値とカウンタ22の値から、カウンタ12の値の比率を使って、カウンタ22の値を計算でもとめる。
【選択図】 図1
【解決手段】ノード10でイベントが発生すると、ログレコード生成手段14はログレコードを新規作成し、カウンタ12の値を含める。また定期的に、基準カウンタであるノード20のカウンタ22の値を参照しログレコードに含める。カウンタ22の値を参照しない場合は、カウンタ22の値を参照するログレコードのカウンタ12の値とカウンタ22の値から、カウンタ12の値の比率を使って、カウンタ22の値を計算でもとめる。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、ネットワーク上に複数のノードが接続されてなるネットワークシステムにおいて、各ノードで発生するイベントの発生順序を正確に把握するイベント発生順序判定方法およびシステムに関する。
【0002】
【従来の技術】
分散アプリケーションでは、ネットワーク上の複数のノードに処理を分散させ、各ノードが共働して動作する。したがって、そのデバッグでは、ネットワーク上の各ノードで発生するイベントのトレースが重要である。イベントトレースでは、各ノードで生成されるログ情報を時系列に解析するが、従来は、ログ情報として、各ノードのOSが提供する時刻やネットワーク上に存在するタイムサーバが提供する時刻を使っていた。
【0003】
特許文献1の「ネットワーク時刻同期装置」には、ネットワーク上の任意の1台のコンピュータに時刻情報を管理させ、他のコンピュータにおいて時刻情報が必要な際には、その都度、要求を通知して時刻情報を得る方法が示されている。
【0004】
さらに特許文献2の「ネットワークシステム及びその時刻同期方法」には、ネットワーク上の1台のノードにネットワークにおける基準時刻を管理させ、他のノードでイベントが発生したとき、ネットワークにおける基準時刻を求めるとともに、その基準時刻を取得するのに所要した時間を取得し、その時間を前記基準時刻から差し引いて求めた時刻を当該イベント発生時刻として使用する方法が示されている。
【0005】
【特許文献1】特開平3−140037号公報
【0006】
【特許文献2】特開2000−242618号公報
【0007】
【発明が解決しようとする課題】
しかしながら、上記従来技術は、以下に示す問題点を含んでいる。
【0008】
特許文献1に記載の技術によれば、時刻情報を管理するコンピュータから時刻情報を取得しているが、コンピュータの提供する時刻は時とともに誤差を生じ、予期せぬタイミングで修正される性格のものである。したがって、時刻情報を管理するコンピュータから取得する時刻情報は信頼できるとは限らないという問題を含む。
【0009】
特許文献2に記載の技術によれば、イベントが発生する毎に、ネットワーク上の基準タイマーから時刻を取得している。したがって、ネットワーク上の基準タイマーに狂いが生じた場合、ログ情報に含める時刻が狂ってしまうという問題がある。
【0010】
本発明は、電圧などの要因に左右されるために誤差が生じる可能性の高いコンピュータが管理する時刻の代わりに、水晶の振動を利用した水晶発振器の出力による精度が高いコンピュータ内蔵のタイムカウンタの値を使ってログ情報の発生順序を判断することにより、高精度にイベントの発生順序を判定する技術を提供することを目的とする。
【0011】
【課題を解決するための手段】
本発明は、上記目的を達成するため、ネットワーク上で接続された各ノードで生成するログ情報に、各ノードのCPUが提供するタイムカウンタの値を含め、また、定期的に各ノードのタイムカウンタの値と基準ノードのタイムカウンタ(基準タイムカウンタ)の値を比較することで、ログ情報の発生時刻と順序を計算により決定することを特徴とする。
【0012】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。図1から図4に、本発明によるネットワーク上のログ情報の発生順序判定方法の実施の形態を示す。
【0013】
図1は、本発明の実施形態であるネットワークシステムの構成を示す。まず、このネットワークシステムにおいて、任意のノード1台のタイムカウンタをネットワークにおける基準タイムカウンタとする場合について説明する。ここでは、ノード20のタイムカウンタ22を基準タイムカウンタとして説明する。
【0014】
図1において、ネットワークシステム100は、ネットワーク90で接続された複数のノードで構成されている。ノード10は、該ノード10で発生するイベントを検知するイベント検知手段11と、該ノード10に内蔵される水晶発振器の出力に基づいてインクリメントされるタイムカウンタ12と、他ノードのタイムカウンタの値を参照する手段である他ノードカウンタ参照手段13と、ログレコードを組み立てるログレコード生成手段14と、ログレコードを格納するログレコードファイル15とを備える。
【0015】
ノード10で発生したイベントは、イベント検知手段11により検知され、イベントに固有な情報がログレコード生成手段14に通知される。ログレコード生成手段14は、新規のログレコードを生成し、イベントに固有な情報をそのログレコードに保持する。また、カウンタ12の値を参照し、前記ログレコードに保持する。さらに、ノード10における最初のログレコード、およびあらかじめ決められた数のログレコードが発生する毎(例えば50個毎)に、ログレコード生成手段14は、他ノードカウンタ参照手段13を通してノード20のタイムカウンタ21(基準タイムカウンタ)の値を取得し、前記ログレコードに含める。この際、他ノードカウンタ参照手段13は、公知の技術を用いてノード20との通信にかかる時間を補正する。作成されたログレコードはログレコードファイル25へ追加挿入される。
【0016】
ノード20以下の他のノードは、ノード10と同じ構成を備える。ノード20以外のノードは、ノード10と同様、ノードにおける最初のログレコード、およびあらかじめ決められた数のログレコードが発生する毎に、そのノード内の他ノードカウンタ参照手段を通してノード20のタイマの値を取得し、ログレコードに含める。
【0017】
図2は、本実施形態で用いるログレコードのデータ形式とログレコードファイルの形式を示す。図2(a)に示すように、ログレコードは、各ノード(自ノード)のカウンタの値201、基準カウンタ値202、時刻の値203、および各ノードで発生するイベント固有の情報204を備える。基準カウンタ値202は、当該ノードにおける最初のログレコード、およびあらかじめ決められた数のログレコードが発生する毎に、ネットワークにおいて基準タイムカウンタと定義されているノードのタイムカウンタから取得して格納する。時刻の値203も、同様にして、所定数のログレコードが発生する毎に決められたノード(時刻サーバ)の時刻を取得して格納する。時刻サーバは、基準タイムカウンタを持つノードである必要はなく、正確な時刻のデータを供給できるサーバであればどのようなものでもよい。
【0018】
図2(b)は、各ノードで発生したログレコードを格納したログレコードファイルの内容例を示す。各ノードで発生したログレコードが、211,212,213,…のように発生順にログレコードファイルに格納されている。最初のログレコード211、および所定数の後のログレコード215には、基準カウンタ値202が格納されている。それ以外のログレコード212,213,214,216の基準カウンタ値202の欄は空白である。時刻203も同様である。基準カウンタ値202のデータを持つログレコード211,215を基準ログレコードと呼ぶ。
【0019】
なお、本実施形態では、基準カウンタ値202を格納するログレコードのときに、時刻203を取得して格納するようにしているが、それには限らない。時刻203は、基準カウンタ202とは全く独立に、適当な位置で時刻サーバから取得して格納するようにしてもよい。
【0020】
図3は、本実施形態における、各ノードで発生する最初とC個目のログレコード(基準ログレコード)を元に、その他のログレコードの発生順序を計算で決定する方法を説明するための図である。左から右に向かう矢印は、時間の経過を示す。ノード10の矢印中に記載された太い縦線は、そのタイミングでイベントが発生したことを示す。ノード10において、T1は最初に発生したイベントのタイミング、T3はC個目に発生したイベントのタイミングを示す。ここでは、最初のイベントのログレコード、およびC個のログレコードが発生する毎に、ノード20のタイムカウンタ21(基準タイムカウンタ)の値を取得してログレコードに含める。したがって、タイミングT1とT3で生成されるログレコード(基準ログレコード)には、ノード10のタイムカウンタの値およびノード20のタイムカウンタの値が含まれている。ノード10において、タイミングT2で生成されるログレコードには、ノード10のタイムカウンタの値は含まれているが、ノード20のタイムカウンタの値は含まれていない。
【0021】
ここで、タイミングT1におけるノード10のタイムカウンタの値をTC(10,T1)、タイミングT1におけるノード20のタイムカウンタの値(基準カウンタ値)をTC(20,T1)、タイミングT2におけるノード10のタイムカウンタの値をTC(10,T2)、タイミングT2におけるノード20のタイムカウンタの値(基準カウンタ値)をTC(20,T2)、タイミングT3におけるノード10のタイムカウンタの値をTC(10,T3)、タイミングT3におけるノード20のタイムカウンタの値(基準カウンタ値)をTC(20,T3)で示すと、数1の関係が成り立つ。
【0022】
【数1】
【0023】
したがって、タイミングT2におけるノード10の基準カウンタ値TC(20,T2)は、数2により求めることができる。
【0024】
【数2】
【0025】
図4(a)は、本実施形態において各ノードでイベントが発生した際のログレコード作成アルゴリズムを示す。イベントが発生すると、ステップ400で、新規ログレコードを作成し、自ノードのカウンタ値とイベント固有情報を取得し、当該ログレコードに保持する。次に、ステップ401で、そのログレコードが当該ノードにおいて最初のログレコードか、またはC×n個目(Cは定数、nは正の整数)のログレコードか、またはそれ以外かを判定する。最初またはC×n個目のログレコード(基準ログレコード)である場合、ステップ403で基準カウンタ値を取得し当該ログレコードに保持して、ステップ403に進む。最初またはC×n個目のログレコードのどちらでもない場合は、そのままステップ403に進む。ステップ403では、作成したログレコードをログレコードファイルに追加挿入する。
【0026】
以上のようにして、各ノードでログレコードファイルを作成した後、例えばデバッグ時には、必要なすべてのノードのログレコードファイルを取得し、マージしてイベントの発生順序でソートする必要がある。その際、ログレコードファイル内の基準カウンタ値の欄が空白のレコードについては、上記の数2により基準カウンタ値を求めて格納する。
【0027】
図4(b)は、そのときの基準カウンタ値を求める処理を示す。ステップ410で、いま基準カウンタ値を求めようとしているログレコードの前後で基準カウンタ値が記載されている基準ログレコードを見つけ、それらの基準ログレコードの情報と、いま基準カウンタ値を求めようとしているログレコードのカウンタ値から、数2に示す計算手段を用いて基準カウンタ値を求め、当該ログレコードの基準カウンタ値として格納する。
【0028】
例えば、図2(b)のログレコード213の基準カウンタ値を求めるのであれば、その前後で基準カウンタ値が記載されている基準ログレコード211と215を見つけ、ログレコード211を図3のタイミングT1に、ログレコード215を図3のタイミングT3に、ログレコード213を図3のタイミングT2に、それぞれ対応させて、上記数2で求めればよい。このようにして、各ノードで作成されたログレコードファイル中の全ログレコードの基準カウンタ値を計算して格納し、全ログレコードファイルのログレコードをマージし、ログレコードの基準カウンタ値にしたがってソートする。これにより、ネットワーク100におけるイベントの発生順序が正確に判定できる。
【0029】
時刻についても同様である。図2で説明したように、ログレコードの並びの適当な位置に時刻203(時刻サーバから取得した正確な時刻)を持つログレコードがあるので、上記で求めた基準カウンタ値と時刻とを対応させて、時刻203が空欄のところは補間計算により求めればよい。
【0030】
上記実施の形態では、イベントをログレコードに記録していくときにはC個毎に基準カウンタ値を記録し、後でログレコードをマージするときに空欄の基準カウンタ値を計算して格納している。その変形例として、イベントをログレコードに記録していくとき、すぐに基準カウンタ値の計算と格納を行なってもよい。そのためには、図4(a)のステップ401でC×n個目のログレコードでない場合に、図4(b)のステップ410の処理を行なえばよい。ただし、上記実施形態の方法、すなわち後で基準カウンタ値を計算する方法では、計算対象の空欄の基準カウンタ値のログレコード(対象ログレコードと呼ぶ)の前後に、基準カウンタ値を持つ基準ログレコードがあることが保証されているので、それらの基準カウンタ値から数2の式(内挿補間:Interpolation)で求めることができた。本変形例では、対象ログレコード以前には基準ログレコードがあるが、対象ログレコードがいまファイルに書き込もうとしている最新のログレコードであって、それ以後にはログレコードがないので、内挿補間では計算できない。そこで、対象ログレコード以前の基準ログレコードを複数取得し、それらの基準カウンタ値の値から外挿補間(Extrapolation)で対象ログレコードの基準カウンタ値を求めるようにする。
【0031】
上記実施の形態では、所定数毎に基準カウンタ値を持つ基準ログレコードを生成したが、所定数毎でなくともよい。補間により中間の基準カウンタ値を求めることができればよいので、適当な位置に基準ログレコードを生成すればよい。例えば、所定時間毎に基準ログレコードを生成する方法でもよい。時刻データについても同様である。
【0032】
上記実施の形態において、基準タイムカウンタを持つノード(図1のノード20)はどのように決めてもよい。ネットワークシステムにおいて、ノード間の通信を行なうアプリケーションプログラムが複数動作する場合は、アプリケーションプログラム毎に当該アプリケーションプログラムが動作するノードの集合の中でどれか1台のノードを基準タイムカウンタのノードとし、当該アプリケーションプログラムが動作する各ノードではその基準カウンタの値を取得してログレコードに含めるようにすればよい。
【0033】
【発明の効果】
以上説明したように、本発明によれば、ノードに内蔵され精度の高いカウンタの値を用いることで、ネットワークで接続された複数ノードで発生するイベントの発生順序を正確に判定することができる。また、従来技術が含む問題点である、予期せぬタイミングで修正される可能性のあるOSの時刻に依存している点や、狂う可能性のある基準タイマーの時刻を取得してログ情報に含めている点などを解決することができる。
【図面の簡単な説明】
【図1】本発明の実施形態のネットワークシステムの全体構成を示すブロック図である。
【図2】ログレコードの形式とログレコードファイルの形式を示すブロック図である。
【図3】ログレコードの発生順序を計算で決定する方法を説明するための図である。
【図4】各ノードでイベントが発生したときのログレコード作成アルゴリズムを示すフローチャートである。
【符号の説明】
10…ノード、20…ノード、90…ネットワーク。
【発明の属する技術分野】
本発明は、ネットワーク上に複数のノードが接続されてなるネットワークシステムにおいて、各ノードで発生するイベントの発生順序を正確に把握するイベント発生順序判定方法およびシステムに関する。
【0002】
【従来の技術】
分散アプリケーションでは、ネットワーク上の複数のノードに処理を分散させ、各ノードが共働して動作する。したがって、そのデバッグでは、ネットワーク上の各ノードで発生するイベントのトレースが重要である。イベントトレースでは、各ノードで生成されるログ情報を時系列に解析するが、従来は、ログ情報として、各ノードのOSが提供する時刻やネットワーク上に存在するタイムサーバが提供する時刻を使っていた。
【0003】
特許文献1の「ネットワーク時刻同期装置」には、ネットワーク上の任意の1台のコンピュータに時刻情報を管理させ、他のコンピュータにおいて時刻情報が必要な際には、その都度、要求を通知して時刻情報を得る方法が示されている。
【0004】
さらに特許文献2の「ネットワークシステム及びその時刻同期方法」には、ネットワーク上の1台のノードにネットワークにおける基準時刻を管理させ、他のノードでイベントが発生したとき、ネットワークにおける基準時刻を求めるとともに、その基準時刻を取得するのに所要した時間を取得し、その時間を前記基準時刻から差し引いて求めた時刻を当該イベント発生時刻として使用する方法が示されている。
【0005】
【特許文献1】特開平3−140037号公報
【0006】
【特許文献2】特開2000−242618号公報
【0007】
【発明が解決しようとする課題】
しかしながら、上記従来技術は、以下に示す問題点を含んでいる。
【0008】
特許文献1に記載の技術によれば、時刻情報を管理するコンピュータから時刻情報を取得しているが、コンピュータの提供する時刻は時とともに誤差を生じ、予期せぬタイミングで修正される性格のものである。したがって、時刻情報を管理するコンピュータから取得する時刻情報は信頼できるとは限らないという問題を含む。
【0009】
特許文献2に記載の技術によれば、イベントが発生する毎に、ネットワーク上の基準タイマーから時刻を取得している。したがって、ネットワーク上の基準タイマーに狂いが生じた場合、ログ情報に含める時刻が狂ってしまうという問題がある。
【0010】
本発明は、電圧などの要因に左右されるために誤差が生じる可能性の高いコンピュータが管理する時刻の代わりに、水晶の振動を利用した水晶発振器の出力による精度が高いコンピュータ内蔵のタイムカウンタの値を使ってログ情報の発生順序を判断することにより、高精度にイベントの発生順序を判定する技術を提供することを目的とする。
【0011】
【課題を解決するための手段】
本発明は、上記目的を達成するため、ネットワーク上で接続された各ノードで生成するログ情報に、各ノードのCPUが提供するタイムカウンタの値を含め、また、定期的に各ノードのタイムカウンタの値と基準ノードのタイムカウンタ(基準タイムカウンタ)の値を比較することで、ログ情報の発生時刻と順序を計算により決定することを特徴とする。
【0012】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。図1から図4に、本発明によるネットワーク上のログ情報の発生順序判定方法の実施の形態を示す。
【0013】
図1は、本発明の実施形態であるネットワークシステムの構成を示す。まず、このネットワークシステムにおいて、任意のノード1台のタイムカウンタをネットワークにおける基準タイムカウンタとする場合について説明する。ここでは、ノード20のタイムカウンタ22を基準タイムカウンタとして説明する。
【0014】
図1において、ネットワークシステム100は、ネットワーク90で接続された複数のノードで構成されている。ノード10は、該ノード10で発生するイベントを検知するイベント検知手段11と、該ノード10に内蔵される水晶発振器の出力に基づいてインクリメントされるタイムカウンタ12と、他ノードのタイムカウンタの値を参照する手段である他ノードカウンタ参照手段13と、ログレコードを組み立てるログレコード生成手段14と、ログレコードを格納するログレコードファイル15とを備える。
【0015】
ノード10で発生したイベントは、イベント検知手段11により検知され、イベントに固有な情報がログレコード生成手段14に通知される。ログレコード生成手段14は、新規のログレコードを生成し、イベントに固有な情報をそのログレコードに保持する。また、カウンタ12の値を参照し、前記ログレコードに保持する。さらに、ノード10における最初のログレコード、およびあらかじめ決められた数のログレコードが発生する毎(例えば50個毎)に、ログレコード生成手段14は、他ノードカウンタ参照手段13を通してノード20のタイムカウンタ21(基準タイムカウンタ)の値を取得し、前記ログレコードに含める。この際、他ノードカウンタ参照手段13は、公知の技術を用いてノード20との通信にかかる時間を補正する。作成されたログレコードはログレコードファイル25へ追加挿入される。
【0016】
ノード20以下の他のノードは、ノード10と同じ構成を備える。ノード20以外のノードは、ノード10と同様、ノードにおける最初のログレコード、およびあらかじめ決められた数のログレコードが発生する毎に、そのノード内の他ノードカウンタ参照手段を通してノード20のタイマの値を取得し、ログレコードに含める。
【0017】
図2は、本実施形態で用いるログレコードのデータ形式とログレコードファイルの形式を示す。図2(a)に示すように、ログレコードは、各ノード(自ノード)のカウンタの値201、基準カウンタ値202、時刻の値203、および各ノードで発生するイベント固有の情報204を備える。基準カウンタ値202は、当該ノードにおける最初のログレコード、およびあらかじめ決められた数のログレコードが発生する毎に、ネットワークにおいて基準タイムカウンタと定義されているノードのタイムカウンタから取得して格納する。時刻の値203も、同様にして、所定数のログレコードが発生する毎に決められたノード(時刻サーバ)の時刻を取得して格納する。時刻サーバは、基準タイムカウンタを持つノードである必要はなく、正確な時刻のデータを供給できるサーバであればどのようなものでもよい。
【0018】
図2(b)は、各ノードで発生したログレコードを格納したログレコードファイルの内容例を示す。各ノードで発生したログレコードが、211,212,213,…のように発生順にログレコードファイルに格納されている。最初のログレコード211、および所定数の後のログレコード215には、基準カウンタ値202が格納されている。それ以外のログレコード212,213,214,216の基準カウンタ値202の欄は空白である。時刻203も同様である。基準カウンタ値202のデータを持つログレコード211,215を基準ログレコードと呼ぶ。
【0019】
なお、本実施形態では、基準カウンタ値202を格納するログレコードのときに、時刻203を取得して格納するようにしているが、それには限らない。時刻203は、基準カウンタ202とは全く独立に、適当な位置で時刻サーバから取得して格納するようにしてもよい。
【0020】
図3は、本実施形態における、各ノードで発生する最初とC個目のログレコード(基準ログレコード)を元に、その他のログレコードの発生順序を計算で決定する方法を説明するための図である。左から右に向かう矢印は、時間の経過を示す。ノード10の矢印中に記載された太い縦線は、そのタイミングでイベントが発生したことを示す。ノード10において、T1は最初に発生したイベントのタイミング、T3はC個目に発生したイベントのタイミングを示す。ここでは、最初のイベントのログレコード、およびC個のログレコードが発生する毎に、ノード20のタイムカウンタ21(基準タイムカウンタ)の値を取得してログレコードに含める。したがって、タイミングT1とT3で生成されるログレコード(基準ログレコード)には、ノード10のタイムカウンタの値およびノード20のタイムカウンタの値が含まれている。ノード10において、タイミングT2で生成されるログレコードには、ノード10のタイムカウンタの値は含まれているが、ノード20のタイムカウンタの値は含まれていない。
【0021】
ここで、タイミングT1におけるノード10のタイムカウンタの値をTC(10,T1)、タイミングT1におけるノード20のタイムカウンタの値(基準カウンタ値)をTC(20,T1)、タイミングT2におけるノード10のタイムカウンタの値をTC(10,T2)、タイミングT2におけるノード20のタイムカウンタの値(基準カウンタ値)をTC(20,T2)、タイミングT3におけるノード10のタイムカウンタの値をTC(10,T3)、タイミングT3におけるノード20のタイムカウンタの値(基準カウンタ値)をTC(20,T3)で示すと、数1の関係が成り立つ。
【0022】
【数1】
【0023】
したがって、タイミングT2におけるノード10の基準カウンタ値TC(20,T2)は、数2により求めることができる。
【0024】
【数2】
【0025】
図4(a)は、本実施形態において各ノードでイベントが発生した際のログレコード作成アルゴリズムを示す。イベントが発生すると、ステップ400で、新規ログレコードを作成し、自ノードのカウンタ値とイベント固有情報を取得し、当該ログレコードに保持する。次に、ステップ401で、そのログレコードが当該ノードにおいて最初のログレコードか、またはC×n個目(Cは定数、nは正の整数)のログレコードか、またはそれ以外かを判定する。最初またはC×n個目のログレコード(基準ログレコード)である場合、ステップ403で基準カウンタ値を取得し当該ログレコードに保持して、ステップ403に進む。最初またはC×n個目のログレコードのどちらでもない場合は、そのままステップ403に進む。ステップ403では、作成したログレコードをログレコードファイルに追加挿入する。
【0026】
以上のようにして、各ノードでログレコードファイルを作成した後、例えばデバッグ時には、必要なすべてのノードのログレコードファイルを取得し、マージしてイベントの発生順序でソートする必要がある。その際、ログレコードファイル内の基準カウンタ値の欄が空白のレコードについては、上記の数2により基準カウンタ値を求めて格納する。
【0027】
図4(b)は、そのときの基準カウンタ値を求める処理を示す。ステップ410で、いま基準カウンタ値を求めようとしているログレコードの前後で基準カウンタ値が記載されている基準ログレコードを見つけ、それらの基準ログレコードの情報と、いま基準カウンタ値を求めようとしているログレコードのカウンタ値から、数2に示す計算手段を用いて基準カウンタ値を求め、当該ログレコードの基準カウンタ値として格納する。
【0028】
例えば、図2(b)のログレコード213の基準カウンタ値を求めるのであれば、その前後で基準カウンタ値が記載されている基準ログレコード211と215を見つけ、ログレコード211を図3のタイミングT1に、ログレコード215を図3のタイミングT3に、ログレコード213を図3のタイミングT2に、それぞれ対応させて、上記数2で求めればよい。このようにして、各ノードで作成されたログレコードファイル中の全ログレコードの基準カウンタ値を計算して格納し、全ログレコードファイルのログレコードをマージし、ログレコードの基準カウンタ値にしたがってソートする。これにより、ネットワーク100におけるイベントの発生順序が正確に判定できる。
【0029】
時刻についても同様である。図2で説明したように、ログレコードの並びの適当な位置に時刻203(時刻サーバから取得した正確な時刻)を持つログレコードがあるので、上記で求めた基準カウンタ値と時刻とを対応させて、時刻203が空欄のところは補間計算により求めればよい。
【0030】
上記実施の形態では、イベントをログレコードに記録していくときにはC個毎に基準カウンタ値を記録し、後でログレコードをマージするときに空欄の基準カウンタ値を計算して格納している。その変形例として、イベントをログレコードに記録していくとき、すぐに基準カウンタ値の計算と格納を行なってもよい。そのためには、図4(a)のステップ401でC×n個目のログレコードでない場合に、図4(b)のステップ410の処理を行なえばよい。ただし、上記実施形態の方法、すなわち後で基準カウンタ値を計算する方法では、計算対象の空欄の基準カウンタ値のログレコード(対象ログレコードと呼ぶ)の前後に、基準カウンタ値を持つ基準ログレコードがあることが保証されているので、それらの基準カウンタ値から数2の式(内挿補間:Interpolation)で求めることができた。本変形例では、対象ログレコード以前には基準ログレコードがあるが、対象ログレコードがいまファイルに書き込もうとしている最新のログレコードであって、それ以後にはログレコードがないので、内挿補間では計算できない。そこで、対象ログレコード以前の基準ログレコードを複数取得し、それらの基準カウンタ値の値から外挿補間(Extrapolation)で対象ログレコードの基準カウンタ値を求めるようにする。
【0031】
上記実施の形態では、所定数毎に基準カウンタ値を持つ基準ログレコードを生成したが、所定数毎でなくともよい。補間により中間の基準カウンタ値を求めることができればよいので、適当な位置に基準ログレコードを生成すればよい。例えば、所定時間毎に基準ログレコードを生成する方法でもよい。時刻データについても同様である。
【0032】
上記実施の形態において、基準タイムカウンタを持つノード(図1のノード20)はどのように決めてもよい。ネットワークシステムにおいて、ノード間の通信を行なうアプリケーションプログラムが複数動作する場合は、アプリケーションプログラム毎に当該アプリケーションプログラムが動作するノードの集合の中でどれか1台のノードを基準タイムカウンタのノードとし、当該アプリケーションプログラムが動作する各ノードではその基準カウンタの値を取得してログレコードに含めるようにすればよい。
【0033】
【発明の効果】
以上説明したように、本発明によれば、ノードに内蔵され精度の高いカウンタの値を用いることで、ネットワークで接続された複数ノードで発生するイベントの発生順序を正確に判定することができる。また、従来技術が含む問題点である、予期せぬタイミングで修正される可能性のあるOSの時刻に依存している点や、狂う可能性のある基準タイマーの時刻を取得してログ情報に含めている点などを解決することができる。
【図面の簡単な説明】
【図1】本発明の実施形態のネットワークシステムの全体構成を示すブロック図である。
【図2】ログレコードの形式とログレコードファイルの形式を示すブロック図である。
【図3】ログレコードの発生順序を計算で決定する方法を説明するための図である。
【図4】各ノードでイベントが発生したときのログレコード作成アルゴリズムを示すフローチャートである。
【符号の説明】
10…ノード、20…ノード、90…ネットワーク。
Claims (5)
- イベント検知手段、タイムカウンタ、およびイベント情報とタイムカウンタの値を含むログ情報の生成手段を有するノードがネットワークで接続されて成るネットワークシステムにおけるイベント発生順序判定方法であって、
任意のノード1台のタイムカウンタを前記ネットワークシステムにおける基準タイムカウンタとし、
各ノードにおいて、前記ネットワークシステムの基準タイムカウンタから取得した値と、各ノードのタイムカウンタの値とを比較することにより、前記ネットワークシステムで発生するイベントの発生順序を判定する
ことを特徴とするネットワークシステムのイベント発生順序判定方法。 - 複数のノードがネットワークで接続されたネットワークシステムにおいて、各ノードで発生するイベントの発生順序を判定するイベント発生順序判定方法であって、
各ノードにおいて、イベントが発生したとき、該イベントに関する情報および自ノードが備えているタイムカウンタのカウンタ値を含むログレコードを生成し記憶するステップと、
任意のノード1台のタイムカウンタを前記ネットワークシステムにおける基準タイムカウンタとし、各ノードにおいて、前記イベントの発生に応じて生成するログレコードの所定数毎または所定時間毎に、前記基準タイムカウンタ値を取得して当該ログレコードに含めるステップと、
前記基準タイムカウンタ値を含むログレコードのデータと、各ノードで取得しログレコードに記憶したタイムカウンタ値とを用いて、各ノードのタイムカウンタ値に対応する基準カウンタ値を求め、求めた基準カウンタ値から前記ネットワークシステムで発生した各イベントの発生順序を判定するステップと
を備えたことを特徴とするネットワークシステムのイベント発生順序判定方法。 - 請求項1または2に記載のネットワークシステムのイベント発生順序判定方法において、
ノード間の通信を行なうアプリケーションプログラム毎に、前記アプリケーションプログラムが動作するノードの集合の中で何れか1台のノードが有するタイムカウンタを前記アプリケーションプログラムの基準タイムカウンタとし、前記アプリケーションプログラムが動作する各ノードで発生するイベントの発生順序を判定することを特徴とするネットワークシステムのイベント発生順序判定方法。 - 請求項1から3の何れか1つに記載のネットワークシステムのイベント発生順序判定方法において、
前記各ノードで生成するログレコードの所定数毎または所定時間毎に、時刻サーバから取得した時刻データを含め、前記ネットワークシステムで発生した各イベントの発生時刻を一定の間隔で把握することを特徴とするネットワークシステム。 - 複数のノードがネットワークで接続されたネットワークシステムにおいて、
各ノードにおいて、イベントが発生したとき、該イベントに関する情報および自ノードが備えているタイムカウンタのカウンタ値を含むログレコードを生成し記憶する手段と、
任意のノード1台のタイムカウンタを前記ネットワークシステムにおける基準タイムカウンタとし、各ノードにおいて、前記イベントの発生に応じて生成するログレコードの所定数毎または所定時間毎に、前記基準タイムカウンタ値を取得して当該ログレコードに含める手段と、
前記基準タイムカウンタ値を含むログレコードのデータと、各ノードで取得しログレコードに記憶したタイムカウンタ値とを用いて、各ノードのタイムカウンタ値に対応する基準カウンタ値を求め、求めた基準カウンタ値から前記ネットワークシステムで発生した各イベントの発生順序を判定する手段と
を備えたことを特徴とするネットワークシステム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002352124A JP2004187040A (ja) | 2002-12-04 | 2002-12-04 | ネットワークシステムのイベント発生順序判定方法およびシステム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002352124A JP2004187040A (ja) | 2002-12-04 | 2002-12-04 | ネットワークシステムのイベント発生順序判定方法およびシステム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2004187040A true JP2004187040A (ja) | 2004-07-02 |
Family
ID=32753829
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002352124A Pending JP2004187040A (ja) | 2002-12-04 | 2002-12-04 | ネットワークシステムのイベント発生順序判定方法およびシステム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2004187040A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009259054A (ja) * | 2008-04-17 | 2009-11-05 | Mitsubishi Electric Corp | データ収集装置およびそのデータ再現方法 |
| JP2010102549A (ja) * | 2008-10-24 | 2010-05-06 | Hitachi Ltd | センサネットワークシステム、センサノード、及び基地局 |
| JP2017228977A (ja) * | 2016-06-23 | 2017-12-28 | 日本電気株式会社 | ログ情報作成装置、ログ情報作成方法、ログ情報作成プログラム、及び、情報処理システム |
| JP2018151918A (ja) * | 2017-03-14 | 2018-09-27 | オムロン株式会社 | 制御装置、データ構造、情報処理方法 |
-
2002
- 2002-12-04 JP JP2002352124A patent/JP2004187040A/ja active Pending
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009259054A (ja) * | 2008-04-17 | 2009-11-05 | Mitsubishi Electric Corp | データ収集装置およびそのデータ再現方法 |
| JP2010102549A (ja) * | 2008-10-24 | 2010-05-06 | Hitachi Ltd | センサネットワークシステム、センサノード、及び基地局 |
| US8289992B2 (en) | 2008-10-24 | 2012-10-16 | Hitachi, Ltd. | Wireless sensor-network system, sensing terminal node, and base station |
| JP2017228977A (ja) * | 2016-06-23 | 2017-12-28 | 日本電気株式会社 | ログ情報作成装置、ログ情報作成方法、ログ情報作成プログラム、及び、情報処理システム |
| US11336510B2 (en) | 2016-06-23 | 2022-05-17 | Nec Corporation | Information processing system, information processing method, and non-transitory recording medium |
| JP2018151918A (ja) * | 2017-03-14 | 2018-09-27 | オムロン株式会社 | 制御装置、データ構造、情報処理方法 |
| US10990084B2 (en) | 2017-03-14 | 2021-04-27 | Omron Corporation | Control apparatus, data structure, and information processing method |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7453910B1 (en) | Synchronization of independent clocks | |
| CN107688664B (zh) | 图表生成方法、装置、计算机设备和存储介质 | |
| CN110008129B (zh) | 一种存储定时快照的可靠性测试方法、装置及设备 | |
| CN110647531A (zh) | 数据同步方法、装置、设备及计算机可读存储介质 | |
| CN108153784A (zh) | 同步数据处理方法和装置 | |
| CN107515874A (zh) | 一种分布式非关系型数据库中同步增量数据的方法与设备 | |
| US20220393888A1 (en) | Method for distributed and secure timekeeping | |
| CN108319538B (zh) | 大数据平台运行状态的监控方法和系统 | |
| CN106899654B (zh) | 一种序列值生成方法、装置及系统 | |
| WO2019074687A1 (en) | METHOD FOR COPYING PRODUCTION BEHAVIORS IN A DEVELOPMENT ENVIRONMENT | |
| CN115357429A (zh) | 恢复数据文件的方法、装置和客户端 | |
| CN117971297B (zh) | 依赖包同步方法、装置、计算机设备和存储介质 | |
| CN118861160A (zh) | 一种分布式数据库数据同步方法、系统、设备及介质 | |
| US20070011541A1 (en) | Methods and systems for identifying intermittent errors in a distributed code development environment | |
| CN112015798B (zh) | 一种保证数据不重复和延迟监控的数据处理方法及装置 | |
| CN111209597A (zh) | 数据校验方法及应用系统 | |
| JP2004187040A (ja) | ネットワークシステムのイベント発生順序判定方法およびシステム | |
| CN113918384A (zh) | 数据保存方法、装置、设备及存储介质 | |
| CN113868711A (zh) | 一种数据联邦存储方法、查询方法及系统 | |
| CN112819600A (zh) | 定时任务的执行方法、装置、设备及计算机存储介质 | |
| CN113934573B (zh) | 一种内存数据库的数据恢复方法及装置 | |
| CN118193508A (zh) | 数据检核方法、装置、计算机设备和存储介质 | |
| CN111274316B (zh) | 多级数据流转任务的执行方法及装置、电子设备、存储介质 | |
| CN116107809B (zh) | Dml语句记录方法、装置、服务器及存储介质 | |
| CN114637614B (zh) | 基于触发器的机组事件同步方法、系统、设备及存储介质 |
