JP6601077B2 - 情報処理装置、ログ記録方法及びログ記録プログラム - Google Patents

情報処理装置、ログ記録方法及びログ記録プログラム Download PDF

Info

Publication number
JP6601077B2
JP6601077B2 JP2015178665A JP2015178665A JP6601077B2 JP 6601077 B2 JP6601077 B2 JP 6601077B2 JP 2015178665 A JP2015178665 A JP 2015178665A JP 2015178665 A JP2015178665 A JP 2015178665A JP 6601077 B2 JP6601077 B2 JP 6601077B2
Authority
JP
Japan
Prior art keywords
log
area
data
information
long
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
JP2015178665A
Other languages
English (en)
Other versions
JP2017054365A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015178665A priority Critical patent/JP6601077B2/ja
Priority to US15/246,906 priority patent/US20170078389A1/en
Publication of JP2017054365A publication Critical patent/JP2017054365A/ja
Application granted granted Critical
Publication of JP6601077B2 publication Critical patent/JP6601077B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9005Buffering arrangements using dynamic buffer space allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、情報処理装置、ログ記録方法及びログ記録プログラムに関する。
大きさが有限のバッファにログデータを記録する場合、直近のデータは密に残し、古いデータは疎でもよいのでできるだけ長い期間残すことが望まれる。図11は、このようなログデータの記録方法を説明するための図である。図11に示す方法では、少なくとも直近のm個のデータは保持され、直近のm個以外の古いデータについては、p個に1個のデータができるだけ古い時刻まで保持される。
図12は、ログデータの記録例を示す図である。図12では、バッファのサイズは20である。バッファの各データの格納場所である要素領域は、A〜Tのアドレスが付けられる。また、できるだけ多くのデータを残し、直近の10個の連続データを残し、かつ、5個に1個のデータを残すことによりできるだけ長い期間のデータを長期データとして残すようにデータがバッファに記録される。
図12に示すように、1循目では、シーケンス番号が0番〜19番のデータがそれぞれA〜Tに順番に書き込まれる。そして、2循目では、20番のデータは0番のデータを残すためにBに上書きされる。そして、21〜23のデータがそれぞれC〜Eに上書きされる。次に、24番のデータについては、5個に1個のデータを残すために5番のデータを記憶するFには上書きされず、Gに上書きされる。同様に、10番のデータを記憶するK、15番のデータを記憶するPにはデータが上書きされず、これらの要素領域はスキップされる。
そして、3循目では、0番、20番、5番、25番、10番、30番、15番、35番のデータをそれぞれ記憶するA、B、F、H、K、N、P、Tにはデータが上書きされず、これらの要素領域はスキップされる。同様に、4循目では、0番、20番、5番、25番、40番、10番、30番、15番、45番、35番のデータをそれぞれ記憶するA、B、F、H、I、K、N、P、Q、Tにはデータが上書きされず、これらの要素領域はスキップされる。
そして、5循目では、0番、20番のデータをそれぞれ記憶するA、Bがスキップされた後、58番、59番のデータがそれぞれC、Dに書き込まれる。そして、50番、5番のデータをそれぞれ記憶するE、Fがスキップされた後、Gが記憶するデータは51番のデータであって直近の10個のデータに含まれるため、Gはスキップされる。同様に、H〜Tは、5個に1個の長期データを記憶するか直近の10個に含まれるデータを記憶するため、スキップされる。
そして、6循目で、最も古い長期データである0番のデータを記憶するAに60番のデータが上書きされる。そして、B〜Fは5個に1個の長期データを記憶するか直近の10個に含まれるデータを記憶するためスキップされ、61番のデータがGに上書きされる。そして、H、Iは5個に1個の長期データを記憶するためスキップされ、62番のデータがJに上書きされる。そして、Kは5個に1個の長期データを記憶するためスキップされ、63番、64番のデータがそれぞれL、Mに上書きされる。そして、N〜Tは、5個に1個の長期データを記憶するか直近の10個に含まれるデータを記憶するため、スキップされる。そして、7循目で、最も古い長期データである5番のデータを記憶するFに65番のデータが上書きされ、66番、67番のデータがそれぞれR、Sに上書きされる。
なお、データの記録に関連する技術として、キャッシュメモリをN個のセル毎に分割し、ディスク上のアドレスを所定値Nで除したときの余りに対応する位置からキャッシュメモリへの書込みを行うことで、キャッシュメモリの検索速度を高める技術がある。
また、不揮発性メモリのアクセスにおいて、第1の消去単位の未書込領域がなくなると、第2の消去単位の有効データを第3の消去単位に書き込んで新第1の消去単位に置き換えることでアクセスの高速化を図る技術がある。また、分割された各メモリ領域内に設けられた書き換え用のバッファ領域を利用して、分割された各メモリ領域に記録されたデータを更新することで高速にデータを検索することを可能とする技術がある。
特開2003−330796号公報 特開2011−128826号公報 特開2008−040594号公報
しかしながら、図12に示したログ記録方法では、バッファにデータを上書きする場合、(1)上書きするデータのシーケンス番号がpの倍数でなく、m個以上古いデータを記憶する要素領域、又は(2)上書きするデータがpの倍数で最も古いデータを記憶する要素領域を探す必要がある。図12に示した例では、2循目の20番〜23番がそれぞれ上書きされるB〜Eが(1)の要素領域の例であり、6循目の60番が上書きされるAが(2)の要素領域の例である。このような上書きできる要素領域を探す処理は、時間がかかるため、ログデータを高速に記録することができないという問題がある。
図13は、図12に示したログ記録方法の処理の疑似コードの例を示す図である。図13において、valはデータであり、buf[].valは、データの格納場所であり、buf[].seqは、対応するシーケンス番号であり、addrはバッファのインデックスである。また、代入文(a)により(1)の要素領域にデータが格納され、代入文(b)により(2)の要素領域にデータが格納される。また、while(1)と代入文(c)によりaddrが1ずつ増加されながら、データを格納する要素領域が探索される。この探索に時間がかかる。また、ログデータの記録は、通常割込み処理で行われるため、高速に実行される必要があり、ログデータの書き込みは高速に実行される必要がある。なお、代入文(c)において、x++は、x=x+1を表す。
本発明は、1つの側面では、ログデータを高速に記録することを目的とする。
本願の開示する情報処理装置は、1つの態様において、判定部と、第1書込部と、第2書込部と、修正部とを有する。前記判定部は、大きさが限定された記憶領域に新たなログ情報を記録する際に、直近のログ情報を密に記憶する第1ログ領域に記録するか、長期のログ情報を疎に記憶する第2ログ領域に記録するかを判定する。前記第1書込部は、前記判定部により前記第1ログ領域に記憶すると判定された場合に、前記新たなログ情報を第1ログ領域に書き込む。前記第2書込部は、前記判定部により前記第2ログ領域に記憶すると判定された場合に、前記新たなログ情報を第2ログ領域に書き込む。前記修正部は、前記記憶領域に空きがない場合に、前記第1ログ領域及び第2ログ領域の位置情報を修正する。
1実施態様によれば、ログデータを高速に記録することができる。
図1Aは、実施例に係る情報処理装置によるログ記録方法を説明するための第1の図である。 図1Bは、実施例に係る情報処理装置によるログ記録方法を説明するための第2の図である。 図1Cは、実施例に係る情報処理装置によるログ記録方法を説明するための第3の図である。 図1Dは、実施例に係る情報処理装置によるログ記録方法を説明するための第4の図である。 図1Eは、実施例に係る情報処理装置によるログ記録方法を説明するための第5の図である。 図1Fは、実施例に係る情報処理装置によるログ記録方法を説明するための第6の図である。 図1Gは、実施例に係る情報処理装置によるログ記録方法を説明するための第7の図である。 図2は、実施例に係る情報処理装置の機能構成を示す図である。 図3は、ログ記録部による処理のフローを示すフローチャートである。 図4は、バッファ分割処理のフローを示すフローチャートである。 図5は、バッファ分割処理の擬似コードを示す図である。 図6は、長期データ格納処理のフローを示すフローチャートである。 図7は、長期データ格納処理の擬似コードを示す図である。 図8は、連続データ格納処理のフローを示すフローチャートである。 図9は、連続データ格納処理の擬似コードを示す図である。 図10は、実施例に係るログ記録プログラムを実行するコンピュータのハードウェア構成を示す図である。 図11は、ログデータの記録方法を説明するための図である。 図12は、ログデータの記録例を示す図である。 図13は、図12に示したログ記録方法の処理の疑似コードの例を示す図である。
以下に、本願の開示する情報処理装置、ログ記録方法及びログ記録プログラムの実施例を図面に基づいて詳細に説明する。なお、実施例では、「ログデータ」を単に「データ」と表す。また、p個に1個の割合でログデータが長期保存されるとともに、直近のm個の連続データが保持される。また、この実施例は開示の技術を限定するものではない。
まず、実施例に係るログ記録方法について説明する。図1A〜図1Gは、実施例に係る情報処理装置によるログ記録方法を説明するための図である。図1Aに示すように、実施例に係る情報処理装置は、バッファを1:(p−1)に分割する。長期間保持される長期データはバッファの1の割合の長期データ領域に格納され、直近で連続保持される連続データはバッファの(p−1)の割合の連続データ領域に格納される。図1Aでは、バッファサイズは20であり、p=5であるので、長期データ領域のサイズは4となり、連続データ領域のサイズは16となる。バッファの各データの格納場所である要素領域には、A〜Tのアドレスが付けられる。A〜Dが長期データをそれぞれ格納する要素領域であり、E〜Tが連続データをそれぞれ格納する要素領域である。
図1Aに示すように、情報処理装置は、1循目に、シーケンス番号が0番のデータをAに格納し、1番〜4番のデータをそれぞれE〜Hに格納し、5番のデータをBに格納し、6番〜9番のデータをそれぞれI〜Lに格納する。また、情報処理装置は、10番のデータをCに格納し、11番〜14番のデータをそれぞれM〜Pに格納し、15番のデータをDに格納し、16番〜19番のデータをそれぞれQ〜Tに格納する。
そして、図1Bに示すように、情報処理装置は、バッファがいっぱいになると、連続データ領域を上書き領域として使用するとともに、いっぱいになった長期データ領域を拡張する。ここで、連続データ領域を新たにバッファとすると、バッファのサイズは16であり、p=5であるので、バッファ分割により追加される長期データ領域のサイズは3となり、連続データ領域のサイズは12となる。また、最初の長期データ領域はそのまま残され、使用されないあまりのサイズが1となる。
図1Bでは、最初の長期データ領域に隣接するE〜Gの領域が追加される長期データ領域となり、Hがあまりとなり、I〜Tが新たな連続データ領域となる。そして、情報処理装置は、2循目に、20番のデータをEに上書きし、21番〜24番のデータをそれぞれI〜Lに上書きし、25番のデータをFに上書きし、26番〜29番のデータをそれぞれM〜Pに上書きする。そして、情報処理装置は、30番のデータをGに上書きし、31番〜34番のデータをそれぞれQ〜Tに上書きする。
そして、図1Cに示すように、情報処理装置は、バッファがいっぱいになると、連続データ領域を上書き領域として使用する。また、情報処理装置は、前回のあまりを今回の上書き領域に含める。したがって、上書き領域を新たにバッファとすると、バッファのサイズは13であり、p=5であるので、追加される長期データ領域のサイズは2となり、連続データ領域のサイズは8となる。また、これまでの長期データ領域はそのまま残され、使用されないあまりのサイズが3となる。
図1Cでは、これまでの長期データ領域に隣接するH〜Iの領域が追加される長期データ領域となり、J〜Lがあまりとなり、M〜Tが新たな連続データ領域となる。そして、情報処理装置は、3循目に、35番のデータをHに上書きし、36番〜39番のデータをそれぞれM〜Pに上書きし、40番のデータをIに上書きし、41番〜44番のデータをそれぞれQ〜Tに上書きする。
そして、図1Dに示すように、情報処理装置は、バッファがいっぱいになると、連続データ領域を上書き領域として使用する。また、情報処理装置は、前回のあまりを今回の上書き領域に含める。したがって、上書き領域を新たにバッファとすると、バッファのサイズは11であり、p=5であるので、追加される長期データ領域のサイズは2となり、連続データ領域のサイズは8となる。また、これまでの長期データ領域はそのまま残され、使用されないあまりのサイズが1となる。
図1Dでは、これまでの長期データ領域に隣接するJ〜Kの領域が追加される長期データ領域となり、Lがあまりとなり、M〜Tが新たな連続データ領域となる。そして、情報処理装置は、4循目に、45番のデータをJに上書きし、46番〜49番のデータをそれぞれM〜Pに上書きし、50番のデータをKに上書きし、51番〜54番のデータをそれぞれQ〜Tに上書きする。
そして、図1Eに示すように、情報処理装置は、バッファがいっぱいになると、連続データ領域を上書き領域として使用する。また、情報処理装置は、前回のあまりを今回の上書き領域に含める。したがって、上書き領域を新たにバッファとすると、バッファのサイズは9であり、p=5であるので、追加される長期データ領域のサイズは1となり、連続データ領域のサイズは4となる。
ここで、直近m個の連続データを保持するためには、連続データ領域は、m*(p−1)/p以上確保される必要がある。しかしながら、m*(p−1)/p=8なので、連続データ領域が足りない。この場合、情報処理装置は、長期データ領域の古いデータを記憶する方から(p−1)個だけ要素領域をバッファに加える。すると、バッファのサイズは13であり、p=5であるので、追加される長期データ領域のサイズは2となり、連続データ領域のサイズは8となる。使用されないあまりのサイズが3となる。
図1Eでは、これまでの長期データ領域に隣接するL〜Mの領域が追加される長期データ領域となり、N〜Pがあまりとなり、長期データ領域からバッファに加えられたA〜Dと、Q〜Tとが新たな連続データ領域となる。
そして、情報処理装置は、5循目に、55番のデータをLに上書きする。そして、情報処理装置は、56番のデータをQに上書きしようとするが、Qには51番のデータが記憶されているため、Qに上書きすると、直近のm個前より新しいデータを上書きしてしまう。このように、長期データ領域の一部をバッファに加えた場合、従来の連続データ領域に新しいデータを上書きすると直近のm個前より新しいデータが上書きされる場合がある。このような場合、情報処理装置は、長期データ領域からバッファに加えた領域から順に連続データ領域として使用する。
すなわち、情報処理装置は、図1Fに示すように、56番〜59番のデータを長期データ領域からバッファに加えられたA〜Dにそれぞれ上書きする。そして、情報処理装置は、60番のデータをMに上書きし、61番〜64番のデータをそれぞれQ〜Tに上書きする。
そして、情報処理装置は、図1Gに示すように、6循目に、65番のデータをNに上書きし、66番〜69番のデータをそれぞれA〜Dに上書きし、70番のデータをOに上書きし、71番〜74番のデータをそれぞれQ〜Tに上書きする。そして、情報処理装置は、7循目に、75番のデータをPに上書きし、76番〜79番のデータをそれぞれA〜Dに上書きし、80番のデータをQに上書きし、81番〜84番のデータをそれぞれE〜Hに上書きする。
このように、情報処理装置は、バッファを1:(p−1)の割合で長期データ領域と連続データ領域に分割し、長期間保持したいデータは長期データ領域に格納し、直近の連続データを連続データ領域に格納することで、データを高速に記録することができる。その理由は、情報処理装置は、一定の規則にしたがって決められる格納場所にデータを格納することで、格納場所の探索が必要ないためである。
次に、実施例に係る情報処理装置の構成について説明する。図2は、実施例に係る情報処理装置の機能構成を示す図である。図2に示すように、情報処理装置1は、データ採取部1aとログ記録部1bとを有する。
データ採取部1aは、情報処理装置1のデータを採取する。ログ記録部1bは、データ採取部1aにより採取されたデータを記録する。ログ記録部1bは、バッファ10と、バッファ分割部11と、振分部12と、長期データ格納部13と、連続データ格納部14とを有する。
バッファ10は、データを記録する領域である。バッファ10のサイズは有限であり、バッファ10がいっぱいになるとデータは上書きされる。バッファ10は、長期データ領域と連続データ領域を有する。なお、「バッファ」という用語は、バッファ分割の際には、バッファ10の一部の上書き領域に対しても用いられる。そこで、元のバッファを表す場合には、「バッファ10」を用い、バッファ分割における上書き領域を表す場合には、「バッファ」を用いる。
バッファ分割部11は、バッファを1:(p−1)の割合で長期データ領域と連続データ領域にバッファ分割する。バッファ分割部11は、データがバッファ10に上書きされる過程で、バッファ10を動的に長期データ領域と連続データ領域に分割する。すなわち、バッファ分割部11は、長期データ領域又は連続データ領域が不足すると、長期データ領域及び連続データ領域の位置情報を修正する。
バッファ分割部11は、長期データ領域が不足すると、図1B〜図1Gに示した方法で、連続データ領域から長期データ領域を獲得する。また、バッファ分割部11は、連続データ領域が不足すると、図1E〜図1Gに示した方法で、長期データ領域から連続データ領域を獲得する。
振分部12は、データ採取部1aが採取したデータを受け取り、データのシーケンス番号に基づいて長期データとして保存するデータか否かを判定する。そして、振分部12は、長期データとして保存するデータである場合には、データを長期データ格納部13に渡し、長期データとして保存するデータでない場合には、データを連続データ格納部14に渡す。
長期データ格納部13は、振分部12から受け取ったデータを長期データ領域に格納する。長期データ格納部13は、長期データ領域がいっぱいになるとバッファ分割部11にバッファ分割を要求する。
連続データ格納部14は、振分部12から受け取ったデータを連続データ領域に格納する。連続データ格納部14は、図1Fに示したように、データを書き込もうとする要素領域が記憶するデータがm個前より新しい場合には、バッファ分割部11がバッファ分割の際に長期データ領域から獲得した連続データ領域から先にデータを格納する。
次に、ログ記録部1bによる処理のフローについて説明する。図3は、ログ記録部1bによる処理のフローを示すフローチャートである。図3に示すように、ログ記録部1bは、初期化処理として、バッファ分割を行うバッファ分割処理を行う(ステップS1)。
そして、ログ記録部1bは、データ採取部1aからデータを取得し(ステップS2)、データのシーケンス番号に基づいて、取得したデータを長期データとして記録するか否かを判定する(ステップS3)。
その結果、ログ記録部1bは、長期データとして記録する場合には、データを長期データ領域に格納する長期データ格納処理を行う(ステップS4)。一方、長期データとして記録しない場合には、ログ記録部1bは、データを連続データ領域に格納する連続データ格納処理を行う(ステップS5)。
そして、ログ記録部1bは、ログ記録を終了したか否かを判定し(ステップS6)、ログ記録を終了していない場合には、ステップS2に戻り、ログ記録を終了した場合には、処理を終了する。
このように、ログ記録部1bは、バッファ10を長期データ領域と連続データ領域に分割し、データを長期データ領域と連続データ領域に分けて記憶することで、データの格納場所の探索を不要とし、データを高速に記録することができる。
次に、バッファ分割処理のフローについて説明する。図4は、バッファ分割処理のフローを示すフローチャートである。図4に示すように、バッファ分割部11は、バッファ10を初めて使用するか否かを判定する(ステップS11)。
その結果、バッファ10を初めて使用する場合には、バッファ分割部11は、初回用の処理を行う(ステップS12)。具体的には、バッファ分割部11は、RをNに初期設定し、spheadを0に初期設定する。ここで、Rは今回のバッファ分割で使用するバッファのサイズであり、Nはバッファ10のサイズすなわちバッファ分割で使用するバッファの初期サイズである。また、spheadは、長期データ領域の先頭を示すポインタである。
一方、バッファ10を初めて使用するのではない場合には、バッファ分割部11は、二循目以降の処理を行う(ステップS13)。具体的には、バッファ分割部11は、spheadにsptailを設定し、Rにdpsize+restを設定する。ここで、sptailは、長期データ領域の最後の次を示すポインタである。すなわち、前回のバッファ分割での長期データ領域の最後の次が今回のバッファ分割で使用する長期データ領域の先頭となる。また、dpsizeは連続データ領域の大きさであり、restはあまりである。
そして、バッファ分割部11は、spsizeにR/pを設定し、dpsizeにspsize*(p−1)を設定し、restにR−dpsize−spsizeを設定する(ステップS14)。ここで、spsizeは、長期データ領域の大きさである。
そして、バッファ分割部11は、dpsizeがm*p/(p−1)より小さいか否か、すなわち、連続データ領域が十分にとれないか否かを判定する(ステップS15)。その結果、dpsizeがm*p/(p−1)より小さい場合には、バッファ分割部11は、Rにp−1を加え(ステップS16)、ステップS14に戻る。なお、ステップS16において、R+=p−1はR=R+(p−1)を表す。
一方、dpsizeがm*p/(p−1)より小さくない場合には、バッファ分割部11は、バッファ分割に基づいて、長期データ領域及び連続データ領域の位置情報、空き数及び現在の格納場所を設定する(ステップS17)。具体的には、バッファ分割部11は、sptailにsphead+spsizeを設定し、dpheadにsptail+restを設定し、dptailにdphead+dpsizeを設定する。また、バッファ分割部11は、spremainにspsizeを設定し、dpremainにdpsizeを設定し、spcurにspheadを設定し、dpcurにdpheadを設定する。
ここで、dpheadは連続データ領域の先頭を示すポインタであり、dptailは連続データ領域の最後の次を示すポインタであり、spremainは長期データ領域の空き数であり、dpremainは連続データ領域の空き数である。また、spcurは長期データの書き込み位置を示す書き込みポインタであり、dpcurは連続データの書き込み位置を示すポインタである。
このように、バッファ分割部11がバッファを1:(p−1)に分割することによって、長期データ領域と連続データ領域を作成することができる。
図5は、バッファ分割処理の擬似コードを示す図である。図5に示すように、最初のif文(d)によりバッファ10を初めて使用するか否かの判定が行われ、初回用の処理又は二循目以降の処理が行われる。また、2つ目のif文(e)により、連続データ領域が十分にとれないか否かの判定が行われ、連続データ領域が十分にとれない場合には、長期データ領域から連続データ領域を獲得する処理が行われる。
次に、長期データ格納処理のフローについて説明する。図6は、長期データ格納処理のフローを示すフローチャートである。図6に示すように、長期データ格納部13は、長期データ領域が残っていないかを判定する(ステップS21)。すなわち、長期データ格納部13は、spremainが0以下であるかを判定する。
その結果、長期データ領域が残っていない場合には、長期データ格納部13は、バッファ分割部11にバッファ分割処理を実行させる(ステップS22)。そして、長期データ格納部13は、長期データ領域にデータを書き込む(ステップS23)。すなわち、buf[IDX(spcur)].valにvalを設定する。ここで、buf[].valは、バッファ10のデータ格納部であり、IDX(spcur)は、spcurをNで割った余りである。spcurは単調に増加していくためIDXによりバッファ10のインデックスに変換される。valはバッファに格納されるデータである。
そして、長期データ格納部13は、長期データの書き込み位置を示す書き込みポインタを1増やし、長期データ領域の空き要素領域数を1減らす(ステップS24)。すなわち、長期データ格納部13は、spcurを1増やし、spremainを1減らす。なお、ステップS24において、x−−は、x=x−1を表す。
このように、長期データ格納部13は、長期データ領域が残っていない場合には、バッファ分割部11にバッファ分割処理を実行させることで、長期データの格納領域を新たに確保することができる。
図7は、長期データ格納処理の擬似コードを示す図である。図7に示すように、最初のif文(f)により長期データ領域が残っていないかが判定され、残っていない場合には、バッファ分割処理が実行される。
次に、連続データ格納処理のフローについて説明する。図8は、連続データ格納処理のフローを示すフローチャートである。図8に示すように、連続データ格納部14は、書き込もうとする要素領域が記憶するデータがm個前よりも新しいか否かを判定する(ステップS31)。すなわち、連続データ格納部14は、buf[IDX(dpcur)].seq+mがseqよりも大きいか否かを判定する。ここで、buf[].seqは、バッファ10のシーケンス番号格納部であり、seqは、格納されるデータのシーケンス番号である。
その結果、書き込もうとする要素領域が記憶するデータがm個前よりも新しい場合には、連続データ格納部14は、バッファ分割により新しく獲得した領域の先頭に書き込みポインタを移動する(ステップS32)。すなわち、連続データ格納部14は、dpcurにdptail−(p−1)を設定する。
そして、連続データ格納部14は、連続データ領域にデータを書き込む(ステップS33)。すなわち、buf[IDX(dpcur)].valにvalを設定する。そして、連続データ格納部14は、連続データの書き込み位置を示す書き込みポインタを1増やし、連続データ領域の空き要素領域数を1減らす(ステップS34)。
そして、連続データ格納部14は、連続データ領域の最後であり、かつ、連続データ領域に空きがあるかを判定する(ステップS35)。すなわち、連続データ格納部14は、dpcurとdptailが等しく、かつ、dpremainが0でないかを判定する。ステップS35において、dpcur==dptailは、dpcurとdptailが等しければ1であり、dpcurとdptailが等しくなければ0であることを表す。
そして、連続データ領域の最後であり、かつ、連続データ領域に空きがある場合には、連続データ格納部14は、元々の連続データ領域の先頭へ移動する(ステップS36)。すなわち、連続データ格納部14は、dpcurにdpheadを設定する。
このように、連続データ格納部14は、書き込もうとする要素領域が記憶するデータがm個前よりも新しい場合には、バッファ分割により新しく獲得した領域の先頭に書き込みポインタを移動することで、m個前よりも新しいデータへの上書きを防ぐことができる。
図9は、連続データ格納処理の擬似コードを示す図である。図9に示すように、最初のif文(g)により、書き込もうとする要素領域が記憶するデータがm個前よりも新しいかが判定され、新しい場合には、新しく獲得した領域の先頭に書き込みポインタが移動される。
上述してきたように、実施例では、振分部12が、データのシーケンス番号に基づいてデータを長期データ領域に格納するか否かを判定する。その結果、振分部12は、長期データ領域に格納する場合には長期データ格納部13にデータを振り分け、長期データ領域に格納しない場合には連続データ格納部14にデータを振り分ける。そして、長期データ格納部13はデータを長期データ領域に格納し、連続データ格納部14はデータを連続データ領域に格納する。そして、長期データ領域に空きがなくなると、バッファ分割部11が、バッファ分割を行って、連続データ領域から追加の長期データ領域を獲得する。また、連続データ領域に空きがなくなると、バッファ分割部11が長期データ領域から追加の連続データ領域を獲得する。したがって、ログ記録部1bは、データをバッファ10に書き込む場合に、上書きできる要素領域を探す必要がなく、高速にデータを記録することができる。
また、実施例では、長期データ領域に空きがなくなると、バッファ分割部11は、連続データ領域とあまりを加えた領域を新たなバッファとしてバッファの大きさをpで割った商の数だけ連続データ領域から要素領域を獲得して長期データ領域に追加する。したがって、ログ記録部1bは、直近のデータを連続データ領域に保持するとともに、できるだけ多くの長期データを保持することができる。
また、実施例では、連続データ領域に直近のm個のデータを保持できなくなると、バッファ分割部11は、古いデータを記憶する方からp−1個の要素領域を長期データ領域から獲得して連続データ領域に追加する。したがって、ログ記録部1bは、直近のm個のデータを必ずバッファ10に保持することができる。
なお、実施例では、ログ記録部1bについて説明したが、ログ記録部1bが有する構成をソフトウェアによって実現することで、同様の機能を有するログ記録プログラムを得ることができる。そこで、ログ記録プログラムを実行するコンピュータについて説明する。
図10は、実施例に係るログ記録プログラムを実行するコンピュータのハードウェア構成を示す図である。図10に示すように、コンピュータ50は、メインメモリ51と、CPU52と、LAN(Local Area Network)インタフェース53と、HDD(Hard Disk Drive)54とを有する。また、コンピュータ50は、スーパーIO(Input Output)55と、DVI(Digital Visual Interface)56と、ODD(Optical Disk Drive)57とを有する。
メインメモリ51は、プログラムやプログラムの実行途中結果などを記憶するメモリである。CPU52は、メインメモリ51からプログラムを読出して実行する中央処理装置である。CPU52は、メモリコントローラを有するチップセットを含む。
LANインタフェース53は、コンピュータ50をLAN経由で他のコンピュータに接続するためのインタフェースである。HDD54は、プログラムやデータを格納するディスク装置であり、スーパーIO55は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。DVI56は、液晶表示装置を接続するインタフェースであり、ODD57は、DVDの読み書きを行う装置である。
LANインタフェース53は、PCIエクスプレス(PCIe)によりCPU52に接続され、HDD54及びODD57は、SATA(Serial Advanced Technology Attachment)によりCPU52に接続される。スーパーIO55は、LPC(Low Pin Count)によりCPU52に接続される。
そして、コンピュータ50において実行されるログ記録プログラムは、DVDに記憶され、ODD57によってDVDから読出されてコンピュータ50にインストールされる。あるいは、ログ記録プログラムは、LANインタフェース53を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読出されてコンピュータ50にインストールされる。そして、インストールされたログ記録プログラムは、HDD54に記憶され、メインメモリ51に読み出されてCPU52によって実行される。
1 情報処理装置
1a データ採取部
1b ログ記録部
11 バッファ分割部
12 振分部
13 長期データ格納部
14 連続データ格納部
50 コンピュータ
51 メインメモリ
52 CPU
53 LANインタフェース
54 HDD
55 スーパーIO
56 DVI
57 ODD

Claims (5)

  1. 大きさが限定された記憶領域に新たなログ情報を記録する際に、直近のログ情報を密に記憶する第1ログ領域に記録するか、長期のログ情報を疎に記憶する第2ログ領域に記録するかを判定する判定部と、
    前記判定部により前記第1ログ領域に記憶すると判定された場合に、前記新たなログ情報を第1ログ領域に書き込む第1書込部と、
    前記判定部により前記第2ログ領域に記憶すると判定された場合に、前記新たなログ情報を第2ログ領域に書き込む第2書込部と、
    前記記憶領域に空きがない場合に、前記第1ログ領域及び第2ログ領域の位置情報を修正する修正部と
    を有することを特徴とする情報処理装置。
  2. 前記第1書込部は、正の整数pについてp個のログ情報のうちp−1個のログ情報を第1ログ領域に書き込み、
    前記第2書込部は、p個のログ情報のうち1個のログ情報を第2ログ領域に書き込み、
    前記修正部は、前記第2ログ領域に空きがない場合に、1個のログ情報を記憶する要素領域を前記第1ログ領域の大きさをpで割った商の数だけ前記第1ログ領域から前記第2ログ領域に変更し、前記第ログ領域の大きさを前記商にp−1を乗じた数に変更して前記位置情報を修正することを特徴とする請求項1に記載の情報処理装置。
  3. 正の整数mについて少なくとも直近のm個のログ情報を前記第1ログ領域に連続保持する場合、前記修正部は、前記商にp−1を乗じた数がmに(p−1)/pを乗じた数以上でない場合に、前記第2ログ領域から所定の個数の要素領域を古いログ情報を格納する順番に前記第1ログ領域に変更して前記位置情報を修正することを特徴とする請求項2に記載の情報処理装置。
  4. コンピュータが、
    大きさが限定された記憶領域に新たなログ情報を記録する際に、直近のログ情報を密に記憶する第1ログ領域に記録するか、長期のログ情報を疎に記憶する第2ログ領域に記録するかを判定し、
    前記第1ログ領域に記憶すると判定された場合に、前記新たなログ情報を第1ログ領域に書き込み、
    前記第2ログ領域に記憶すると判定された場合に、前記新たなログ情報を第2ログ領域に書き込み、
    前記記憶領域に空きがない場合に、前記第1ログ領域及び第2ログ領域の位置情報を修正する
    処理を実行することを特徴とするログ記録方法。
  5. コンピュータに、
    大きさが限定された記憶領域に新たなログ情報を記録する際に、直近のログ情報を密に記憶する第1ログ領域に記録するか、長期のログ情報を疎に記憶する第2ログ領域に記録するかを判定し、
    前記第1ログ領域に記憶すると判定された場合に、前記新たなログ情報を第1ログ領域に書き込み、
    前記第2ログ領域に記憶すると判定された場合に、前記新たなログ情報を第2ログ領域に書き込み、
    前記記憶領域に空きがない場合に、前記第1ログ領域及び第2ログ領域の位置情報を修正する
    処理を実行させることを特徴とするログ記録プログラム。
