Nothing Special   »   [go: up one dir, main page]

JP6011421B2 - ストレージシステム、情報処理装置の制御プログラム及びストレージシステムの制御方法 - Google Patents

ストレージシステム、情報処理装置の制御プログラム及びストレージシステムの制御方法 Download PDF

Info

Publication number
JP6011421B2
JP6011421B2 JP2013074802A JP2013074802A JP6011421B2 JP 6011421 B2 JP6011421 B2 JP 6011421B2 JP 2013074802 A JP2013074802 A JP 2013074802A JP 2013074802 A JP2013074802 A JP 2013074802A JP 6011421 B2 JP6011421 B2 JP 6011421B2
Authority
JP
Japan
Prior art keywords
time
section
data
divided data
storage
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
JP2013074802A
Other languages
English (en)
Other versions
JP2014199581A (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 JP2013074802A priority Critical patent/JP6011421B2/ja
Priority to PCT/JP2014/058417 priority patent/WO2014157275A1/ja
Publication of JP2014199581A publication Critical patent/JP2014199581A/ja
Priority to US14/844,483 priority patent/US10268398B2/en
Application granted granted Critical
Publication of JP6011421B2 publication Critical patent/JP6011421B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2477Temporal data queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/44Browsing; Visualisation therefor
    • G06F16/447Temporal browsing, e.g. timeline
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ストレージシステム、情報処理装置の制御プログラム及びストレージシステムに関する。
センサ情報や各種ログなどを対象に実時間分析処理(RTAP(REAL TIME ANALYTICAL PROCESSING))の市場が拡大しており、その入力となる時系列データの効率的な蓄積・利用が重要になっている。時系列データの情報収集解析サービスをクラウド上で行う場合、多数のセンサ、多数のログの入力が束ねられ、膨大なデータ列を蓄積し、全データまたは部分系列が必要に応じて再生される。
このように、収集された各情報を同時に記録したり、記録した各情報を同時に再生する技術の1つとして、例えば、n個(nは2以上の自然数)の記憶装置を並列に動作させてmチャンネル(mは2以上n以下の自然数)の同時記録再生を行う記録再生装置がある。記録再生装置は、mチャンネルのストリームデータを分離してk個(kはm以上n以下の自然数)の画像単位のブロックに分割し、各チャンネルの分割したブロックをn個の記憶装置に割り振って順番に記録する。
特開2001−148832号公報
上述した記録再生装置において、ストリームを構成するデータをn分割し、n個の記録手段に記録することは述べられているが、具体的にどのように分割するのか不明である。また、当該記録再生装置は、複数のディスクを組み合わせて1台の仮想ディスクとして使用するディスクアレイ技術、特に、RAID−0(ストライピング)との差異が明確でない。また、当該記録再生装置においては、分割したデータの読み出しの高速化については考慮されていない。
本発明では、一側面として、格納部に格納された時系列データの読み出しの高速化を図る技術を提供する。
ストレージシステムは、データ格納部、区間格納部、検索部、読出部を含む。データ格納部は、時系列のデータが分割されたデータを示す分割データを格納する。区間格納部は、分割データを識別する識別情報と、分割データの開始時刻及び終了時刻を示す区間の情報とを関連付けた情報を格納する。検索部は、第1の時刻を取得し、区間格納部から、第1の時刻と第1の時刻を所定時間経過した第2の時刻との間の区間に重複する区間の検索を行い、検索を行った区間に対する分割データの識別情報を取得する。読出部は、データ格納部から、取得した識別情報に対応する分割データを取得し、取得した分割データを時刻順に読み出す。
本発明によれば、一側面として、格納部に格納された時系列データの読み出しの高速化を図ることができる。
本実施形態におけるストレージシステムの一例を示す。 本実施形態におけるストリームデータの一例を示す。 本実施形態におけるストリームデータの蓄積に関するストリームストレージシステムの一例を示す。 本実施形態におけるストレージプロキシの初期化処理に関するブロック図である。 本実施形態におけるストレージプロキシの書き込み・掃出し処理に関するブロック図である。 本実施形態におけるメタデータサーバのブロック図である。 本実施形態における区間管理表の一例を示す。 本実施形態におけるストリームデータの再生に関するストリームストレージシステムの一例を示す。 本実施形態における再生クライアントのブロック図である。 本実施形態における再生シーケンスの一例を示す。 本実施形態における再生クライアントによる再生のための問合せフローの一例を示す。 本実施形態におけるマージツリーの一例を示す。 本実施形態におけるマージツリーの節点構造の一例を示す。 本実施形態におけるマージツリーからのイベントブロックの読み出し処理フローの一例を示す。 本実施形態における、遅延状態フラグが「遅延あり」としてマージツリーに追加されている節点について、イベントブロックの読み出しが完了した場合の処理フローの一例を示す。 本実施形態におけるメタデータサーバの区間検索処理フローの一例を示す。 図16のS43の詳細フローの一例を示す。 図17のS54の詳細フローの一例を示す。 図17のS58の詳細フローの一例を示す。 本実施形態における「次の開始時刻」の決定方法について説明するための図である。 本実施形態における「次の開始時刻」の決定する処理フローの一例を示す。 本実施形態に係るプログラムを実行するコンピュータのハードウェア環境の構成ブロック図である。
RTAP向けストレージには、インメモリデータベース(In−Memory Database)やカラム指向DB(Database)が使用されている。特にカラム指向DBは、注目しているデータのカラムを読み出すことで高速読み出しができる点を利用して、データストリームの高速再生に用いられる場合がある。しかし、大量に蓄積したデータを丸ごと高速に再生するといった、ストリーム処理に特化したストレージ製品は今のところまだ見られない。
データストリーム処理実行環境は、クラウドのように利用ハードウェア量をオンデマンドで変更できる環境での活用を念頭に、その時々の利用可能リソースに見合った並列度で処理ができるようにしている。蓄積データにおいても、この特徴を活かすためには、その時々のリソースに見合った並列度で蓄積・再生できることが必要になる。
ストリームデータは時間的に一列に並んだデータ列である。この時間的な順序を保存するため、ファイルに追記する場合、書き込みが逐次化されてしまい、ストレージの書き込み性能に制約される。複数のディスク(n台)を束ねて使用するRAID(Redundant Arrays of Inexpensive Disks)技術は、ディスク単体の書き込み速度のn倍を実現するものである。しかし、ストリームデータの流量の変化によって必要な資源量(例えば、ディスク量)を動的に変化させることはできない。
ストリームデータの流量が増大した場合には、負荷分散器(ロードバランサ)で受け口となるサーバを増やすことが考えられる。そこで、負荷分散器と組み合わせた場合において、データの受け口が別々のサーバとなった場合にもストリームデータが適切に蓄積できることが求められる。また、蓄積技術と対となる技術として、蓄積形態に応じたデータの再構成技術が必要である。
また、全データをメモリ上に一括して配置し、ストリーム順に整列させることは、莫大なシステムリソース(メモリ、CPUパワー)を必要とするため現実的ではない。したがって、ストリームの一部分を成すデータを増加的に再構成して整列させることで、現実的なシステムリソースの元でデータを出力していくことが必要である。
上記ストリームの一部分を成すデータを増加的に再構成して整列させる処理を高速に行うことも求められる。
そこで、本実施形態では、格納部に格納された時系列データの読み出しの高速化を図ることができるストレージシステムを提供する。
図1は、本実施形態におけるストレージシステムの一例を示す。ストレージシステム1は、データ格納部2、区間格納部3、検索部4、読出部5を含む。
データ格納部2は、時系列のデータが分割されたデータを示す分割データを格納する。データ格納部2の一例として、ストレージノード16が挙げられる。
区間格納部3は、分割データを識別する識別情報と、分割データの開始時刻及び終了時刻を示す区間の情報とを関連付けた情報を格納する。区間格納部3の一例として、区間管理表44が挙げられる。
検索部4は、第1の時刻を取得し、区間格納部3から、第1の時刻と第1の時刻を所定時間経過した第2の時刻との間の区間に重複する区間の検索を行い、検索を行った区間に対する分割データの識別情報を取得する。検索部4の一例として、メタデータサーバ15が挙げられる。
読出部5は、データ格納部2から、取得した識別情報に対応する分割データを取得し、取得した分割データを時刻順に読み出す。読出部5の一例として、再生クライアント50が挙げられる。
このように構成することにより、格納部に格納された時系列データの読み出しの高速化を図ることができる。
検索部4は、重複する区間に含まれない分割データであって第2の時刻より遅く、終了時刻以前の分割データのうち、最も早い開始時刻を取得し、取得した開始時刻を用いて、次の検索を行う。
このように構成することにより、並列処理を実現することができる。
読出部5は、データ格納部2からの取得が完了した分割データのうち、最も早い開始時刻に対応する識別情報で特定される分割データを読み出す。
このように構成することにより、より開始時間の早い分割データから順に読出しを行うことができる。
ストレージシステム1は、さらに、負荷分散アルゴリズムを用いて、時系列のデータを振り分ける振分部を含む。このように構成することにより、大流量のストリームデータを分散して並列に格納することができるので、ストリームデータの蓄積処理の高速化を図ることができる。
本実施形態の一例では、大流量のストリームを捌くために以下の仕組みを前提とする。
負荷分散器(ロードバランサ)が存在し、ストリームのデータを複数の宛先ノードに分配する。
分配されたストリームのデータには、送信元の送信時刻、負荷分散器の受信時刻、送信時刻、または宛先ノードでの受信時刻のタイムスタンプの少なくとも1つが付けられる。また、本実施形態では、容量、性能を自在に拡縮できる分散オブジェクトストレージを用いる。
図2は、本実施形態におけるストリームデータの一例を示す。ストリームデータは、所定間隔で区切られた時系列のデータである。この区切られた各データ(イベント)は、タイムスタンプを含むヘッダと、データ本体を含む。なお、タイムスタンプは、イベントの通番で代用してもよい。また、ストリームデータには、ストリームを識別する情報(ストリーム名)が付与されている。
図3は、本実施形態におけるストリームデータの蓄積に関するストリームストレージシステムの一例を示す。ストリームストレージシステム11は、負荷分散器12、ストレージプロキシ13、メタデータサーバ15、ストレージノード16を含む。
クライアント10は、センサ等のデバイスである。クライアント10は、負荷分散器12とインターネット等の通信ネットワークを介して接続されている。負荷分散器12は、各ストレージプロキシ13と通信可能なように接続されている。各ストレージプロキシ13は、メタデータサーバ15と通信可能なように接続されている。各ストレージプロキシ13は、各ストレージノード16と通信可能なように接続されている。
負荷分散器12は、クライアント10に単一のURL(Uniform Resource Locator)を見せつつ、クライアント10からのアクセス要求を、負荷分散アルゴリズムを用いて、異なるストレージプロキシ13に分散させる。ストレージプロキシ13が1ノードだけの構成またはクライアント10側で均等にストレージプロキシ13をアクセスする場合、負荷分散器12を省略することができる。負荷分散アルゴリズムとしては、ラウンドロビン方法、最小コネクション方法、最速レスポンス方法等を用いることができる。
ストレージノード16は、分散オブジェクトストレージを構成するオブジェクトサーバに相当する情報処理装置である。ストレージプロキシ13は、分散オブジェクトストレージを構成するプロキシサーバに相当するスレッド、プロセスまたは情報処理装置である。分散オブジェクトストレージとしては、例えば、Amazon S3(Amazon Simple Storage Service)やOpenStack Swiftがよく知られている。
ストレージプロキシ13は、クライアント10から送信されたデータ(イベント)を、一時的に、所定の容量保持する内部バッファメモリ領域14を有する。ストレージプロキシ13は、クライアント10の要求を受信し、その要求に対する応答を返す。また、ストレージプロキシ13は、クライアント10から送信されたデータと、その格納する先のストレージノード16との対応付けたテーブルを記憶装置に保持している。ストレージプロキシ13は、1つのストリームに対して、1以上存在してもよい。
メタデータサーバ15は、記録時の動的なストレージプロキシ13の増減を吸収する機能、及びストリームデータに対して時刻を指定して再生する機能を有する。
ストレージノード16は、データを格納する領域を有する情報処理装置である。
図4は、本実施形態におけるストレージプロキシの初期化処理に関するブロック図である。ストレージプロキシ13は、1つのストリームに対して、1つでもよいし、複数存在してもよい。各ストレージプロキシ13は、内部コンポーネント21、API(Application Program Interface)ディスパッチ部22、初期化処理部23、ユニーク名決定部24を含む。ストレージプロキシ13毎に、内部コンポーネント21、API(Application Program Interface)ディスパッチ部22、初期化処理部23、ユニーク名決定部24は以下の処理を行う。
APIディスパッチ部22は、ストレージプロキシ13が有する種々のAPIを管理し、要求に応じてまたは所定のタイミング等でAPIを呼び出す。内部コンポーネント21は、ストレージプロキシ13上で動作する、上位ミドルウェア側のコンポーネントであり、ストレージの初期化、ストリームの記録、再生において適切なAPIを呼び出すものである。
初期化処理部23は、ストリーム毎に、APIディスパッチ部22により初期化APIが呼び出されることにより、内部バッファメモリ領域14のうち、イベントを一時的に保持する領域をストリーム毎に初期化する。
内部バッファ管理部31は、ストリーム名設定APIにより読み出されると、受信したストリームデータからそのストリームのストリーム名を読み出し、内部バッファメモリ領域14内のストリーム名格納領域に設定する。
また、初期化処理部23は、内部バッファメモリ領域14に格納された開始時刻、終了時刻を初期化する。また、初期化処理部23は、内部バッファメモリ領域14に格納されたイベントブロックについての通番(シーケンス番号)を“0”で初期化する。
初期化処理部23は、ユニーク名決定部24を呼び出す。ユニーク名決定部24は、他のストレージプロキシ13の名前と被らないユニークな名前を内部バッファメモリ領域14内のユニーク名を格納する領域に格納する。このとき、ユニークな名前の設定には、以下の方法のいずれかを選択することができる。第1の方法として、メタデータサーバ15が現在動作中の全てのストレージプロキシ13の名前を管理する場合、各ストレージプロキシ13は起動時にメタデータサーバ15に名付けを要求する。メタデータサーバ15は、ユニークな名前を生成し、その生成したユニーク名を返す。第2の方法として、ストレージプロキシ13は、十分大きな桁数を持つ乱数によって、実用上ユニークと考えてよい名前を自ら設定してもよい。第3の方法として、ストレージプロキシ13のIP(Internet Protocol)アドレスをユニーク名に用いてもよい。
図5は、本実施形態におけるストレージプロキシの書き込み・掃出し処理に関するブロック図である。ストレージプロキシ13毎に、内部コンポーネント21、APIディスパッチ部22、内部バッファ管理部31、イベントブロック名生成部32は以下の処理を行う。
内部バッファ管理部31は、イベント受信時において、APIディスパッチ部22からイベント書き込みAPIまたは掃出しAPIが呼び出されることにより動作する。内部バッファ管理部31は、イベント受信時において、負荷分散器12からのストリームデータの書き込みを内部バッファメモリ領域14にバッファリングし、適切なサイズのイベントブロックにパッキングする。イベントブロック長を大きくするとスループットは増大するが、書き込みに要する時間が長くなる。逆に、イベントブロック長を小さくすると、スループットが減少するが、書き込みに要する時間は短くなる。
内部バッファメモリ領域14が空のときに、内部バッファメモリ領域14へのイベントの書き込みを行う場合、内部バッファ管理部31は、そのイベントのタイムスタンプを開始時刻と終了時刻に設定する。内部バッファメモリ領域14に既にイベントが書き込まれているときに、イベントの書き込みを行う場合、内部バッファ管理部31は、そのイベントのタイムスタンプを終了時刻に設定する。以下で述べる内部バッファの掃出しが行われると、内部バッファメモリ領域14と開始・終了時刻情報は消去される。あるいは、開始時刻と終了時刻は掃出し時に一括して設定されることもできる。詳細は後述する。
イベントブロックへのパッキングと掃出しの仕方は以下の方法があり、仕様に応じて組み合わせることができる。
第1のパッキング・掃出し方法としては、イベントブロックの総データ量を予め固定しておき、イベントブロックの総データ量の上限を超える書き込みが来た場合に、内部バッファ管理部31は、イベントブロックの掃き出しを行う方法がある。
第2のパッキング・掃出し方法としては、イベント数を予め固定しておき、イベント数の上限に達した場合に、内部バッファ管理部31は、ブロックの掃出しを行う方法がある。
第3のパッキング・掃出し方法としては、イベントの滞在時間の上限を予め設定しておき、先頭のイベントの受信時間から上限の滞在時間が経過した場合に、内部バッファ管理部31は、ブロックの掃出しを行う方法がある。
第4のパッキング・掃出し方法としては、外部のアプリケーションからAPIを用いて明示的に掃出し要求が来た場合に、内部バッファ管理部31は、イベントブロックの掃出しを行う方法がある。
内部バッファ管理部31は、イベントブロック名生成部32にイベントブロック名を問い合わせる。すると、イベントブロック名生成部32は、イベントブロックにユニークな名前を付ける。ここで、イベントブロック名生成部32は、イベントブロックの名前を付ける場合、内部バッファメモリ領域14から、ストリーム名と、ストレージプロキシ自身のユニーク名と、イベントブロックについてのシーケンス番号とを読み出す。イベントブロック名生成部32は、その読み出したストリーム名とユニーク名とシーケンス番号とを組にしたユニークな情報を、イベントブロック名とする。イベントブロック名生成部32は、そのイベントブロック名を内部バッファ管理部31に返信する。さらに、イベントブロック名生成部32は、内部バッファメモリ領域14に格納されているシーケンス番号をインクリメントする。
内部バッファ管理部31は、データ転送要求を受けた場合には、イベントブロック名から定まるストレージノード16に対して、イベントブロック名と内部バッファメモリ領域14に保持していたイベントブロックを送信して、書き込みを依頼する。
内部バッファ管理部31は、イベントブロックを構成するイベントデータの開始時刻と終了時刻を区間情報とし、内部バッファメモリ領域14の開始時刻と終了時刻を更新する。内部バッファ管理部31は、[区間情報、イベントブロック名]をメタデータサーバ15に送信する。なお、再生時に、区間の開始と終了をイベント番号で指定する場合には、時刻をイベント番号に読み替えればよい。
図6は、本実施形態におけるメタデータサーバのブロック図である。メタデータサーバ15は、受信・応答部41、区間木検索部42、区間木管理部43、区間管理表44を含む。区間木管理表44は、ストリーム毎に管理されている。
受信・応答部41は、LAN(Local Area Network)を介して、再生クライアント50からの要求を受信する。その要求に応じて、受信・応答部41は、区間木検索部42に対して、重なり区間の検索を要求したり、次の開始時刻の問い合わせをする。ここで、重なり区間とは、検索要求のあった時刻区間内(開始時刻〜終了時刻)にオーバラップするイベントブロックを含む区間をいう。受信・応答部41は、その依頼結果を、要求に対する応答として再生クライアント50に返信する。また、受信・応答部41は、再生クライアント50からの要求に応じて、区間の追加または削除を区間木管理部43に要求する。
区間木検索部42は、受信・応答部41から送信された要求または問い合わせに含まれるストリーム名を取得し、そのストリーム名に対応する区間管理表44を選択する。区間木検索部42は、受信・応答部41から送信された要求または問い合わせに応じて、その選択した区間管理表44から、読み取り位置を指定したエントリのボディ情報(図7の「終了時刻」、「イベントブロック名」、「管理用データ構造」等の情報)を取得する。
区間木管理部43は、受信・応答部41から送信された要求に含まれるストリーム名を取得し、そのストリーム名に対応する区間管理表44を選択する。区間木管理部43は、受信・応答部41から送信された要求に応じて、その選択した区間管理表44にエントリの追加または管理データ構造の更新を行う。
図7は、本実施形態における区間管理表の一例を示す。区間木は、ストリーム毎に別々に管理される。区間木管理部43は、時刻情報をキーとしてツリー構造で管理される区間管理表に「イベントブロック名」44−4、「開始時刻」44−2、「終了時刻」44−3を登録して管理する。区間管理表44の一例は、木構造の一種を採用したデータ構造で示される「区間木」である。区間管理表のエントリは、「レコード番号」44−1、「開始時刻」44−2、「終了時刻」44−3、「イベントブロック名」44−4、「管理用データ構造」44−5を含む。
「管理用データ構造」44−5は、区間管理を実現するアルゴリズムによって異なる。区間木が2色木(または赤黒木ともいう)の場合、「管理用データ構造」44−5は、二値の色情報、左部分木用レコード番号、右部分木用レコード構造、親レコード番号、自分と左右部分木を含めた最少開始時刻、自分と左右部分木を含めた最大終了時刻を含む。
区間管理表44に対する操作として、区間木管理部43には区間の追加、削除操作が実装され、区間木検索部42には区間の検索が実装されている。
区間の追加の場合には、区間木管理部43は、(開始時刻、終了時刻、イベントブロック名)が与えられたときに、図7で示すエントリを追加し、かつ、区間木の管理データ構造が以下の二色木条件を満たすように設定する。二分探索木が以下の二色木条件を満たす場合、二色木となる。
(1)各節点は、赤または黒のどちらかである。
(2)葉(葉の値は空(NIL)である)は全て黒である。
(3)ある接点が赤であれば、その子供は両方とも黒である。
(4)1つの節点からその子孫までのどの単純な経路も、同じ数だけ黒の節点を含む。
区間の削除の場合には、区間木管理部43は、削除対象となるエントリのレコード番号が与えられたときに、他のエントリの管理データ構造について二色木条件を満たしつつ、指定されたエントリを削除する。
区間の検索の場合には、区間木検索部42は、(開始時刻、終了時刻)が与えられたときに、区間木の管理データ構造から、この区間に重なる全ての区間情報(=レコード番号のリスト)を求める。
区間検索に関する手続きについては、メタデータサーバ15の検索処理で詳述する。なお、区間の追加と削除は、O(log n)(ここでnは区間の総数)の実行時間で実行でき、区間の検索は、O(klog n)(ここで、kは答えとなる区間の総数)の実行時間で実行できるため、区間の管理方法として望ましい。
次に、ストリームストレージシステム11の再生処理について詳述する。
図8は、本実施形態におけるストリームデータの再生に関するストリームストレージシステムの一例を示す。CEP(Complex Event Processing)エンジンは、RTAP処理の中核的なプログラムである。CEPエンジンまたはユーザアプリケーション等のアプリケーションプログラムは、ストリームストレージシステム11に蓄積されたストリームデータを、ストリームストレージ11のコンポーネントを通して取得する。このようにストリームデータを再生する情報処理装置を再生クライアント50と称する。また、CEPエンジンまたはユーザアプリケーションプログラム等の外部アプリケーションプログラムを、以下、外部アプリと称する。これらの外部アプリは、再生クライアント50上で動作する。
外部アプリがストリームを識別する情報を指定する。すると、再生クライアント50は、所定のAPIを用いて、その識別する情報に対応するストリームデータを、ストレージプロキシ13を介して、各ストレージノード16に分散されたストリームデータを特定することができる。
図9は、本実施形態における再生クライアントのブロック図である。再生クライアント50を用いたストリーム再生処理は、次のようになる。外部アプリ54は、再生クライアント50に対し、再生すべきストリームデータのイベントの取得を要求する。このとき、外部アプリ54は、再生クライアント50のAPIディスパッチ部51により、APIを呼び出して、再生すべきストリーム名、開始時刻、終了時刻を指定する。開始時刻と終了時刻は省略することができ、開始時刻と終了時刻を省略した場合には、ストリームの先頭データのタイムスタンプ、ストリームの最終データのタイムスタンプが代用される。
再生クライアント50は、例えば、以下のようなAPIを有しており、これらのAPIを用いて外部アプリ54が必要とするイベントを漏れなく取得することができる。
・再生する時刻の範囲(開始時刻と終了時刻)を設定するAPI
・指定した時刻区間内の全イベントを読み出したかをチェックするAPI
・ストリームの終端かどうかをチェックするAPI
・イベントを1つ取得するAPI
・ストリームの終端の時刻情報を更新するAPI(このAPIはストリームが非同期に書き込まれている状況で有用である。)
これらのAPIにより、マージツリー管理部52が動作する。マージツリー管理部52は、メタデータサーバ15に対して、再生すべきストリームデータの重なり区間及び次の開始時刻を問い合わせる。メタデータ15は、検索結果として、検索された重なり区間のリストと、次の開始時刻をマージツリー管理部52に返信する。
マージツリー管理部52は、ストレージプロキシ13を介して、重なり区間のリストに基づいて、ストレージノード16へイベントブロックの読み出し要求を行う。ストレージノード16から読み出したイベントブロックは、ストレージプロキシ13を介して、再生クライアント50のマージツリー格納領域53に格納される。マージツリーとは、二分木で形成されるデータ構造であって、ストレージノード16から読み出したイベントブロックをその二分木の節点に追加し、時刻キー順に整列させていくためのツリー状のデータ構造を示す。本実施形態では、二分木の一例として、二色木を利用している。再生クライアント50は、ストレージノード16から読み出したイベントブロックをマージツリーの節点上に格納する。
マージツリー管理部52は、マージツリー格納領域53に格納されたマージツリーについて節点の追加、削除、節点の検索を行なったり、マージツリーからイベントの読み出しを行う。
まずは、イベントブロックの読み出しについて説明する。外部アプリ54より再生の開始時刻と終了時刻が指定された場合、再生クライアント50は、その指定された範囲の時刻区間を区切って段階的にストリームストレージシステム11に問合せを行う。これについて、図10を用いて説明する。
図10は、本実施形態における再生シーケンスの一例を示す。再生クライアント50は、メタデータサーバ15に、負荷分散器12、ストレージプロキシ13を介して、再生すべきストリームデータの区間の検索を要求する(S1)。ここでは、再生クライアント50は、再生の開始時刻と開始時刻からΔ時刻経過後の区間を入力として、メタデータサーバ15に問い合わせる。
メタデータサーバ15は、再生クライアント50からの問い合わせに応じて、再生すべきストリームデータの区間検索処理を行う(S2)。ここでは、メタデータサーバ15は、問合せのあった再生すべきストリームデータの時刻区間内にオーバラップする区間情報を持つイベントブロック集合(すなわち、重なり区間)を、再生クライアント50に返答する。このとき、メタデータサーバ15は「次の開始時刻」の情報を、その返答に含める。
再生クライアント50は、メタデータサーバ15からの応答を受信する。すると、再生クライアント50は、その応答により得られたイベントブロック名を用いて、イベントブロックをストレージノード16から読み出す(S3、S4)。複数のイベントブロックを読み出し、マージツリーに統合する処理(以下に詳述)は逐次に行ってもよいし、並列(非同期)に行ってもよい。
再生クライアント50は、ストレージノード16から読み出したイベントブロックをマージツリーに統合する(S5)。ここで、イベントブロックの読み出しと、マージツリーへのイベントブロックの追加とは、遅延実行を用いて非同期に行うことができる。遅延実行については、後述する。
再生クライアント50は、メタデータサーバ15への問合せに対する応答において得られた「次の開始時刻」を開始時刻に設定し、開始時刻が終了時刻に満たない場合は、メタデータサーバ15に対して、さらに、再生すべきストリームデータの区間の検索を要求する(S1)。
図11は、本実施形態における再生クライアントによる再生のための問合せフローの一例を示す。上述したように、外部アプリ54は、再生クライアント50のAPIを呼び出して、再生すべきストリーム名、開始時刻、終了時刻を指定する。
再生クライアント50は、開始時刻をパラメータSTART_TIMEに設定する(S11)。START_TIME<終了時刻である場合(S12で「Yes」)、再生クライアント50は、START_TIMEにΔ時刻を加算した時刻を、パラメータEND_TIMEに設定する(S13)。ここで、Δは問い合わせのための最少時刻幅とする。
再生クライアント50は、区間(START_TIME、END_TIME)について、メタデータサーバ15に問合せをする(図10のS1に対応する)。メタデータサーバ15は、問合せのあった時刻区間内にオーバラップする区間情報を持つイベントブロックの名前の集合を、再生クライアント50に返答する。このとき、メタデータサーバ15は「次の開始時刻」の情報を返答に含める(図10のS2に対応する)。再生クライアント50は、メタデータサーバ15からの応答を受信すると、イベントブロックの名前の集合を、パラメータRESULT_LISTに設定し、「次の開始時刻」をパラメータNEXT_START_TIMEに設定する(S14)。「次の開始時刻」の決定方法については、図20、図21において後述する。
RESULT_LISTが空集合φでない場合(S15で「Yes」)、再生クライアント50は、RESULT_LISTから1つの要素(イベントブロック)を取り出し、パラメータBLOCK_NAMEに設定する。再生クライアント50は、RESULT_LISTの残りの要素を、RESULT_LISTに設定する(S16)。
再生クライアント50は、ストレージノード16から、BLOCK_NAMEに対応するイベントブロックを読み出す(図10のS3に対応する。)。再生クライアント50は、ストレージノード16から、読み出したイベントブロックをパラメータBLOCKに設定する(S17)。再生クライアント50は、そのBLOCKをマージツリーに登録する(S18)。
RESULT_LISTが空集合φになるまで、S16〜S18の処理を繰り返す。RESULT_LISTが空集合φになった場合(S15で「No」)、再生クライアント50は、NEXT_START_TIMEの値を、START_TIMEに設定し(S19)、S12の処理へ戻る。
START_TIME<終了時刻の間、再生クライアント50は、S12〜S19を繰り返す。START_TIME≧終了時刻となる場合(S12)、再生クライアント50は、イベントブロックの読み出し処理を終了する。
図12の再生問合せ処理は、図14の読み出し処理と非同期に実施すると再生開始時刻から再生終了時刻までの全ブロックをマージツリー、すなわち、メモリ上に保持することになる。そのため、データ量が莫大である場合にはシステムリソースを考慮したペースで当該再生問い合わせ処理を行うことが必要である。問合せのペースを調整する方法の一例として、読み出し処理で1ブロック分のデータを読み出したら、1ブロックをストレージノードから獲得するようにするものである。
次に、マージツリーからのイベントブロックの読み出しについて説明する。ストレージノード16から読み出されたイベントブロックは、マージツリーという、図12に示すようなデータ構造に合流される。図12において、白色の四角はイベントブロックを示し、丸は時刻キーを示し、ハッチングされた四角は遅延読み出し中のイベントブロックを示す。マージツリーの節点は、図13に示すようなデータ構造である。マージツリーの節点構造61は、「時刻キー」、「遅延状態フラグ」、「イベントブロック内配列のインデックス」、「イベントブロック」のデータ項目(フィールド)を含む。以下では、節点内部のフィールドを「フィールド名」で表す。また、そのフィールドの型は明示していない場合、名前から容易に推測できるものになる。例えば、「イベントブロック」とは、節点上のイベントブロック・フィールドのことを表し、メモリ上に読み込まれたイベントブロックの実体への参照型になる。
マージツリーに新しい節点を追加する処理は、図10及び図11で説明したイベントブロックの読み出し処理において行われる。イベントブロックの読み出し後にマージツリーに節点を追加する場合には、再生クライアント50は、以下のA1〜A4を前提として節点を初期化する。
(A1)時刻キーはブロックの先頭のイベントのタイムスタンプとする。
(A2)「遅延状態フラグ」は「遅延なし」とする。
(A3)「イベントブロック内配列のインデクス」は0(先頭)とする。
(図11のイベントブロックの読み出しループの1回目の回転について特別扱いが必要で、インデックスは開始時刻と同じかそれ以降のタイムスタンプを持つイベントまで進めておく。)
(A4)「イベントブロック」には読み出したイベントブロック実体の参照をセットする。
また、ブロックの読み出し完了前にマージツリーへの追加する場合には、再生クライアント50は、以下の(B1)、(B2)のように処理する。
(B1)時刻キーは、メタデータサーバ15から入手した区間情報のうちの開始時刻、とする。
(B2)「遅延状態フラグ」は「遅延あり」とする。
イベントブロックの読み出し後にマージツリーに節点を追加する場合及びブロックの読み出し完了前にマージツリーへの追加する場合のいずれも、時刻キーは設定されている。そのため、再生クライアント50は、マージツリーの適切な位置に追加節点を配置することができる。
図14は、本実施形態におけるマージツリーからのイベントブロックの読み出し処理フローの一例を示す。再生クライアント50は、マージツリーの最小時刻をキーとする節点Aを読み出し、かつ、接点Aをマージツリーから削除する(S21)。ここで、最小時刻が同じである節点が複数存在する場合、再生クライアント50は、イベントブロックの名前から大小関係を決定する。イベントブロックの名前はユニークであることが保証されているので、名前の順序を定めれば、節点同士の大小関係は一意に定まる。
節点Aについて、遅延状態フラグが「遅延あり」である場合(S22で「Yes」)、遅延状態フラグが「遅延なし」に変更されるまで、再生クライアント50は、その節点に対応するイベントブロックの読み出しを一時停止する(S23)。ここで、節点Aに対応するイベントブロックは、図12に示すように、ストレージノード16からの読み出し中なので、再生クライアント50はその読み出しが完了するまで、節点Aに対応するイベントブロックの読み出しを行わない。
遅延状態フラグが「遅延なし」である場合(S22で「Yes」または、S23の処理後)、再生クライアント50は、節点Aの「イベントブロック内配列のインデックス」の指しているイベントブロックを読み出す。再生クライアント50は、このイベントブロックを出力ストリームに書き出す(S24)。
再生クライアント50は、節点Aの「イベントブロック内配列のインデックス」を1増やす(S25)。
「イベントブロック内配列のインデックス」が、イベントブロックのイベント数を越えた場合(S26で「Yes」)、再生クライアント50は、S21の処理へ戻る。
「イベントブロック内配列のインデックス」が、イベントブロックのイベント数を越えていない場合(S26で「No」)、再生クライアント50は、次の処理を行う。すなわち、再生クライアント50は、節点Aの「イベントブロックのインデックス」の指しているイベントブロックのタイムスタンプKを読み出す(S27)。
再生クライアント50は、読み出したタイムスタンプKをキー、バリューを節点A(更新後)とする節点をマージツリーに追加する(S28)。
再生クライアント50は、マージツリーが空でない間(S29で「No」)、S21〜S28の処理を繰り返す。
遅延状態フラグが「遅延あり」としてマージツリーに追加されている節点について、イベントブロックの読み出しが完了した場合、再生クライアント50は、図15に示す処理を行う。すなわち、再生クライアント50は、節点の遅延状態フラグ「遅延あり」を「遅延なし」に更新する(S31)。
再生クライアント50は、「イベントブロック内配列のインデックス」を0にする(S32)。さらに、再生クライアント50は、「イベントブロック」にイベントブロックへの参照を設定する(S33)。
このように、再生クライアント50は、ストレージノード16からの読み出し中のイベントブロックについては、再生クライアント50は読み出しが完了するまで読み出しをしない。一方で、再生クライアント50は、読み出し完了のイベントブロックを、時刻のより早い方から順に読み出す。したがって、ストレージノード16からの読み出し中のイベントブロックについて遅延が発生する。しかし、読み出し完了のイベントブロックの節点は、その遅延しているイベントブロックとは独立して、読み出されてマージツリーから削除されつつ、マージツリーへのイベントブロックの追加が行われる。このように、イベントブロックの読み出しと、マージツリーへのイベントブロックの追加とを非同期に行うことを遅延実行という。
次に、メタデータサーバ15の区間木検索部42による区間検索に関する処理について説明する。
図16は、本実施形態におけるメタデータサーバの区間検索処理フローの一例を示す。区間木検索部42は、受信・応答部41からの要求または問い合わせに応じて、区間検索を行う。このとき、受信・応答部41から区間木検索部42へ、開始時刻s、終了時刻eが渡される。
区間木検索部42は、区間管理表44からツリーのルートインデックスを検索し、ルートインデックスをインデックス変数vに設定する。また、区間木検索部42は、インデックスリスト変数Lを初期化する(S41)。
区間木検索部42は、区間管理表44を用いて、インデックス変数vの参照先が葉(NIL)であるか否かを判定する。ここで、2色木において、葉は、値を持たない(NIL)ノードである。インデックス変数vの参照先が葉(NIL)である場合(S42で「Yes」)、区間木検索部42は、空のインデックスリスト変数Lを受信・応答部41に返す。
インデックス変数vの参照先が葉(NIL)でない場合(S42で「No」)、区間木検索部42は、関数serchAllFromNode(s, e, v)を呼び出して、全ノードを対象に検索し(S43)、その検索結果を受信・応答部41に返す。S43の詳細については、図17を用いて説明する。
図17は、図16のS43の詳細フローの一例を示す。区間木検索部42は、関数serchAllFromNode(s, e, v)に、開始時刻s、終了時刻e、インデックス変数vを渡す。区間木検索部42は、インデックスリスト変数Lを初期化する(S51)。
区間木検索部42は、区間管理表44から、インデックス変数vの参照先のエントリが区間[開始時刻s,終了時刻e]と重なるか否かを判定する(S52)。インデックス変数vの参照先のエントリが区間[開始時刻s,終了時刻e]と重ならない場合(S52で「No」)、S54へ進む。
インデックス変数vの参照先のエントリが区間[開始時刻s,終了時刻e]と重なる場合(S52で「Yes」)、区間木検索部42は、インデックス変数vと、インデックスリスト変数Lとの和集合を、インデックスリスト変数Lに設定する(S53)。
区間木検索部42は、関数checkOverlapOnLeftSubtreeを呼び出して、インデックス変数vの左側のツリーが、区間[開始時刻s,終了時刻e]と重なるかをチェックする(S54)。S54の詳細については、図18で説明する。インデックス変数vの左側が、区間[開始時刻s,終了時刻e]と重ならない場合(S55で「No」)、区間木検索部42は、S58の処理へ進む。
インデックス変数vの左側が、区間[開始時刻s,終了時刻e]と重なる場合(S55で「Yes」)、区間木検索部42は、インデックス変数vの参照先エントリの左部分木インデックスを変数vLに設定する(S56)。
区間木検索部42は、関数serchAllFromNodeを呼び出して、開始時刻s、終了時刻e、変数vLを引き渡して、ノードを検索行い、インデックス変数vの参照先エントリの左部分木インデックスについて、図17の検索処理を再帰的に行う。区間木検索部42は、serchAllFromNode(s, e, vL)の結果と、インデックスリスト変数Lとの和集合を、インデックスリスト変数Lに設定する(S57)。
区間木検索部42は、インデックス変数vの右側が、区間[開始時刻s,終了時刻e]と重なるかをチェックする(S58)。S58の詳細については、図19で説明する。インデックス変数vの右側が、区間[開始時刻s,終了時刻e]と重ならない場合(S59で「No」)、区間木検索部42は、本フローを終了する。
インデックス変数vの右側が、区間[開始時刻s,終了時刻e]と重なる場合(S59で「Yes」)、区間木検索部42は、インデックス変数vの参照先エントリの右部分木インデックスを変数vRに設定する(S60)。
区間木検索部42は、関数serchAllFromNodeを呼び出して、開始時刻s、終了時刻e、変数vRを引き渡してノードを検索行い、インデックス変数vの参照先エントリの左部分木インデックスについて、図17の検索処理を再帰的に行う。区間木検索部42は、serchAllFromNode(s, e, vR)の結果と、インデックスリスト変数Lとの和集合を、インデックスリスト変数Lに設定する(S61)。
図18は、図17のS54の詳細フローの一例を示す。checkOverlapOnLeftSubtreeの呼び出し時には、インデックス変数v, 開始時刻s, 終了時刻eが引き渡される。
区間木検索部42は、インデックス変数vの左部分木のインデックスを、インデックス変数pに設定する(S71)。区間木検索部42は、インデックス変数pの参照先が葉(NILノード)か否かを判定する(S72)。
インデックス変数pの参照先が葉(NILノード)である場合(S72で「Yes」)、区間木検索部42は、次の処理を行う。すなわち、区間木検索部42は、関数checkOverlapOnLeftSubtreeによる、インデックス変数vの左側は[開始時刻s,終了時刻e]と重なるかというチェック結果として、「false」を返す。
インデックス変数pの参照先が葉(NILノード)でない場合(S72で「No」)、区間木検索部42は、インデックス変数pの参照先エントリの最大終了時刻を変数maxに設定し、インデックス変数pの参照先エントリの最小開始時刻を変数minに設定する(S73)。
変数min>終了時刻eまたは開始時刻s>変数maxである場合(S74で「No」)、区間木検索部42は、次の処理を行う。すなわち、区間木検索部42は、関数checkOverlapOnLeftSubtreeによる、インデックス変数vの左側は[開始時刻s,終了時刻e]と重なるかというチェック結果として、「false」を返す。
変数min≦終了時刻eかつ開始時刻s≦変数maxである場合(S74で「Yes」)、次の処理を行う。すなわち、区間木検索部42は、関数checkOverlapOnLeftSubtreeによる、インデックス変数vの左側は[開始時刻s,終了時刻e]と重なるかというチェック結果として、「True」を返す。
図19は、図17のS58の詳細フローの一例を示す。関数checkOverlapOnRightSubtreeの呼び出し時には、インデックス変数v, 開始時刻s, 終了時刻eが引き渡される。
区間木検索部42は、インデックス変数vの右部分木のインデックスを、インデックス変数pに設定する(S81)。区間木検索部42は、インデックス変数pの参照先が葉(NILノード)か否かを判定する(S82)。
インデックス変数pの参照先が葉(NILノード)である場合(S82で「Yes」)、区間木検索部42は、次の処理を行う。すなわち、区間木検索部42は、関数checkOverlapOnRightSubtreeによる、インデックス変数vの右側は[開始時刻s,終了時刻e]と重なるかというチェック結果として、「false」を返す。
インデックス変数pの参照先が葉(NILノード)でない場合(S82で「No」)、区間木検索部42は、インデックス変数pの参照先エントリの最大終了時刻を変数maxに設定し、インデックス変数pの参照先エントリの最小開始時刻を変数minに設定する(S83)。
変数min>終了時刻eまたは開始時刻s>変数maxである場合(S84で「No」)、区間木検索部42は、次の処理を行う。すなわち、区間木検索部42は、関数checkOverlapOnRightSubtreeによる、インデックス変数vの右側は[開始時刻s,終了時刻e]と重なるかというチェック結果として、「false」を返す。
変数min≦終了時刻eかつ開始時刻s≦変数maxである場合(S84で「Yes」)、次の処理を行う。すなわち、区間木検索部42は、関数checkOverlapOnRightSubtreeによる、インデックス変数vの右側は[開始時刻s,終了時刻e]と重なるかというチェック結果として、「True」を返す。
次に、図10のS2において、再生クライアント50への応答に含めた「次の開始時刻」、具体的には、図11のS14において、決定した「次の開始時刻」の取得方法について、図20、図21を用いて説明する。
予め、再生クライアント50がメタデータサーバ15に(再生開始時刻、再生終了時刻)をパラメータとして含む問い合せメッセージを送信したとする。このとき、メタデータサーバ15は、メッセージを受信したとき、そのメッセージが区間検索に関するものである場合、区間木検索部42の実行を行う。
区間木検索部42は、searchAllFromRoot(再生開始時刻、再生終了時刻)を実行し、その区間にオーバラップするエントリのインデックス一覧(リスト)を求める。区間木検索部42は、そのインデックス一覧(リスト)から、各エントリの(ブロック名、開始時刻、終了時刻)の3つ組データを全エントリ分読み出し、3つ組みデータのリストL1を生成する。
区間木検索部42は、searchMinAfter(再生終了時刻)を実行し、「次の開始時刻」を決定する。メタデータサーバ15は、リストL1と、決定した「次の開始時刻」をペアとして、再生クライアント50に返答する。
図20は、本実施形態における「次の開始時刻」の決定方法について説明するための図である。図20において、searchMinAfterは、「次の開始時刻」を返す関数である。横方向の太線71,72,73,74,75は、イベントブロックを示す。
区間(START_TIME,START_TIME+Δ)にオーバラップするイベントブロックの集合をSとする。集合Sに含まれないイベントブロックであって、開始時刻がSTART_TIME+Δより大きく、かつ問合せの終了時刻END_TIME以前のイベントブロックが存在するとき、このようなイベントブロックのうち最少の開始時刻を問合せの「次の開始時刻」として定義する。
「次の開始時刻」について、例えば、図20の(1)問い合わせ区間を例に説明する。ここで、イベントブロック71〜75はいずれも、問合せの終了時刻END_TIME以前のイベントブロックであるとする。区間(START_TIME,START_TIME+Δ)にオーバラップするイベントブロックの集合Sは、イベントブロック71,72である。このとき、集合Sに含まれないイベントブロックであって、開始時刻がSTART_TIME+Δより大きく、かつ問合せの終了時刻END_TIME以前のイベントブロックは、イベントブロック73〜75である。このうち、最小の開始時刻を有するのはイベントブロック73であるから、この最小の開始時刻が「次の開始時刻」と決定される。
このようにすることにより、「次の開始時刻」より前の時刻で問合せを行っても、集合Sのサブセットしか得られないため、問合せ回数を最適化することができる。
図21は、本実施形態における「次の開始時刻」の決定する処理フローの一例を示す。区間木検索部42は、区間管理表44からツリーのルートインデックスを検索し、ルートインデックスをインデックス変数vに設定する。また、区間木検索部42は、時刻変数tを“∞”で初期化する(S91)。
区間木検索部42は、区間管理表44を用いて、インデックス変数vの参照先が葉(NIL)であるか否かを判定する(S92)。インデックス変数vの参照先が葉(NIL)でない場合(S92で「No」)、区間木検索部42は、インデックス変数vの参照先のエントリの開始時刻を変数uに設定する(S93)。
変数u>入力時刻qの場合(S94で「No」)、区間木検索部42は、インデックス変数vの参照先エントリの右部分木インデックスをインデックス変数vに設定する(S95)。
変数u≦入力時刻qの場合(S94で「Yes」)、区間木検索部42は、インデックス変数vの参照先エントリの左部分木インデックスをインデックス変数vに設定する(S96)。ここで、時刻変数t>変数uの場合(S97で「Yes」)、区間木検索部42は、変数uに設定されている開始時刻を時刻変数tに設定する(S98)。
インデックス変数vの参照先が葉(NIL)になるまで、S93〜S98の処理を繰り返す。インデックス変数vの参照先が葉(NIL)になった場合(S92で「Yes」)、区間木検索部42は、時刻変数tを受信・応答部41に返す。
図22は、本実施形態に係るプログラムを実行するコンピュータのハードウェア環境の構成ブロック図である。コンピュータ80は、負荷分散器12、ストレージプロキシ13、メタデータサーバ15、ストレージノード16、クライアント10、再生クライアント50である。コンピュータ80は、CPU82、ROM83、RAM86、通信I/F84、記憶装置87、出力I/F81、入力I/F85、読み取り装置88、バス89、出力機器91、入力機器92によって構成されている。
ここで、CPUは、中央演算装置を示す。ROMは、リードオンリメモリを示す。RAMは、ランダムアクセスメモリを示す。I/Fは、インターフェースを示す。バス89には、CPU82、ROM83、RAM86、通信I/F84、記憶装置87、出力I/F81、入力I/F85、及び読み取り装置88が接続されている。読み取り装置88は、可搬型記録媒体を読み出す装置である。出力機器91は、出力I/F81に接続されている。入力機器92は、入力I/F85に接続にされている。
記憶装置87としては、ハードディスク、フラッシュメモリ、磁気ディスクなど様々な形式の記憶装置を使用することができる。記憶装置87またはROM83には、本実施形態に係るプログラム等が格納されている。ストレージプロキシ13の場合、記憶装置87には、例えば、内部バッファメモリ領域14がある。また、メタデータサーバ15の場合、記憶装置87またはROM83には、例えば、区間管理表44が格納されている。ストレージノード16の場合、記憶装置87には、例えば、イベントブロックを格納する領域がある。再生クライアント50の場合、記憶装置87には、例えば、マージツリー格納領域53がある。
CPU82は、記憶装置87等に格納した上記実施形態で説明した処理を実現するプログラムを読み出し、当該プログラムを実行する。
上記実施形態で説明した処理を実現するプログラムは、プログラム提供者側から通信ネットワーク90、および通信I/F84を介して、例えば記憶装置87に格納されてもよい。また、上記実施形態で説明した処理を実現するプログラムは、市販され、流通している可搬型記憶媒体に格納されていてもよい。この場合、この可搬型記憶媒体は読み取り装置88にセットされて、CPU82によってそのプログラムが読み出されて、実行されてもよい。可搬型記憶媒体としてはCD−ROM、フレキシブルディスク、光ディスク、光磁気ディスク、ICカード、USBメモリ装置など様々な形式の記憶媒体を使用することができる。このような記憶媒体に格納されたプログラムが読み取り装置88によって読み取られる。
また、入力機器92には、キーボード、マウス、電子カメラ、ウェブカメラ、マイク、スキャナ、センサ、タブレットなどを用いることが可能である。また、出力機器91には、ディスプレイ、プリンタ、スピーカなどを用いることが可能である。また、ネットワーク90は、インターネット、LAN、WAN、専用線、有線、無線等の通信網であってよい。
本実施形態によれば、可変大流量のストリームデータを高速に蓄積・再生することができる。まず、以下のようにして、可変大流量のストリームデータを高速に蓄積することができる。ストリームは、負荷分散器12によって複数のストレージプロキシ13に分配される。したがって、負荷分散器12はネットワークの性能限界までストリームのデータを捌くことができる。したがって、ストリームデータの蓄積は、ストレージノードの台数を十分に用意すれば負荷分散器のネットワーク性能限界まで達成できる。
また、ストレージプロキシ13は、イベントブロックという塊にイベントデータをパックする。これによって、ストレージの最大スループットを達成できるサイズでストレージへの書き込みを行える。また、ストレージの書き込みは複数のストレージプロキシ13によって並列して行えるため、ストレージノード16の台数に比例する書き込み性能が得られる。すなわち、ストレージプロキシとストレージノードの台数はストリームの流量に応じて変化させることができる。
また、データを固めたイベントブロックがストレージ上のどこに存在しているかをメタデータサーバ15によって管理することでストレージノード16の台数が動的に拡縮することに対応している。メタデータサーバ15の管理対象は、イベントブロック名と区間情報である。
次に、高速に再生する技術上の利点は以下の通りである。再生クライアント50は、イベントブロックに分割されたデータから元のストリームを再構成することができる。再生に必要なイベントブロックは負荷分散器12を通して獲得することで、ネットワークリソースを有効に利用することができる。
また、以下のようにして、時刻(または、イベント通番)が指定されたとき、その時刻(またはイベント通番)からストリームを再生することができる。具体的には、時刻が指定されたとき、その時刻のデータを含む可能性のあるイベントブロックの最小集合を求めることができる。
また、以下のようにして、再生に必要なシステムリソース量を適切に制御し、現実的なシステムリソースの元で再生処理を行うことができる。再生クライアント50は、再生時間が長い場合には、再生時刻範囲にあるイベントブロックを一括して読み出すことは行わない。再生開始時刻からΔ時間分のイベントブロックを読み出し、少なくともΔ時間分のデータを保持するマージツリーを作る。マージツリーから部分ストリームを再構成し、再生する。次の時刻は、前の再生時刻+Δ時間とするのではなく、「次の開始時刻」を区間木から決定される。これによって、Δが短い場合でも効率を落とさずに、次の部分ストリームを再構成できる。このように増加的(インクリメンタル)処理ができ、かつ、システムリソースに無駄がない点は新規かつ優位である。
また、本実施形態のマージツリーを用いることにより、ストレージノード16からの読み出し中のイベントブロックについては、再生クライアント50は読み出しが完了するまで読み出しをせず、読み出し完了のイベントブロックを次々と読み出す。このようにマージツリーを用いた読み出し処理は並列処理であり、処理の単位は節点からのデータの読み出しという極めて粒度の細かいものである点で高速性を実現することができる。したがって、ストリームデータの再生は、ストレージノードの並列読み出しにより高速化される。
なお、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
上記実施形態に関し、さらに以下の付記を開示する。
(付記1) 時系列のデータが分割されたデータを示す分割データを格納するデータ格納部と、
前記分割データを識別する識別情報と、前記分割データの開始時刻及び終了時刻を示す区間の情報とを関連付けた情報を格納する区間格納部と、
第1の時刻を取得し、前記区間格納部から、該第1の時刻と該第1の時刻を所定時間経過した第2の時刻との間の区間に重複する区間の検索を行い、該検索を行った該区間に対する前記分割データの識別情報を取得する検索部と、
前記データ格納部から、取得した前記識別情報に対応する前記分割データを取得し、取得した分割データを時刻順に読み出す読出部と、
を備えることを特徴とするストレージシステム。
(付記2) 前記検索部は、前記重複する区間に含まれない前記分割データであって前記第2の時刻より遅く、前記終了時刻以前の該分割データのうち、最も早い開始時刻を取得し、取得した該開始時刻を用いて、次の前記検索を行う
ことを特徴とする付記1に記載のストレージシステム。
(付記3) 前記読出部は、前記データ格納部からの取得が完了した前記分割データのうち、最も早い前記開始時刻に対応する前記識別情報で特定される前記分割データを読み出す
ことを特徴とする付記1または2に記載のストレージシステム。
(付記4) 前記ストレージシステムは、さらに、
負荷分散アルゴリズムを用いて、前記時系列のデータを振り分ける振分部
を備えることを特徴とする付記1〜3のうちいずれか1項に記載のストレージシステム。
(付記5) ストレージ装置に接続された情報処理装置の制御プログラムにおいて、
前記情報処理装置に、
第1の時刻を取得させ、
時系列のデータが分割されたデータを示す分割データを識別する識別情報と、前記分割データの開始時刻及び終了時刻を示す区間の情報とを関連付けた情報を格納する区間格納部から、該第1の時刻と該第1の時刻を所定時間経過した第2の時刻との間の区間に重複する区間の検索を要求させ、
前記要求に応じて、前記ストレージ装置が、前記区間格納部から、該第1の時刻と該第1の時刻を所定時間経過した第2の時刻との間の区間に重複する区間の検索を行った該区間に対する前記分割データの識別情報を取得させ、
前記分割データを格納するデータ格納部から、取得した前記識別情報に対応する前記分割データを取得し、取得した分割データを時刻順に読み出させることを特徴とする情報処理装置の制御プログラム。
(付記6) 前記検索を行った前記区間に対する前記分割データの識別情報を取得する場合、前記重複する区間に含まれない前記分割データであって前記第2の時刻より遅く、前記終了時刻以前の該分割データのうち、最も早い開始時刻を取得し、取得した該開始時刻を用いて、次の前記検索を行う
ことを特徴とする付記5に記載の検索プログラム。
(付記7) 前記取得した分割データを時刻順に読み出す場合、前記データ格納部からの取得が完了した前記分割データのうち、最も早い前記開始時刻に対応する前記識別情報で特定される前記分割データを読み出す
ことを特徴とする付記5または6に記載の検索プログラム。
(付記8) ストレージ装置と、前記ストレージ装置に接続された情報処理装置を有するストレージシステムの制御方法において、
前記情報処理装置が、第1の時刻を取得し、
前記情報処理装置が、時系列のデータが分割されたデータを示す分割データを識別する識別情報と、前記分割データの開始時刻及び終了時刻を示す区間の情報とを関連付けた情報を格納する区間格納部から、該第1の時刻と該第1の時刻を所定時間経過した第2の時刻との間の区間に重複する区間の検索を要求し、
前記要求に応じて、前記ストレージ装置が、前記区間格納部から、該第1の時刻と該第1の時刻を所定時間経過した第2の時刻との間の区間に重複する区間の検索を行った該区間に対する前記分割データの識別情報を応答し、
前記情報処理装置が、前記分割データを格納するデータ格納部から、取得した前記識別情報に対応する前記分割データを取得し、取得した分割データを時刻順に読み出すことを特徴とするストレージシステムの制御方法。
(付記9) 前記ストレージ装置は、前記検索を行った前記区間に対する前記分割データの識別情報を取得する場合、前記重複する区間に含まれない前記分割データであって前記第2の時刻より遅く、前記終了時刻以前の該分割データのうち、最も早い開始時刻を取得し、取得した該開始時刻を用いて、次の前記検索を行う
ことを特徴とする付記8に記載のストレージシステムの制御方法。
(付記10) 前記情報処理装置は、前記取得した分割データを時刻順に読み出す場合、前記データ格納部からの取得が完了した前記分割データのうち、最も早い前記開始時刻に対応する前記識別情報で特定される前記分割データを読み出す
ことを特徴とする付記8または9に記載のストレージシステムの制御方法。
(付記11) 前記ストレージシステムの制御方法において、
振分部は、負荷分散アルゴリズムを用いて、前記時系列のデータを振り分ける
を備えることを特徴とする付記8〜10のうちいずれか1項に記載のストレージシステムの制御方法。
1 ストレージシステム
2 データ格納部
3 区間格納部
4 検索部
5 読出部
10 クライアント
11 ストリームストレージシステム
12 負荷分散器
13 ストレージプロキシ
14 内部バッファメモリ領域
15 メタデータサーバ
16 ストレージノード

Claims (5)

  1. 時系列のデータが分割されたデータを示す分割データを格納するデータ格納部と、
    前記分割データを識別する識別情報と、前記分割データの開始時刻及び終了時刻を示す区間の情報とを関連付けた情報を格納する区間格納部と、
    第1の時刻を取得し、前記区間格納部から、該第1の時刻と該第1の時刻を所定時間経過した第2の時刻との間の区間に重複する区間の検索を行い、該検索を行った該区間に対する前記分割データの識別情報を取得する検索部と、
    前記データ格納部から、取得した前記識別情報に対応する前記分割データを取得し、取得した分割データを時刻順に読み出す読出部と、
    を備え
    前記検索部は、前記重複する区間に含まれない前記分割データであって前記第2の時刻より遅く、前記終了時刻以前の該分割データのうち、最も早い開始時刻を取得し、取得した該開始時刻を用いて、次の前記検索を行う
    ことを特徴とするストレージシステム。
  2. 前記読出部は、前記データ格納部からの取得が完了した前記分割データのうち、最も早い前記開始時刻に対応する前記識別情報で特定される前記分割データを読み出す
    ことを特徴とする請求項に記載のストレージシステム。
  3. 前記ストレージシステムは、さらに、
    負荷分散アルゴリズムを用いて、前記時系列のデータを振り分ける振分部
    を備えることを特徴とする請求項1または2に記載のストレージシステム。
  4. ストレージ装置に接続された情報処理装置の制御プログラムにおいて、
    前記情報処理装置に、
    第1の時刻を取得させ、
    時系列のデータが分割されたデータを示す分割データを識別する識別情報と、前記分割データの開始時刻及び終了時刻を示す区間の情報とを関連付けた情報を格納する区間格納部から、該第1の時刻と該第1の時刻を所定時間経過した第2の時刻との間の区間に重複する区間の検索を要求させ、
    前記要求に応じて、前記ストレージ装置が、前記区間格納部から、該第1の時刻と該第1の時刻を所定時間経過した第2の時刻との間の区間に重複する区間の検索を行った該区間に対する前記分割データの識別情報を取得させ、
    前記分割データを格納するデータ格納部から、取得した前記識別情報に対応する前記分割データを取得し、取得した分割データを時刻順に読み出させ
    前記検索を行った前記区間に対する前記分割データの識別情報の取得では、前記重複する区間に含まれない前記分割データであって前記第2の時刻より遅く、前記終了時刻以前の該分割データのうち、最も早い開始時刻を取得し、取得した該開始時刻を用いて、次の前記検索を行う
    ことを特徴とする情報処理装置の制御プログラム。
  5. ストレージ装置と、前記ストレージ装置に接続された情報処理装置を有するストレージシステムの制御方法において、
    前記情報処理装置が、第1の時刻を取得し、
    前記情報処理装置が、時系列のデータが分割されたデータを示す分割データを識別する識別情報と、前記分割データの開始時刻及び終了時刻を示す区間の情報とを関連付けた情報を格納する区間格納部から、該第1の時刻と該第1の時刻を所定時間経過した第2の時刻との間の区間に重複する区間の検索を要求し、
    前記要求に応じて、前記ストレージ装置が、前記区間格納部から、該第1の時刻と該第1の時刻を所定時間経過した第2の時刻との間の区間に重複する区間の検索を行った該区間に対する前記分割データの識別情報を応答し、
    前記情報処理装置が、前記分割データを格納するデータ格納部から、取得した前記識別情報に対応する前記分割データを取得し、取得した分割データを時刻順に読み出し、
    前記ストレージ装置は、前記検索を行った前記区間に対する前記分割データの識別情報の応答において、前記重複する区間に含まれない前記分割データであって前記第2の時刻より遅く、前記終了時刻以前の該分割データのうち、最も早い開始時刻を取得し、取得した該開始時刻を用いて、次の前記検索を行う
    ことを特徴とするストレージシステムの制御方法。
JP2013074802A 2013-03-29 2013-03-29 ストレージシステム、情報処理装置の制御プログラム及びストレージシステムの制御方法 Expired - Fee Related JP6011421B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013074802A JP6011421B2 (ja) 2013-03-29 2013-03-29 ストレージシステム、情報処理装置の制御プログラム及びストレージシステムの制御方法
PCT/JP2014/058417 WO2014157275A1 (ja) 2013-03-29 2014-03-26 ストレージシステム、情報処理装置の制御プログラム及びストレージシステムの制御方法
US14/844,483 US10268398B2 (en) 2013-03-29 2015-09-03 Storage system, recording medium for storing control program and control method for storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013074802A JP6011421B2 (ja) 2013-03-29 2013-03-29 ストレージシステム、情報処理装置の制御プログラム及びストレージシステムの制御方法

Publications (2)

Publication Number Publication Date
JP2014199581A JP2014199581A (ja) 2014-10-23
JP6011421B2 true JP6011421B2 (ja) 2016-10-19

Family

ID=51624241

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013074802A Expired - Fee Related JP6011421B2 (ja) 2013-03-29 2013-03-29 ストレージシステム、情報処理装置の制御プログラム及びストレージシステムの制御方法

Country Status (3)

Country Link
US (1) US10268398B2 (ja)
JP (1) JP6011421B2 (ja)
WO (1) WO2014157275A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9430508B2 (en) 2013-12-30 2016-08-30 Microsoft Technology Licensing, Llc Disk optimized paging for column oriented databases
US9898398B2 (en) 2013-12-30 2018-02-20 Microsoft Technology Licensing, Llc Re-use of invalidated data in buffers
US9723054B2 (en) 2013-12-30 2017-08-01 Microsoft Technology Licensing, Llc Hierarchical organization for scale-out cluster
US9672082B2 (en) * 2015-10-21 2017-06-06 Oracle International Corporation Guaranteeing the event order for multi-stage processing in distributed systems
JP2017182665A (ja) * 2016-03-31 2017-10-05 富士通株式会社 情報処理装置、データ提供システム、データ提供方法、及びデータ提供プログラム
US10216688B2 (en) * 2016-05-27 2019-02-26 Avago Technologies International Sales Pte. Limited Systems and methods for accurate transfer margin communication
JP6691302B2 (ja) 2017-01-20 2020-04-28 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
WO2018169430A1 (en) 2017-03-17 2018-09-20 Oracle International Corporation Integrating logic in micro batch based event processing systems
WO2018169429A1 (en) 2017-03-17 2018-09-20 Oracle International Corporation Framework for the deployment of event-based applications
US10402241B1 (en) * 2017-04-27 2019-09-03 EMC IP Holding Company LLC Forwarding metadata proxy server for asynchronous metadata operations
US11120908B2 (en) 2018-09-20 2021-09-14 Abiomed, Inc. Data storage and retrieval system for non-contiguous medical device operational data
US11151104B2 (en) 2019-05-16 2021-10-19 Microsoft Technology Licensing, Llc Time systems as data
US11645628B2 (en) 2019-05-16 2023-05-09 Microsoft Technology Licensing, Llc Translation of time between calendar systems
US11061525B2 (en) 2019-05-16 2021-07-13 Microsoft Technology Licensing, Llc Digital map calendar user interface
US11120407B2 (en) * 2019-05-16 2021-09-14 Microsoft Technology Licensing, Llc Real time collaboration in calendar
US11514405B1 (en) 2021-05-14 2022-11-29 Microsoft Technology Licensing, Llc Map calendar graphical user interface with dynamic time mold functionality
US11681424B2 (en) 2021-05-14 2023-06-20 Microsoft Technology Licensing, Llc Map calendar graphical user interface with content-variable view levels
CN114546625B (zh) * 2022-03-01 2024-10-15 苏州浪潮智能科技有限公司 一种跨平台的异步消息处理方法、装置、设备、存储介质
US11928336B2 (en) * 2022-03-03 2024-03-12 Samsung Electronics Co., Ltd. Systems and methods for heterogeneous storage systems
JP2024011011A (ja) * 2022-07-13 2024-01-25 富士通株式会社 エントリ作成方法およびエントリ作成プログラム
CN116089437B (zh) * 2022-11-30 2023-10-03 荣耀终端有限公司 一种数据处理方法及服务器

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5222235A (en) * 1990-02-01 1993-06-22 Bmc Software, Inc. Databases system for permitting concurrent indexing and reloading of data by early simulating the reload process to determine final locations of the data
CA2067576C (en) * 1991-07-10 1998-04-14 Jimmie D. Edrington Dynamic load balancing for a multiprocessor pipeline
JP2001148832A (ja) 1999-11-22 2001-05-29 Victor Co Of Japan Ltd 記録再生装置
US7000026B2 (en) * 2000-12-22 2006-02-14 Nortel Networks Limited Multi-channel sharing in a high-capacity network
JP4099973B2 (ja) * 2001-10-30 2008-06-11 松下電器産業株式会社 映像データ送信方法及び映像データ受信方法、並びに映像監視システム
DE10337825A1 (de) * 2002-11-15 2004-06-03 Siemens Ag Verfahren zur Erzeugung eines Bitstroms aus einem Indizierungsbaum
JP2007288299A (ja) * 2006-04-13 2007-11-01 Hitachi Ltd 配信システム、情報処理装置、配信方法及びプログラム
JP5381336B2 (ja) * 2009-05-28 2014-01-08 富士通株式会社 管理プログラム、管理装置および管理方法
JP5423553B2 (ja) * 2010-04-09 2014-02-19 株式会社日立製作所 データベース管理方法、計算機、センサネットワークシステム及びデータベース検索プログラム

Also Published As

Publication number Publication date
US20150378619A1 (en) 2015-12-31
JP2014199581A (ja) 2014-10-23
WO2014157275A1 (ja) 2014-10-02
US10268398B2 (en) 2019-04-23

Similar Documents

Publication Publication Date Title
JP6011421B2 (ja) ストレージシステム、情報処理装置の制御プログラム及びストレージシステムの制御方法
JP5822452B2 (ja) ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム
US10262005B2 (en) Method, server and system for managing content in content delivery network
US9305069B2 (en) Method and system for uploading data into a distributed storage system
CN102004760B (zh) 多媒体文件的存储和播放方法、相关装置及系统
JP2008526109A (ja) ネットワークパケットキャプチャ分散ストレージシステムの方法及び機器
CN108776682B (zh) 基于对象存储的随机读写对象的方法和系统
CN111782134B (zh) 数据处理方法、装置、系统和计算机可读存储介质
JP5236129B2 (ja) ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム
CN104079600B (zh) 文件存储方法、装置、访问客户端及元数据服务器系统
CN108108247A (zh) 分布式图片存储服务系统和方法
CN105763604B (zh) 轻量级分布式文件系统及恢复下载文件原名的方法
CN108205468A (zh) 一种面向海量视频图像的分布式系统及实现方法
CN109189341A (zh) 分布式存储系统的目录负载均衡方法、装置、设备及介质
KR101530441B1 (ko) 컬럼 기반 데이터 처리 방법 및 장치
CN104281486B (zh) 一种虚拟机处理方法和装置
CN105426125A (zh) 一种数据存储方法及装置
JP2005018100A (ja) ネットワークファイルサーバ、情報処理装置並びにプログラム
JP5174255B2 (ja) ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム
CN117873405B (zh) 数据存储方法、装置、计算机设备和存储介质
JP6033370B2 (ja) ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム
CN202025315U (zh) 固定内容的数据资源管理系统
Cicalese et al. The design of a distributed key-value store for petascale hot storage in data acquisition systems
US20150088943A1 (en) Media-Aware File System and Method
US11586595B1 (en) Space-efficient techniques for generating unique instances of data objects

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160802

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160905

R150 Certificate of patent or registration of utility model

Ref document number: 6011421

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees