JP5439014B2 - データ処理システム、その処理方法、及び計算機 - Google Patents

データ処理システム、その処理方法、及び計算機 Download PDF

Info

Publication number
JP5439014B2
JP5439014B2 JP2009095632A JP2009095632A JP5439014B2 JP 5439014 B2 JP5439014 B2 JP 5439014B2 JP 2009095632 A JP2009095632 A JP 2009095632A JP 2009095632 A JP2009095632 A JP 2009095632A JP 5439014 B2 JP5439014 B2 JP 5439014B2
Authority
JP
Japan
Prior art keywords
tuple
recovery point
unit
stream data
computer
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.)
Active
Application number
JP2009095632A
Other languages
English (en)
Other versions
JP2010244486A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2009095632A priority Critical patent/JP5439014B2/ja
Priority to US12/536,601 priority patent/US8276019B2/en
Publication of JP2010244486A publication Critical patent/JP2010244486A/ja
Application granted granted Critical
Publication of JP5439014B2 publication Critical patent/JP5439014B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating

Description

本発明は、データ処理システム、特にストリームデータをリアルタイムに処理するデータ処理技術に関する。
従来、企業情報システムのデータ管理には、主に、データベース管理システム(Data Base Management System、以下、DBMS)が用いられてきた。DBMSは、処理対象のデータをディスク装置に格納し、格納したデータに対して処理を実行する。これに対して、時々刻々と到着するデータ(タプル)をリアルタイムに処理するデータ処理システムに対する要求が高まっている。例えば、株取引を支援する金融アプリケーションでは、株価の変動に対し、いかに迅速に反応できるかがシステムの重要な課題の一つである。従来のDBMSのように株式のデータを一旦ディスク装置に格納してから、該データに関して検索を行うシステムでは、データの格納とそれに続く検索処理が株価変動のスピードに追いつくことができず、ビジネスチャンスを逃してしまうことになりかねない。
このようなリアルタイムデータ処理に好適なデータ処理システムとして、ストリームデータ処理システムが提案されている。例えば、非特許文献1にストリームデータ処理システムSTREAMが開示されている。
ストリームデータ処理システムでは、従来のDBMSとは異なり、予めデータ処理の方法を規定するクエリをシステムに登録し、到着したデータをサーバ装置の揮発メモリに格納して、データ処理を実行する。ここでのストリームデータとは、時々刻々と変化する株価のデータ、小売業でのPOSデータ、計算機システム管理におけるエラーログ、センサやRFID(Radio Frequency Identification)などから発生するセンシングデータなどの、時系列データである。
STREAMでは、システムに到来し続けるストリームデータを、最新10分間などの時間の幅、もしくは最新1000件などの個数の幅を指定して、ストリームデータの一部を切り取りながらデータ処理を行う。ストリームデータの一部を切り取るために、ウィンドウと呼ばれる概念が導入されている。ウィンドウの指定を含むクエリの記述言語の好適な例としては、非特許文献1に開示されているコンティニュアス・クエリー言語(Continuous Query Language:以下CQL)をあげることができる。
ストリームデータ処理システムに障害が発生した場合、サーバ装置の揮発メモリに格納されているデータが消失する可能性がある。そのため、ストリームデータ処理システムの障害復旧においては、この揮発メモリに格納されているデータを含めて回復する必要がある。
ストリームデータ処理システムの障害復旧の方式には、各種の方式が提案されているが、その一つとして、入力ストリームを再投入して、データ処理を再開する方式がある。この方式では、システムの障害に備えて入力ストリームをバックアップしておき、障害発生後に、入力ストリームを再投入することで、システムを復旧する。ストリームデータ処理システムの障害復旧については、非特許文献2に各種の方式が開示されている。
また、特許文献1には、ストリームデータを不揮発性メモリにアーカイブしておき、ストリームデータ処理の高信頼化を図る手法が開示されている。
特開2006−338432号公報
R.Motwani,J.Widom,A.Arasu,B.Babcock,S.Babu,M.Datar,G.Manku,C.Olston,J.Rosenstein and R.Varma著:"Query Processing, Resource Management,and Approximation in a Data STREAM Management System"(CIDR2003) Jeong-Hyon Hwang、Magdalena Balazinska、Alexander Rasin、Ugur Cetintemel、Michael Stonebraker、Stan Zdonik、"High-Availability Algorithms for Distributed STREAM Processing"(ICDE2005)
ストリームデータ処理システムの障害復旧においては、障害が発生しなければ出力されたタプルが、障害により出力されなくなる出力タプルの欠落、が発生しないことが望ましい。
入力ストリームを再投入して、データ処理を再開する方式では、再投入する入力ストリームが少ないと、出力タプルの欠落が発生する可能性がある。そこで、出力タプルの欠落を回避するには、十分な量の入力ストリームを再投入する必要があるが、これまで、出力タプルの欠落を回避するために必要な、入力ストリームの再投入の量を決定する方法ついて開示をしたものはなかった。
本発明の目的は、ストリームデータ処理システムの障害復旧において、出力タプルの欠落を防止することが可能なストリームデータ処理システム、計算機、及び処理方法を提供することである。
また、本発明の他の目的は、入力ストリームを再投入して、データ処理を再開する場合に、出力タプルの欠落の回避に必要な、入力ストリームの再投入の量を適宜決定するストリームデータ処理システム、計算機、及び処理方法を提供することにある。
上記の目的を達成するため、本発明においては、タイムスタンプが付与されたストリームデータであるタプルを処理するストリームデータ処理システムを、第1のタプルを受信するストリームデータ受信部と、受信した第1のタプルに対するデータ処理を実行して第2のタプルを生成するクエリ実行部と、このクエリ実行部によって生成した第2のタプルを送信するストリームデータ送信部と、第2のタプルの生成に用いられた第1のタプルのうち最古のタプル、又はそれ以前のタプルを特定する情報であるストリームデータ処理システムの回復ポイントを決定する回復ポイント管理部を備えた構成とする。
また、上記の目的を達成するため、本発明においては、クエリ実行部は、生成した第2のタプルに対して、第2のタプルの生成に用いられた第1のタプルのうち最古のタプル、又はそれ以前のタプルを特定する情報であるタプルの回復ポイントの属性値を付与し、回復ポイント管理部は、ストリームデータ処理システムが管理する全てのタプルの回復ポイントの属性値から最古のものを検索してシステムの回復ポイントを決定する構成とする。
本願明細書で開示される発明のうち、代表的な発明の概要は以下の通りである。
ストリームデータ処理システムが管理しているタプルの生成に用いられたタプルのうち、最古のタプル、あるいは、それ以前のタプル、を特定する情報であるストリームデータ処理システムの回復ポイントを決定する回復ポイント管理部、を設ける。
また、タプルに対して、該タプルの生成に用いられたタプルのうち、最古のタプル、あるいは、それ以前のタプル、を特定する情報であるタプルの回復ポイントの属性値を付与し、回復ポイント管理部は、全てのタプルの回復ポイントから、最古の回復ポイントを検索し、上述のストリームデータ処理システムの回復ポイントを決定する。
さらに、クエリ実行部に対して、クエリ実行部がデータ処理の対象とするタプルの回復ポイントのうち、最古の回復ポイントのタプル、あるいは、それ以前のタプルを特定する情報であるクエリ実行部の回復ポイントの属性値を付与し、クエリ実行部は、生成する第2のタプルの回復ポイントとして、上述のクエリ実行部の回復ポイントの属性値を設定し、回復ポイント管理部は、全てのクエリ実行部の回復ポイントから、最も古い回復ポイントを検索し、上述のストリームデータ処理システムの回復ポイントを決定する。
本発明を用いることにより、ストリームデータ処理システムにおいて、出力タプルの欠落を回避でき、データ処理の信頼性の向上を図ることができる。
第1の実施例のストリームデータ処理システムの構成を示す図である。 ストリームデータ処理システムに登録する情報を説明する図である。 ストリームデータ処理システムに登録する情報を説明する図である。 ストリームデータ処理システムに登録する情報を説明する図である。 ストリームデータ処理システムの動作を説明する図である。 ストリームデータ処理システムの動作を説明する図である。 ストリームデータ処理システムの動作を説明する図である。 第1の実施例のシステムの動作を説明する図である。 第1の実施例のシステムの動作を説明する図である。 第1の実施例のシステムの動作を説明する図である。 第1の実施例のシステムの動作を説明する図である。 第1の実施例に係わる、データ管理部の動作を示すフローチャートである。 第1の実施例に係わる、バックアップ制御部の動作を示すフローチャート図である。 第1の実施例に係わる、ストリームバックアップファイルの格納内容を例示する図である。 第1の実施例に係わる、制御部の動作を示すフローチャート図である。 第1の実施例に係わる、クエリ実行部の動作を示すフローチャート図である。 第1の実施例に係わる、タプル管理テーブルの格納内容を例示する図である。 第1の実施例に係わる、クエリ回復ポイント管理テーブルの格納内容を例示する図である。 第1の実施例に係わる、回復ポイント管理部の動作を示すフローチャート図である。 第1の実施例に係わる、クエリ実行部の動作を示すフローチャート図である。 第1の実施例に係わる、回復ポイント受信部の動作を示すフローチャート図である。 第1の実施例に係わる、バックアップ制御部の動作を示すフローチャート図である。 第1の実施例に係わる、ハートビート送信部の動作を示すフローチャート図である。 第1の実施例に係わる、データ管理部の動作を示すフローチャート図である。 第2の実施例に係わる、ストリームデータ処理を2台の計算機で2重化する場合のシステム構成図である。 第2の実施例に係わる、ストリームデータ処理を2台の計算機で2重化する場合のストリームデータ処理システムの一具体例を示す図である。 第2の実施例に係わる、判断部の動作を示すフローチャート図である。 第1の実施例に係わる、チェックポイントファイルの格納内容を例示する図である。 第2の実施例に係わる、ステータスファイルの格納内容を例示する図である。 第2の実施例に係わる、回復ポイント管理テーブルの格納内容を例示する図である。 第1の実施例に係わる、出力先設定ファイルの格納内容を例示する図である。 第3の実施例に係わる、ストリームデータ処理システムの構成を示す図である。 第3の実施例に係わる、障害復旧判断部の動作を示すフローチャート図である。 第1の実施例の変形例に係わる、回復ポイント管理部の動作を示すフローチャート図である。 第二の計算機111でストリームデータをバックアップする第4の実施例のシステムを示す図である。 第4の実施例に係わる、ストリームデータ送信部102からタプルを受信した場合の、ストリームデータ受信部112の動作を示すフローチャート図である。 第4の実施例に係わる、ストリームデータ受信部112が起動した際の、動作を示すフローチャート図である。
以下、本発明の各実施例を図面に従い説明する。なお、以下の説明にあっては、種々の実施例をストリームデータ処理システム、処理方法、処理を実行する計算機として説明するが、本発明はこれらのシステム、方法、及び計算機で実行されプログラムの発明でもある点に留意されたい。以下の説明において、特に説明をしないが、各計算機で実行されるプログラムは、計算機の記憶部に予め記憶されるか、図示説明が省略される入力装置と、適当な可搬記憶媒体を使って計算機に導入したり、ネットワークを介して適宜ダウンロードして計算機内に導入することも可能であることは言うまでもない。また、主にプログラムを称して「クエリ実行部」のように「部」を用いたが、これは「クエリ実行機能」、或いは「クエリ実行手段」等「機能」や「手段」を使って表現しても良い。
図1に、ストリームデータ処理システムの好適な第1の実現例を示す。図1のストリームデータ処理システムは、第一の計算機100と第二の計算機111から構成され、第一の計算機100と第二の計算機111はネットワーク130によって接続される。又、131はストリームデータソースを示している。第一の計算機の107、第二の計算機の122は共に処理部である中央処理部(Central Processing Unit:以下、CPU)を示し、110、125は共に記憶部であるディスク装置(Disk Drive:以下、Disk)を示す。
第一の計算機の数番101から105で示す各部、および、オペレーティングシステム106は、第一の計算機100のメモリに格納され、CPU107によって実行されるプログラムである。上述の通り、これらのプログラムは可搬型記憶媒体や、ネットワークを介して導入することができることはいうまでもない。以下のプログラムも全て同様である。
第二の計算機の数番112から120の各部、および、オペレーティングシステム121は、第二の計算機111のメモリに格納され、CPU122によって実行されるプログラムである。
第一の計算機の数番101から105の各部、および、第二の計算機の数番112から120の各部の動作の概要は以下の通りである。
データ管理部101は、ストリームデータソース131から時系列データを受信し、その時系列データをタプルとして、バックアップ制御部103と、ストリームデータ送信部102に送信するプログラムである。また、データ管理部101は、ハートビート受信部105から、第二の計算機が復旧した旨の通知を受けた場合に、チェックポイントファイル109から、最新の回復ポイントの情報を読み出し、その回復ポイント以降のタプルをストリームデータ送信部102に送信するプログラムである。なお、このストリームデータ送信部102をタプル送信部と呼ぶ場合がある点留意されたい。
バックアップ制御部103は、データ管理部101から受信したタプルを、ストリームバックアップファイル108に格納するプログラムである。また、バックアップ制御部103は、回復ポイント受信部104から、回復ポイントの情報を受信した場合に、その回復ポイント以前のタプルをストリームバックアップファイル108から削除するプログラムである。
ストリームデータ送信部102は、データ管理部101から受信したタプルを、第二の計算機111のストリームデータ受信部112に送信するプログラムである。
回復ポイント受信部104は、第二の計算機111の回復ポイント送信部115から回復ポイントの情報を受信し、その回復ポイントの情報をチェックポイントファイル109に格納し、回復ポイントの情報をバックアップ制御部103に通知するプログラムである。
ハートビート受信部105は、一定の時間、ハートビート送信部117からの通信ができない場合に、第二の計算機に障害が発生したと判断し、第二の計算機に障害が発生したと判断した後に、ハートビート送信部117から通信を受信した場合に、第二の計算機が復旧したと判断し、第二の計算機が復旧したことを、データ管理部101に通知するプログラムである
ストリームデータ受信部112は、ストリームデータ送信部102から受信したタプルを制御部113に送信するプログラムである。
制御部113は、ストリームデータ送信部112またはクエリ実行部116から受信したタプルを、クエリ実行部116またはストリームデータ送信部118に送信するプログラムである。
クエリ実行部116は、制御部113からタプルを受信し、予め設定されたデータ処理であるクエリを実行し、生成したタプルを制御部113に送信するプログラムである。
回復ポイント管理部119は、クエリ実行部116と通信し、ストリームデータ処理システムの回復ポイントを決定するプログラムである。
タイマ120は、一定の時間間隔で、回復ポイント管理部119と、ハートビート送信部117に通知をするプログラムである。
回復ポイント送信部115は、回復ポイント管理部119から受信した回復ポイントの情報を、回復ポイント受信部104に送信するプログラムである。
ハートビート送信部117は、第一の計算機のハートビート受信部105と通信をするプログラムである。
ストリームデータ送信部118は、制御部113から受信したタプルを送信するプログラムである。
なお、図1では二台の計算機を用いる構成図を示したが、後で他の実施例として説明するように、101から105の各部、112から120の各部を一台の計算機で動作させることも可能である。
図2、図3、図4は、第二計算機のクエリ定義ファイル124とクエリ管理テーブル114に格納される内容を例示する図である。図2は、入力ストリームのデータ形式を定義する文であり、ストリームデータ受信部112が受信する入力ストリームの名称が「STOCK」であり、入力ストリームのタプルが、時刻(time_stamp)と整数型の価格(price)から構成されることを示している。
図3は、クエリQ1を定義する文であり、クエリQ1は、STOCKストリームの4つのタプルから(STOCK[rows4])、価格の最小値(MIN(STOCK.price))と、価格の最大値(MAX(STOCK.price))を計算して出力することを示している。
図4は、クエリQ2を定義する文であり、クエリQ2は、クエリQ1から受け取った3つのタプル(Q1[rows3])から、最小値の平均値(AVG(Q1.minumum))と、最大値の平均値(AVG(Q1.maximum))を計算することを示している。
図5、図6、図7を用いて、クエリQ1とクエリQ2の動作を説明する。図5は、クエリQ1が10時0秒から10時3秒のタプルを管理し、クエリQ2が10時1秒から10時3秒のタプルを管理している状況で、10時4秒のタプルが新たに入力される例を示している。なお、各クエリに入力されるタプルを入力タプル、受信タプル、あるいは第1のタプルと呼び、各クエリが出力するタプルを出力タプル、生成タプル、あるいは第2のタプルと呼ぶ場合がある。クエリQ1の出力タプルは、クエリQ2の入力タプルとなることは言うまでもない。
さて、図6に示すように、クエリQ1は、10時0秒の入力タプルを破棄し、10時1秒から10時4秒の、4つの入力タプルの最小値(501)と最大値(504)を記載した出力タプルを生成する。
クエリQ1が生成したタプルを受け取ったクエリQ2は、図6に示すように、10時1秒の入力タプルを破棄し、10時2秒から10時4秒の入力タプルを管理する。
さらに、図7に示すように、クエリQ2は、10時2秒から10時4秒の入力タプルで、最小値の平均値(500)と、最大値の平均値(503)を計算し、出力タプルを生成する。
ここで、図7の状況において、計算機2がダウンし、クエリQ1とクエリQ2が管理しているタプルの情報が消失するケースを想定する。
このケースにおいて、図7の第二の計算機が管理する最古のタプル(10時1秒の入力タプル)から、入力ストリームを再投入した場合、タプルの欠落が発生する。なぜなら、図7において、クエリQ2は、10時0秒の入力タプルを用いて生成された10時3秒の生成タプルを管理しており、10時1秒のタプルから入力ストリームを再投入したのでは、クエリQ2の10時3秒のタプルは復旧できないからである。
以上に説明したように、ストリームデータ処理では、前段のクエリで生成された生成タプルが、後段のクエリで利用されるため、あるタプルが前段のクエリで破棄されても、そのタプルを用いて生成されたタプルが後段のクエリに残る。そのため、出力タプルの欠落を回避するには、第二の計算機が管理するタプルの生成に関与したタプルのうち、最古のタプル、あるいは、それ以前のタプルに遡って、入力ストリームを再投入する必要がある。
図8、図9、図10を用いて、第1の実施例の概要を説明する。本実施例では、クエリ実行部116にクエリ実行部の回復ポイント801の属性を付与し、更に各タプルにタプルの回復ポイント802の属性を付与する。クエリ実行部の回復ポイント801は、該クエリ実行部がデータ処理の対象とする入力タプルの回復ポイントのうち最古のタプル、またはそれ以前のタプルを特定する情報である。また、出力タプルの回復ポイントは、該タプルの生成に用いられた入力タプルのうち最古のタプル、またはそれ以前のタプルを特定する情報である。
図8は、図9と図10で用いるクエリの凡例を示す図である。図8に示すように、クエリを示す四角の右上に、クエリ実行部の回復ポイント801の属性値を表記する。また、タプルの最下段に、タプルの回復ポイントの属性値802を表記する。
本実施例では、クエリ実行部116は、生成するタプルに対して、該クエリ実行部の回復ポイント801を、生成するタプルの回復ポイント802に設定する。図9の例では、クエリQ2が管理するタプルの回復ポイント802として、クエリQ1の回復ポイント801(9時55分)を設定している。
クエリ実行部116は、クエリ実行部の回復ポイント801を定期的に更新する。図10において、クエリQ1は、クエリ実行部の回復ポイント801を、9時55分から10時0秒に更新している。これは、クエリQ1が管理する全てのタプルの回復ポイント802を検索し、そのうち最古の値を設定することで行う。また、クエリQ2は、クエリ実行部の回復ポイント801を9時50分から9時55分に更新している。これは、クエリQ2が管理するタプルの回復ポイント802を検索し、そのうち最古の値を設定することで行う。
本実施例では、クエリ実行部の回復ポイント801のうち、最古の回復ポイントを、ストリーム処理システムの回復ポイントとする。図10の例では、クエリ2の回復ポイント801の9時55分がストリームデータ処理システムの回復ポイントになる。
この回復ポイントは、該ストリームデータ処理システムが管理しているタプルの生成に用いられたタプルのうち、最古のタプル、あるいは、それ以前のタプル、を特定する情報である。この回復ポイントから、入力ストリームを再投入すれば、出力タプルの欠落なく、ストリームデータ処理システムを復旧できる。
以上に述べたように、本実施例では各種の回復ポイントを定期的に更新する。この定期的な更新により、タプルの回復ポイント802、クエリ実行部の回復ポイント801、および、ストリームデータ処理システムの回復ポイントが特定するタプルは、前回決定したストリームデータ処理システムの回復ポイントが特定するタプル以降のタプルに限定される。
すなわち、タプルの回復ポイント802は、該タプルの生成に用いられたタプルのうち最古のタプル、またはそれ以前のタプルを特定する情報であるが、前回決定したストリームデータ処理システムの回復ポイントが特定するタプルよりは新しいタプルを特定する情報である。また、クエリ実行部の回復ポイント801は、該クエリ実行部がデータ処理の対象とするタプルの回復ポイントのうち最古のタプル、またはそれ以前のタプルを特定する情報であるが、前回決定したストリームデータ処理システムの回復ポイントが特定するタプルよりは新しいタプルを特定する情報である。さらに、ストリームデータ処理システムの回復ポイントは、該ストリームデータ処理システムが管理しているタプルの生成に用いられたタプルのうち最古のタプル、またはそれ以前のタプルを特定する情報であるが、前回決定したストリームデータ処理システムの回復ポイントが特定するタプルよりは新しいタプルを特定する情報である。
なお、図11に示すように、ストリームデータ処理システムでは、入力するタプルにストリームデータの識別子1101を付与して、複数のストリームデータを処理することも可能である。この場合、クエリ実行部の回復ポイント801、タプルの回復ポイント802、および、ストリームデータの回復ポイントは、ストリームデータの識別子ごとに管理する。
すなわち、識別子1のストリームデータと、識別子2のストリームデータを処理する場合、クエリ実行部116に対して、識別子1のクエリ実行部の回復ポイント801と、識別子2のクエリ実行部の回復ポイント801を付与する。また、タプルに対して、識別子1のタプルの回復ポイント802と、識別子2のタプルの回復ポイント802を付与する。そして、ストリームデータ処理システムの識別子1の回復ポイントと、ストリームデータ処理システムの識別子2の回復ポイントを管理する。
複数のストリームデータを入力する場合でも、回復ポイントの管理方法は、一つのストリームデータを入力する場合と同様である。そのため、以降では、一つのストリームデータを入力する場合を例にとり、図面を用いて本実施例の動作を説明する。
図12は、図1の第一の計算機100のCPU107で実行されるプログラムの一つであるデータ管理部101の動作を示すフローチャートである。データ管理部101は、ストリームデータソース131からデータを受信すると動作を開始する。ここで、ストリームデータソース131とは、株の売買を仲介する計算機や、小売業でのPOSデータを管理する計算機であり、データ管理部101は、データソース131から、株価や商品売り上げなどの時系列データを受信する(1203)。データ管理部101は、ストリームデータソース131から時系列データを受信すると、その時系列データをタプルとして、バックアップ制御部103にと、ストリームデータ送信部102に送信(1201、1202)する機能を持つ。
図13はバックアップ制御部103の動作を示すフローチャートである。バックアップ制御部103は、データ管理部101からタプルを受信する(1302)と動作を開始する。バックアップ制御部103は、受信したタプルをストリームバックアップファイル108に格納する(1301)。図14は、ストリームバックアップファイル108に記載されるタプルの例である。図14に示すように、ストリームバックアップファイル108には、時刻1401とデータ1402が時系列順に格納される。
ストリームデータ送信部102は、データ管理部101から受信したタプルをストリームデータ受信部112に送信する。第二の計算機111のストリームデータ受信部112は、受信したデータを制御部113に送信する。
図15は、第二の計算機111の制御部113の動作を示すフローチャートである。CPU122で実行されるプログラムである制御部113は、ストリームデータ受信部112、または、クエリ実行部116からタプルを受信する(1505)ことで動作を開始する。そして、最後のクエリ実行部116からタプルを受信したか否かを判定する(1501)。ここで、図3、図4に示したように、クエリ(QUERY Q1、Q2、・・・)には順序関係が定義されており、制御部113は、クエリ管理テーブル114を参照して、最後のクエリ実行部116を判別する。
判断1501の判断結果が「No」の場合、処理1502において、次のクエリ実行部116にタプルを送信する(1502)。処理1502においても、制御部113は、クエリ管理テーブル114を参照して、クエリの順序関係を判別している。
判断1501の判断結果が「Yes」の場合、タプルに付与されているタプルの回復ポイントの属性を削除し(1503)、ストリームデータ送信部118にタプルを送信する(1504)。
図16は、クエリ実行部116の動作を示すフローチャートである。クエリ実行部116は、定義されたクエリごとに存在し、上述の通り予めどのクエリを実行するかが決められている。
クエリ実行部116は、制御部113から入力タプルを受信することで動作を開始する(1608)。そして、受信したタプルに回復ポイントの属性が付与されているか否かを判断する(1601)。判断1601の結果が「No」の場合、処理1607でタプルの回復ポイントとして、タプルの時刻を設定する(1607)。タプル管理テーブル127に受信したタプルを格納し、不要なタプルをタプル管理テーブル127から破棄する(1602)。
図17は、タプル管理テーブル127に格納されるタプルの例である。タプル管理テーブル127には、タプルの時刻1701と、タプルのデータ1702と、タプルの回復ポイント1703が格納される。
ここで、クエリ実行部116で実行するクエリが、図3に示した、4つのタプルの最小値と最大値を算出するクエリであるとする。このケースで、10時4秒のタプルを受信した場合、10時0秒のタプルは不要になるため、クエリ実行部116は上述の通り、これを破棄し、10時4秒のタプルを、タプル管理テーブル127に新たに追加する。
続いて、クエリを実行する(1603)。ここで、各クエリ実行部116には、予め、「4個のタプルの最小値と最大値を算出する」や「3つのタプルの、最小値の平均と最大値の平均を算出する」など処理内容が割り当てられており、これに従ってクエリを実行する。
そして、クエリを実行した結果生成された出力タプルがあるか否かを判断する(1604)。判断1604の結果が「Yes」の場合、出力タプルの回復ポイントの値として、クエリ実行部116自身の回復ポイントの値を設定する(1605)。なお、クエリ実行部の回復ポイントは、クエリ回復ポイント管理テーブル126に記載されている。図18は、クエリ回復ポイント管理テーブル126の格納内容を例示する図である。クエリ回復ポイント管理テーブル126には、該当のクエリ実行部の回復ポイント1801がクエリ実行部116の数に対応するだけ格納される。クエリ実行部116は、クエリを実行した結果生成された出力タプルを制御部113に送信する(1606)。
図19は、本実施例において、第二の計算機111のCPU122で実行される回復ポイント管理部119の動作を示すフローチャートである。回復ポイント管理部119は、タイマ120からの通知により動作を開始する(1906)。タイマ120は、5分などの予め定められた時間間隔で、回復ポイント管理部119に通知をするように設定されている。
回復ポイント管理部119は、全てのクエリ実行部116に対して、回復ポイントの更新を指示し(1901)。全てのクエリ実行部116からの応答を待ち合わせる(1902)。
図20は、回復ポイント管理部119から更新指示を受けたクエリ実行部116の動作を示すフローチャートである。回復ポイントの更新指示を受信すると(2004)、タプル管理テーブル127に格納されているタプルの回復ポイントを検索し、最古の回復ポイントを検出する(2001)。続いて、処理2001で検出した回復ポイントを、クエリ回復ポイント管理テーブル127に格納して更新し(2002)。このクエリ実行部の回復ポイントを、回復ポイント管理部119に送信する(2003)。
図19の処理フローに戻り、回復ポイント管理部119は、全てのクエリ実行部116の回復ポイントから最古の回復ポイントを検索し、ストリーム処理システムの回復ポイントを決定する(1903)。続いて、ストリームデータ処理システムの回復ポイントをDisk125のチェックポイントファイル123に格納する(1904)。図28はチェックポイントファイル123の格納内容を示す例である。チェックポイントファイル123には、ストリームデータ処理システムの回復ポイント2801が格納される。チェックポイントファイル123は上書き形式で回復ポイントが格納されるため、最近の回復ポイントの情報が格納されている。
なお、チェックポイントファイル123の格納領域に関しては、予め出力先設定ファイル128に記載されている。図31は、出力先設定ファイル128の記載内容を例示する図である。図31は、チェックポイントファイル123が、Cドライブのファイル名が「CheckPoint」であることを示している。回復ポイント管理部119は、出力先設定ファイル128から、チェックポイントファイルを特定し、該ファイルにストリームデータ処理システムの回復ポイント2801を格納する(1904)。回復ポイント管理部119は、処理1905において、ストリームデータ処理システムの回復ポイントを回復ポイント送信部115に送信する(1905)。
なお、回復ポイント管理部119は、以上説明した図19のフローチャートによる動作に変え、図34のフローチャートのように動作する変形例も考えられる。すなわち、回復ポイント管理部119は、タイマ120から通知を受信すると、全てのタプル管理テーブル127を調べる(3401)。さらに、回復ポイント管理部119は、全てのタプルの回復ポイントから、最古の回復ポイントを検索し、この最古の回復ポイントをストリームデータ処理システムの回復ポイントとする(3402)。このように、回復ポイント管理部119が、クエリ実行部116自身の回復ポイントを使用せず、全てのタプルの回復ポイントから、ストリームデータ処理システムの回復ポイントを決定することも可能である。
この場合も、図34の処理フローに示すように、ストリームデータ処理システムの回復ポイントを受信した回復ポイント送信部115は、ストリームデータ処理システムの回復ポイントを回復ポイント受信部104に送信する(1905)。
図21は、第一の計算機100の回復ポイント受信部104の動作を示すフローチャートである。回復ポイント受信部104は、ストリームデータ処理システムの回復ポイントを受信する(2103)ことで動作を開始する。回復ポイント受信部104は、受信した回復ポイントの情報を、Disk110のチェックポイントファイル109に格納する(2101)。格納形式は、Disk125のチェックポイントファイル123と同様である。ストリーム処理システムの回復ポイントをバックアップ制御部103に送信する(2102)。
なお、チェックポイントファイル123の格納領域に関しては、予め出力先設定ファイル129に記載されている。図31は、出力先設定ファイル129の記載内容を例示する図である。図31は、チェックポイントファイル123が、Cドライブのファイル名が「CheckPoint」であることを示している。回復ポイント受信部104は、この出力先設定ファイル129から、チェックポイントファイルを特定し、該ファイルにストリームデータ処理システムの回復ポイント2801を格納する。
図22は、ストリーム処理システムの回復ポイントを受信した場合の、バックアップ制御部103の動作を示すフローチャートである。バックアップ制御部103は、回復ポイントを受信すると(2202)、ストリーム処理システムの回復ポイント以前のタプルを、ストリームバックアップファイル108から削除する(2201)。
図23は、第二の計算機111のハートビート送信部117の動作を示すフローチャートである。ハートビート送信部117は、タイマ120からの通知で動作を開始する。タイマ120は、1秒などの予め定められた時間間隔で、ハートビート送信部117に通知をするように設定されている。ハートビート送信部117は、タイマ120から通知を受信する(2302)と、ハートビート通知を、第一の計算機100のハートビート受信部104に送信する(2301)。
ハートビート受信部105は、5秒などの予め定められた時間、ハートビート通知を受信できない場合に、第二の計算機111に障害が発生したと判断する。ハートビート受信部105は、第二の計算機111に障害が発生したと判断した後、ハートビート通知を受信した場合、第二の計算機111が復旧したと判断し、データ管理部101に対して、障害復旧の通知を送信する。
図24は、第二の計算機111の障害復旧の通知を受信した場合のデータ管理部101の動作を示すフローチャートである。データ管理部101は、障害復旧の通知を受信する(2403)、チャックポイントファイル109から、ストリーム処理システムの回復ポイントを読み出す(2401)。なお、図28に示したように、チェックポイントファイル109には、最近の回復ポイントが格納されており、データ管理部101は、この最近の回復ポイントを読み出す。
さらに、データ管理部101は、ストリーム処理システムの回復ポイント以降のタプルを、ストリームバックアップファイル108から読み込み、ストリームデータ送信部102に送信する(2402)。
以上説明した実施例1の構成により、ストリームデータ処理システムの障害復旧の際、データ処理の再開に必要な出力タプルの欠落を起こすことなく、入力ストリームの再投入を行うことができる。
図25は、第2の実施例に係わるストリームデータ処理システム、即ち、ストリームデータ処理を二台の計算機で二重化して実行するシステムの構成図である。第一の計算機100のストリームデータ送信部102は、第二の計算機111と第三の計算機2501に対して、同一のタプルを送信する。図25において、第二の計算機111と第三の計算機2501が実行するストリームデータ処理は、図1の112から120の各部によって実行される処理をまとめて示した。
図25に示した第2の実施例のシステムでは、第二の計算機111と第三の計算機2501のうち、一方の計算機に障害が発生しても、もう一方の計算機が正常に動作している限り、ストリームデータ処理は継続される。
図25において、第三の計算機2501に障害が発生したケースを想定する。この場合、第二の計算機111のストリームデータ処理だけが動作する片系運転となり、システムの耐障害性が低下する。そのため、第三の計算機2501のストリームデータ処理を復旧する必要がある。
第三の計算機2501のストリームデータ処理を復旧する方法としては、ストリームデータ送信部102から送信されるタプルを用いてストリームデータ処理を行う方法がある。
第二の計算機111には障害が発生していないため、第二の計算機111のストリームデータ処理は、途切れなく実行されている。一方、第三の計算機2501には障害が発生したため、一旦、揮発メモリに格納されていたタプルの情報が消失している。そのため、第三の計算機が復旧した直後は、第二の計算機111が管理するタプルの情報と、第三の計算機2501が管理するタプルの情報は異なり、二つの計算機で実行されるストリームデータ処理の処理結果が異なる。この二つの計算機で実行されるストリームデータ処理の処理結果が異なる期間を、ウォームアップ期間と呼ぶこととする。
このウォームアップ期間において、第三の計算機2501のストリームデータ処理を使用すると、障害が発生しなければ出力されたタプルが障害により出力されなくなる、出力タプルの欠落が発生する。そのため、ウォームアップ期間が終了するまでは、第三の計算機2501のストリームデータ処理が使用できない。
以降では、ストリームデータ処理を二つの計算機で二重化して実行する第2の実施例のシステムにおいて、回復ポイントを用いて、出力タプルの欠落を回避する方法を説明する。
図26は、ストリームデータ処理を二台の計算機で二重化して実行する第2の実施例のシステムの一具体例を示す図である。図1のシステム構成図と同一番号のブロックは、図1のブロックと同一のものを示す。第二の計算機111の各部の動作はこれまでに説明した動作と同一である。但し、本実施例の構成においては、回復ポイント送信部115は、ストリームデータ処理システムの回復ポイントに関する情報を、第三の計算機2501の回復ポイント受信部2601に送信する。
第三の計算機2501の各部の動作はこれまでに説明した第二の計算機111の動作と同一である。但し、第三の計算機2501には、回復ポイント受信部2601と開始ポイント管理部2602と判断部2603が別途に動作する。これらは、先に説明した機能ブロック同様、計算機2501のメモリに格納され、CPU122によって実行されるプログラムである。
開始ポイント管理部2602は、第三の計算機に障害が発生した後、再び第三の計算機がストリームデータ処理を開始した場合、最初に受信したタプルを特定する情報である開始ポイントを開始ポイント管理テーブル2604に格納するプログラムである。
判断部2603は、回復ポイント受信部2601から受信した回復ポイントの情報と、回復ポイント管理部2602から受信した回復ポイントの情報を比較し、第三の計算機のストリームデータ処理システムが使用可能な状態になったか否かを判定するプログラムである。
第三の計算機2501に障害が発生した後、再び第三の計算機がストリームデータ処理を開始した場合、開始ポイント管理部2602は、最初に受信したタプルを特定する情報である開始ポイントを開始ポイント管理テーブル2604に格納する。図30は、回復ポイント管理テーブル2605の格納内容を例示する図である。回復ポイント管理テーブル2605には、最初に受信したタプルのタイムスタンプ3001が格納される。
回復ポイント受信部2501は、第二の計算機111から回復ポイントの情報を受信すると、その情報を判断部2603に通知する。
図27は第三の計算機2501の実行プログラムである判断部2603の動作を示すフローチャートである。判断部2603は、回復ポイント受信部2601から回復ポイントの情報を受信する(2704)ことで動作を開始する。判断部2603は、開始ポイント管理部2602に開始ポイントを送信する指示を送信し、開始ポイント管理部2602から開始ポイントの情報を受信する(2701)。続いて、判断部2603は、開始ポイントと回復ポイントを比較し、開始ポイントより回復ポイントの方が新しいか否かを判断する(2702)。判断の結果が「Yes」の場合、第三の計算機2501のストリームデータ処理システムが使用可能な状態になったことを、Disk125のステータスファイル2604に格納する(2703)。
図29は、ステータスファイル2604に格納する内容を例示する図である。ステータスファイル2604には、判断部2603が第三の計算機が使用可能になったと判断した時刻2901と、「使用可能」の文字列が格納される。
図32は、図1のストリームデータ処理システムを一台の計算機で動作させた第3の実施例のシステムを示す図である。一台の計算機100で動作させた場合、ネットワーク130、ハートビート受信部105、ハートビート送信部117は動作しないが、障害復旧判断部3201が動作する点で、第1の実施例と異なっている。障害復旧判断部3201は、メモリに格納され、CPU122によって実行されるプログラムである。Disk110、125は一台のディスク装置で構成できることは言うまでもない。
図33は、CPU122で実行されるプログラムである障害復旧判断部3201の動作を示すフローチャートである。障害復旧判断部3201は、計算機100が起動したことで、動作を開始する。障害復旧判断部3201は、動作を開始すると、処理3201において、チェックポイントファイル109からストリームデータ処理システムの回復ポイントを読み出す(3301)。次に、ストリーム処理システムの回復ポイント以降のタプルがストリームバックアップファイル108に格納されているか否かを判定する(3302)。ストリーム処理システムの回復ポイント以降のタプルがストリームバックアップファイル108に格納されている場合、障害復旧判断部3201は、データ管理部101に対して、障害復旧の通知をする(3303)。
図35は第二の計算機111でストリームデータをバックアップする第4の実施例のシステムを示す図である。第二の計算機111でストリームデータをバックアップする場合、第二の計算機111のDisk125に、ストリームバックアップファイル3501が格納される。
第一の計算機100では、回復ポイント受信部104とハートビート受信部105は動作しない。また、第二の計算機111では、ハートビート送信部117は動作しない。
実施例1と実施例4では、ストリームデータ受信部112の動作と、回復ポイント管理部115の動作、が異なる。以下、実施例4における、ストリームデータ受信部112の動作と、回復ポイント管理部115の動作を説明する。
図36は、ストリームデータ送信部102からタプルを受信した場合の、ストリームデータ受信部112の動作を示すフローチャートである。ストリームデータ受信部112は、処理3602において、受信したタプルを、ストリームバックアップファイル3501にバックアップする。また、処理3603において、受信したタプルを、制御部113に送信する。
回復ポイント送信部115は、回復ポイント管理部119から受信した回復ポイントの情報を、ストリームデータ受信部112に送信する。回復ポイントの情報を受信した場合、ストリームデータ受信部112は、ストリームバックアップファイル3501から、回復ポイント以前のタプルを削除する。
図37は、ストリームデータ受信部112が起動した際の、動作を示すフローチャートである。図37の動作は、ストリームデータ受信部112がタプルを受信する前に行う動作である。ストリームデータ受信部112は、判断3701において、チェックポイントファイル123に、回復ポイントの情報が格納されているか否かを判断する。回復ポイントの情報が格納されている場合、処理3702において、ストリームデータバックアップファイル129に格納されている、回復ポイント以降のタプルを、制御部113に送信する。
本実施例によれば、第二の計算機だけで障害復旧ができるため、第一の計算機からバックアップしたタプルを送信する必要がなく、また計算機を結ぶネットワークに負荷をかけることもないという効果がある。
本発明は、ストリームデータを処理するデータ処理システム、特にタイムスタンプが付与されたデータであるタプルをリアルタイムに処理するデータ処理技術に有用である。
100…計算機
101…データ管理部
102…ストリームデータ(タプル)送信部
103…バックアップ制御部
104…回復ポイント受信部
105…ハートビート受信部
106…オペレーティングシステム
107…CPU
108…ストリームバックアップファイル
109…チェックポイントファイル
110…Disk
111…計算機
112…ストリームデータ受信部
113…制御部
114…クエリ管理テーブル
115…回復ポイント送信部
117…ハートビート送信部
118…ストリームデータ送信部
119…回復ポイント管理部
120…タイマ
121…オペレーティングシステム
122…CPU
123…チェックポイントファイル
124…クエリ定義ファイル
125…Disk
126…クエリ回復ポイント管理テーブル
127…タプル管理テーブル
128…出力先設定ファイル
129…出力先設定ファイル
130…ネットワーク
131…ストリームデータソース。

Claims (14)

  1. タイムスタンプが付与されたストリームデータであるタプルを処理するストリームデータ処理システムであって、
    第1のタプルを受信するストリームデータ受信部と、
    前記第1のタプルに対するデータ処理を実行して第2のタプルを生成するクエリ実行部と、
    前記クエリ実行部によって生成された前記第2のタプルを送信するストリームデータ送信部と、
    前記第2のタプルの生成に用いられた前記第1のタプルのうち最古のタプル、又はそれ以前のタプルを特定する情報であるシステムの回復ポイントを決定する回復ポイント管理部と、
    を備え
    前記クエリ実行部は、生成した前記第2のタプルに対して、前記第2のタプルの生成に用いられた前記第1のタプルのうち最古のタプル、又はそれ以前のタプルを特定する情報であるタプルの回復ポイントの属性値を付与し、
    前記回復ポイント管理部は、前記システムが管理する全ての前記タプルの回復ポイントの属性値から最古の回復ポイントを検索し、前記システムの回復ポイントを決定する
    ことを特徴とするストリームデータ処理システム。
  2. 請求項1記載のストリームデータ処理システムであって、
    前記ストリームデータ受信部または前記クエリ実行部から前記タプルを受信し、前記クエリ実行部または前記ストリームデータ送信部に、受信した前記タプルを送信する制御部を更に備え、
    前記制御部は、前記ストリームデータ受信部から受信した前記第1のタプルに対して、前記第1のタプルを特定する情報を、タプルの回復ポイントの属性値として設定し、
    前記クエリ実行部は、前記クエリ実行部がデータ処理の対象とする前記タプルの回復ポイントのうち最古のタプル、又はそれ以前のタプルを特定する情報を、前記クエリ実行部の回復ポイントの属性値として設定し、生成する前記第2のタプルの回復ポイントの属性値として、前記クエリ実行部の前記回復ポイントの属性値を設定し、
    前記回復ポイント管理部は、全ての前記クエリ実行部の前記回復ポイントの属性値から、最古の回復ポイントを検索し、前記システムの回復ポイントを決定する
    ことを特徴とするストリームデータ処理システム。
  3. 請求項記載のストリームデータ処理システムであって、
    前記回復ポイント管理部は、前記クエリ実行部に対して、前記クエリ実行部の回復ポイントの更新を指示し、
    更新指示を受けた前記クエリ実行部は、前記クエリ実行部の回復ポイントの属性値を、前記クエリ実行部が管理している前記タプルの回復ポイントのうち、最古の回復ポイントに更新し、
    前記回復ポイント管理部は、全ての前記クエリ実行部の回復ポイントから、最古の回復ポイントを検索して、前記システムの回復ポイントを決定し、決定した前記システムの回復ポイントを記憶する
    ことを特徴とするストリームデータ処理システム。
  4. 請求項記載のストリームデータ処理システムであって、
    ネットワークを介して接続される第一の計算機と第二の計算機とを備え、
    前記第一の計算機は、
    記憶部と、
    前記第1のタプルの送信を指示するデータ管理部と、
    前記第1のタプルを送信するタプル送信部と、
    送信した前記第1のタプルを前記記憶部に格納するバックアップ制御部と、
    前記第二の計算機から回復ポイントの情報を受信する回復ポイント受信部を備え、
    前記第二の計算機は、前記ストリームデータ受信部と、前記制御部と、前記クエリ実行部と、前記回復ポイント管理部と、更に前記システムの回復ポイントの情報を前記回復ポイント受信部に送信する回復ポイント送信部を備え、
    前記回復ポイント受信部は、受信した前記回復ポイントの情報を、前記バックアップ制御部に通知し、
    前記バックアップ制御部は、受信した前記システムの回復ポイント以前のタプルを前記記憶部から消去する
    ことを特徴とするストリームデータ処理システム。
  5. 請求項記載のストリームデータ処理システムであって、
    前記第二の計算機は、前記第一の計算機に一定の時間間隔で通信を行うハートビート送信部を備え、
    前記第一の計算機では、前記第二の計算機からの通信を受信するハートビート受信部を備え、
    前記第一の計算機の前記ハートビート受信部は、予め定められた時間、前記第一の計算機から通信を受信できない場合に、前記第二の計算機に障害が発生したと判断し、前記第二の計算機に障害が発生した後に、再び前記第二の計算機から通信を受信した場合に、前記第二の計算機が復旧したと判断し、前記第二の計算機が復旧したことを前記データ管理部に通知し、
    前記データ管理部は、前記第二の計算機が復旧したとの通知を受けた場合、最近に受信した前記システムの回復ポイントが特定するタプルから、前記第二の計算機に送信することを指示する
    ことを特徴とするストリームデータ処理システム。
  6. 請求項記載のストリームデータ処理システムであって、
    第一の計算機を備え、
    前記第一の計算機は、
    記憶部と、
    前記第1のタプルの送信を指示するデータ管理部と、
    前記第1のタプルを前記ストリームデータ受信部に送信するストリームデータ送信部と、
    送信した前記第1のタプルを前記記憶部に格納するバックアップ制御部とを備える
    ことを特徴とするストリームデータ処理システム。
  7. 請求項記載のストリームデータ処理システムであって、
    ネットワークを介して接続される第一の計算機と第二の計算機と第三の計算機とを備え、前記第一の計算機は、
    前記第1のタプルの送信を指示するデータ管理部と、
    前記第1のタプルを前記第二の計算機と前記第三の計算機に送信するストリームデータ送信部とを備え、
    前記第二の計算機は、前記ストリームデータ受信部と、前記制御部と、前記クエリ実行部と、前記回復ポイント管理部とを備え、更に
    前記システムの回復ポイントの情報を前記第三の計算機に送信する回復ポイント送信部を有し、
    前記第三の計算機は、前記ストリームデータ受信部と、前記制御部と、前記クエリ実行部と、前記回復ポイント管理部とを備え、更に
    前記第三の計算機は、前記第三の計算機がストリームデータ処理を開始してから、
    最初に受信した前記第1のタプルを特定する情報である開始ポイントを管理する開始ポイント管理部と、前記第二の計算機から前記回復ポイントに関する情報を受信する回復ポイント受信部と、前記第三の計算機の使用可否を判断する判断部と有し、
    前記判断部は、前記第二の計算機から受信した前記回復ポイントに関する情報と前記第1のタプルを特定する情報である開始ポイントとを比較し、当該開始ポイントより前記第二の計算機から受信した前記回復ポイントの方が新しい場合に、前記第三の計算機が使用可能な状態になったと判断する
    ことを特徴とするストリームデータ処理システム。
  8. 請求項記載のストリームデータ処理システムであって、
    前記制御部が、前記ストリームデータ受信部から受信した前記第1のタプルに対して設定する前記タプルの回復ポイントの属性値は、前記第1のタプルのタイムスタンプである
    ことを特徴とするストリームデータ処理システム。
  9. 請求項記載のストリームデータ処理システムであって、
    前記ストリームデータ受信部が受信する前記第1のタプルには、受信するストリームデータを識別するストリームデータ識別子が付与されており、
    前記制御部は、前記ストリームデータ受信部から受信した前記第1のタプルに対して、前記第1のタプルのタイムスタンプを前記タプルの回復ポイントの属性値として設定し、
    前記クエリ実行部は、生成する前記第2のタプルの回復ポイントとして、前記クエリ実行部の回復ポイントの属性値を前記ストリームデータ識別子ごとに設定し、
    前記回復ポイント管理部は、前記ストリームデータ識別子ごとに最古の回復ポイントを検索し、前記システムの回復ポイントを決定する
    ことを特徴とするストリームデータ処理システム。
  10. 請求項記載のストリームデータ処理システムであって、
    ネットワークを介して接続される第一の計算機と第二の計算機とを備え、
    前記第一の計算機は、
    前記第1のタプルの送信を指示するデータ管理部と、
    前記第1のタプルを送信するタプル送信部を備え、
    前記第二の計算機は、記憶部と、前記ストリームデータ受信部と、前記制御部と、前記クエリ実行部と、前記回復ポイント管理部と、更に前記システムの回復ポイントの情報を前記ストリームデータ受信部に送信する回復ポイント送信部を備え、
    前記ストリームデータ受信部は、受信した前記第1のタプルを前記記憶部に格納し、更に前記ストリームデータ受信部は、受信した前記システムの回復ポイント以前の前記タプルを前記記憶部から消去する
    ことを特徴とするストリームデータ処理システム。
  11. タイムスタンプが付与されたデータである第1のタプルを受信し、前記第1のタプルに対するデータ処理であるクエリを実行して第2のタプルを生成する処理部を備えたストリーム処理システムのデータ処理方法であって、
    前記処理部は、前記システムが管理している前記第2のタプルの生成に用いられた前記第1のタプルのうち最古のタプル、又はそれ以前のものを特定する情報であるタプルの回復ポイントを、属性値として前記第2のタプルに付与しておき、
    前記システムが管理する全ての前記タプルの回復ポイントから、最も古い回復ポイントを検索することにより前記システムの回復ポイントを決定する、
    ことを特徴とするストリームデータ処理方法。
  12. 請求項11記載のストリームデータ処理方法であって、
    前記処理部は、
    前記処理部が実行する前記クエリに対し、前記クエリが処理の対象とする前記第のタプルの前記回復ポイントのうち最古のタプル、又はそれ以前のタプルを特定する情報であるクエリの回復ポイントを属性値として付与し、
    前記クエリが生成する前記第2のタプルに対して、付与された前記クエリの回復ポイントを、前記タプルの回復ポイントに設定し、
    全ての前記クエリの回復ポイントから最古の回復ポイントを検索して、前記システムの回復ポイントを決定する、
    ことを特徴とするストリームデータ処理方法。
  13. タイムスタンプが付与されたデータである第1のタプルを受信し、前記第1のタプルに対するデータ処理であるクエリを実行して第2のタプルを生成する処理部と記憶部とを備えたシステムの計算機であって、
    前記処理部は、
    前記第1のタプルを受信するストリームデータ受信部と、
    前記第1のタプルに対するデータ処理を実行して第2のタプルを生成するクエリ実行部と、
    前記クエリ実行部によって生成された前記第2のタプルを送信するストリームデータ送信部と、
    前記第2のタプルの生成に用いられた前記第1のタプルのうち最古のタプル、又はそれ以前のタプルを特定する情報であるシステムの回復ポイントを決定する回復ポイント管理部と、
    を備え
    前記クエリ実行部は、生成した前記第2のタプルに対して、前記第2のタプルの生成に用いられた前記第1のタプルのうち最古のタプル、又はそれ以前のタプルを特定する情報であるタプルの回復ポイントの属性値を付与し、
    前記回復ポイント管理部は、前記システムが管理する全ての前記タプルの回復ポイントの属性値から最古の回復ポイントを検索し、前記システムの回復ポイントを決定する
    ことを特徴とする計算機。
  14. 請求項13記載の計算機であって、
    前記処理部は、
    前記ストリームデータ受信部または前記クエリ実行部から前記タプルを受信し、前記クエリ実行部または前記ストリームデータ送信部に、受信した前記タプルを送信する制御部を更に備え、
    前記制御部は、前記ストリームデータ受信部から受信した前記第1のタプルに対して、前記第1のタプルを特定する情報を、タプルの回復ポイントの属性値として設定し、
    前記クエリ実行部は、前記クエリ実行部がデータ処理の対象とする前記タプルの回復ポイントのうち最古のタプル、又はそれ以前のタプルを特定する情報を、前記クエリ実行部の回復ポイントの属性値として設定し、生成する前記第2のタプルの回復ポイントの属性値として、前記クエリ実行部の前記回復ポイントの属性値を設定し、
    前記回復ポイント管理部は、全ての前記クエリ実行部の前記回復ポイントの属性値から、最古の回復ポイントを検索し、前記システムの回復ポイントを決定する
    ことを特徴とする計算機。
JP2009095632A 2009-04-10 2009-04-10 データ処理システム、その処理方法、及び計算機 Active JP5439014B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009095632A JP5439014B2 (ja) 2009-04-10 2009-04-10 データ処理システム、その処理方法、及び計算機
US12/536,601 US8276019B2 (en) 2009-04-10 2009-08-06 Processing method, and computer for fault recovery

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009095632A JP5439014B2 (ja) 2009-04-10 2009-04-10 データ処理システム、その処理方法、及び計算機

Publications (2)

Publication Number Publication Date
JP2010244486A JP2010244486A (ja) 2010-10-28
JP5439014B2 true JP5439014B2 (ja) 2014-03-12

Family

ID=42935298

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009095632A Active JP5439014B2 (ja) 2009-04-10 2009-04-10 データ処理システム、その処理方法、及び計算機

Country Status (2)

Country Link
US (1) US8276019B2 (ja)
JP (1) JP5439014B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8433716B2 (en) * 2009-08-31 2013-04-30 Sap Ag Runtime query modification in data stream management
JP5308403B2 (ja) * 2010-06-15 2013-10-09 株式会社日立製作所 データ処理の障害回復方法、システムおよびプログラム
WO2012059976A1 (ja) * 2010-11-02 2012-05-10 株式会社日立製作所 プログラム、ストリームデータ処理方法及びストリームデータ処理計算機
US9325757B2 (en) * 2010-11-30 2016-04-26 Adello Inc. Methods and systems for fault-tolerant distributed stream processing
US9372756B2 (en) * 2013-05-22 2016-06-21 Telefonaktiebolaget Lm Ericsson (Publ) Recovery of operational state values for complex event processing based on a time window defined by an event query
US9886486B2 (en) * 2014-09-24 2018-02-06 Oracle International Corporation Enriching events with dynamically typed big data for event processing
KR102396822B1 (ko) * 2015-06-04 2022-05-13 삼성전자주식회사 디바이스 및 그의 제어 방법
US10601881B1 (en) 2015-10-05 2020-03-24 Amazon Technologies, Inc. Idempotent processing of data streams
US10514952B2 (en) * 2016-09-15 2019-12-24 Oracle International Corporation Processing timestamps and heartbeat events for automatic time progression
EP3605340B1 (en) 2017-05-31 2021-03-31 Mitsubishi Electric Corporation Data replicator and data replication program
US11188534B2 (en) * 2020-01-14 2021-11-30 Microsoft Technology Licensing, Llc Optimizing input streams for a stream join model having a threshold function
JP7425300B2 (ja) 2020-03-09 2024-01-31 富士通株式会社 実行制御方法及び実行制御プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4665520A (en) * 1985-02-01 1987-05-12 International Business Machines Corporation Optimistic recovery in a distributed processing system
US5280611A (en) * 1991-11-08 1994-01-18 International Business Machines Corporation Method for managing database recovery from failure of a shared store in a system including a plurality of transaction-based systems of the write-ahead logging type
US5864849A (en) * 1996-12-16 1999-01-26 Lucent Technologies Inc. System and method for restoring a multiple checkpointed database in view of loss of volatile memory
US7305421B2 (en) * 2001-07-16 2007-12-04 Sap Ag Parallelized redo-only logging and recovery for highly available main memory database systems
JP4139642B2 (ja) * 2002-07-29 2008-08-27 株式会社日立製作所 データベース管理方法およびシステム
JP4551096B2 (ja) * 2004-02-03 2010-09-22 株式会社日立製作所 ストレージサブシステム
US7111139B2 (en) * 2004-03-02 2006-09-19 Hitachi, Ltd. Data synchronization of multiple remote storage
JP4710380B2 (ja) * 2005-03-31 2011-06-29 日本電気株式会社 分散処理システム及び分散処理方法
JP4687253B2 (ja) 2005-06-03 2011-05-25 株式会社日立製作所 ストリームデータ処理システムのクエリ処理方法
JP4871213B2 (ja) * 2007-05-24 2012-02-08 日本電信電話株式会社 ストリームデータ処理方法、ストリームデータ処理プログラムおよびストリームデータ処理システム

Also Published As

Publication number Publication date
US20100262862A1 (en) 2010-10-14
JP2010244486A (ja) 2010-10-28
US8276019B2 (en) 2012-09-25

Similar Documents

Publication Publication Date Title
JP5439014B2 (ja) データ処理システム、その処理方法、及び計算機
JP5075736B2 (ja) 仮想サーバのシステム障害回復方法及びそのシステム
US9251008B2 (en) Client object replication between a first backup server and a second backup server
US7644301B2 (en) Fault management system in multistage copy configuration
JP4483342B2 (ja) システム復旧方法
JP5156682B2 (ja) ストレージシステムにおけるバックアップ方法
JP5091894B2 (ja) ストリーム回復方法、ストリーム回復プログラム、および、障害回復装置
JP6048038B2 (ja) 情報処理装置,プログラム,情報処理方法
JP5467625B2 (ja) トランザクションを処理する本番システムと該本番システムのバックアップ・システムである代行システムとを含む本番−代行システム
JP6447258B2 (ja) 管理プログラム、管理方法、および管理装置
US8417669B2 (en) Auto-correction in database replication
JP2006004031A (ja) データ処理方法およびシステム並びにストレージ装置方法およびその処理プログラム
US7783742B2 (en) Dynamic process recovery in a distributed environment
JP2009536403A (ja) ワーク・アイテム・イベント処理
US10423625B2 (en) Exactly-once semantics for streaming analytics in non-idempotent output operations
US10049021B2 (en) Redundant system and redundancy method
JP2008033778A (ja) コンピュータシステム、データベース復旧方法、データベース復旧プログラム
JP2009217587A (ja) バッチ処理装置及び方法
US20140108367A1 (en) Client apparatus and database server for resumable transaction and method thereof
JP2006350411A (ja) 分散データベースリカバリ方法及び同リカバリシステム及び同リカバリプログラム
US8775371B2 (en) Synchronizing an auxiliary data system with a primary data system
JP2007133795A (ja) クラスタ構成の業務システム
JP2012230721A (ja) 仮想サーバのシステム障害回復方法及びそのシステム
JP2009098715A (ja) 冗長システム装置並びに冗長システム装置におけるジョブの実行方法及び実行プログラム
JP6504611B2 (ja) 監視装置、情報監視システム、監視装置の制御方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130702

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130828

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131216

R150 Certificate of patent or registration of utility model

Ref document number: 5439014

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150