JP2015178665A 2015-09-10 2015-09-10 情報処理装置、ログ記録方法及びログ記録プログラム Expired - Fee Related JP6601077B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015178665A JP6601077B2 (ja) 2015-09-10 2015-09-10 情報処理装置、ログ記録方法及びログ記録プログラム
US15/246,906 US20170078389A1 (en) 2015-09-10 2016-08-25 Apparatus and method to record log information at high-speed in a buffer divided into recent and old log areas

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015178665A JP6601077B2 (ja) 2015-09-10 2015-09-10 情報処理装置、ログ記録方法及びログ記録プログラム

Publications (2)

Publication Number Publication Date
JP2017054365A JP2017054365A (ja) 2017-03-16
JP6601077B2 true JP6601077B2 (ja) 2019-11-06

Family

ID=58260066

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015178665A Expired - Fee Related JP6601077B2 (ja) 2015-09-10 2015-09-10 情報処理装置、ログ記録方法及びログ記録プログラム

Country Status (2)

Country Link
US (1) US20170078389A1 (ja)
JP (1) JP6601077B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8090691B2 (en) * 2004-08-13 2012-01-03 Computer Associates Think, Inc. System and method for variable block logging with log-ahead buffers
US7457910B2 (en) * 2005-06-29 2008-11-25 Sandisk Corproation Method and system for managing partitions in a storage device
JP2008262287A (ja) * 2007-04-10 2008-10-30 Nec Access Technica Ltd 通信制御装置および通信ログ保存方法
JP2013003985A (ja) * 2011-06-20 2013-01-07 Fuji Xerox Co Ltd 情報処理装置、画像形成装置、およびプログラム
JP5875549B2 (ja) * 2013-04-24 2016-03-02 京セラドキュメントソリューションズ株式会社 複合機

Also Published As

Publication number Publication date
JP2017054365A (ja) 2017-03-16
US20170078389A1 (en) 2017-03-16

Similar Documents

Publication Publication Date Title
JP4740216B2 (ja) 不揮発性メモリ管理方法及び装置
KR101870521B1 (ko) 스토리지 저널링을 개선하는 방법 및 시스템
KR100577384B1 (ko) 페이지 정보를 이용한 페이지 대체 방법
US8825946B2 (en) Memory system and data writing method
US7725646B2 (en) Method of using a flash memory for a circular buffer
CN107564558B (zh) 实现分散原子i/o写入
JP6102515B2 (ja) 情報処理装置、制御回路、制御プログラム、および制御方法
KR102530583B1 (ko) 저장 장치 및 메모리 시스템
CN106897026B (zh) 非易失性存储器装置及其地址分类方法
CN105830039A (zh) 写入信息存储设备、方法和记录介质
US20170168947A1 (en) Method of predicting a datum to be preloaded into a cache memory
US9892004B2 (en) Space efficient persistence of an in-memory table
CN111880723A (zh) 数据储存装置与数据处理方法
US20130304972A1 (en) Control device, storage device, and storage control method
TWI450271B (zh) 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
JP7038656B2 (ja) キャッシュへのアクセス
TW201814527A (zh) 非依電性記憶體裝置及其位址分類方法
JP6225731B2 (ja) ストレージ制御装置、ストレージシステムおよびストレージ制御方法
JP6601077B2 (ja) 情報処理装置、ログ記録方法及びログ記録プログラム
US9146858B2 (en) Control device, storage device, and storage control method
CN113535089B (zh) 用于ssd的映射表的刷新方法
CN114144756B (zh) 使用写入事务数据选择读取电压
US7457919B2 (en) Method for memory page management
CN110337637A (zh) 数据处理方法和设备
JP2008191855A (ja) 半導体記憶装置及びメモリ制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180514

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190412

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190923

R150 Certificate of patent or registration of utility model

Ref document number: 6601077

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees