(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-11
(45)【発行日】2024-03-19
(54)【発明の名称】情報処理装置,情報処理システム及びプログラム
(51)【国際特許分類】
G11B 20/10 20060101AFI20240312BHJP
G06F 3/06 20060101ALI20240312BHJP
G11B 27/00 20060101ALI20240312BHJP
G11B 20/12 20060101ALI20240312BHJP
G11B 5/09 20060101ALI20240312BHJP
G11B 27/10 20060101ALI20240312BHJP
【FI】
G11B20/10 301Z
G06F3/06 302J
G06F3/06 303C
G11B27/00 C
G11B20/12 101
G11B5/09 301Z
G11B27/10 H
(21)【出願番号】P 2020011201
(22)【出願日】2020-01-27
【審査請求日】2022-10-06
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110003649
【氏名又は名称】弁理士法人真田特許事務所
(74)【代理人】
【識別番号】100092978
【氏名又は名称】真田 有
(74)【代理人】
【識別番号】100189201
【氏名又は名称】横田 功
(72)【発明者】
【氏名】飯澤 健
【審査官】中野 和彦
(56)【参考文献】
【文献】特開2013-191259(JP,A)
【文献】特開2015-195067(JP,A)
【文献】特開2014-063550(JP,A)
【文献】米国特許出願公開第2013/0166554(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G11B 20/10
G06F 3/06
G11B 27/00
G11B 20/12
G11B 5/09
G11B 27/10
(57)【特許請求の範囲】
【請求項1】
シーケンシャル記録媒体のラップ単位でバッファされているストリームデータを、前記シーケンシャル記録媒体における第1のラップに書き込む第1のデータとして、前記ストリームデータのカラム順且つ時刻順にソートするソート処理部と、
前記ソート処理部によってソートされた前記第1のデータを前記第1のラップに書き込む制御を行なう書き込み制御部と、
を備え、
前記ソート処理部は、前記第1のラップに連続する第2のラップに書き込む第2のデータを、前記カラム順の逆順且つ時刻順にソートし、
前記書き込み制御部は、
前記ソート処理部によってソートされた前記第2のデータを前記第2のラップに書き込む制御を行な
い、
前記第1のデータを前記第1のラップに書き込む制御の前に、前記第1のラップにおいて前記第1のデータの開始時刻及び終了時刻を表す情報を書き込むと共に、前記第2のデータを前記第2のラップに書き込む制御の後に、前記第2のラップにおいて前記第2のデータの開始時刻及び終了時刻を表す情報を書き込む、
情報処理装置。
【請求項2】
前記書き込み制御部は、前記第1のデータのうち前記第1のラップにおいて最後に書き込むエントリと、前記第2のデータのうち前記第2のラップにおいて最初に書き込むエントリとが、前記ストリームデータにおける同一のカラムであり時刻が連続するように、前記第1のデータ及び前記第2のデータを書き込む制御を行なう、
請求項1に記載の情報処理装置。
【請求項3】
情報処理装置と、
前記情報処理装置による制御に従って、シーケンシャル記録媒体にデータを書き込む記録装置と、
を備え、
前記情報処理装置は、
前記シーケンシャル記録媒体のラップ単位でバッファされているストリームデータを、前記シーケンシャル記録媒体における第1のラップに書き込む第1のデータとして、前記ストリームデータのカラム順且つ時刻順にソートするソート処理部と、
前記ソート処理部によってソートされた前記第1のデータを前記第1のラップに書き込む制御を行なう書き込み制御部と、
を備え、
前記ソート処理部は、前記第1のラップに連続する第2のラップに書き込む第2のデータを、前記カラム順の逆順且つ時刻順にソートし、
前記書き込み制御部は、
前記ソート処理部によってソートされた前記第2のデータを前記第2のラップに書き込む制御を行な
い、
前記第1のデータを前記第1のラップに書き込む制御の前に、前記第1のラップにおいて前記第1のデータの開始時刻及び終了時刻を表す情報を書き込むと共に、前記第2のデータを前記第2のラップに書き込む制御の後に、前記第2のラップにおいて前記第2のデータの開始時刻及び終了時刻を表す情報を書き込む、
情報処理システム。
【請求項4】
コンピュータに、
シーケンシャル記録媒体のラップ単位でバッファされているストリームデータを、前記シーケンシャル記録媒体における第1のラップに書き込む第1のデータとして、前記ストリームデータのカラム順且つ時刻順にソートし、
ソートされた前記第1のデータを前記第1のラップに書き込む制御を行ない、
前記第1のラップに連続する第2のラップに書き込む第2のデータを、前記カラム順の逆順且つ時刻順にソートし、
ソートされた前記第2のデータを前記第2のラップに書き込む制御を行な
い、
前記第1のデータを前記第1のラップに書き込む制御の前に、前記第1のラップにおいて前記第1のデータの開始時刻及び終了時刻を表す情報を書き込むと共に、前記第2のデータを前記第2のラップに書き込む制御の後に、前記第2のラップにおいて前記第2のデータの開始時刻及び終了時刻を表す情報を書き込む、
処理を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置,情報処理システム及びプログラムに関する。
【背景技術】
【0002】
無限に到来する時刻順のデータであるストリームデータは、テープドライブによってテープカートリッジ(「テープ媒体」と称されてもよい。)に記録される場合がある。
【0003】
図1は、ストリームデータにおけるエントリを例示するテーブルである。
【0004】
ストリームデータの最小単位は、エントリと称されてよい。エントリには、タイムスタンプ(図中のTime)と複数のフィールド(図中のC1, C2, …, C(j-1), Cj)とが対応付けられている。
図1では、例えば、タイムスタンプt1に対して、複数のフィールドV11, V12, …, V1(j-1), V1jが対応付けられている。
【0005】
図1に示すようなデータの例としては、複数のセンサを備えた機器から送信されてくるセンサデータがある。複数のフィールドのそれぞれが、各センサの値に対応する。
【0006】
テープ媒体に蓄積されたストリームデータは、読み出されて、分析ジョブとして、統計処理や機械学習等が施される。
【0007】
一般に、分析ジョブには、ストリームデータの一部のフィールドに限って使用される。例えば、
図1に示した時刻t1~t2のストリームデータのうち、フィールドC1,C2に限って抽出する読み出し要求をSQL文で表すと、以下のようになる。
【0008】
SELECT C1, C2 WHERE Time >= t1 AND Time < t2
【先行技術文献】
【特許文献】
【0009】
【文献】特開2013-191259号公報
【文献】特開2015-88199号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
図2は、関連例におけるテープ媒体へのエントリの記録順序の第1の例を示す図である。
【0011】
図2に示すテープ媒体において、ストリームデータのエントリは、全時刻のタイムスタンプ(符号A1参照),全時刻のカラム#1(符号A2参照),全時刻のカラム#j(符号A3参照)の順で記録されている。全時刻のタイムスタンプはt1, t2, …, tiを含み、全時刻のカラム#1はV11, V21, …, Vi1を含み、全時刻のカラム#jはV1j, V2j, …, Vijを含む。
【0012】
テープ媒体は、シーケンシャルアクセス性能が高いが、ランダムアクセス性能が低いメディアである。そのため、少数のカラムに限った読み出しを行なうことを前提とした場合には、
図2に示すように、同一カラムをテープ媒体上の連続する領域に配置すると、各カラムの読み出しを高速に行なうことができる。
【0013】
しかしながら、アーカイブノードにおいて受信されたストリームデータは、直ぐにテープ媒体に書き込まれるのではなく、一旦高速ストレージにバッファされる。そして、高速ストレージにテープ媒体1本分のデータがバッファされた後、データは、カラム順及び各カラム内の時刻順にソートされ、テープ媒体に書き込まれる。したがって、ソート前及びソート後の一時記録用に合計2つのバッファが用意される。また、このソート処理では大量のランダムI/Oが発行されるため、一時記録用のバッファとして大容量の高速ストレージが必要になる場合がある。
【0014】
図3は、関連例におけるテープ媒体へのエントリの記録順序の第2の例を示す図である。
【0015】
一方、小容量の高速ストレージを用意し、高速ストレージの容量がいっぱいになる度にソートしてテープ媒体に書き込む運用も想定できる。このような運用では、
図3に示すような部分的に列指向フォーマットで書き込まれた領域(別言すれば、「断片化列指向データ」)が単一のテープ媒体に繰り返し現れる。
図3では、簡単のため、高速ストレージが2レコード(別言すれば、「2時刻分の全カラム」)に限ってバッファ可能な場合のデータレイアウトが示されている。
【0016】
符号B1で示す断片化列指向データには、エントリt1, t2, v11, v21, …, V1j, V2jが記録されている。また、符号B2で示す断片化列指向データには、エントリti-1, ti, V(i-1)1, Vi1, …, V(i-1)j, Vijが記録されている。
【0017】
しかしながら、あるカラムについて、テープ媒体に格納された全時刻分のデータを読み込むためには、ある断片化列指向データの当該カラムを読み込んだ後、次の断片化列指向データの当該カラムまでシークが行なわれる。テープ媒体のシークは読み出しと同じくテープ媒体の巻き取りによって行なわれるので、シーク速度は読み出し速度と同程度となる。従って、断片化列指向データの間のヘッド移動をシークによって行なう場合には、テープ媒体全体を読み出すのと同等の時間がかかるため、部分的に列指向フォーマットで書き込むことによる読み出し処理の高速化は期待できない。
【0018】
1つの側面では、シーケンシャル記録媒体において、一部のカラムに限った読み出しを行なう場合に、時系列を有するデータの読み出し時間を短縮することを目的とする。
【課題を解決するための手段】
【0019】
1つの側面では、情報処理装置は、シーケンシャル記録媒体のラップ単位でバッファされているストリームデータを、前記シーケンシャル記録媒体における第1のラップに書き込む第1のデータとして、前記ストリームデータのカラム順且つ時刻順にソートするソート処理部と、前記ソート処理部によってソートされた前記第1のデータを前記第1のラップに書き込む制御を行なう書き込み制御部と、を備え、前記ソート処理部は、前記第1のラップに連続する第2のラップに書き込む第2のデータを、前記カラム順の逆順且つ時刻順にソートし、前記書き込み制御部は、前記ソート処理部によってソートされた前記第2のデータを前記第2のラップに書き込む制御を行ない、前記第1のデータを前記第1のラップに書き込む制御の前に、前記第1のラップにおいて前記第1のデータの開始時刻及び終了時刻を表す情報を書き込むと共に、前記第2のデータを前記第2のラップに書き込む制御の後に、前記第2のラップにおいて前記第2のデータの開始時刻及び終了時刻を表す情報を書き込む。
【発明の効果】
【0020】
1つの側面では、シーケンシャル記録媒体において、一部のカラムに限った読み出しを行なう場合に、時系列を有するデータの読み出し時間を短縮することができる。
【図面の簡単な説明】
【0021】
【
図1】ストリームデータにおけるエントリを例示するテーブルである。
【
図2】関連例におけるテープ媒体へのエントリの記録順序の第1の例を示す図である。
【
図3】関連例におけるテープ媒体へのエントリの記録順序の第2の例を示す図である。
【
図4】実施形態の一例における情報処理システムの構成例を模式的に示すブロック図である。
【
図5】
図4に示したアーカイブノードにおけるハードウェア構成例を模式的に示すブロック図である。
【
図6】
図4に示したアーカイブノードにおけるソフトウェア構成例を模式的に示すブロック図である。
【
図7】
図4に示したテープ媒体におけるデータの記録順序を模式的に示す図である。
【
図8】
図4に示したテープ媒体におけるヘッドの移動方向を模式的に示す図である。
【
図9】
図4に示した情報処理システムにおけるデータ位置情報を例示する図である。
【
図10】
図4に示したテープ媒体におけるエントリの記録順序を模式的に示す図である。
【
図11】
図4に示した情報処理システムにおいて処理されるストリームデータを例示するテーブルである。
【
図12】
図4に示した情報処理システムにおける1ラップ目の書き込み処理を例示するテーブルである。
【
図13】
図4に示した情報処理システムにおける2ラップ目の書き込み処理を例示するテーブルである。
【
図14】
図4に示した情報処理システムにおける全ラップの書き込み処理を例示するテーブルである。
【
図15】
図4に示した情報処理システムにおける一部のカラムの書き込み処理を例示するテーブルである。
【
図16】
図4に示した情報処理システムにおけるストリームデータの書き込み処理を説明するフローチャートである。
【
図17】
図4に示した情報処理システムにおけるストリームデータの読み込み処理を説明するフローチャートである。
【発明を実施するための形態】
【0022】
以下、図面を参照して一実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。
【0023】
また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【0024】
以下、図中において、同一の各符号は同様の部分を示しているので、その説明は省略する。
【0025】
〔A〕実施形態の一例
〔A-1〕システム構成例
図4は、実施形態の一例における情報処理システム100の構成例を模式的に示すブロック図である。
【0026】
情報処理システム100は、アーカイブノード1とストレージ装置とを含み、ストレージ装置は、ドライブ2、及び、複数のテープ媒体31を格納しロード/アンロードするロボットを含むテープライブラリ3を備える。
【0027】
ドライブ2は、記録装置の一例であり、アーカイブノード1からのストリームデータをテープ媒体31に蓄積するためのテープドライブである。また、ドライブ2は、アーカイブノード1からの要求に係るストリームデータをテープ媒体31から読み出すためのテープドライブである。テープ媒体31は、磁気方式のシーケンシャル記録媒体である。ドライブ2は、シーケンシャル媒体記憶装置の一例である。
【0028】
テープライブラリ3は、ドライブ2によってストリームデータが記録される複数のテープ媒体31を格納する。
【0029】
アーカイブノード1は、サーバ機能を備えたコンピュータ(別言すれば、情報処理装置)である。アーカイブノード1は、第1バッファ部141及び第2バッファ部142を備える。アーカイブノード1の機能の詳細については、
図5及び
図6等を用いて後述する。
【0030】
アーカイブノード1は、ネットワーク(不図示)から受信したストリームデータを第1バッファ部141に一時的に記録する。アーカイブノード1は、第1バッファ部141に一時的に記録したストリームデータをテープ媒体31に記録する順序に並び替えて、第2バッファ部142に一時的に記録する。
【0031】
アーカイブノード1は、第2バッファ部142に記録されている並び替え後のデータをドライブ2内のテープ媒体31に書き込む(符号D1参照)。テープ媒体31の保存領域に空きがなくなると、テープ媒体31はドライブ2からアンロードされて、テープライブラリ3に格納される。そして、新しいテープ媒体31がドライブ2にロードされる。
【0032】
アーカイブノード1は、分析ジョブによるストリームデータの読み出し要求を受け取ると(符号D2参照)、要求されたエントリ(別言すれば、フィールド)を格納しているテープ媒体31をドライブ2にマウントさせる(符号D3参照)。また、アーカイブノード1は、読み出したデータを分析ジョブに返す(符号D4参照)。
【0033】
図5は、
図4に示したアーカイブノード1におけるハードウェア構成例を模式的に示すブロック図である。
【0034】
図5に示すように、アーカイブノード1は、CPU11,メモリ部12,表示制御部13,記憶装置14,入力Interface(IF)15,外部記録媒体処理部16及び通信IF17を備える。
【0035】
メモリ部12は、記憶部の一例であり、例示的に、Read Only Memory(ROM)及びRandom Access Memory(RAM)などである。メモリ部12のROMには、Basic Input/Output System(BIOS)等のプログラムが書き込まれてよい。メモリ部12のソフトウェアプログラムは、CPU11に適宜に読み込まれて実行されてよい。また、メモリ部12のRAMは、一時記録メモリあるいはワーキングメモリとして利用されてよい。
【0036】
表示制御部13は、表示装置130と接続され、表示装置130を制御する。表示装置130は、液晶ディスプレイやOrganic Light-Emitting Diode(OLED)ディスプレイ,Cathode Ray Tube(CRT),電子ペーパーディスプレイ等であり、オペレータ等に対する各種情報を表示する。表示装置130は、入力装置と組み合わされたものでもよく、例えば、タッチパネルでもよい。
【0037】
記憶装置14は、高IO性能の記憶装置であり、例えば、Dynamic Random Access Memory(DRAM)やSolid State Drive(SSD),Storage Class Memory(SCM),Hard Disk Drive(HDD)が用いられてよい。記憶装置14の一部は、
図4に示した第1バッファ部141及び第2バッファ部142として機能する。
【0038】
入力IF15は、マウス151やキーボード152等の入力装置と接続され、マウス151やキーボード152等の入力装置を制御してよい。マウス151やキーボード152は、入力装置の一例であり、これらの入力装置を介して、オペレータが各種の入力操作を行なう。
【0039】
外部記録媒体処理部16は、記録媒体160が装着可能に構成される。外部記録媒体処理部16は、記録媒体160が装着された状態において、記録媒体160に記録されている情報を読み取り可能に構成される。本例では、記録媒体160は、可搬性を有する。例えば、記録媒体160は、フレキシブルディスク、光ディスク、磁気ディスク、光磁気ディスク、又は、半導体メモリ等である。
【0040】
通信IF17は、外部装置との通信を可能にするためのインタフェースである。
【0041】
CPU11は、種々の制御や演算を行なう処理装置であり、メモリ12部に格納されたOperating System(OS)やプログラムを実行することにより、種々の機能を実現する。
【0042】
アーカイブノード1全体の動作を制御するための装置は、CPU11に限定されず、例えば、MPUやDSP,ASIC,PLD,FPGAのいずれか1つであってもよい。また、アーカイブノード1全体の動作を制御するための装置は、CPU,MPU,DSP,ASIC,PLD及びFPGAのうちの2種類以上の組み合わせであってもよい。なお、MPUはMicro Processing Unitの略称であり、DSPはDigital Signal Processorの略称であり、ASICはApplication Specific Integrated Circuitの略称である。また、PLDはProgrammable Logic Deviceの略称であり、FPGAはField Programmable Gate Arrayの略称である。
【0043】
図6は、
図4に示したアーカイブノード1におけるソフトウェア構成例を模式的に示すブロック図である。
【0044】
図6に示すように、アーカイブノード1は、ソート処理部111,書き込み制御部112及び読み出し制御部113として機能する。
【0045】
ソート処理部111は、第1バッファ部141に記録されているストリームデータに含まれるエントリを所定の順序にソートして、第2バッファ部142に記録する。
【0046】
別言すれば、ソート処理部111は、テープ媒体31のラップ単位でバッファされているストリームデータを、テープ媒体31における第1のラップに書き込む第1のデータとして、ストリームデータのカラム順且つ時刻順にソートする。また、ソート処理部111は、第1のラップに連続する第2のラップに書き込む第2のデータを、カラム順の逆順且つ時刻順にソートする。
【0047】
書き込み制御部112は、第2バッファ部142に記録されているデータを、ソート処理部111によってソートされたエントリの順序に従って、ドライブ2においてテープ媒体31に書き込ませる。
【0048】
別言すれば、書き込み制御部112は、ソート処理部111によってソートされた第1のデータを第1のラップに書き込む制御を行なう。また、書き込み制御部112は、ソート処理部111によってソートされた第2のデータを第2のラップに書き込む制御を行なう。
【0049】
書き込み制御部112は、第1のラップにおいて最後に書き込むエントリと、第2のラップにおいて最初に書き込むエントリとが、ストリームデータにおける同一のカラムであり時刻が連続するように、第1のデータ及び第2のデータを書き込む制御を行なってよい。
【0050】
読み出し制御部113は、読み出し要求に従って、テープ媒体31に記録されているデータを、ドライブ2に読み出させる。
【0051】
図7は、
図4に示したテープ媒体31におけるデータの記録順序を模式的に示す図である。
【0052】
テープ媒体31は、ラップと称される物理構造を有する。テープ媒体31を先頭(符号E1参照)から末尾(符号E3参照)まで読み出す場合には、以下の(1-1)~(1-3)で示す処理が行なわれる。
【0053】
(1-1)最初のラップが先頭(符号E1参照)から末尾(符号E2参照)までテープ媒体31の長手方向に読み出される。
【0054】
(1-2)ヘッドがテープ媒体31の幅方向に移動され、テープ媒体31を逆方向に回転させながら次のラップが読み出される。
【0055】
(1-3)上記の(1-1)及び(1-2)の処理を繰り返しつつ、最後のラップの末尾(符号E3参照)まで読み出される。
【0056】
図8は、
図4に示したテープ媒体31におけるヘッドの移動方向を模式的に示す図である。
【0057】
図8に示す例において、ラップ#1の地点Aからラップ#2の地点Bへ移動する場合には、符号F1に示すようにヘッドはラップ#1の末尾まで移動する必要は無く、符号F2に示すようにヘッドは2点間の最短距離を移動することができる。
【0058】
実施形態の一例においては、
図8に示した特性を利用して、以下の(2-1)~(2-5)で示す処理によってテープ媒体31への書き込みが実施される。
【0059】
(2-1)1ラップ分の容量を有する第1バッファ部141にストリームデータが書き込まれ、第1バッファ部141の容量がいっぱいになったら、ストリームデータがカラム順及び時刻順にソートされ第2バッファ部142に書き込まれる。
【0060】
(2-2)ソート後のデータが第2バッファ部142からテープ媒体31に書き込まれる。この際に、テープ媒体31への書き込み開始位置は、ラップの先頭位置になるように調整される。
【0061】
(2-3)空になった第1バッファ部141への書き込みが再開されて、第1バッファ部141の容量がいっぱいになったら、ストリームデータがカラム順及び時刻順にソートされ第2バッファ部142に書き込まれる。カラムのソート順は、上記(2-1)のソート順とは逆となる。つまり、前回のソートが昇順の場合には、今回のソートは降順となる。なお、時刻のソート順は常に昇順とされてよい。
【0062】
(2-4)ソート後のデータが第2バッファ部142からテープ媒体31に書き込まれる。この際に、テープ媒体31への書き込み開始位置は、前回書き込んだラップの次のラップの先頭になっている。
【0063】
(2-5)上記(2-1)~(2-4)の処理がテープ媒体31の容量がいっぱいになるまで繰り返される。
【0064】
図9は、
図4に示した情報処理システム100におけるデータ位置情報を例示する図である。
図10は、
図4に示したテープ媒体31におけるエントリの記録順序を模式的に示す図である。
【0065】
データがテープ媒体31に書き込まれると同時に、
図9に示すデータ位置情報が更新される。データ位置情報は、データが格納されているテープ媒体31上の位置を記録する。データ位置情報は、
図5に示した記憶装置14に記憶されてよい。
【0066】
図9に示す例において、カラム数は、Time, C1, C2, C3の4つである。
【0067】
「開始時刻」及び「終了時刻」は、それぞれ、あるラップに格納されているストリームデータのうち最初のエントリのタイムスタンプと最後のエントリのタイムスタンプとを表す。
【0068】
各カラムの「先頭アドレス」は、当該カラムのデータが格納されている領域の先頭アドレスを示し、論理アドレスで表されてよい。ここで、論理アドレスは、テープ先頭(別言すれば、「最初のラップの先頭」)からテープ末尾(別言すれば、「最後のラップの末尾」)までの間の一点を表す論理的なアドレスである。
【0069】
各カラムの「サイズ」は、「開始時刻」から「終了時刻」までの間に生成された当該カラムのデータの合計サイズである。
【0070】
従って、
図9に示すデータ位置情報が保持される場合には、
図10に示す順序でテープ媒体31にデータが記録される。
【0071】
図10に示す破線矢印は、論理アドレスが増加する方向(別言すれば、「データを書き込む方向」)を示す。
【0072】
ラップ#1には、時刻t1~t2に生成されたデータが変換されて格納される。また、ラップ#2には、時刻t2~t3に生成されたデータが変換されて格納される。
【0073】
なお、各ラップに格納されるデータは、同一時間間隔で得られたデータではなく、第1バッファ部141及び第2バッファ部142の容量がいっぱいになったタイミングで得られたデータである。
【0074】
例えば、ラップ#1には20時00分から20時30分までの30分間で取得されたデータが格納されてよく、ラップ#2には20時30分から21時15分までの45分間で取得されたデータが格納されてよい。すなわち、ラップ#1における単位時間あたりのデータサイズは、ラップ#2における単位時間あたりのデータサイズよりも大きくなっている。
【0075】
このように、各ラップに格納されるデータ容量を同一にするため、各ラップに格納されるデータ時間が異なる場合がある。そこで、
図9に示したように、各ラップに格納されているデータの「開始時刻」及び「終了時刻」が記録されることにより、読み出しアクセスに際に、どの時間帯のデータがどのラップに格納されているのかを識別することができる。
【0076】
ただし、各カラム間のサイズ比率は、ラップに記録される時間帯及び時間の長さにかかわらず、一定である。各カラムのサイズ比率が一定であることにより、
図10に示すように、同一カラムがラップ間を跨がってテープ媒体31の幅方向に同位置に配置される。
【0077】
図11は、
図4に示した情報処理システム100において処理されるストリームデータを例示するテーブルである。
図12は、
図4に示した情報処理システム100における1ラップ目の書き込み処理を例示するテーブルである。
図13は、
図4に示した情報処理システム100における2ラップ目の書き込み処理を例示するテーブルである。
図14は、
図4に示した情報処理システム100における全ラップの書き込み処理を例示するテーブルである。
【0078】
まず、
図11に示すようなTime, C1, C2, C3の4つのカラムを含むストリームデータを想定する。なお、テープ媒体31の1ラップには、4行分のデータ(別言すれば、16エントリ)を格納可能であるものとする。
【0079】
図12の符号G1に示すように、ストリームデータは、第1バッファ部141において、行指向形式で格納される。第1バッファ部141の容量がいっぱいになったら、符号G2に示すように、行指向形式が列指向形式に変換されて、第2バッファ部142に格納される。そして、符号G3に示すように、第2バッファ部142の列指向形式のデータがテープ媒体31の1ラップ目に書き込まれる。1ラップ目では、図中の左方向から右方向へヘッドを動かし、t1, t2, t3, t4, V11, V21, V31, V41, V12, V22, V32, V42, V13, V23, V33, V43の順にデータが書き込まれる。
【0080】
図13に示すように、2ラップ目では、1ラップ目とは逆方向にヘッドが動かされ、1ラップ目とはカラムが逆順に、カラム内のデータは時刻順にソートされて書き込まれる。すなわち、2ラップ目では、図中の右方向から左方向へヘッドが動かされ、V53, V63, V73, V83, V52, V62, V72, V82, V51, V61, V71, V81, t5, t6, t7, t8の順にデータが書き込まれる。
【0081】
そして、
図12及び
図13に示した書き込み動作をテープ媒体31の容量がいっぱいになるまで繰り返すと、テープ媒体31上のデータレイアウトは
図14に示すようになる。奇数ラップ目と偶数ラップ目とでは、逆方向にヘッドが動かされ、カラムが逆順に書き込まれる。
【0082】
図15は、
図4に示した情報処理システム100における一部のカラムの書き込み処理を例示するテーブルである。
【0083】
ヘッドがテープ媒体31の先頭にあるとして、テープ媒体31から
図11に示したカラムc1の全てのデータV11~V32_1が読み出される場合には、ヘッドの動きは
図15に示すようになる。
【0084】
すなわち、同一カラムを読み出す場合のヘッドの移動量を最低限にして読み出しを高速化できるとともに、バッファに必要な高速ストレージの容量をラップ2本分に抑えることができる。
【0085】
〔A-2〕動作例
図4に示した情報処理システム100におけるストリームデータの書き込み処理を、
図16に示すフローチャート(ステップS1~S6)を用いて説明する。
【0086】
ソート処理部111は、ストリームデータを第1バッファ部141に格納する(ステップS1)。
【0087】
ソート処理部111は、第1バッファ部141の容量がいっぱいかを判定する(ステップS2)。
【0088】
第1バッファ部141の容量がいっぱいでない場合には(ステップS2のNOルート参照)、処理はステップS1へ戻る。
【0089】
一方、第1バッファ部141の容量がいっぱいの場合には(ステップS2のYESルート参照)、処理はステップS3へ進む。すなわち、ソート処理部111は、第1バッファ部141のデータをカラム毎にグループ化し、前回のソート時とは逆順にソートし、第2バッファ部142にデータを書き込む(ステップS3)。
【0090】
ソート処理部111は、第1バッファ部141を空にする(ステップS4)。
【0091】
書き込み制御部112は、第2バッファ部142のデータをテープ媒体31に書き込み、第2バッファ部142を空にする(ステップS5)。
【0092】
書き込み制御部112は、テープ媒体31への書き込み結果に基づき、データ位置情報を更新する(ステップS6)。そして、ストリームデータの書き込み処理は終了する。
【0093】
次に、
図4に示した情報処理システム100におけるストリームデータの読み込み処理を、
図17に示すフローチャート(ステップS11~S14)を用いて説明する。
【0094】
読み出し制御部113は、読み出し要求を受け取ると、読み出し要求がアクセスするカラム群(「アクセスカラム群」と称されてよい。)とアクセスする時間帯(「アクセス時間帯」と称されてよい。)とを抽出する(ステップS11)。
【0095】
読み出し制御部113は、アクセスカラム群の全カラムを読み出したかを判定する(ステップS12)。
【0096】
アクセスカラム群の全カラムを読み出した場合には(ステップS12のYESルート参照)、ストリームデータの読み込み処理は終了する。
【0097】
一方、アクセスカラム群でまだ読み出していないカラムがある場合には(ステップS12のNOルート参照)、読み出し制御部113は、アクセスカラム群からカラムを1つ選択する(ステップS13)。
【0098】
読み出し制御部113は、データ位置情報を参照し、アクセスする時間帯を含む全カラム断片を読み出す(ステップS14)。そして、処理はステップS12へ戻る。
【0099】
〔A-3〕効果
ソート処理部111は、テープ媒体31のラップ単位でバッファされているストリームデータを、テープ媒体31における第1のラップに書き込む第1のデータとして、ストリームデータのカラム順且つ時刻順にソートする。書き込み制御部112は、ソート処理部111によってソートされた第1のデータを第1のラップに書き込む制御を行なう。ソート処理部111は、第1のラップに連続する第2のラップに書き込む第2のデータを、カラム順の逆順且つ時刻順にソートする。書き込み制御部112は、ソート処理部111によってソートされた第2のデータを第2のラップに書き込む制御を行なう。
【0100】
これにより、シーケンシャル記録媒体において、一部のカラムに限った読み出しを行なう場合に、時系列を有するデータの読み出し時間を短縮できる。
【0101】
書き込み制御部112は、第1のラップにおいて最後に書き込むエントリと、第2のラップにおいて最初に書き込むエントリとが、ストリームデータにおける同一のカラムであり時刻が連続するように、第1のデータ及び第2のデータを書き込む制御を行なう。
【0102】
これにより、単一のカラム内のデータを読み出す際におけるヘッドの移動量を最小限にすることができる。
【0103】
〔B〕その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【0104】
上述した実施形態の一例においては、情報処理システム100がストリームデータを記憶する記録媒体としてテープ媒体31を備えることとしたが、これに限定されるものではない。情報処理システム100は種々のシーケンシャル記録媒体を備えてよい。種々のシーケンシャル記録媒体としては、例えば、CD,DVD,ブルーレイディスク等の光ディスクであってもよい。CDにはCD-ROM,CD-R,CD-RW等が含まれてよく、DVDにはDVD-ROM,DVD-RAM,DVD-R,DVD+R,DVD-RW,DVD+RW,HD DVD等が含まれてよい。
【0105】
このように、ストリームデータがそれぞれのシーケンシャル記録媒体に記憶されていることにより、上述した実施形態の一例における効果を特に期待することができる。
【0106】
〔C〕付記
以上の実施形態に関し、更に以下の付記を開示する。
【0107】
(付記1)
シーケンシャル記録媒体のラップ単位でバッファされているストリームデータを、前記シーケンシャル記録媒体における第1のラップに書き込む第1のデータとして、前記ストリームデータのカラム順且つ時刻順にソートするソート処理部と、
前記ソート処理部によってソートされた前記第1のデータを前記第1のラップに書き込む制御を行なう書き込み制御部と、
を備え、
前記ソート処理部は、前記第1のラップに連続する第2のラップに書き込む第2のデータを、前記カラム順の逆順且つ時刻順にソートし、
前記書き込み制御部は、前記ソート処理部によってソートされた前記第2のデータを前記第2のラップに書き込む制御を行なう、
情報処理装置。
【0108】
(付記2)
前記書き込み制御部は、前記第1のデータのうち前記第1のラップにおいて最後に書き込むエントリと、前記第2のデータのうち前記第2のラップにおいて最初に書き込むエントリとが、前記ストリームデータにおける同一のカラムであり時刻が連続するように、前記第1のデータ及び前記第2のデータを書き込む制御を行なう、
付記1に記載の情報処理装置。
【0109】
(付記3)
情報処理装置と、
前記情報処理装置による制御に従って、シーケンシャル記録媒体にデータを書き込む記録装置と、
を備え、
前記情報処理装置は、
前記シーケンシャル記録媒体のラップ単位でバッファされているストリームデータを、前記シーケンシャル記録媒体における第1のラップに書き込む第1のデータとして、前記ストリームデータのカラム順且つ時刻順にソートするソート処理部と、
前記ソート処理部によってソートされた前記第1のデータを前記第1のラップに書き込む制御を行なう書き込み制御部と、
を備え、
前記ソート処理部は、前記第1のラップに連続する第2のラップに書き込む第2のデータを、前記カラム順の逆順且つ時刻順にソートし、
前記書き込み制御部は、前記ソート処理部によってソートされた前記第2のデータを前記第2のラップに書き込む制御を行なう、
情報処理システム。
【0110】
(付記4)
前記書き込み制御部は、前記第1のデータのうち前記第1のラップにおいて最後に書き込むエントリと、前記第2のデータのうち前記第2のラップにおいて最初に書き込むエントリとが、前記ストリームデータにおける同一のカラムであり時刻が連続するように、前記第1のデータ及び前記第2のデータを書き込む制御を行なう、
付記3に記載の情報処理システム。
【0111】
(付記5)
コンピュータに、
シーケンシャル記録媒体のラップ単位でバッファされているストリームデータを、前記シーケンシャル記録媒体における第1のラップに書き込む第1のデータとして、前記ストリームデータのカラム順且つ時刻順にソートし、
ソートされた前記第1のデータを前記第1のラップに書き込む制御を行ない、
前記第1のラップに連続する第2のラップに書き込む第2のデータを、前記カラム順の逆順且つ時刻順にソートし、
ソートされた前記第2のデータを前記第2のラップに書き込む制御を行なう、
処理を実行させる、プログラム。
【0112】
(付記6)
前記第1のデータのうち前記第1のラップにおいて最後に書き込むエントリと、前記第2のデータのうち前記第2のラップにおいて最初に書き込むエントリとが、前記ストリームデータにおける同一のカラムであり時刻が連続するように、前記第1のデータ及び前記第2のデータを書き込む制御を行なう、
処理を前記コンピュータに実行させる、付記5に記載のプログラム。
【符号の説明】
【0113】
100 :情報処理システム
1 :アーカイブノード
2 :ドライブ
3 :テープライブラリ
11 :CPU
111 :ソート処理部
112 :書き込み制御部
113 :読み出し制御部
12 :メモリ部
13 :表示制御部
130 :表示装置
14 :記憶装置
141 :第1バッファ部
142 :第2バッファ部
15 :入力IF
151 :マウス
152 :キーボード
16 :外部記録媒体処理部
160 :記録媒体
17 :通信IF
31 :テープ媒体