JP4311312B2 - 時系列データ管理方法およびプログラム - Google Patents

時系列データ管理方法およびプログラム Download PDF

Info

Publication number
JP4311312B2
JP4311312B2 JP2004264589A JP2004264589A JP4311312B2 JP 4311312 B2 JP4311312 B2 JP 4311312B2 JP 2004264589 A JP2004264589 A JP 2004264589A JP 2004264589 A JP2004264589 A JP 2004264589A JP 4311312 B2 JP4311312 B2 JP 4311312B2
Authority
JP
Japan
Prior art keywords
data
buffer
time
buffer element
series data
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
JP2004264589A
Other languages
English (en)
Other versions
JP2006079463A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2004264589A priority Critical patent/JP4311312B2/ja
Priority to US11/220,639 priority patent/US7577159B2/en
Publication of JP2006079463A publication Critical patent/JP2006079463A/ja
Application granted granted Critical
Publication of JP4311312B2 publication Critical patent/JP4311312B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、時系列データ管理方法および時系列データ管理用プログラムに関する。
最新のデータを記録しておくためのバッファ制御技術としてリングバッファ(ring buffer)が知られている。このようなリングバッファの一般的な問題として、リングバッファに記録する各データの長さが一定していない(可変長の)場合、リングバッファに記録されている最古データあるいはそれに近い古いデータの先頭位置の把握ができないという点が挙げられる。
可変長データの場合、各データの先頭位置はそれより前のデータに依存するため、データの先頭は決まった位置に固定されないために、最古データ等の先頭位置の把握が困難である。リングバッファにおいて、最古データの先頭位置を示す情報を保持するとともに、古いデータを上書きする度に最古データの先頭位置を示す情報を更新していく解決方法とすると、データ書き込みのための処理量が増加するという問題が生じてしまう。
また複数の時系列データ生産者が存在する場合に関して問題がある。
リングバッファ技術を、複数の時系列データ生産者が存在する場合に適用する方法は2種類考えられている。
第一の方法は、1つのリングバッファを複数のデータ生産者で共有する方法である。この方法の問題点は、あるデータ生産者がデータを書き込もうとする際に、他のデータ生産者との間でバッファの使用について排他制御を行う必要がある点である。
この排他制御は個々のデータ書き込み操作に対して賦課されることになるため、バッファへの書き込み操作に必要な処理が増加する(バッファへの書き込み性能が低下する)ことになる。
第二の方法は、各データ生産者に対して1つのみのリングバッファを割り当てる方法である。この方法では、第一の方法における排他制御の問題は生じないが、バッファの有効利用の点で問題が生じる。すなわち、各データ生産者が生産するデータの時間的割合に著しい不均衡があると、バッファに記録できる時系列データの有効な時間長は、最も頻繁にデータを生産する生産者のバッファが一杯になるまでの時間で決められてしまい、データ生産頻度の低いバッファは有効に利用されない点である。
例えば、生産者1と2の単位時間当たりのデータ生産量が、それぞれ1と0.1であり、各生産者に容量1のリングバッファ(バッファ1および2とする)が割り当てられているとすると、バッファ1および2が保持する時系列データの時間長は、それぞれ、1と10となる。この場合、バッファ全体(バッファ1と2の両方)として保持可能なデータの時間長は、各バッファが保持するデータの時間長の中で最も短い時間、すなわち、1(バッファ1)となる。なぜなら、バッファ1に保持されていない時間帯については、「各生産者が作成した各データは、そのデータ作成時刻順に取り出す必要がある」という条件を満たせないためである。このため、バッファ2において(現在時刻−10)から(現在時刻−1)のデータを保持するバッファ領域は、有効に活用されていないことになる。なお一般に、各生産者のデータ生成頻度の予測は不可能であり、また、各生産者のデータ生成は、状況によって変化することもあるので、予め最適な容量のバッファを各生産者に割り当てておくことはできず、割り当ては効率的にもバッファ量の点でも不利である。
第二の方法における別の問題点として、データ作成時刻順(時系列順)に、各データを取り出すことができない点がある。
たとえば、特許文献1には、時系列データファイル方式の発明が記載されている。この文献の図3には、ファイル領域とファイル管理情報の構成例が示されている。そして、この文献には、ファイル領域のデータレコード及び空きレコード長を固定に限定されている。
しかしながら、この文献の発明では、複数データ生産者の状況が1つのバッファに書き込みを行うと、バッファ使用に対して生産者間で調整が必要になるという問題点が存在する。
また、特許文献2には、記憶制御装置の発明が記載されている。そしてこの文献の図1には、管理情報記憶部内に、第1のポインタと第2のポインタとが示されている。しかしながら、ここでいう第1のポインタは次のデータがデータ記憶部に格納されるべき領域の先頭アドレスを指定するものであり、また、第2のポインタは、最も古い有効なデータがデータ記憶部に格納された領域の先頭アドレスを指定するものであり、使用されるポインタが、本発明とは異なっている。
また、特許文献3には、各データ生産者について、リングバッファを形成し、バッファが不足した場合には、使用済みのバッファから、アルゴリズムによって1つを選択し、再利用する発明が開示されている。
特開平6−266855号公報 特開平11−73367号公報 特許第3365372号公報
従来の時系列データ記録用バッファ管理方法では、時系列データ生産者が複数の場合には、排他制御のためのオーバーヘッドやバッファの利用効率の点で問題があった。
また、可変長のデータである場合には、最古等のデータの先頭位置を把握することが困難であるという課題もあった。
本発明は、第1の態様として、複数の時系列データ生産手段からのデータを複数のバッファ・エレメントに分割されたバッファに記録する準備として、各時系列データ生産手段に対応するリストにバッファ・エレメントをつなぎ、それ以外のバッファ・エレメントを全体リストにつなげ、順序カウンタに予め決められた初期値を設定する初期化ステップと、時系列データ生産手段からのデータ書き込み要求を受け、当該データをバッファに書き込む書き込みステップの前に当該書き込み先となるバッファ・エレメントのデータ記録領域が不足するか否かを判断するステップと、バッファ・エレメントのデータ記録領域が不足する場合に、書き込み手段からのバッファ割り当て要求を受け、未使用のバッファ・エレメントが存在するか否かを判断するステップと、未使用のバッファ・エレメントが存在する場合には該未使用のバッファ・エレメントを、存在しない場合には時刻の最も古いデータを記録しているバッファ・エレメントを時系列データ生産手段からのデータの書き込み先として割り当てるステップとを有し、書き込みステップにおいては、順序カウンタから現在のカウント値を取得するとともに、その値に1を加えた値を該順序カウンタに設定し、データ書き込み位置情報が指し示すデータ記録領域に、時系列データ生産手段から渡された書き込むべきデータと、時系列データ生成手段が内部に備える時計に基づく時刻を示す値である時刻情報と、順序カウンタを参照して得た現在の順序値とを書き込み、データ書き込み位置情報を更新することを特徴とする時系列データ管理方法を提供するものである。
上記本発明の第1の態様においては、バッファ・エレメントのデータ記録領域が不足するか否かを判断するステップにおいては、全体リストの末尾に位置するバッファ・エレメントを示す末尾ポインタの指すバッファ・エレメントを書き込み先バッファ・エレメントとし、データ書き込み位置情報を参照してデータ記録領域の残りのサイズを調べ、書き込むべきデータが書き込める空き領域の有無を判断し、バッファ・エレメントのデータ記録領域が不足するか否かを判断するステップで空き領域があると判断した場合に、書き込みステップを行うことが好ましい。
また、本発明は、第2の態様として、複数の時系列データ生産手段からのデータを複数のバッファ・エレメントに分割されたバッファに記録する準備として、各時系列データ生産手段に対応するリストにバッファ・エレメントをつなぎ、それ以外のバッファ・エレメントを全体リストにつなげ、順序カウンタに予め決められた初期値を設定する初期化ステップと、時系列データ生産手段からのデータ書き込み要求を受け、当該データをバッファに書き込む書き込みステップの前に当該書き込み先となるバッファ・エレメントのデータ記録領域が不足するか否かを判断するステップと、バッファ・エレメントの記憶領域が不足する場合に、書き込み手段からのバッファ割り当て要求を受け、未使用のバッファ・エレメントが存在するか否かを判断するステップと、未使用のバッファ・エレメントが存在する場合には該未使用のバッファ・エレメントを、存在しない場合には時刻の最も古いデータを記録しているバッファ・エレメントを時系列データ生産手段からのデータの書き込み先として割り当てるステップとをコンピュータに実行させ、書き込みステップにおいては、コンピュータに、順序カウンタから現在のカウント値を取得するとともに、その値に1を加えた値を該順序カウンタに設定させ、データ書き込み位置情報が指し示すデータ記録領域に、時系列データ生産手段から渡された書き込むべきデータと、時系列データ生成手段が内部に備える時計に基づく時刻を示す値である時刻情報と、順序カウンタを参照して得た現在の順序値とを書き込ませ、データ書き込み位置情報を更新させることを特徴とする時系列データ管理プログラムを提供するものである。
上記本発明の第2の態様においては、バッファ・エレメントのデータ記録領域が不足するか否かを判断するステップにおいては、コンピュータに、全体リストの末尾に位置するバッファ・エレメントを示す末尾ポインタの指すバッファ・エレメントを書き込み先バッファ・エレメントとし、データ書き込み位置情報を参照してデータ記録領域の残りのサイズを調べ、書き込むべきデータが書き込める空き領域の有無を判断させ、バッファ・エレメントのデータ記録領域が不足するか否かを判断するステップで空き領域があると判断した場合に、書き込みステップを行わせることが好ましい。
本発明によって得られる第1の効果は、データ書き込みにおける他のデータ生産者との間でのバッファ使用についての排他制御を不要にできる。
その理由は、各時系列データ生産者のデータ書き込み先バッファ・エレメントを別に構成したためである。
本発明によって得られる第2の効果は、固定サイズのバッファ・エレメントを各時系列データ生産者に割り当てる制御の際に発生するバッファ利用効率の問題を回避できることにある。
その理由は、各時系列データ生産者へのバッファ割り当てが動的に行われるためである。
本発明によって得られる第3の効果は、最新の時系列データを絶えず記録する状況において、最古またはそれに近いデータの先頭(区切り)を認識することができる。
その理由は、各バッファ・エレメントには、データ記録領域の先頭からデータが書き込まれるように構成されているためである。
本発明は、時系列データ記録用バッファを複数の部分(バッファ・エレメント)に分割して管理する時系列データ管理方法および時系列データ記録用バッファ管理用プログラムであり、下記の特徴を持つものである。
1)各生産者に対して動的にバッファを割り当てる。すなわち、各生産者のデータ書き込みが進捗していくのに伴い、それまでのバッファの使用状況に基いて、各生産者へのバッファ割り当てを行う。
2)バッファに空き領域がなくなった(全バッファ・エレメントを使い終えた)場合、最も古いデータを記録しているバッファ・エレメントを再利用する。これにより、リング・バッファと同様、バッファ全体として常に最新のデータを記録する。
3)バッファ・エレメントの先頭にはデータの最初から記録する。これにより各データの長さが一定でない場合でもデータの先頭を容易に見つけることができる。このデータの最初とは、一回の書込み操作によって、バッファに書き込む1データの先頭を言い、換言すれば、バッファ・エレメントの先頭にデータの境界を合わせてデータを書き込むことを言う。
4)各生産者が書き込むデータの発生時刻順を示す値を各データに付与して時系列データ記録用バッファに書き込む。
このような本発明を実現するために、管理手段に初期化手段、割り当て手段、書き込み手段、管理データ保持手段を持たせ、各バッファ・エレメントには、リストのためのポインタ(2種類)を持たせる。複数のバッファ・エレメントは、管理データ保持手段内の各ポインタを用いた2種類のリスト(全体リストおよび生産者リスト)で管理する。初期化手段は、時系列データ生産者からのデータをバッファに記録する前準備として、全体リストと生産者リストの初期化を行う
割り当て手段は、全体リストの先頭にあるバッファ・エレメントを全体リストから取り外し、バッファ割り当てを要求したデータ生産者に対応するリストの末尾につなぐ機能を有する。書き込み手段は、生産者が生成したデータをバッファ・エレメント内部に書き込む機能を有する。このとき、バッファ・エレメント内の領域が不足する場合には、割り当て手段に新しいバッファを割り当てる要求を行い、その結果として得られる新しいバッファに対してデータの書き込みを行う
本発明は、複数の時系列データ生産者が存在する場合のデータ記録を効率的に行うため、時系列データ記録用バッファを、複数のバッファ・エレメントに分割して管理するようにしている。この際に、本発明では、データ生産者毎のリストにより管理し、また、本発明では、時刻順に並べたリストの2種類のリストを用いて、バッファを管理している。
このような本発明の時系列データ記録用バッファ管理方法および時系列データ記録用バッファ管理用プログラム等の発明について、実施の形態により、説明する。まず、第1実施形態の構成について、図面を参照して詳細に説明する。
図1は、本発明の時系列データ記録用バッファ管理方法に使用される装置またはシステムの構成例を示し、第1の実施形態では、図1に示すように、管理手段1と、複数のバッファ・エレメント(本実施形態ではa〜hおよびj)2と、複数の時系列データ生産者(データ生産手段)3と、時計4とを含む構成となっている。そして管理手段1は、初期化手段101と、割り当て手段102と、書き込み手段103と、管理データ保持手段104とを有して構成される。
また図2に示すように、各バッファ・エレメント2(2−a〜2−j)は、全体リスト用ポインタ201と、生産者リスト用ポインタ202と、生産者番号情報部203と、データ書き込み位置情報部204と、データ記録領域部205とを含んで構成される。
全体リストポインタは、全体リストのポインタである。生産者リスト用ポインタ202は、生産者リストのポインタである。生産者番号情報部203は、生産者毎にその生産者を識別する番号の情報を管理する機能を有する。データ書き込み位置情報部204は、データ書き込み位置の情報を保存し管理する機能を有している。データ記録領域部205は、全体リスト、生産者リストなどを含むデータをその領域に分けて記録する機能を有する。本実施形態では、全体リスト、生産者リストをリストポインタで構成されることとしたが、バッファ・エレメントの順序を管理できる方法であれば、特に制限されず使用でき、本発明では、このような他のバッファ・エレメントの順序を管理できる方法も含む。
本実施形態では、時系列データ生産者の数を3として説明するが、この数は単に説明をするための例示に過ぎず、この数は、2以上の任意の整数である。
管理手段1に含まれる各手段(101〜104)は、それぞれ、図3に示すように、概略つぎのように動作する。
初期化手段101は、時系列データ生産者3(3−1〜3−3)からのデータをバッファに記録する準備操作(初期化操作:ステップS1)を行う
書き込み手段103は、時系列データ生産者3からのデータ書き込み要求を受け(ステップS2)、そのデータをバッファに書き込む。その際に、書き込み先となるバッファ・エレメント2のデータ記録領域が不足する場合には(ステップS3でYesの場合)、割り当て手段102を用いて新たなバッファを割り当て、そのバッファを新たな書き込み先バッファ・エレメント2とする。
割り当て手段102は、書き込み手段103からのバッファ割り当て要求を受け、未使用のバッファ・エレメントが存在する場合(ステップS4でYesの場合)には、未使用の未使用のバッファ・エレメントを割り当て、未使用のバッファ・エレメントが存在しない場合(ステップS4でNoの場合)には、時刻の最も古いデータを記録しているバッファを割り当てる(ステップS5)。
お時系列データ生産者3は、少なくともCPUまたはMPUなどのプロセッサであってよく、また、バッファ・エレメントは記憶部の各エリアに分割したものであってもよく、各バッファ・エレメントは同一または別個独立した記憶媒体で構成されていてもよい。また、時系列データ生産者3がCPUまたはMPUなどのプロセッサの場合には、それらのプロセッサが管理手段の処理(たとえばポインタの付け替え処理など)を実行してもよい。すなわち、本実施形態では、時系列データ生産者3と、管理手段と、バッファ・エレメントとが、1台のコンピュータで構成されていてもよい。これらの手段がバス等を介して接続されていることが好ましい。
また、本実施形態では、時系列データ生産者3は、コンピュータ(クライアントコンピュータ)であり、管理手段は、別のコンピュータであり(CPUまたはMPUを有するサーバであり)、バッファ・エレメントは、管理手段に支配される管理手段と独立したかまたは管理手段内のストレージであってよい。バッファ・エレメントが管理手段内に存在する構成の場合には、このバッファ・エレメントは、揮発性および/または永続型(パーマネント:不揮発型)の記憶媒体などの記憶手段となっており、このような管理手段は、通信手段を有するサーバ側のコンピュータである。また時系列データ生産者3は、パーソナルコンピュータ、携帯電話、PDAなどの端末であってよい。これらは、管理手段と、有線又は無線を介して、接続されているようにしてもよい。
これらの接続手段は、インターネット回線であってもよく、WAN(wide area network)あるいはLAN(local area network)であってもよい。また管理手段は、前記したインターネット回線等でバッファ・エレメントと接続されていてもよい。この場合、バッファ・エレメントは、データベースとしてインターネット上に存在してもよく、理手段に従属するスレーブ型コンピュータ内のバッファエレメントとして含まれていてもよい。
〈第1実施形態の動作例〉
本発明に係る時系列データ記録用バッファ管理方法等の第1の実施形態の動作例について、詳細に説明する。
本発明に係る時系列データ記録用バッファ管理方法に使用される装置またはシステムは、管理手段と、複数のバッファ・エレメントと、複数の時系列データ生産手段と、時計時刻設定手段とを有して構成される。
管理手段は、時系列データ生産者から生産されたデータに対して動的にバッファを割り当て、バッファに空き領域がなくなった場合には、最も古いデータを記録しているバッファ・エレメントを再利用して、バッファ全体として常に最新のデータを記録し、バッファ・エレメントの先頭にはデータの最初から記録するように管理する機能を有する。
バッファエレメントは、時系列データ生産手段(時系列データ生産者)から生産されたデータを管理手段の命令に従って保存するエレメントである。
時系列データ生産手段(たとえば、時系列データ生産者)は、あるデータを時系列に生産するための入力装置またはCPUあるいはMPUである。
まず、初期化手段101は、時系列データ生産者3からのデータをバッファに記録する準備操作(初期化操作)として、各時系列データ生産者3−1〜3−nに対応するリストに1個ずつバッファ・エレメント2−a〜2−j(この例ではa, d, g)をつなぎ、他のバッファ・エレメントを全体リストにつなげる。ここで、「つなげる」操作は、「リスト構造を作成するために用意したポインタ領域に、バッファ・エレメントのアドレスを設定する」操作を意味している。すなわち、この例では、管理データ保持手段104内の「生産者1 先頭」および「生産者1 末尾」というポインタ変数(2変数)に、バッファ・エレメントdのアドレス、管理データ保持手段104内の「生産者3 先頭」および「生産者3 末尾」というポインタ変数(2変数)に、バッファ・エレメントgのアドレスを設定することが、時系列データ生産者3−1〜3−nに対応するリストに、バッファ・エレメントを「つなげる」操作である。また、他のバッファ・エレメントを全体リストに「つなげる」操作は、たとえば、以下のように操作する。
管理データ保持手段104内の「全体 先頭」ポインタに、バッファ・エレメントbのアドレスを設定し、
バッファ・エレメントb内の全体リスト用ポインタに、バッファ・エレメントcのアドレスを設定し、
バッファ・エレメントc内の全体リスト用ポインタに、バッファ・エレメントeのアドレスを設定し、
バッファ・エレメントe内の全体リスト用ポインタに、バッファ・エレメントfのアドレスを設定し、
バッファ・エレメントf内の全体リスト用ポインタに、バッファ・エレメントhのアドレスを設定し、
バッファ・エレメントh内の全体リスト用ポインタおよび管理データ保持手段104内の「全体 末尾」ポインタに、バッファ・エレメントjのアドレスを設定する操作である。
また、「バッファ・エレメントにつながっている」とは、前記「バッファ・エレメントにつなげる」操作の結果、管理データ保持手段内の各ポインタおよび各バッファ・エレメントのリスト用ポインタによって適切なつながりが設定されて、各バッファ・エレメント間に順序付けられた関係が設定された状態を言う。上記「「全体 先頭」および「生産者1 先頭」などは、本明細書では、全体リストおよび生産者リスト中の先頭のことを意味するように使用する。
この初期化操作により、
1」 全体リストにつながるバッファ・エレメントは b, c, e, f, h, jという状態になり、
2」生産者リストの1, 2, 3は夫々a, d, gという図4に示すような状態になる。
次に、書き込み手段の動作について説明する。最初にバッファ・エレメント2を管理する各リストが図1の状態になっているものとして説明する。
まず、時系列データ生産者3がバッファに書き込むデータを生成すると、時系列データ生産者は、書き込み手段を起動する。この際すなわち書き込み手段を起動後に、時系列データ生産者は、書き込むべきデータ(たとえばその内容とサイズ)および自分の番号(この説明では生産者3(時系列データ生産者3−3))を書き込み手段に渡す。
書き込み手段103は、末尾ポインタの指すバッファ・エレメント(この説明ではj)を書き込み先バッファ・エレメントとし、そのデータ書き込み位置情報を参照してデータ記憶領域の残りサイズを調べ、書き込むべきデータを書き込むための空き領域があるかどうかを判断する。
その結果、書き込み可能と判断された場合には、書き込み手段は、データ書き込み操作を以下のように実行する。
すなわち、書き込み先バッファ・エレメントにおいて、
1」データ書き込み位置情報が指示したデータ記憶領域に、時系列データ生産者から渡された書き込むべきデータと、時計を参照して得た現在時刻を示す値とを、時刻情報として書き込み、次いで、
2」データ書き込み位置情報を更新、すなわち、書き込んだデータおよび時刻情報が、データ記憶部205内で占める領域の大きさ(データのサイズ)を、そのバッファ・エレメント2内データ書き込み位置情報部204に保持された値に加算する操作を行うことである(ステップS1)。
また、書き込み手段103が、前記したデータを書き込むための空き領域があるかどうかを判断した結果、書き込み不可能(領域不足)であると判断した場合には(ステップS3/Yes)、書き込み手段103は、割り当て手段102に対して、書き込み手段103が対応している時系列データ生産者3−3の番号(この説明例では3)を渡して、バッファ・エレメントの割り当て要求を行う
割り当て手段102は、書き込み手段103からバッファ・エレメント割り当て要求を受け取ると、まず、管理データ保持手段内の全体リスト管理情報の先頭ポインタの指すバッファ・エレメント(この説明では全体リスト管理情報の先頭ポインタのa)を取り外す。
この取り外し操作は、
1)取り外すバッファ・エレメント(この説明ではバッファ・エレメント2−aの全体リスト用ポインタの内容(この説明ではバッファ・エレメントa 内の(図1の管理データ保持手段104内にある「全体 先頭 a」の内容)d)を、全体リスト管理情報の先頭ポインタaにコピーする。
2)取り外すバッファ・エレメント(この説明ではバッファ・エレメントa)の生産者リスト用ポインタの内容(この説明ではバッファ・エレメントa 内のb)を、取り外すバッファ・エレメント(この説明ではバッファ・エレメントa)の生産者番号情報に格納された生産者番号(この説明ではバッファ・エレメントa内の1)に対応する管理データ保持手段104内のリスト管理情報の先頭ポインタにコピーするというようにして、管理情報の変更を行う
次に、割り当て手段102は、取り外したバッファ・エレメント2(この説明ではバッファ・エレメントa)を、書き込み手段より渡された生産者番号(この例では図1に示す管理データ保持手段104内の生産者3)に対応するリストの末尾lにつなぎ込むために、全体リスト更新操作と、つなぎ込み操作と、バッファ・エレメント2の初期化操作とを実行する。ここで、「生産者3に対応するリストの末尾に、バッファaをつなぎこむ操作」とは、生産者3に対応するリストに関してバッファ・エレメントが、図1に示すように、g、h、jの順に3つがつながった状態(バッファ・エレメントaをつなぎこむ前の状態)を、g、h、j、aの順に4つがつながった状態(バッファ・エレメントaをつなぎこんだ後の状態)に変更する操作を行うことである。
以下の説明では、書き込み手段103により渡された生産者番号に対応する管理データ保持手段104内のリスト管理情報の末尾ポインタが指し示すバッファ・エレメント2(この説明ではバッファ・エレメントj)を、操作対象エレメント(操作対象バッファ・エレメント)と呼ぶ。まず、全体リスト更新操作について説明すると、この操作は、操作対象のエレメント(この説明ではバッファ・エレメントj)を全体リストの末尾lにつなぎこむ操作である。
すなわち、操作対象エレメント(この場合はバッファ・エレメントj)の示す値を、全体リストの末尾ポインタが指し示すバッファ・エレメント(この説明ではb)の全体リスト用ポインタ、および、管理データ保持手段104内の全体リスト管理情報の末尾ポインタb(図1の管理データ保持手段104内の「全体 末尾 b」)にコピーする。
取り外したバッファ・エレメントのつなぎ込み操作は、取り外したエレメント(この説明ではa)を示す値を、操作対象エレメントの生産者リスト用ポインタ、および、書き込み手段より渡された生産者番号(この例では図1の管理データ保持手段104内の生産者3)に対応するリスト管理情報の末尾ポインタl(図1の管理データ保持手段104内の「生産者3 末尾l」)にコピーする操作である。
バッファ・エレメントの初期化操作は、
1)取り外したバッファ・エレメント(この説明ではバッファ・エレメントa)のデータ書き込み位置情報を、自分(この説明ではバッファ・エレメントa)のデータ記憶領域の先頭を示す値にし、
2)取り外したバッファ・エレメント(この説明ではバッファ・エレメントa)の生産者番号情報に、書き込み手段103から渡された生産者番号(この例では図1の管理データ保持手段104内の「生産者3」の番号)3を書き込む、という管理情報の変更の操作である。
以上、本実施形態で実行したバッファ割り当て操作例である図1のバッファ状態に対して実施された結果を、図5に示す。
割り当て手段102による割り当て操作が完了した直後のバッファ・エレメント2では、そのデータ書き込み位置情報が、データ記憶領域の先頭を指している(すなわち、これはデータ記録領域全体が空き領域であることを意味する)ため、書き込み手段103によるデータ書き込みが可能な状態となる。
書き込み手段103は、割り当てられたバッファ・エレメント2を書き込み先バッファ・エレメントとして、前記のデータ書き込み操作を行う
以上の操作により、全体リストには、現在書き込み対象となっているバッファ・エレメントを除く全バッファ・エレメントが、各バッファ・エレメントが使い終わった時刻順に並ぶことになる。また、各時系列データ生産者に対応する各リストには、その時系列データ生産者からのデータが書き込まれた順に並ぶことになる。
以上説明したような操作により、バッファに記録されている各データにはバッファに書き込まれた時刻が付与されることになるので、全時系列データ生産者が生成したデータを、その時刻順に取り出す(読み出し操作)ことが可能である。なお、本実施形態では、説明上、ひとつの時系列データ生産者が、バッファ・エレメントの要求、設定、使用および/または開放などを行うことを前提にしている。これらは、実際の応用においてもバッファ・エレメントの要求、設定、使用および/または開放などを複数の異なるステップあるいはプロセスで行われこともあり、このような場合でも、本発明の方法を自在に変更あるいは変形して適用可能である。
本発明の第1実施形態では、各時系列データ生産者のデータ書き込み先バッファ・エレメントが別に設けられる構成としたため、データ書き込みにおける他のデータ生産者との間のバッファ使用について、排他制御を不要にすることができる。
また、本発明の第1の実施例では、各時系列データ生産者へのバッファ割り当ては動的に行われ、割り当ての順番は各バッファ・エレメントが使い終わった時刻順となるように構成されているため、固定サイズのバッファを各時系列データ生産者に割り当てる制御発生するバッファ利用効率の問題、すなわち、バッファに記録されている時系列データの時間長が短くなる問題は生じない。
さらに、本発明の第1の実施例では、各バッファ・エレメントではデータ記録領域の先頭からデータが書き込まれるように構成されているため、最新の時系列データを絶えず記録する状況において、最古(に近い)データの先頭(区切り)を認識することができる。
本発明では、上述したように、各時系列データ生産者に対して、動的にバッファを割り当てている。すなわち、各時系列データ生産者のデータ書き込みが進捗していくのに伴い、それまでのバッファの使用状況に基いて、各生産者へのバッファ割り当てを行っている。
〈第2実施形態〉
次に、本発明の第2の実施形態の構成について図面を参照して詳細に説明する。
図6に示すように、本発明の第2の実施形態は、管理手段1と、複数のバッファ・エレメント(本実施形態ではa〜hおよびj)2と、複数の時系列データ生産者3と、時計4と、順序カウンタを含む構成となっている。そして管理手段1は、第1実施形態の構成と同様に、初期化手段101と、割り当て手段102と、書き込み手段103と、管理データ保持手段104とを有して構成されている。バッファ・エレメントの構成は第1実施形態と同じである。また、これらの手段の動作は、第1実施形態と略同一である。
ただし、本実施形態では、第1実施形態と異なり時系列生産者には、時計(時刻設定手段)4が内蔵されており、また順序カウンタ5をさらに有して構成されている。
次に、本発明の第2の実施形態の動作について、第1の実施形態と異なる部分について、詳細に説明する。
初期化操作では、第1の実施形態で行った初期化操作に加え、順序カウンタをリセット(予め決められた初期値を設定)する操作を行う(ステップS1')。
時系列データ生産者3が、バッファ・エレメントに書き込むデータを生成した際の書き込み手段の起動では、時系列データ生産者3から書き込み手段103に渡す情報として、第1の実施形態で記載した情報に加え、時系列生産者3が内部に持っている時計を参照して得た現在時刻を示す値を時系列生産者3は、書き込み手段103に渡す。
書き込み手段103は、末尾ポインタの指すバッファ・エレメントを、書き込み先バッファ・エレメントとし、そのデータ書き込み位置情報を参照してデータ記憶領域の残りのサイズを調べ、書き込むべきデータを書き込む空き領域があるかどうかを判断する(ステップS3')。
その結果、書き込み手段103が書き込み可能であると判断すれば、書き込み手段103は、データ書き込み操作を行う(ステップS6)。
この書き込み操作は、
1)順序カウンタから現在の順序値を取得するとともに、その値に1を加えた値を順序カウンタに設定し、
2)データ書き込み位置情報が指し示すデータ記憶領域に、時系列データ生産者から渡された、書き込むべきデータと、時刻を示す値(時刻情報)と、順序カウンタを参照して得た現在の順序値とを書き込み、
3)データ書き込み位置情報を更新、すなわち、書き込むべきデータと時刻情報と順序値のサイズ分、書き込み位置を進める(更新する)操作を行う。なお、判断の結果が書き込み不可能(領域不足)の場合の動作は、第1の実施形態と同じである。
またデータの読み出しにおいては、バッファに記録されている各データにバッファに書き込まれた順序を示す情報が付与されているので、データを読み出す際は、その順序順にデータを取り出すことで、全時系列データ生産者が生成したデータを、それらが書き込まれた順と同じ順序で読み出すことができる。
本発明によれば、時系列データ生産者が生産するデータの内、最近のデータを記録する目的で設置する時系列データ記録用バッファの制御に適用できる。
特に、
1)時系列データ生産者は複数存在する。
2)各生産者が作成した各データは、そのデータ作成時刻順に取り出す必要がある。
3)各データの長さは一定していない(可変長)、という環境下で使用する時系列データ記録用バッファの制御に適している。
本発明に係る時系列データ管理方法に使用される装置またはシステムの構成例を示す図である。 バッファエレメント2の構成例を示す図である。 管理理手段1に含まれる各手段(101〜104)の概略の動作例を示すフローチャートである。 初期化操作により、得られる状態例の説明をするための図である。 初期化操作によって得られた(つながった)状態の例を示した図である。 本発明に係る時系列データ管理方法に使用される装置またはシステムの他の構成例を示す図である。
符号の説明
1 管理手段
2(2−a〜2−j) バッファ・エレメント
3 時系列データ生産者(時系列データ生産手段)
4 時計
5 順序カウンタ
101 初期化手段
102 割り当て手段
103 書き込み手段
104 管理データ保持手段
201 全体リスト用ポインタ
202 生産者リスト用ポインタ
203 生産者番号情報部
204 データ書き込み位置情報部
205 データ記録領域部

Claims (4)

  1. 複数の時系列データ生産手段からのデータを複数のバッファ・エレメントに分割されたバッファに記録する準備として、各時系列データ生産手段に対応するリストにバッファ・エレメントをつなぎ、それ以外のバッファ・エレメントを全体リストにつなげ、順序カウンタ予め決められた初期値を設定する初期化ステップと、
    時系列データ生産手段からのデータ書き込み要求を受け、当該データをバッファに書き込む書き込みステップの前に当該書き込み先となるバッファ・エレメントのデータ記録領域が不足するか否かを判断するステップと、
    前記バッファ・エレメントのデータ記録領域が不足する場合に、書き込み手段からのバッファ割り当て要求を受け、未使用のバッファ・エレメントが存在するか否かを判断するステップと
    前記未使用のバッファ・エレメントが存在する場合には該未使用のバッファ・エレメントを、存在しない場合には時刻の最も古いデータを記録しているバッファ・エレメント前記時系列データ生産手段からのデータの書き込み先として割り当てるステップとを有し、
    前記書き込みステップにおいては、
    順序カウンタから現在のカウント値を取得するとともに、その値に1を加えた値を該順序カウンタに設定し、
    データ書き込み位置情報が指し示すデータ記録領域に、前記時系列データ生産手段から渡された書き込むべきデータと、前記時系列データ生成手段が内部に備える時計に基づく時刻を示す値である時刻情報と、順序カウンタを参照して得た現在の順序値とを書き込み、
    データ書き込み位置情報を更新することを特徴とする時系列データ管理方法。
  2. バッファ・エレメントのデータ記録領域が不足するか否かを判断するステップにおいては、前記全体リストの末尾に位置するバッファ・エレメントを示す末尾ポインタの指すバッファ・エレメントを書き込み先バッファ・エレメントとし、前記データ書き込み位置情報を参照してデータ記録領域の残りのサイズを調べ、書き込むべきデータが書き込める空き領域の有無を判断し
    前記バッファ・エレメントのデータ記録領域が不足するか否かを判断するステップで前記空き領域があると判断した場合に、前記書き込みステップを行うことを特徴とする請求項記載の時系列データ管理方法。
  3. 複数の時系列データ生産手段からのデータを複数のバッファ・エレメントに分割されたバッファに記録する準備として、各時系列データ生産手段に対応するリストにバッファ・エレメントをつなぎ、それ以外のバッファ・エレメントを全体リストにつなげ、順序カウンタ予め決められた初期値を設定する初期化ステップと、
    時系列データ生産手段からのデータ書き込み要求を受け、当該データをバッファに書き込む書き込みステップの前に当該書き込み先となるバッファ・エレメントのデータ記録領域が不足するか否かを判断するステップと、
    前記バッファ・エレメントの記憶領域が不足する場合に、書き込み手段からのバッファ割り当て要求を受け、未使用のバッファ・エレメントが存在するか否かを判断するステップと
    前記未使用のバッファ・エレメントが存在する場合には該未使用のバッファ・エレメントを、存在しない場合には時刻の最も古いデータを記録しているバッファ・エレメント前記時系列データ生産手段からのデータの書き込み先として割り当てるステップとをコンピュータに実行させ、
    前記書き込みステップにおいては、前記コンピュータに、
    順序カウンタから現在のカウント値を取得するとともに、その値に1を加えた値を該順序カウンタに設定させ、
    データ書き込み位置情報が指し示すデータ記録領域に、前記時系列データ生産手段から渡された書き込むべきデータと、前記時系列データ生成手段が内部に備える時計に基づく時刻を示す値である時刻情報と、順序カウンタを参照して得た現在の順序値とを書き込ませ、
    データ書き込み位置情報を更新させることを特徴とする時系列データ管理プログラム
  4. バッファ・エレメントのデータ記録領域が不足するか否かを判断するステップにおいては、前記コンピュータに、前記全体リストの末尾に位置するバッファ・エレメントを示す末尾ポインタの指すバッファ・エレメントを書き込み先バッファ・エレメントとし、前記データ書き込み位置情報を参照してデータ記録領域の残りのサイズを調べ、書き込むべきデータが書き込める空き領域の有無を判断させ
    前記バッファ・エレメントのデータ記録領域が不足するか否かを判断するステップで前記空き領域があると判断した場合に、前記書き込みステップを行わせることを特徴とする請求項記載の時系列データ管理プログラム
JP2004264589A 2004-09-10 2004-09-10 時系列データ管理方法およびプログラム Expired - Fee Related JP4311312B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004264589A JP4311312B2 (ja) 2004-09-10 2004-09-10 時系列データ管理方法およびプログラム
US11/220,639 US7577159B2 (en) 2004-09-10 2005-09-08 Method, device, system and program for time-series data management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004264589A JP4311312B2 (ja) 2004-09-10 2004-09-10 時系列データ管理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2006079463A JP2006079463A (ja) 2006-03-23
JP4311312B2 true JP4311312B2 (ja) 2009-08-12

Family

ID=36033852

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004264589A Expired - Fee Related JP4311312B2 (ja) 2004-09-10 2004-09-10 時系列データ管理方法およびプログラム

Country Status (2)

Country Link
US (1) US7577159B2 (ja)
JP (1) JP4311312B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10552460B2 (en) 2016-03-17 2020-02-04 Kabushiki Kaisha Toshiba Sensor data management apparatus, sensor data management method, and computer program product

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7733888B2 (en) * 2002-06-04 2010-06-08 Alcatel-Lucent Usa Inc. Pointer allocation by prime numbers
KR100747466B1 (ko) * 2005-10-01 2007-08-09 엘지전자 주식회사 추가 속성을 가지는 노드를 이용하는 장치 관리 방법 및장치 관리 클라이언트
US7730238B1 (en) * 2005-10-07 2010-06-01 Agere System Inc. Buffer management method and system with two thresholds
JP2008011402A (ja) * 2006-06-30 2008-01-17 Toshiba Corp 記録装置、記録方法
US20090248722A1 (en) * 2008-03-27 2009-10-01 International Business Machines Corporation Clustering analytic functions
US9363143B2 (en) * 2008-03-27 2016-06-07 International Business Machines Corporation Selective computation using analytic functions
US8560544B2 (en) 2010-09-15 2013-10-15 International Business Machines Corporation Clustering of analytic functions
US10482084B2 (en) * 2016-08-16 2019-11-19 Netscout Systems Texas, Llc Optimized merge-sorting of data retrieved from parallel storage units
JP6388050B1 (ja) * 2017-03-31 2018-09-12 オムロン株式会社 制御装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0235550A (ja) 1988-07-25 1990-02-06 Nec Corp 通信制御装置
JPH0522379A (ja) 1991-07-12 1993-01-29 Fujitsu Ltd 回線アダプタ
JPH05197597A (ja) 1992-01-17 1993-08-06 Fujitsu Ltd プログラム組み込み型プロセッサ装置におけるエラーロギング方式
JPH06266855A (ja) 1993-03-11 1994-09-22 Fujitsu Ltd 時系列データファイル方式
GB2316572B (en) * 1996-08-14 2000-12-20 Fujitsu Ltd Multicasting in switching apparatus
JPH1097435A (ja) 1996-09-20 1998-04-14 Nec Corp 資源割当てシステム
US6021132A (en) * 1997-06-30 2000-02-01 Sun Microsystems, Inc. Shared memory management in a switched network element
JPH1173367A (ja) 1997-08-29 1999-03-16 Fujitsu Ltd 記憶制御装置
DE19841447A1 (de) * 1998-09-10 2000-03-16 Siemens Ag Verfahren zum Übertragen von Daten über mehrere Schnittstellen
JP3365372B2 (ja) 1999-10-01 2003-01-08 日本電気株式会社 イベントログ格納システム、イベントログ格納方法、および記録媒体
JP2001184191A (ja) 1999-12-22 2001-07-06 Alps Electric Co Ltd データ処理装置
US7113516B1 (en) * 2000-11-28 2006-09-26 Texas Instruments Incorporated Transmit buffer with dynamic size queues
GB2382899B (en) * 2000-12-29 2003-12-17 Zarlink Semiconductor Ltd A data queue system
US6877048B2 (en) * 2002-03-12 2005-04-05 International Business Machines Corporation Dynamic memory allocation between inbound and outbound buffers in a protocol handler
US7295565B2 (en) * 2002-12-24 2007-11-13 Sun Microsystems, Inc. System and method for sharing a resource among multiple queues
US7457282B2 (en) * 2003-10-29 2008-11-25 Nokia Corporation Method and apparatus providing smooth adaptive management of packets containing time-ordered content at a receiving terminal

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10552460B2 (en) 2016-03-17 2020-02-04 Kabushiki Kaisha Toshiba Sensor data management apparatus, sensor data management method, and computer program product

Also Published As

Publication number Publication date
US7577159B2 (en) 2009-08-18
US20060056436A1 (en) 2006-03-16
JP2006079463A (ja) 2006-03-23

Similar Documents

Publication Publication Date Title
TWI627536B (zh) 用於具有調適分割之一共用快取之系統及方法
JP4323637B2 (ja) メモリアロケーション方法及びメモリアロケーション装置並びに記憶媒体
RU2658886C1 (ru) Способ управления файлами, распределенная система хранения и узел управления
JP5931196B2 (ja) I/oノード及び複数の計算ノードに備えられたキャッシュメモリの制御方法
JP5073259B2 (ja) 仮想化システム及び領域割当て制御方法
US7577159B2 (en) Method, device, system and program for time-series data management
JP2019008729A (ja) メモリシステムおよび制御方法
JP4464378B2 (ja) 同一データを纏める事で格納領域を節約する計算機システム、ストレージシステム及びそれらの制御方法
CN107615261B (zh) 多个云环境之间的共享存储的方法和装置
US8862703B2 (en) Address server
US20090077327A1 (en) Method and apparatus for enabling a NAS system to utilize thin provisioning
US20060224819A1 (en) Host apparatus
JP2008242503A (ja) メモリ管理装置及び方法、並びにプログラム
JP2008059353A (ja) 仮想化システム及び領域割当て制御方法
WO2004055675A1 (ja) ファイル管理装置、ファイル管理プログラム、ファイル管理方法およびファイルシステム
JP7443195B2 (ja) メモリシステムおよび制御方法
JP2006268776A (ja) メモリカード
JP2007108981A (ja) ストレージ装置及びボリューム間のデータ交換方法
JP4862067B2 (ja) キャッシュ制御装置及び方法
JP2007026094A (ja) 実行装置およびアプリケーションプログラム
JP6115575B2 (ja) データセット多重度変更装置、サーバ、データセット多重度変更方法、およびコンピュータ・プログラム
US10387043B2 (en) Writing target file including determination of whether to apply duplication elimination
JP5158576B2 (ja) 入出力制御システム、入出力制御方法、及び、入出力制御プログラム
JP2015088145A (ja) 情報処理装置
JP6720357B2 (ja) ネットワークアクセス可能なデータボリューム変更

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060713

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090401

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090504

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

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4311312

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140522

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees