JP4723301B2 - ストリームデータ処理システムおよびストリームデータ処理方法 - Google Patents

ストリームデータ処理システムおよびストリームデータ処理方法 Download PDF

Info

Publication number
JP4723301B2
JP4723301B2 JP2005211483A JP2005211483A JP4723301B2 JP 4723301 B2 JP4723301 B2 JP 4723301B2 JP 2005211483 A JP2005211483 A JP 2005211483A JP 2005211483 A JP2005211483 A JP 2005211483A JP 4723301 B2 JP4723301 B2 JP 4723301B2
Authority
JP
Japan
Prior art keywords
data
query
processing
local
query processing
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
JP2005211483A
Other languages
English (en)
Other versions
JP2007026373A (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 JP2005211483A priority Critical patent/JP4723301B2/ja
Priority to US11/359,540 priority patent/US7644110B2/en
Publication of JP2007026373A publication Critical patent/JP2007026373A/ja
Application granted granted Critical
Publication of JP4723301B2 publication Critical patent/JP4723301B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S715/00Data processing: presentation processing of document, operator interface processing, and screen saver display processing
    • Y10S715/961Operator interface with visual structure or function dictated by intended use
    • Y10S715/965Operator interface with visual structure or function dictated by intended use for process control and configuration
    • Y10S715/966Computer process, e.g. operation of computer
    • Y10S715/968Computer process, e.g. operation of computer interface for database querying and retrieval

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、入力されたストリームデータに対して予め登録されているクエリを実行し、その結果を出力するストリームデータ処理システムの技術に関する。
非特許文献1には、入力されたストリームデータに対して予め登録されているクエリを実行し、その結果を出力するストリームデータ処理システムが開示されている。
例えば、商品購入希望者が商品を探しているとする。該商品購入希望者は、端末を用いて商品購入に際しての希望条件を含むクエリを生成し、これをストリームデータ処理システムに登録する。一方、各商品提供希望者は、端末を用いて提供したい商品および該商品提供に際しての希望条件を含むストリームデータを生成し、これをストリームデータ処理システムに入力する。ストリームデータ処理システムは、予め登録しておいたクエリを継続実行し、入力されたストリームデータに含まれている商品および希望条件が、該クエリに含まれている商品および希望条件とマッチするか否かを調べる。そして、マッチする場合は、該ストリームデータを商品購入希望者の端末に送信する。
このように、ストリームデータ処理システムは、逐次入力されるストリームデータをリアルタイムに処理するインターネットオークションや株価トレンド等のリアルタイムアプリケーションに好適である。
Motwani, Rajeev; Widom, Jennifer; Arasu, Arvind; Babcock, Brian; Babu, Shivnath; Datar, Mayur; Manku, Gurmeet; Olston, Chris; Rosenstein, Justin; Varma, Rohit, "Query Processing, Resource Management, and Approximation in a Data Stream Management System", CIDR 2003, 1st of August 2002, [平成17年6月22日検索] インターネット<URL:http://dbpubs.stanford.edu:8090/aux/index-en.html>
ところで、逐次入力されるストリームデータ各々に対してリアルタイムにクエリを実行するためには、高性能の情報処理装置を用いるか、あるいは、複数の情報処理装置を用いて負荷分散させることが好ましい。ここで、複数の情報処理装置を用いて負荷分散させた場合、複数の情報処理装置間を伝送するストリームデータによって大量の通信トラフィックが発生する。
本発明は上記事情に鑑みてなされたものであり、本発明の目的は、ストリームデータ処理システムにおいて、複数の情報処理装置を用いて負荷分散させた場合の通信トラフィックの発生を抑制する技術を提供することある。
上記課題を解決するために、本発明のストリームデータ処理システムでは、予め登録されたクエリであるグローバルクエリを複数の処理に分割する。ここで、クエリの好適な記述方法としては、上述の非特許文献1の第二節の7行目に示されたCQL(Continuous Query Language)を挙げることができる。ストリームデータ処理におけるクエリの特徴は、無限に続くストリームデータから、その処理対象のデータ列を切り取るための、ウィンドウ指定が行えることである。ウィンドウ指定の代表的な方法としては、(1)切り取るデータ列の数を指定する方法、そして(2)切り取るデータ列の時間間隔を指定する方法の2種類を挙げることができる。例えば、非特許文献1の第二節に示された“Rows 50 Preceding”は50行分のデータを処理対象として切り取る(1)の好適な例、そして“Range 15 Minutes Preceding”15分間分のデータを処理対象として切り取る(2)の好適な例である。以下では、(1)の方法で指定されるウィンドウをタプルベースウィンドウ、そして(2)の方法で指定されるウィンドウをタイムベースウィンドウと呼ぶ。
図15の1094はサイズが3のタプルベースウィンドウを示している。サイズが3のタプルベースウィンドウでは、到着した過去3タプル分のストリームデータを処理対象として保持し、新たな処理対象データ68が到着した際に、最も古い処理対象データ69がタプルベースウィンドウから押し出される。一方、図16の1601は3単位時間分のタイムベースウィンドウを示している。該タイムベースウィンドウでは、過去3単位時間分のストリームデータを処理対象として保持し、到着から3時間間隔を経過した処理対象データはタイムベースウィンドウから押し出される。
次に、グローバルクエリから分割された各処理を含むローカルクエリを生成し、各ローカルクエリを異なる情報処理装置に設定する。また、複数の情報処理装置間を順番にストリームデータを伝送させ、各情報処理装置でストリームデータに対してローカルクエリを実行させる。この際、ストリームデータの全てについて複数の情報処理装置間を順番に伝送させるのではなく、該ストリームデータの少なくとも一部(例えば、処理の順番上の後ろに位置する情報処理装置で初めてローカルクエリの処理に使用されるデータ)については、記憶装置に記憶しておく。そして、情報処理装置は、処理の順番上一つ前の情報処理装置から受け取ったストリームデータにローカルクエリの対象データが含まれていない場合、当該データを記憶装置から読出してローカルクエリを実行する。
例えば、本発明のストリームデータ処理システムは、ストリームデータに対して予め登録されているクエリであるグローバルクエリを実行し、その結果を出力するストリームデータ処理システムであって、
前記グローバルクエリを構成するi(但し、1≦i≦n)番目のローカルクエリをそれぞれ実行するi番目のクエリ処理装置と、前記ストリームデータの少なくとも一部を含む保存データを記憶するプロキシ装置と、を有し、
i番目の前記クエリ処理装置は、
i=1の場合に、ストリームデータを受信し、i≠1の場合に、i-1番目の前記クエリ処理装置から転送データを受信するデータ受信手段と、
1≦i<nの場合に、受信したストリームデータの少なくとも一部を含む保存データを前記プロキシ装置に記憶させるデータ登録手段と、
1<i≦nの場合に、予め登録されているi番目のローカルクエリの処理に必要なデータである対象データが前記保存データに含まれているならば、前記プロキシ装置にアクセスして前記対象データを取得するデータ取得手段と、
i=1の場合に、前記データ受信手段により受信されたストリームデータに対して予め登録されているi番目のローカルクエリを実行し、i≠1の場合に、前記データ受信手段により受信された転送データおよび/または前記データ取得手段により取得された対象データに対して、予め登録されているi番目のローカルクエリを実行するローカルクエリ処理手段と、
i≠nの場合に、前記ローカルクエリ処理手段による処理結果を転送データとしてi+1番目の前記クエリ処理装置に送信し、i=nの場合に、前記ローカルクエリ処理手段による処理結果を所定の装置に送信するデータ送信手段と、を有し、
前記プロキシ装置は、
前記クエリ処理装置から前記保存データを受信して記憶するデータ記憶手段と、
前記クエリ処理装置から要求された対象データを、前記保存データ記憶手段に記憶されている前記保存データから読み出して、要求元の前記クエリ処理装置へ送信するデータ読出手段と、を有する。
本発明によれば、例えば入力されたストリームデータのうち、処理の順番上の後ろに位置する情報処理装置で初めてローカルクエリの処理に使用される一部のストリームデータ(以下、部分ストリームデータ)を記憶装置に記憶しておくことで、該部分ストリームデータが複数の情報処理装置間を伝送されるのを防止することができる。したがって、複数の情報処理装置を用いて負荷分散させた場合の通信トラフィックの発生を抑制することができる。
以下、本発明の実施の形態について説明する。
図1は本発明の一実施形態が適用されたストリームデータ処理システムの概略図である。
図示するように、本実施形態のストリームデータ処理システム1001は、n台(n≧1)のクエリ処理装置1〜1と、プロキシ装置2と、これらの装置間を接続するLAN、WAN等のネットワーク5と、を有する。図1に示す例では、ストリームデータ処理1001はストリームデータ生成装置4と、ユーザ端末3とに、ネットワーク5で接続されている。
ユーザ端末3は、プロキシ装置2にクエリ66を送信し、プロキシ装置2からその結果を受信する。クエリ66としては、希望条件(商品名、希望購入価格、引渡し場所、決済方法等)に合致する商品の提供希望者の情報を問い合わせるためのものや、所定品目の株価のトレンドを問い合わせるためのものなどが考えられる。以下、ユーザ端末3がプロキシ装置2に送信するクエリ66をグローバルクエリ66と呼ぶこととする。ユーザ端末3には、Webブラウザ等の既存のネットワーク端末を利用できるので、その詳細な説明を省略する。
ストリームデータ生成装置4は、グローバルクエリ66の処理対象であるストリームデータ61を生成して、クエリ処理装置1に送信する。ストリームデータ61としては、商品提供希望者の希望条件(商品名、希望提供価格、引渡し場所、決済方法等)の情報や、株価情報(銘柄、価格)などが考えられる。ストリームデータ61が商品提供希望者の希望条件の情報である場合、ストリームデータ生成装置4は例えば商品提供希望者のネットワーク端末である。また、ストリームデータ61が株価情報である場合、ストリームデータ生成装置4は例えば株式市場運営者のネットワーク端末である。
ストリームデータ61は、複数のセグメントで構成されており、そのうちの1つのセグメントには、ストリームデータ61の識別情報であるストリームIDが登録される。また、残りの各セグメントには、グローバルクエリ61による処理の単位となる情報が登録される。また、ストリームデータ61のデータフォーマットとしては、レコード形式やXMLドキュメント形式などが考えられる。
図2はストリームデータ61のデータフォーマットを模式的に表した図である。
図2(A)はレコード形式のストリームデータ61を例示している。この場合、レコードを構成するカラム611がセグメントに相当する。また、図2(B)はXMLドキュメント形式のストリームデータ61を例示している。この場合、XMLドキュメントを構成するタグとタグとで囲まれた領域612がセグメントに相当する。
クエリ処理装置1〜1には処理の順番が割り当てられている。また、グローバルクエリ66をn個の処理に分割することで得られるn個のローカルクエリ67〜67が、それぞれ、実行順番に従って、クエリ処理装置1〜1に割り当てられる。具体的には、1番目のクエリ処理装置1は、ストリームデータ61に対してローカルクエリ67を実行する。i(但し、1≦i≦n-1)番目のクエリ処理装置1は、クエリの結果を転送データ62としてi+1番目のクエリ処理装置1i+1に送信する。クエリ処理装置1i+1は、該転送データ62に対してi+1番目のローカルクエリ67i+1を実行する。n番目のクエリ処理装置1は、クエリの結果を処理結果65としてプロキシ装置2に送信する。
図3はクエリ処理装置1〜1の概略構成図である。
図示するように、クエリ処理装置1〜1は、ネットワーク5を介してプロキシ装置2と通信を行なうためのプロキシ装置アクセス部101と、ネットワーク5を介して他のクエリ処理装置1〜1と通信を行なうためのクエリ処理装置アクセス部102と、データ受信部103と、データ送信部104と、データ登録・スタンプ付与部105と、ストリームデータ管理部106と、データ取得部107と、ローカルクエリ最適化部108と、ローカルクエリ実行部109と、を有する。
データ受信部103は、クエリ処理装置アクセス部102を介して、処理の順番上一つ前に位置する他のクエリ処理装置1〜1n-1から転送データ62を受信する。但し、処理の順番上一番目に位置するクエリ処理装置1のデータ受信部103は、クエリ処理装置アクセス部102を介して、ストリームデータ生成装置4からストリームデータ61を受信する。
データ送信部104は、クエリ処理装置アクセス部102を介して、処理の順番上一つ後に位置する他のクエリ処理装置1〜1に、後述するローカルクエリ実行部109の処理結果を、転送データ62として送信する。但し、処理の順番上n番目に位置するクエリ処理装置1のデータ送信部104は、クエリ処理装置アクセス部102を介してプロキシ装置2に、後述するローカルクエリ実行部109の処理結果を、グローバルクエリの処理結果65として送信する。
データ登録・スタンプ付与部105は、自装置が処理の順番上1番目に位置するクエリ処理装置1である場合に、次の処理を行う。すなわち、データ登録・スタンプ付与部105は、データ受信部103がクエリ処理装置アクセス部102を介してストリームデータ生成装置4からストリームデータ61を受信すると、プロキシ装置2によって予め設定されたセグメントを該受信したストリームデータ61から切り出す。そして、切り出したセグメントおよび該受信したストリームデータ61のストリームIDを含む保存データ登録要求を生成し、これをプロキシ装置アクセス部101経由でプロキシ装置2に送信する。また、データ登録・スタンプ付与部105は、保存データ登録要求に対する応答として、処理の順番を示すシステムタイムスタンプおよびストリームデータ処理システム内での寿命を示すエクスパイアタイムスタンプを、プロキシ装置アクセス部101を介してプロキシ装置2から受信する。そして、上述の予め設定されたセグメントが切り出されたストリームデータ61に、該受信したシステムタイムスタンプおよびエクスパイアタイムスタンプを付与する。
プロキシ装置2におけるシステムタイムスタンプ、およびエクスパイアタイムスタンプの設定方法について、図15および図16を用いて説明する。説明を簡略化のために、本実施形態ではタイムスタンプを001、002、…のように時間の経過と共にその値が1ずつ増加する連番で表現しているが、UNIX(登録商標)オペレーティングシステムにおける時刻構造体など他の時刻表現方法でも差し支えない。
システムタイムスタンプ681は、ストリームデータがストリームデータ処理システムに到着した時刻を表す。ストリームデータはストリームデータ処理システム到着時にウィンドウオペレータで処理されるので、システムタイムスタンプ681はウィンドウオペレータでの処理開始時間と同一であると考えて差し支えない。図15に示す例では、タプルベースウィンドウ1094中の処理対象ストリームデータ69のうち、処理対象データ1、2はそれぞれ時刻001、002にストリームデータ処理システムに到着したことを表している。
一方、エクスパイアタイムスタンプ682は、ストリームデータ処理システム内でのストリームデータの寿命を表す。エクスパイアタイムスタンプ682は処理対象クエリにおけるウィンドウ指定の方法によって2通りの方法があり、図15および図16がそれぞれ、前記ウィンドウ指定がタプルベースの場合(タプルベースウィンドウ1094の場合)およびタイムベースの場合(タイムベースウィンドウ1601の場合)の例である。
図15のタプルベースウィンドウ1094の場合、ストリームデータ到着時にはそのエクスパイアタイムスタンプ682の値を決定することはできない。なぜならば、タプルベースウィンドウ1094では該ウィンドウに保持できる限界数以上のタプルが到着したときに初めて、ウィンドウから押し出されるストリームデータの寿命が決定されるためである。そのため、ストリームデータのストリームデータシステム到着時には、該ストリームデータのエクスパイアタイムスタンプ682は図15の処理対象データ"2"、"3"(69)、および処理対象データ"4"(68)に示されるように、"NULL"に設定される。その後、処理対象データ"4"(68)が到着すると、タプルベースウィンドウ1094が保持できるデータ数(タプル数)は3であるので、処理対象データ"1"(69)が該タプルベースウィンドウから押し出される。処理対象データ"4"(68)のシステムタイムスタンプ681は"004"であるので、処理対象データ"1"(69)のエクスパイアタイムスタンプ682は"004"に設定される。
図16のタイムベースウィンドウ1601の場合には、処理対象データがウィンドウに到着したタイミングでエクスパイアタイムスタンプ682の値が決定される。例えば図16に示す例の場合、タイムベースウィンドウ1601は3単位時間分のデータを保持するので、時刻"001"、"002"、"004"に到着した処理対象データ"1"、"2"、"3"(69)のエクスパイアタイムスタンプ682の値はそれぞれ、"004"、"005"、"007"となる。
ストリームデータ管理部106は、自装置が処理の順番上1番目に位置するクエリ処理装置1である場合に、次の処理を行う。すなわち、ストリームデータスタンプ付与部105によりシステムタイムスタンプおよびエクスパイアタイムスタンプが付与された、上述の予め設定されたセグメントが切り出されたストリームデータ61を、処理対象データとしてバッファリングする。そして、システムタイムスタンプが示す順番に従って後述するローカルクエリ実行部109に処理対象データを出力する。また、ストリームデータ管理部106は、自装置が処理の順番上2〜n番目に位置するクエリ処理装置1〜1である場合に、次の処理を行う。すなわち、データ受信部103が受信した転送データ62〜62n-1を、システムタイムスタンプが示す順番に従って後述するローカルクエリ実行部109に処理対象データを出力する。
また、ストリームデータ管理部106は、エクスパイアタイムスタンプが示す寿命が尽きた処理対象データを自クエリ処理装置1〜1内のローカルクエリ実行部中に作成される処理バッファであるテンポラルストアから消去する。消去方法の詳細については後述する。
データ取得部107は、自装置が処理の順番上i(但し、2≦i≦n)番目に位置するクエリ処理装置1である場合に、次の処理を行う。すなわち、ストリームデータ管理部106に処理対象データが新たに到着すると、当該処理対象データのストリームIDおよびプロキシ装置2によって予め設定されたセグメントの指定を含む対象データ要求を生成し、これをプロキシ装置アクセス部101経由でプロキシ装置2に送信して、プロキシ装置2から対象データを取得する。そして、取得した対象データをストリームデータ管理部106中の当該処理対象データに付加する。
ローカルクエリ最適化部108は、プロキシ装置アクセス部101を介してプロキシ装置2からローカルクエリ候補を受信すると、当該ローカルクエリ候補を後述するローカルクエリ実行部109で実行させた場合のクエリ処理コストを計算し、計算した処理コストをプロキシ装置2に送信する。ここで、クエリ処理コストは、例えば前記ローカルクエリ候補のCPU処理コスト(ローカルクエリ候補を実行するためのCPUが要するサイクル数)+I/O処理コスト(ローカルクエリ候補を実行するために発行されるI/O処理に必要なコスト)で計算できる。ストリームデータに対する前記処理コスト計算については、文献「Stratis Viglas, Jeffrey F. Naughton: 迭ate-based query optimization for streaming information sources SIGMOD Conference 2002, pp. 37-48.」にその方法が記載されている。
ローカルクエリ実行部109は、ストリームデータ管理部106から逐次入力される処理対象データに対して、プロキシ装置2によって設定されたローカルクエリを実行し、該実行結果に、該処理対象データのストリームIDを付与し、これを転送データ62としてデータ送信部104に出力する。
図4はローカルクエリ実行部109の概略図である。図示するように、ローカルクエリ実行部109は、ローカルクエリ記憶部1091と、クエリ実施条件記憶部1092と、クエリ処理エンジン1093と、を有する。
ローカルクエリ記憶部1091には、クエリIDが付与されたローカルクエリが登録される。さらにクエリ実施条件記憶部1092には、ローカルクエリ記憶部1091に記憶されているローカルクエリ毎に該クエリの実施条件を記述するレコードが記憶される。該レコードは、クエリIDを登録するフィールド10921と、実施条件を登録するフィールド10922とを有する。実施条件の好適な例としては、実施時間帯指定、処理対象データのストリームID指定、処理回数指定、処理データ量指定などが考えられる。
クエリ処理エンジン1093は、クエリ実施条件記憶部1092に記憶されているレコードの中から、フィールド10922に登録されている実施条件を満足するレコードを検索する。そして、検索したレコードのフィールド10921に登録されているクエリIDを持つローカルクエリをローカルクエリ記憶部1091から読み出し、クエリ処理エンジンに到着する処理対象データ1095に対して、読み出したローカルクエリを継続的に実行する。
上記構成のクエリ処理装置1〜1は、例えば図5に示すような、CPU901と、メモリ902と、HDD等の外部記憶装置903と、CD-ROMやDVD-ROM等の可搬性を有する記憶媒体904から情報を読み出す読取装置905と、キーボードやマウスなどの入力装置906と、ディスプレイなどの出力装置907と、通信ネットワークに接続するための通信装置908と、これらの装置を相互接続するバス909と、を備えた一般的なコンピュータシステムにおいて、CPU901がメモリ902上にロードされた所定のプログラムを実行することで実現できる。この所定のプログラムは、読取装置905を介して記憶媒体904から、あるいは、通信装置908を介してネットワークから、外部記憶装置903にダウンロードされ、それから、メモリ902上にロードされてCPU901により実行されるようにしてもよい。また、読取装置905を介して記憶媒体904から、あるいは、通信装置908を介してネットワークから、メモリ902上に直接ロードされ、CPU901により実行されるようにしてもよい。
次に、上記構成のクエリ処理装置1〜1の動作について説明する。
図6はローカルクエリの実行に先立って行われるクエリ処理装置1〜1の設定動作を説明するためのフロー図である。
ローカルクエリ最適化部108は、プロキシ装置アクセス部101を介してプロキシ装置2から少なくとも1つのローカルクエリ候補を受信すると(S1001でYES)、受信したローカルクエリ候補各々について、ローカルクエリ実行部109で実行させた場合の処理コストを計算する(S1002)。そして、各ローカルクエリ候補の処理コストを、プロキシ装置アクセス部101を介してプロキシ装置2へ送信する(S1003)。その後、S1004に進む。
S1004において、ローカルクエリ実行部109は、プロキシ装置アクセス部101を介してプロキシ装置2からローカルクエリ、クエリ実施条件、および、各クエリ処理装置の処理の順番に関する情報を受信すると(S1004でYES)、受信したローカルクエリおよびクエリ実施条件を、ローカルクエリ実行部109に設定する(S1005)。また、各クエリ処理装置の処理の順番に関する情報をクエリ処理装置アクセス部201に設定する。この情報により、クエリ処理装置アクセス部201は、データの入手先(処理の順番上一つ前に位置するクエリ処理装置あるいはストリームデータ生成装置)およびデータの宛先(処理の順番上一つ後に位置するクエリ処理装置あるいはプロキシ装置)を認識する。その後、S1006に進む。
S1006において、データ登録・スタンプ付与部105は、自クエリ処理装置が処理の順番上1番目に位置するクエリ処理装置1である場合に(S1006でYES)、プロキシ装置アクセス部101を介してプロキシ装置2から保存データを構成するセグメントの指定が送られてくるのを待つ(S1007でYES)。そして、指定されたセグメントをデータ登録・スタンプ付与部105に設定する(S1008)。その後、S1009に進む。
S1009において、データ取得部107は、自クエリ処理装置が処理の順番上2〜n番目に位置するクエリ処理装置1〜1である場合に(S1009でYES)、プロキシ装置アクセス部101を介してプロキシ装置2から対象データを構成するセグメントの指定が送られてくるのを待つ(S1010でYES)。そして、指定されたセグメントをデータ取得部107に設定する(S1011)。それから、データ取得部107は、該クエリ処理装置においてプロキシ装置に保存するデータが存在する場合、プロキシ装置アクセス部101を介してプロキシ装置2から保存データを構成するセグメントの指定が送られてくるのを待つ(S1012でYES)。そして、指定されたセグメントをデータ登録・スタンプ付与部105に設定し(S1013)、このフローを終了する。
図7は処理の順番上1番目に位置するクエリ処理装置1のクエリ処理動作を説明するためのフロー図である。
データ受信部103は、クエリ処理装置アクセス部111を介してストリームデータ生成装置4からストリームデータ61を受信すると(S1101)、該ストリームデータ61をデータ登録・スタンプ付与部105に通知する。データ登録・スタンプ付与部105は、データ受信部103から通知されたストリームデータ61から、プロキシ装置2により指定された保存データを構成するセグメントを切り出す(S1102)。そして、切り出したセグメントと、データ受信部103から通知されたストリームデータ61のストリームIDとを含む保存データ登録要求を生成し、これをプロキシ装置アクセス部101経由でプロキシ装置2に送信する(S1103)。それから、データ登録・スタンプ付与部105は、保存データ登録要求に対する応答としてプロキシ装置2からシステムタイムスタンプ681およびエクスパイアタイムスタンプ682が送られてくるのを待つ(S1104)。次に、データ登録・スタンプ付与部105は、上述の保存データを構成するセグメントが切り出されたストリームデータ61を処理対象データとし、これにプロキシ装置2から受信したシステムタイムスタンプ681およびエクスパイアタイムスタンプ682を付加してストリームデータ管理部106に通知する。これを受けて、ストリームデータ管理部106は、システムタイムスタンプ681およびエクスパイアタイムスタンプ682が付加された処理対象データをローカルクエリ実行部に転送する(S1105)。
また、ローカルクエリ実行部109は、システムタイムスタンプ681の順番に従ってストリームデータ管理部106から転送された処理対象データ68に対して、プロキシ装置2により設定されたクエリ実施条件を満足するローカルクエリを実行する(S1106)。そして、その実行結果をデータ送信部104に送信する。これを受けて、データ送信部104は、処理対象データ68のストリームID、システムタイムスタンプ681およびエクスパイアタイムスタンプ682と、該処理対象データ68に対するローカルクエリの実行結果とを含む転送データ62を生成し、これをクエリ処理装置アクセス部102経由で、処理の順番上2番目のクエリ処理装置12に送信する(S1107)。また、ストリームデータ管理部106は、ローカルクエリ実行部109によって読み出され、現在処理対象となっている処理対象データ68のシステムタイムスタンプよりも古い値のエクスパイアタイムスタンプを持つ処理対象データを、自クエリ処理装置内ローカルクエリ実行部中に作成される処理バッファであるテンポラルストアから消去する(S1108)。
図8は処理の順番上2〜n番目に位置するクエリ処理装置1〜1のクエリ処理動作を説明するためのフロー図である。
データ受信部103は、クエリ処理装置アクセス部102を介して、処理の順番上一つ前に位置するクエリ処理装置1〜1n-1から転送データ62を受信すると(S1401)、該転送データ62に含まれているストリームIDをデータ取得部107に通知する。データ取得部107は、プロキシ装置2により対象データを構成するセグメントが指定されている場合(S1402でYES)、データ受信部103より通知されたストリームIDと、対象データを構成するセグメントの指定とを含む対象データ要求を生成し、これをプロキシ装置アクセス部101経由でプロキシ装置2に送信する(S1403)。そして、プロキシ装置2から対象データを受信したならば(S1404)、これをデータ受信部103に通知する。一方、データ取得部107は、プロキシ装置2により対象データを構成するセグメントが指定されていない場合(S1402でNO)、対象データが不要である旨をデータ受信部103に通知する。さて、データ受信部103は、データ取得部107から対象データを受け取った場合は、転送データ62に対象データを付加し、これを処理対象データ68としてローカルクエリ実行部に転送する(S1405)。一方、データ取得部107から対象データが不要である旨の通知を受け取った場合は、転送データ62を処理対象データ68としてローカルクエリ実行部に転送する(S1406)。
また、ローカルクエリ実行部109は、前記転送された処理対象データ68に対して、プロキシ装置2により設定されたクエリ実施条件を満足するローカルクエリを実行する(S1407)。そして、その実行結果を、該処理対象データ68のストリームID、システムタイムスタンプ681およびエクスパイアタイムスタンプ682と共にデータ送信部104に送信し、処理結果からプロキシ装置2により指定された保存データを構成するセグメントを切り出す(S1408)。次に、切り出したセグメントと、ストリームIDとを含む保存データ登録要求を生成し、これをプロキシ装置アクセス部101経由でプロキシ装置2に送信する(S1409)。データ送信部104は、処理対象データ68のストリームID、システムタイムスタンプ681およびエクスパイアタイムスタンプ682と、該処理対象データ68に対するローカルクエリの実行結果とを含む転送データ62(但し、2≦i<n)を生成し、これをクエリ処理装置アクセス部102を介して、処理の順番上一つ後のクエリ処理装置1〜1に送信する。なお、自クエリ処理装置が処理の順番上n番目(最後)のクエリ処理装置1である場合、該処理対象データ68に対するローカルクエリの実行結果をグローバルクエリの処理結果65として、プロキシ装置アクセス部101を介してプロキシ装置2に送信する(S1410)。
また、ストリームデータ管理部106は、ローカルクエリ実行部109によって読み出され、現在処理対象となっている処理対象データ68のシステムタイムスタンプよりも古い値のエクスパイアタイムスタンプを持つ処理対象データを、自クエリ処理装置内のテンポラルストアから消去する(S1411)。
図1に戻って説明を続ける。
プロキシ装置2は、ユーザ端末3より受け付けたグローバルクエリ66をn個の処理に分割することでn個のローカルクエリ67〜67を生成し、ローカルクエリ67〜67をそれぞれ順番に、クエリ処理装置1〜1に設定する。すなわち、i(但し、1≦i≦n)番目のクエリ処理装置1に対してi番目のローカルクエリ67を設定する。また、プロキシ装置2は、ストリームデータ61を構成するセグメント各々について、他のクエリ処理装置1〜1を経由させて所望のクエリ処理装置1〜1に伝送させるか、それとも、プロキシ装置2を経由させて所望のクエリ処理装置1〜1に伝送させるかを決定する。そして、決定内容に従い、プロキシ装置2を経由させるセグメント(保存データを構成するセグメント)をクエリ処理装置1(但し、1≦i<n)に設定すると共に、プロキシ装置2を経由させるセグメントに対してローカルクエリを実行するクエリ処理装置1〜1に、当該セグメント(対象データを構成するセグメント)を設定する。
図9はプロキシ装置2の概略構成図である。
図示するように、プロキシ装置2は、ネットワーク5を介してクエリ処理装置1〜1と通信を行なうためのクエリ処理装置アクセス部201と、ネットワーク5を介してユーザ端末3と通信を行なうためのユーザ端末アクセス部202と、クエリ受信部203と、スタンプ発行部204と、保存データ管理部205と、クエリ処理装置情報記憶部206と、グローバルクエリ最適化部207と、通信ルート探索部208と、結果送信部209と、データ抽出部210と、を有する。
クエリ受信部203は、ユーザ端末アクセス部202を介してユーザ端末3からグローバルクエリ66およびクエリ実施条件を受信する。クエリ処理装置情報記憶部206には、本実施形態のストリームデータ処理システムに利用可能なクエリ処理装置の情報(アドレス、スペック等)が記憶されている。
グローバルクエリ最適化部207は、クエリ受信部203は受信したグローバルクエリ66をn個の処理に分割する(但し、n≦クエリ処理装置情報記憶部206に情報が記憶されているクエリ処理装置の数)。分割した処理を含む1番目〜n番目のローカルクエリ67〜67を生成し、n台のクエリ処理装置1〜1にそれぞれ順番に設定する。この際、グローバルクエリ最適化部207は、各のローカルクエリ最適化部108と連携し、全体としての処理コストが最も小さくなるように、クエリ処理装置1〜1に設定するローカルクエリ67〜67を生成する。
通信ルート探索部208は、ストリームデータ61を構成する各セグメントのネットワーク5における通信コストが最も小さくなるように、各セグメントの通信ルートを決定する。具体的には、処理の順番上i番目(但し、1<i≦n)のクエリ処理装置1で実行されるローカルクエリの対象となるセグメントのデータを、処理の順番上j番目〜i-1番目(但し、j<i)のクエリ処理装置1〜1i-1を経由させてi番目のクエリ処理装置1に取得させた場合の通信コストと、処理の順番上j番目のクエリ処理装置1およびプロキシ装置2を経由させてi番目のクエリ処理装置1に取得させた場合の通信コストとを比較し、通信コストの低い方の通信ルートを選択する。そして、選択された通信ルートに従い、ストリームデータ61から切り出して保存データとしてプロキシ装置2に送信するセグメントをクエリ処理装置1(1≦j<n)に設定する。また、クエリ処理装置1〜1がローカルクエリの対象データとしてプロキシ装置2から取得するセグメントをクエリ処理装置1〜1に設定する。
スタンプ発行部204は、クエリ処理装置アクセス部201を介して処理の順番上1番目のクエリ処理装置1から保存データ登録要求を受信すると、処理の順番を示すシステムタイムスタンプ681、エクスパイタイムスタンプ682、およびストリームIDを生成し、これ等をクエリ処理装置アクセス部201を介して処理の順番上1番目のクエリ処理装置1に送信する。また、スタンプ発行部204は、該保存データ登録要求に含まれている少なくとも1つのセグメントを、生成したシステムタイムスタンプ681、エクスパイアタイムスタンプ682、およびストリームIDと共に、保存データ管理部205に通知する。
保存データ管理部205は、スタンプ発行部204から受け取ったストリームID、少なくとも1つのセグメント、システムタイムスタンプ681およびエクスパイアタイムスタンプ682を、保存データとしてキャッシュ部2051に登録する。また、保存データ管理部205は、所定期間アクセスされなかった保存データを、キャッシュ部2051から記憶部2052に移動する。
データ抽出部210は、クエリ処理装置アクセス部201を介して処理の順番上2〜n番目のクエリ処理装置1〜1から受信した対象データ要求に従い、当該対象データ要求に含まれているストリームIDを持つ保存データを保存データ管理部205から検索し、検索した保存データから当該対象データ要求で指定されているセグメントのデータを抽出する。そして、抽出したセグメントのデータを対象データとして、対象データ要求の送信元に送信する。
結果送信部209は、クエリ処理装置アクセス部201を介して、処理の順番上n番目のクエリ処理装置1から受信したグローバルクエリの処理結果を、ユーザ端末アクセス部202を介してユーザ端末3に送信する。
上記構成のプロキシ装置2も、クエリ処理装置1〜1と同様に、例えば図5に示すようなコンピュータシステムにおいて、CPU901がメモリ902上にロードされた所定のプログラムを実行することで実現できる。この所定のプログラムは、読取装置905を介して記憶媒体904から、あるいは、通信装置908を介してネットワークから、外部記憶装置903にダウンロードされ、それから、メモリ902上にロードされてCPU901により実行されるようにしてもよい。また、読取装置905を介して記憶媒体904から、あるいは、通信装置908を介してネットワークから、メモリ902上に直接ロードされ、CPU901により実行されるようにしてもよい。
次に、上記構成のプロキシ装置2の動作について説明する。
図10はグローバルクエリの実行に先立って行われるプロキシ装置2の設定動作を説明するためのフロー図である。
グローバルクエリ最適化部207は、ユーザ端末アクセス部202を介してユーザ端末3からグローバルクエリ66をクエリ実施条件と共に受信すると(S2000でYES)、後述するグローバルクエリ最適化処理を行って、クエリ処理装置1〜1にローカルクエリ67〜67をクエリ実施条件と共に設定する(S2100)。それから、通信ルート探索部208が後述する通信ルート探索処理を行って、ストリームデータ生成装置4から出力されるストリームデータ61の通信ルートを決定し、該決定内容に従い、保存データを構成するセグメントをクエリ処理装置11に設定すると共に、対象データを構成するセグメントを、当該セグメントに対してローカルクエリを実行するクエリ処理装置1〜1に設定する(S2200)。
図11は図10のグローバルクエリ最適化処理(S2100)を説明するためのフロー図である。
まず、グローバルクエリ最適化部207は、ユーザ端末アクセス部202を介してユーザ端末3から受信したグローバルクエリ66を処理単位に分割する(S2101)。そして、その分割数がクエリ処理装置情報記憶部206に記憶されているクエリ処理装置の装置数以下であるか否かを調べる(S2102)。分割数が装置数以下である場合(S2102でYES)は、S2103に進む。一方、分割数が装置数以下でない場合(S2102でNO)は、S2111に進む。
S2103において、グローバルクエリ最適化部207は、クエリ処理装置情報記憶部206を参照して、クエリ処理装置情報記憶部206に情報が記憶されているクエリ処理装置の中から、上述の分割数分のクエリ処理装置をランダムに選択し、選択したクエリ処理装置各々に処理の順番をランダムに付与して、グローバルクエリを処理する装置グループの候補を生成する。
次に、グローバルクエリ最適化部207は、S2101でグローバルクエリから分割された処理単位毎に、当該処理単位を含むローカルクエリ候補を生成する。そして、グローバルクエリ最適化部207は、各ローカルクエリ候補に処理の順番を付与する(S2104)。なお、ローカルクエリ候補を付与する処理の順番は、当該ローカルクエリ候補に含まれる処理のグローバルクエリにおける実行順(記述順)とすればよい。
次に、グローバルクエリ最適化部207は、S2104で生成したローカルクエリ候補を、S2103で選択したクエリ処理装置に割り当てる(S2105)。具体的には、処理の順番上i(但し、1≦i≦n=分割数)番目のローカルクエリ候補を、処理の順番上i番目のクエリ処理装置に割り当てる。
次に、グローバルクエリ最適化部207は、クエリ処理装置アクセス部201を介して、S2103で選択したクエリ処理装置各々に、当該クエリ処理装置に割り当てたローカルクエリ候補を送信する。そして、クエリ処理装置アクセス部201を介して、各クエリ処理装置から、当該クエリ処理装置で当該クエリ処理装置に割り当てたローカルクエリ候補を実行した場合の処理コストを受信する(S2106)。
次に、グローバルクエリ最適化部207は、S2103で選択した各クエリ処理装置から受信した処理コストの総和を計算し、これをS2103で生成した装置グループの候補の総処理コストとする(S2107)。
さて、グローバルクエリ最適化部207は、クエリ処理装置情報記憶部206を参照し、クエリ処理装置情報記憶部206に情報が記憶されているクエリ処理装置を用いて新たな装置グループの候補(未選択の装置の組合せ)を生成できるか否かを判断する(S2108)。生成できる場合(S2108でYES)は、S2103に戻って処理を続ける。一方、生成できない場合(S2108でNO)は、S2103で生成した装置グループの候補の中から総処理コストが最小となる装置グループの候補を選出する。それから、クエリ処理装置アクセス部201を介して、選出した装置グループのクエリ処理装置各々に、当該クエリ処理装置に割り当てたローカルクエリ候補をローカルクエリとして、および、各クエリ処理装置の処理の順番に関する情報と共に送信する(S2109)。また、ローカルクエリが割り当てられたクエリ処理装置毎に、当該クエリ処理装置の情報および当該クエリ処理装置に割り当てられたローカルクエリの情報を、通信ルート探索部208に通知する。
一方、S2111において、グローバルクエリ最適化部207は、グローバルクエリから分割された処理単位の一部を結合して、分割数(処理数)がクエリ処理装置情報記憶部206に情報が記憶されているクエリ処理装置の装置数となるようにする。ここで、結合する処理単位は、グローバルクエリにおける実行順(記述順)が連続するものとするとよい。そして、処理毎に当該処理を含むローカルクエリ候補を生成する。したがって、ローカルクエリ候補は、クエリ処理装置情報記憶部206に情報が記憶されているクエリ処理装置の装置数分生成される。それから、グローバルクエリ最適化部207は、各ローカルクエリ候補に処理の順番を付与して、ローカルクエリグループの候補を生成する。なお、ローカルクエリ候補に付与する処理の順番は、当該ローカルクエリ候補に含まれる処理のグローバルクエリにおける実行順(記述順)とすればよい。
次に、グローバルクエリ最適化部207は、クエリ処理装置情報記憶部206に情報が記憶されているクエリ処理装置各々に処理の順番をランダムに付与する。そして、S2111で生成したローカルクエリ候補を、クエリ処理装置情報記憶部206に情報が記憶されているクエリ処理装置各々に割り当てる(S2112)。具体的には、処理の順番上i(但し、1≦i≦n=分割数)番目のローカルクエリ候補を、処理の順番上i番目のクエリ処理装置に割り当てる。
次に、グローバルクエリ最適化部207は、クエリ処理装置アクセス部201を介して、クエリ処理装置情報記憶部206に情報が記憶されているクエリ処理装置各々に、当該クエリ処理装置に割り当てたローカルクエリ候補を送信する。そして、クエリ処理装置アクセス部201を介して、各クエリ処理装置から、当該クエリ処理装置で当該クエリ処理装置に割り当てたローカルクエリ候補を実行した場合の処理コストを受信する(S2113)。
次に、グローバルクエリ最適化部207は、クエリ処理装置情報記憶部206に情報が記憶されている各クエリ処理装置から受信した処理コストの総和を計算し、これをS2111で生成したローカルクエリグループの候補の総処理コストとする(S2114)。
さて、グローバルクエリ最適化部207は、グローバルクエリから分割された処理単位の一部を結合して、分割数(処理数)がクエリ処理装置情報記憶部206に情報が記憶されているクエリ処理装置の装置数となるように、新たなローカルクエリグループの候補(未選択の処理の組合せ)を生成できるか否かを判断する(S2115)。生成できる場合(S2115でYES)は、S2111に戻って処理を続ける。一方、生成できない場合(S2115でNO)は、S2111で生成したローカルクエリグループの候補の中から総処理コストが最小となるローカルクエリグループの候補を選出する。それから、クエリ処理装置アクセス部210を介して、クエリ処理装置情報記憶部206に情報が記憶されているクエリ処理装置各々に、選出したローカルクエリグループにおいて当該クエリ処理装置に割り当てたローカルクエリ候補をローカルクエリとして、クエリ実施条件、および、各クエリ処理装置の処理の順番に関する情報と共に送信する(S2116)。また、ローカルクエリが割り当てられたクエリ処理装置毎に、当該クエリ処理装置の情報および当該クエリ処理装置に割り当てられたローカルクエリの情報を、通信ルート探索部208に通知する。
図12は図10の通信ルート探索処理(S2200)を説明するためのフロー図である。
先ず、通信ルート探索部208は、nをグローバルクエリ最適化部207より通知されたクエリ処理装置の装置数(=ローカルクエリ数)に設定する(S2201)。次に、i=2に設定する(S2202)。
それから、通信ルート探索部208は、グローバルクエリ最適化部207より通知された、処理の順番上i番目のクエリ処理装置に割り当てられたローカルクエリが対象とするセグメントを特定する(S2203)。
次に、通信ルート探索部208は、特定したセグメントが処理の順番上j番目〜i-1番目(但し、1≦j<i≦n)のクエリ処理装置を経由して、i番目のクエリ処理装置に到達した場合の通信コストC1を計算する(S2204)。例えば、クエリ処理装置間の単位データサイズ当たりの通信コストをU1とした場合、通信コストC1は、(クエリ装置間を転送するセグメントのデータサイズ×U1)の各クエリ装置間の総和で計算できる。例えば、処理の順番上1番目〜2番目のクエリ処理装置間でセグメントサイズV1のデータを転送し、処理の順番上2番目〜3番目のクエリ処理装置間でセグメントサイズV2のデータを転送した場合の通信コストC1は、C1=V1×U1+V2×U1となる。なお、クエリ処理装置間の単位データサイズ当たりの通信コストU1は、通信環境等を考慮して予め設定されているものとする。
次に、通信ルート探索部208は、特定したセグメントが処理の順番上j番目のクエリ処理装置およびプロキシ装置を経由して、i番目のクエリ処理装置に到達した場合の通信コストC2を計算する(S2205)。例えば、クエリ処理装置およびプロキシ装置間の単位データサイズ当たりの通信コストをU2とした場合、j番目のクエリ処理装置でプロキシ装置にセグメントサイズV3のデータを送信し、i番目のクエリ処理装置でプロキシ装置からセグメントサイズV4のデータを受信した場合の通信コストC2は、C2=V3×U2+V4×U2で計算できる。なお、クエリ処理装置およびプロキシ装置2間の単位データサイズ当たりの通信コストU2は、通信環境およびプロキシ装置2での管理に要する処理コスト等を考慮して予め設定されているものとする。
さて、通信ルート探索部208は、S2204で計算した通信コストC1およびS2205で計算した通信コストC2を比較する(S2206)。通信コストC1の方が高い場合(S2206でYES)は、S2203で特定したセグメントの通信ルートを、処理の順番上1番目〜i-1番目のクエリ処理装置を経由するルートに決定し、S2209に進む。一方、通信コストC2の方が低い場合(S2206でYES)は、S2203で特定したセグメントの通信ルートを、処理の順番上1番目のクエリ処理装置およびプロキシ装置2を経由するルートに決定し、S2207に進む。
S2207において、通信ルート探索部208は、S2203で特定した、処理の順番上i番目のクエリ処理装置に割り当てられたローカルクエリが対象とするセグメントを、保存データを構成するセグメントとする。それから、通信ルート探索部208は、クエリ処理装置アクセス部201を介して、処理の順番上i番目のクエリ処理装置にアクセスし、S2203で特定したセグメントを、当該クエリ処理装置の対象データを構成するセグメントに設定する(S2208)。
一方、S2209において、通信ルート探索部208は、S2203で特定した、処理の順番上i番目のクエリ処理装置に割り当てられたローカルクエリが対象とするセグメントを、保存データを構成するセグメントから外し、プロキシを利用しないようにする。
さて、通信ルート探索部208は、i=nか否かを調べ(S2210)、i=nでない(iがnに到達していない)ならば(S2210でNO)、iの値を1つインクリメントして(S2211)、S2203に戻る。i=nならば(S2210でYES)、クエリ処理装置アクセス部201を介して、処理の順番上1番目のクエリ処理装置にアクセスし、保存データを構成するセグメントを当該クエリ処理装置に設定する(S2212)。
図13はプロキシ装置2のクエリ処理動作を説明するためのフロー図である。
スタンプ発行部204は、クエリ処理装置アクセス部210を介して処理の順番上1番目のクエリ処理装置1から保存データ登録要求を受信すると(S2301でYES)、システムタイムスタンプ(例えば連番)681、およびエクスパイアタイムスタンプ(例えば連番)682を生成する(S2302)。そして、生成したシステムタイムスタンプ681およびエクスパイアタイムスタンプ682に該保存データ登録要求に含まれているストリームIDを付加し、これをクエリ処理装置アクセス部201経由で処理の順番上1番目のクエリ処理装置11に送信する(S2303)。また、スタンプ発行部204は、該保存データ登録要求に含まれているストリームIDおよび少なくとも1つのセグメントを、生成したシステムタイムスタンプ681およびエクスパイアタイムスタンプ682と共に、保存データ管理部205に通知する。これを受けて、保存データ管理部205は、スタンプ発行部204から受け取ったストリームID、少なくとも1つのセグメント、システムタイムスタンプ681およびエクスパイアタイムスタンプ682を、保存データとして登録する(S2304)。
また、データ抽出部210は、クエリ処理装置アクセス部201を介して処理の順番上2〜n番目のクエリ処理装置1〜1から対象データ要求を受信すると(S2401でYES)、当該対象データ要求に含まれているストリームIDを持つ保存データを保存データ管理部205から検索する(S2402)。そして、検索した保存データから当該対象データ要求で指定されているセグメントのデータを抽出する(S2404)。そして、抽出したセグメントのデータを対象データとして、クエリ処理装置アクセス部201を介して当該対象データ要求の送信元に送信する(S2404)。
次に、本発明の一実施形態に係るストリームデータ処理システムの動作概要を説明する。
図14は図1に示すストリームデータ処理システムの動作を説明するための図である。
ユーザ端末3がプロキシ装置2にグローバルクエリを送信すると(T301)、プロキシ装置2は、上述のグローバルクエリ最適化処理(図11参照)を行って(T302)、各クエリ処理装置1〜1に、ローカルクエリを設定する(T303〜T305)。また、プロキシ装置2は、上述の通信ルート探索処理(図12参照)を行って(T306)、処理順番上i番目(但し、1≦i<n)のクエリ処理装置1に、保存データを構成するセグメントを設定する(T307、T315、T316)。また、処理に際して保存データのセグメントを利用するクエリ処理装置1〜1に、当該セグメントを対象データとして利用するよう設定する(T308)。以上により、グローバルクエリの実行に先立って行われる各種設定が終了する。
ストリームデータ生成装置4は、複数のセグメントS1〜Snからなるストリームデータを生成し、これを処理の順番上1番目のクエリ処理装置1に送信する(T309)。
処理の順番上i番目(但し、1≦i<n)のクエリ処理装置1は、プロキシ装置2の設定に従い、受信したストリームデータS1〜Snから保存データを構成するセグメントS4〜Snを切り出して、プロキシ装置2に送信する(T310)。また、クエリ処理装置1は、残りのストリームデータに含まれているセグメントS1〜S3に対してローカルクエリを実行し、その結果を転送データとして、処理の順番上2番目のクエリ処理装置1に送信する(T311)。
処理の順番上2番目のクエリ処理装置1は、転送データに含まれているS2、S3に対してローカルクエリを実行し、その結果を転送データとして、処理の順番上3番目のクエリ処理装置1に送信する(T312)と共に、S3を保存データとしてプロキシ装置2に転送する(T317)。なお、処理の順番上i番目のクエリ処理装置1も同様の処理を行う(T318)。但し、ローカルクエリの対象となるセグメントSiが転送データに含まれていない場合は、プロキシ装置2からこのセグメントSiを取得する(T313)。
そして、処理の順番上n番目(最後)のクエリ処理装置1は、ローカルクエリの処理結果をプロキシ装置2に通知する。プロキシ装置2は、この結果をグローバルクエリの処理結果として、ユーザ端末3に送信する(T314)。
以上、本発明の一実施形態について説明した。
本実施形態によれば、例えば処理の順番上後方に位置するクエリ処理装置で初めてローカルクエリの処理に使用されるセグメントが保存データとしてプロキシ装置2に格納される。このため、該セグメントが複数のクエリ処理装置間を伝送されるのを防止することができ、これにより、通信トラフィックの発生を抑制することができる。
また、本実施形態では、処理対象データに付与されたシステムタイムスタンプが示す順番に従ってクエリ処理を実行するので、例えば株価トレンド等の処理の順番が問題になるストリームデータも適切に処理することができる。また、本実施形態では、エクスパイアタイムスタンプが示す寿命が尽きた処理対象データを装置内のテンポラルストアから消去するので、不要なデータが装置内に滞在してクエリ処理の結果に影響を与えることを防止できる。
本発明は上記の各実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
例えば、上記の実施形態では、処理の順番上最後(n番目)に位置するクエリ処理装置1は、グローバルクエリの処理結果をプロキシ装置2に送信しているが、これをユーザ端末3に直接送信するようにしてもよい。
また、上記の実施形態では、システムタイムスタンプ681およびエクスパイアタイムスタンプ682として、例えば連番を使用する場合を例にとり説明した。しかし、本発明はこれに限定されない。システムタイムスタンプ681およびエクスパイアタイムスタンプ682として、例えば時刻を利用してよい。
また、上記の実施形態において、いずれかのクエリ処理装置1〜1に、プロキシ装置2としての機能を持たせてプロキシ装置2を兼ねさせてもよい。
図1は本発明の一実施形態に係るストリームデータ処理システムの概略図である。 図2はストリームデータ61のデータフォーマットを模式的に表した図である。 図3はクエリ処理装置1〜1の概略構成図である。 図4はローカルクエリ実行部109の概略図である。 図5はクエリ処理装置1〜1のハードウエア構成例を示す図である。 図6はローカルクエリの実行に先立って行われるクエリ処理装置1〜1の設定動作を説明するためのフロー図である。 図7は処理の順番上一番目に位置するクエリ処理装置1のクエリ処理動作を説明するためのフロー図である。 図8は処理の順番上2〜n番目に位置するクエリ処理装置1〜1のクエリ処理動作を説明するためのフロー図である。 図9はプロキシ装置2の概略構成図である。 図10はグローバルクエリの実行に先立って行われるプロキシ装置2の設定動作を説明するためのフロー図である。 図11は図10のグローバルクエリ最適化処理(S2100)を説明するためのフロー図である。 図12は図10の通信ルート探索処理(S2200)を説明するためのフロー図である。 図13はプロキシ装置2のクエリ処理動作を説明するためのフロー図である。 図14は図1に示すストリームデータ処理システムの動作を説明するための図である。 図15はタプルベースウィンドウを説明するための図である。 図16はタイムベースウィンドウを説明するための図である。
符号の説明
1:クエリ処理装置、2:プロキシ装置、3:ユーザ端末、4:ストリームデータ生成装置、5:ネットワーク、61:ストリームデータ、62:転送データ、63:保存データ、64:対象データ、65:処理結果、66:グローバルクエリ、67:ローカルクエリ

Claims (11)

  1. ストリームデータに対して予め登録されるクエリであるグローバルクエリを実行し、その結果を出力するストリームデータ処理システムであって、
    前記グローバルクエリを分割することにより予め生成されるn個のローカルクエリのうちi(但し、1≦i≦n)番目のローカルクエリをそれぞれ実行するi番目のクエリ処理装置と、前記ストリームデータの少なくとも一部を含む保存データを記憶するプロキシ装置と、を有し、
    前記プロキシ装置は、
    前記ストリームデータの少なくとも一部と前記i番目のクエリ処理装置とを対応付け、前記対応付けを示す対応情報を前記クエリ処理装置に送信するクエリ制御手段と、
    前記クエリ処理装置から前記保存データを受信して記憶する保存データ記憶手段と、
    前記クエリ処理装置からの要求に基づいて、前記ローカルクエリの処理対象である対象データを、前記保存データ記憶手段に記憶されている前記保存データから読み出して、要求元の前記クエリ処理装置へ送信するデータ読出手段と、を有し、
    i番目の前記クエリ処理装置は、
    i=1の場合に、ストリームデータを受信し、i≠1の場合に、i−1番目の前記クエリ処理装置から転送データを受信するデータ受信手段と、
    前記プロキシ装置から受信した前記対応情報に基づいて、i=1の場合に、1番目の前記クエリ処理装置に対応付けられた、受信したストリームデータの少なくとも一部を、前記保存データとして前記プロキシ装置に送信して記憶させ、1<i<nの場合に、i番目の前記クエリ処理装置に対応付けられた、受信した転送データまたは対象データの少なくともいずれかの少なくとも一部を、前記保存データとして前記プロキシ装置に送信して記憶させるデータ登録手段と、
    1<i≦nの場合に、前記プロキシ装置から受信した前記対応情報に基づいて、i番目の前記クエリ処理装置に、i番目の前記ローカルクエリの処理対象である前記対象データとしてデータが対応付けられている場合、前記プロキシ装置にアクセスして前記対象データを取得するデータ取得手段と
    i=1の場合に、前記データ受信手段により受信されたストリームデータに対して前記プロキシ装置によって予め登録されているi番目のローカルクエリを実行し、i≠1の場合に、前記データ受信手段により受信された転送データまたは前記データ取得手段により取得された対象データの少なくともいずれかに対して、前記プロキシ装置によって予め登録されているi番目のローカルクエリを実行するローカルクエリ処理手段と、
    i≠nの場合に、前記ローカルクエリ処理手段による処理結果を転送データとしてi+1番目の前記クエリ処理装置に送信し、i=nの場合に、前記ローカルクエリ処理手段による処理結果を前記プロキシ装置又は前記グローバルクエリを出力した端末に送信するデータ送信手段と、を有する、
    ことを特徴とするストリームデータ処理システム。
  2. 請求項1に記載のストリームデータ処理システムであって、
    前記プロキシ装置は、
    前記グローバルクエリの入力を受け付けるグローバルクエリ入力手段と、
    前記グローバルクエリ入力手段に入力されたグローバルクエリをn個の処理に分割して1番目〜n番目のローカルクエリを生成するローカルクエリ生成手段と、
    前記ローカルクエリ生成手段により生成された1番目〜n番目のローカルクエリをそれぞれ1番目〜n番目の前記クエリ処理装置に送信するローカルクエリ送信手段と、をさらに有し、
    i(但し、1≦i≦n)番目の前記クエリ処理装置は、
    前記プロキシ装置からi番目のローカルクエリを受信して、前記ローカルクエリ処理手段に設定するクエリ受信手段をさらに有する、
    ことを特徴とするストリームデータ処理システム。
  3. 請求項に記載のストリームデータ処理システムであって、
    前記ローカルクエリ生成手段は、
    前記グローバルクエリ入力手段に入力されたグローバルクエリをm(但し、n<m)個の処理単位に分割し、各処理単位の少なくとも一部を結合してn個の処理にし、各処理を含む1番目〜n番目のローカルクエリを生成するものであり、さらに、
    前記各処理単位を結合する組み合わせが異なる1番目〜n番目のローカルクエリを含む複数の候補グループを生成する手段と、
    i(但し、1≦i≦n)番目の前記クエリ処理装置に対して、前記生成した各候補グループのi番目のローカルクエリを送信して、当該クエリ処理装置から各候補グループのi番目のローカルクエリの処理コストを入手する処理を、1番目〜n番目の前記クエリ処理装置各々に対して実行する手段と、
    1番目〜n番目の前記クエリ処理装置から入手した各候補グループの1番目〜n番目のローカルクエリの処理コストに基づいて、1番目〜n番目のローカルクエリの処理コストの総和が最小となる候補グループを選択する手段と、を有し、
    前記ローカルクエリ送信手段は、
    前記選択する手段により選択された候補グループの1番目〜n番目のローカルクエリをそれぞれ1番目〜n番目の前記クエリ処理装置に送信し、
    i(但し、1≦i≦n)番目の前記クエリ処理装置は、
    前記クエリ受信手段により受信された候補グループのi番目のローカルクエリを前記ローカルクエリ処理手段に実行させた場合の処理コストを算出し、当該処理コストを前記プロキシ装置に送信する処理コスト送信手段を、さらに有する、
    ことを特徴とするストリームデータ処理システム。
  4. 請求項2又は3に記載のストリームデータ処理システムであって、
    前記クエリ制御手段は、
    1番目の前記クエリ処理装置に対して前記クエリ処理装置に入力されるストリームデータの少なくとも一部を保存データとして指定する情報を前記対応情報として送信し、i(但し、1<i<n)番目の前記クエリ処理装置に対してi番目の前記クエリ処理装置に入力される転送データまたは対象データの少なくともいずれかの少なくとも一部を保存データとして指定する情報を前記対応情報として送信し
    前記データ登録手段は、
    i=1の場合に、前記データ受信手段により受信されたストリームデータから前記プロキシ装置により指定された部分を抽出し、当該抽出した部分を含む保存データを前記プロキシ装置に送信して記憶させ、1<i<nの場合に、前記データ受信手段により受信された転送データまたは前記データ取得手段により取得された対象データの少なくともいずれかから、前記プロキシ装置により指定された部分を抽出し、当該抽出した部分を含む保存データを前記プロキシ装置に送信して記憶させ
    ことを特徴とするストリームデータ処理システム。
  5. 請求項に記載のストリームデータ処理システムであって、
    前記プロキシ装置は、
    i(但し、1<i≦n)番目の前記クエリ処理装置によって実行されるi番目のローカルクエリの処理対象の前記ストリームデータ中の対象データを取得するための、j(但し、1≦j<i)〜i−1番目の前記クエリ処理装置を経由するルートの通信コストの総和である第1の通信コストと、前記j番目のクエリ処理装置及び前記プロキシ装置を経由するルートの通信コストの総和である第2の通信コストとを算出する処理と、前記第1通信コストと前記第2通信コストとを比較する処理と、前記第2の通信コストが前記第1の通信コストよりも小さい場合に、前記i番目のローカルクエリの対象データを前記j番目のクエリ処理装置の保存データとして決定する処理とを、実行する保存データ決定手段をさらに有し、
    前記クエリ制御手段は、
    前記保存データ決定手段により決定された前記j番目のクエリ処理装置の保存データを指定する前記対応情報を、前記j番目のクエリ処理装置に送信し、前記j番目のクエリ処理装置の保存データに対応する前記i番目のローカルクエリの対象データを指定する前記対応情報を、前記i番目のクエリ処理装置に送信する、
    ことを特徴とするストリームデータ処理システム。
  6. 請求項1乃至のいずれか一項に記載のストリームデータ処理システムであって、
    前記プロキシ装置は、
    1番目の前記クエリ処理装置からのシステムタイムスタンプ要求に応じて、当該1番目の前記クエリ処理装置に受信されたストリームデータの順番を示すシステムタイムスタンプを生成して、当該1番目の前記クエリ処理装置に送信するシステムタイムスタンプ生成手段をさらに有し、
    1番目の前記クエリ処理装置の前記データ受信手段は、
    前記ストリームデータを新たに受信する毎に、前記プロキシ装置に前記システムタイムスタンプ要求を送信して、前記プロキシ装置からシステムタイムスタンプを入手し、入手した前記システムタイムスタンプを新たに受信したストリームデータに付与し、
    i(但し、1≦i≦n)番目の前記クエリ処理装置の前記ローカルクエリ処理手段は、
    i=1の場合に、ストリームデータに付与されている前記システムタイムスタンプが示す順番に従って、受信した複数の前記ストリームデータの中から実行対象のストリームデータを特定し、当該実行対象のストリームデータの一部に対してi番目のローカルクエリを実行し、i≠1の場合に、転送データに付与されているシステムタイムスタンプが示す順番に従って、受信した複数の転送データの中から実行対象の転送データを特定し、当該実行対象の転送データまたは前記対象データの少なくともいずれかの少なくとも一部に対して、i番目のローカルクエリを実行し、
    i(但し、1≦i≦n)番目の前記クエリ処理装置の前記データ送信手段は、
    i=1の場合に、前記データ受信手段が受信した前記ストリームデータに付与した前記システムタイムスタンプを前記ローカルクエリ処理手段の処理結果である前記転送データに付与して2番目の前記クエリ処理装置に送信し、i≠1,nの場合に、前記データ受信手段が受信した前記転送データに付与されているシステムタイムスタンプを前記ローカルクエリ処理手段の処理結果である前記転送データに付与してi+1番目の前記クエリ処理装置に送信する
    ことを特徴とするストリームデータ処理システム。
  7. 請求項に記載のストリームデータ処理システムであって、
    前記プロキシ装置は、
    1番目の前記クエリ処理装置からのエクスパイアタイムスタンプ要求に応じて、前記システムタイムスタンプ生成手段により生成された前記システムタイムスタンプが付与された前記ストリームデータのストリームデータ処理システム内での寿命を示すエクスパイアタイムスタンプを生成して、当該1番目の前記クエリ処理装置に送信するエクスパイアタイムスタンプ生成手段をさらに有し、
    1番目の前記クエリ処理装置の前記データ受信手段は、
    前記ストリームデータを新たに受信する毎に、前記プロキシ装置に前記システムタイムスタンプ要求とともに前記エクスパイアタイムスタンプ要求を送信して、前記プロキシ装置から前記エクスパイアタイムスタンプを入手し、入手した前記エクスパイアタイムスタンプを新たに受信した前記ストリームデータに付与し、
    i(但し、1≦i≦n)番目の前記クエリ処理装置の前記データ送信手段は、
    i=1の場合に、前記データ受信手段が受信した前記ストリームデータに付与した前記エクスパイアタイムスタンプを前記ローカルクエリ処理手段の処理結果である前記転送データに付与して2番目の前記クエリ処理装置に送信し、i≠1,nの場合に、前記データ受信手段が受信した前記転送データに付与されている前記エクスパイアタイムスタンプを前記ローカルクエリ処理手段の処理結果である前記転送データに付与してi+1番目の前記クエリ処理装置に送信し、
    i(但し、1≦i≦n)番目の前記クエリ処理装置は、
    前記ローカルクエリ処理手段の処理対象であるデータを記憶するデータ記憶手段と、
    i=1の場合に、処理対象となっている前記ストリームデータの前記システムタイムスタンプよりも古い前記エクスパイアタイムスタンプを持つ前記データ記憶手段に記憶されているストリームデータを消去し、i≠1の場合に、処理対象となっている前記転送データまたは前記対象データの少なくともいずれかの前記システムタイムスタンプよりも古い前記エクスパイアタイムスタンプを持つ前記データ記憶手段に記憶されている転送データまたは対象データの少なくともいずれかを消去するデータ消去手段と、をさらに有する
    ことを特徴とするストリームデータ処理システム。
  8. 請求項1乃至7のいずれか一項に記載のストリームデータ処理システムであって、
    前記保存データ記憶手段は、
    主記憶装置と、補助記憶装置とを有する
    ことを特徴とするストリームデータ処理システム。
  9. 請求項1乃至のいずれか一項に記載のストリームデータ処理システムにおける前記プロキシ装置。
  10. 請求項1乃至のいずれか一項に記載のストリームデータ処理システムにおける前記クエリ処理装置。
  11. グローバルクエリを分割することにより予め生成されるn個のローカルクエリのうちi(但し、1≦i≦n)番目のローカルクエリをそれぞれ実行するi番目のクエリ処理装置と、ストリームデータの少なくとも一部を含む保存データを記憶するプロキシ装置と、を有するストリームデータ処理システムが、前記ストリームデータに対して前記グローバルクエリを実行し、その結果を出力するストリームデータ処理方法であって、
    前記プロキシ装置が、
    前記ストリームデータの少なくとも一部と前記i番目のクエリ処理装置とを対応付け、前記対応付けを示す対応情報を前記クエリ処理装置に送信するクエリ制御ステップと、
    前記クエリ処理装置から前記保存データを受信して記憶する保存データ記憶ステップと、
    前記クエリ処理装置からの要求に基づいて、前記ローカルクエリの処理対象である対象データを、前記保存データ記憶手段に記憶されている前記保存データから読み出して、要求元の前記クエリ処理装置へ送信するデータ読出ステップと、を行い、
    i番目のクエリ処理装置が、
    i=1の場合に、ストリームデータを受信し、i≠1の場合に、i−1番目の前記クエリ処理装置から転送データを受信するデータ受信ステップと、
    前記プロキシ装置から受信した前記対応情報に基づいて、i=1の場合に、1番目の前記クエリ処理装置に対応付けられた、受信したストリームデータの少なくとも一部を、前記保存データとして前記プロキシ装置に送信して記憶させ、1<i<nの場合に、i番目の前記クエリ処理装置に対応付けられた、受信した転送データまたは対象データの少なくともいずれかの少なくとも一部を、前記保存データとして前記プロキシ装置に送信して記憶させるデータ登録ステップと、
    1<i≦nの場合に、前記プロキシ装置から受信した前記対応情報に基づいて、i番目の前記クエリ処理装置に、i番目の前記ローカルクエリの処理対象である前記対象データとしてデータが対応付けられている場合、前記プロキシ装置にアクセスして前記対象データを取得するデータ取得ステップ
    i=1の場合に、前記データ受信手段により受信されたストリームデータに対して前記プロキシ装置によって予め登録されているi番目のローカルクエリを実行し、i≠1の場合に、前記データ受信手段により受信された転送データまたは前記データ取得手段により取得された対象データの少なくともいずれかに対して、前記プロキシ装置によって予め登録されているi番目のローカルクエリを実行するローカルクエリ処理ステップと、
    i≠nの場合に、前記ローカルクエリ処理手段による処理結果を転送データとしてi+1番目の前記クエリ処理装置に送信し、i=nの場合に、前記ローカルクエリ処理手段による処理結果を前記プロキシ装置又は前記グローバルクエリを出力した端末に送信するデータ送信ステップと、う、
    ことを特徴とするストリームデータ処理方法。
JP2005211483A 2005-07-21 2005-07-21 ストリームデータ処理システムおよびストリームデータ処理方法 Expired - Fee Related JP4723301B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005211483A JP4723301B2 (ja) 2005-07-21 2005-07-21 ストリームデータ処理システムおよびストリームデータ処理方法
US11/359,540 US7644110B2 (en) 2005-07-21 2006-02-23 Stream data processing system and stream data processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005211483A JP4723301B2 (ja) 2005-07-21 2005-07-21 ストリームデータ処理システムおよびストリームデータ処理方法

Publications (2)

Publication Number Publication Date
JP2007026373A JP2007026373A (ja) 2007-02-01
JP4723301B2 true JP4723301B2 (ja) 2011-07-13

Family

ID=37680270

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005211483A Expired - Fee Related JP4723301B2 (ja) 2005-07-21 2005-07-21 ストリームデータ処理システムおよびストリームデータ処理方法

Country Status (2)

Country Link
US (1) US7644110B2 (ja)
JP (1) JP4723301B2 (ja)

Families Citing this family (118)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070204020A1 (en) * 2006-02-24 2007-08-30 International Business Machines Corporation System and method of stream processing workflow composition using automatic planning
US20070250331A1 (en) * 2006-04-05 2007-10-25 International Business Machines Corporation Method for composition of stream processing plans
US7710884B2 (en) * 2006-09-01 2010-05-04 International Business Machines Corporation Methods and system for dynamic reallocation of data processing resources for efficient processing of sensor data in a distributed network
ATE432000T1 (de) * 2007-06-19 2009-06-15 Alcatel Lucent Auswahlverfahren zwischen mehreren betriebsmodi für die bereitstellung eines rundfunk- oder multicast-dienstes
JP4990696B2 (ja) * 2007-06-27 2012-08-01 株式会社日立製作所 ストリームデータの処理方法およびストリームデータ処理システム
JP5055039B2 (ja) * 2007-06-27 2012-10-24 株式会社日立製作所 ストリームデータ処理方法およびストリームデータ処理システム
US7979420B2 (en) * 2007-10-16 2011-07-12 Oracle International Corporation Handling silent relations in a data stream management system
US7996388B2 (en) * 2007-10-17 2011-08-09 Oracle International Corporation Adding new continuous queries to a data stream management system operating on existing queries
US8296316B2 (en) * 2007-10-17 2012-10-23 Oracle International Corporation Dynamically sharing a subtree of operators in a data stream management system operating on existing queries
JP5256685B2 (ja) * 2007-10-18 2013-08-07 日本電気株式会社 情報処理装置
US8073826B2 (en) 2007-10-18 2011-12-06 Oracle International Corporation Support for user defined functions in a data stream management system
US8521867B2 (en) * 2007-10-20 2013-08-27 Oracle International Corporation Support for incrementally processing user defined aggregations in a data stream management system
US7991766B2 (en) 2007-10-20 2011-08-02 Oracle International Corporation Support for user defined aggregations in a data stream management system
US8019747B2 (en) * 2007-10-30 2011-09-13 Oracle International Corporation Facilitating flexible windows in data stream management systems
US8103655B2 (en) * 2007-10-30 2012-01-24 Oracle International Corporation Specifying a family of logics defining windows in data stream management systems
JP5198929B2 (ja) * 2008-04-25 2013-05-15 株式会社日立製作所 ストリームデータ処理方法及び計算機システム
US8055767B1 (en) * 2008-07-15 2011-11-08 Zscaler, Inc. Proxy communication string data
US8589436B2 (en) * 2008-08-29 2013-11-19 Oracle International Corporation Techniques for performing regular expression-based pattern matching in data streams
JP5465413B2 (ja) 2008-10-29 2014-04-09 株式会社日立製作所 ストリームデータ処理方法、及びそのシステム
JP5206375B2 (ja) * 2008-12-02 2013-06-12 富士通株式会社 データ紐付けプログラム,情報処理装置およびデータ紐付け方法
JP4727715B2 (ja) * 2008-12-12 2011-07-20 株式会社日立製作所 ストリームデータ処理方法、及びシステム
US8352517B2 (en) * 2009-03-02 2013-01-08 Oracle International Corporation Infrastructure for spilling pages to a persistent store
US8935293B2 (en) * 2009-03-02 2015-01-13 Oracle International Corporation Framework for dynamically generating tuple and page classes
US8145859B2 (en) 2009-03-02 2012-03-27 Oracle International Corporation Method and system for spilling from a queue to a persistent store
JP5149840B2 (ja) * 2009-03-03 2013-02-20 株式会社日立製作所 ストリームデータ処理方法、ストリームデータ処理プログラム、および、ストリームデータ処理装置
JP4870183B2 (ja) * 2009-03-13 2012-02-08 株式会社日立製作所 ストリームデータ処理システムにおける障害回復方法、計算機システム及び障害回復プログラム
US9613123B2 (en) * 2009-04-13 2017-04-04 Hewlett Packard Enterprise Development Lp Data stream processing
JP5058209B2 (ja) * 2009-05-22 2012-10-24 株式会社日立製作所 ストリームデータ処理において逆再生を行うデータ処理システム
US8387076B2 (en) * 2009-07-21 2013-02-26 Oracle International Corporation Standardized database connectivity support for an event processing server
US8321450B2 (en) * 2009-07-21 2012-11-27 Oracle International Corporation Standardized database connectivity support for an event processing server in an embedded context
JP5396184B2 (ja) * 2009-07-31 2014-01-22 株式会社日立製作所 計算機システム及び複数計算機によるストリームデータ分散処理方法
US8386466B2 (en) * 2009-08-03 2013-02-26 Oracle International Corporation Log visualization tool for a data stream processing server
US8527458B2 (en) * 2009-08-03 2013-09-03 Oracle International Corporation Logging framework for a data stream processing server
JP4967014B2 (ja) * 2009-12-16 2012-07-04 株式会社日立製作所 ストリームデータ処理装置及び方法
US9430494B2 (en) * 2009-12-28 2016-08-30 Oracle International Corporation Spatial data cartridge for event processing systems
US8959106B2 (en) 2009-12-28 2015-02-17 Oracle International Corporation Class loading using java data cartridges
US9305057B2 (en) * 2009-12-28 2016-04-05 Oracle International Corporation Extensible indexing framework using data cartridges
JP5457281B2 (ja) * 2010-06-14 2014-04-02 日本電信電話株式会社 データ処理装置、データ処理方法及びプログラム
US8713049B2 (en) 2010-09-17 2014-04-29 Oracle International Corporation Support for a parameterized query/view in complex event processing
US9189280B2 (en) 2010-11-18 2015-11-17 Oracle International Corporation Tracking large numbers of moving objects in an event processing system
US8990416B2 (en) 2011-05-06 2015-03-24 Oracle International Corporation Support for a new insert stream (ISTREAM) operation in complex event processing (CEP)
US9329975B2 (en) 2011-07-07 2016-05-03 Oracle International Corporation Continuous query language (CQL) debugger in complex event processing (CEP)
US9361342B2 (en) * 2011-10-10 2016-06-07 Hewlett Packard Enterprise Development Lp Query to streaming data
US9430117B2 (en) 2012-01-11 2016-08-30 International Business Machines Corporation Triggering window conditions using exception handling
US9438656B2 (en) 2012-01-11 2016-09-06 International Business Machines Corporation Triggering window conditions by streaming features of an operator graph
JP5874915B2 (ja) * 2012-02-03 2016-03-02 日本電気株式会社 データストリーム処理システム、管理装置、データストリーム処理方法、および、コンピュータ・プログラム
US9015339B2 (en) * 2012-04-25 2015-04-21 International Business Machines Corporation Monitoring streams buffering to optimize operator procressing
US9391830B2 (en) 2012-09-26 2016-07-12 International Business Machines Corporation Dynamic stream processing within an operator graph
US9262479B2 (en) 2012-09-28 2016-02-16 Oracle International Corporation Join operations for continuous queries over archived views
US9563663B2 (en) 2012-09-28 2017-02-07 Oracle International Corporation Fast path evaluation of Boolean predicates
US9158795B2 (en) 2012-09-28 2015-10-13 International Business Machines Corporation Compile-time grouping of tuples in a streaming application
US9497250B2 (en) 2012-10-29 2016-11-15 International Business Machines Corporation Runtime grouping of tuples in a streaming application
US9020785B2 (en) 2012-11-09 2015-04-28 International Business Machines Corporation Identifying and routing poison tuples in a streaming application
US10956422B2 (en) 2012-12-05 2021-03-23 Oracle International Corporation Integrating event processing with map-reduce
US9122725B2 (en) 2012-12-06 2015-09-01 International Business Machines Corporation Tuple routing in a streaming application
US9195559B2 (en) 2012-12-12 2015-11-24 International Business Machines Corporation Management of stream operators with dynamic connections
US9098587B2 (en) 2013-01-15 2015-08-04 Oracle International Corporation Variable duration non-event pattern matching
US10298444B2 (en) 2013-01-15 2019-05-21 Oracle International Corporation Variable duration windows on continuous data streams
US9183175B2 (en) 2013-01-28 2015-11-10 International Business Machines Corporation Memory management in a streaming application
US9390135B2 (en) 2013-02-19 2016-07-12 Oracle International Corporation Executing continuous event processing (CEP) queries in parallel
US9047249B2 (en) 2013-02-19 2015-06-02 Oracle International Corporation Handling faults in a continuous event processing (CEP) system
US9251205B2 (en) 2013-02-21 2016-02-02 International Business Machines Corporation Streaming delay patterns in a streaming environment
US9087082B2 (en) 2013-03-07 2015-07-21 International Business Machines Corporation Processing control in a streaming application
US9280549B2 (en) 2013-03-14 2016-03-08 International Business Machines Corporation Compressing tuples in a streaming application
US9002846B2 (en) 2013-03-15 2015-04-07 International Business Machines Corporation Ending tuple processing in a stream-based computing application
US9329970B2 (en) 2013-03-15 2016-05-03 International Business Machines Corporation Selecting an operator graph configuration for a stream-based computing application
US9571545B2 (en) 2013-03-15 2017-02-14 International Business Machines Corporation Evaluating a stream-based computing application
US9229965B2 (en) 2013-03-20 2016-01-05 International Business Machines Corporation Managing attributes in stream processing using a cache
US9218395B2 (en) 2013-03-20 2015-12-22 International Business Machines Corporation Managing attributes in stream processing
US9305031B2 (en) * 2013-04-17 2016-04-05 International Business Machines Corporation Exiting windowing early for stream computing
US9147010B2 (en) 2013-04-17 2015-09-29 International Business Machines Corporation Reconfiguring an operator graph based on attribute usage
US9325758B2 (en) 2013-04-22 2016-04-26 International Business Machines Corporation Runtime tuple attribute compression
US9426197B2 (en) 2013-04-22 2016-08-23 International Business Machines Corporation Compile-time tuple attribute compression
US9418113B2 (en) 2013-05-30 2016-08-16 Oracle International Corporation Value based windows on relations in continuous data streams
US9344342B2 (en) 2013-06-10 2016-05-17 International Business Machines Corporation Monitoring similar data in stream computing
US9384302B2 (en) 2013-06-17 2016-07-05 International Business Machines Corporation Generating differences for tuple attributes
US9152689B2 (en) 2013-06-25 2015-10-06 International Business Machines Corporation Managing passthru connections on an operator graph
US9372780B2 (en) 2013-06-28 2016-06-21 International Business Machines Corporation Breakpoint continuation for stream computing
US9515965B2 (en) 2013-09-18 2016-12-06 International Business Machines Corporation Managing data paths in an operator graph
US9471639B2 (en) 2013-09-19 2016-10-18 International Business Machines Corporation Managing a grouping window on an operator graph
US9298801B2 (en) 2013-09-25 2016-03-29 International Business Machines Corporation Managing multiple windows on an operator graph
JP6032680B2 (ja) 2013-10-31 2016-11-30 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 受信したデータごとに集計処理を行うシステム、方法およびプログラム
US9298848B2 (en) 2013-11-01 2016-03-29 International Business Machines Corporation Managing a template in an operator graph
US20150154257A1 (en) * 2013-12-04 2015-06-04 Nec Laboratories America, Inc. System and method for adaptive query plan selection in distributed relational database management system based on software-defined network
US9934279B2 (en) 2013-12-05 2018-04-03 Oracle International Corporation Pattern matching across multiple input data streams
US9110681B2 (en) 2013-12-11 2015-08-18 International Business Machines Corporation Recognizing operational options for stream operators at compile-time
JP5782143B2 (ja) * 2014-01-22 2015-09-24 株式会社日立製作所 処理方法、及びストリームデータ処理システム
US9313110B2 (en) 2014-01-22 2016-04-12 International Business Machines Corporation Managing processing branches in an operator graph
US9189212B2 (en) 2014-03-31 2015-11-17 International Business Machines Corporation Predicted outputs in a streaming environment
US9244978B2 (en) 2014-06-11 2016-01-26 Oracle International Corporation Custom partitioning of a data stream
US9703839B2 (en) 2014-06-20 2017-07-11 International Busines Machines Corporation Managing streams of tuples
US9712645B2 (en) 2014-06-26 2017-07-18 Oracle International Corporation Embedded event processing
US9460235B2 (en) 2014-06-30 2016-10-04 International Business Machines Corporation Supplementing a tuple with a derived value
US9886486B2 (en) 2014-09-24 2018-02-06 Oracle International Corporation Enriching events with dynamically typed big data for event processing
US10120907B2 (en) 2014-09-24 2018-11-06 Oracle International Corporation Scaling event processing using distributed flows and map-reduce operations
US9734038B2 (en) 2014-09-30 2017-08-15 International Business Machines Corporation Path-specific break points for stream computing
WO2016092604A1 (ja) * 2014-12-08 2016-06-16 株式会社日立製作所 データ処理システムおよびデータアクセス方法
US10592500B2 (en) * 2015-01-27 2020-03-17 International Business Machines Corporation Eviction stream for data joins
US9747343B2 (en) 2015-02-19 2017-08-29 International Business Machines Corporation Algorithmic changing in a streaming environment
US9886485B2 (en) 2015-03-11 2018-02-06 International Business Machines Corporation Reducing redundant operations in a streaming environment
US10061810B2 (en) 2015-04-13 2018-08-28 International Business Machines Corporation Limiting tuple creation at the tuple level
US9734206B2 (en) 2015-04-14 2017-08-15 International Business Machines Corporation Intermediate window results in a streaming environment
US10042891B2 (en) * 2015-05-08 2018-08-07 International Business Machines Corporation Windowing across operators in a streaming environment
US9996632B2 (en) 2015-05-21 2018-06-12 International Business Machines Corporation Processing a stream of tuples
US9853878B2 (en) 2015-06-09 2017-12-26 International Business Machines Corporation Limiting data output from windowing operations
WO2017018901A1 (en) 2015-07-24 2017-02-02 Oracle International Corporation Visually exploring and analyzing event streams
US20170063723A1 (en) * 2015-08-26 2017-03-02 International Business Machines Corporation Asset arrangement management for a shared pool of configurable computing resources associated with a streaming application
US10657135B2 (en) 2015-09-30 2020-05-19 International Business Machines Corporation Smart tuple resource estimation
US10296620B2 (en) 2015-09-30 2019-05-21 International Business Machines Corporation Smart tuple stream alteration
US10558670B2 (en) * 2015-09-30 2020-02-11 International Business Machines Corporation Smart tuple condition-based operation performance
US10733209B2 (en) * 2015-09-30 2020-08-04 International Business Machines Corporation Smart tuple dynamic grouping of tuples
US10311158B2 (en) 2016-06-06 2019-06-04 International Business Machines Corporation Streamlining tuple processing by delivering tuple attributes to associated operators
KR101856454B1 (ko) 2017-03-06 2018-05-10 주식회사 티맥스데이터 분산처리를 위한 컴퓨팅 장치
EP3603018B1 (en) * 2017-03-31 2023-03-08 Nokia Solutions and Networks Oy Optimizations for cloud storage related data flow
US10635346B2 (en) * 2018-06-11 2020-04-28 Western Digital Technologies, Inc. Self-trimming of data stored in non-volatile memory using data storage controller
CN110908995B (zh) * 2018-09-17 2023-04-11 阿里巴巴集团控股有限公司 数据处理方法、装置以及设备
CN111177126B (zh) * 2019-08-01 2024-05-14 腾讯科技(深圳)有限公司 一种信息处理方法、装置及设备
US11182386B2 (en) * 2020-03-24 2021-11-23 International Business Machines Corporation Offloading statistics collection

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4769772A (en) * 1985-02-28 1988-09-06 Honeywell Bull, Inc. Automated query optimization method using both global and parallel local optimizations for materialization access planning for distributed databases
US5634053A (en) * 1995-08-29 1997-05-27 Hughes Aircraft Company Federated information management (FIM) system and method for providing data site filtering and translation for heterogeneous databases
US20060129528A1 (en) * 2003-01-14 2006-06-15 Daisuke Miyamoto Database load reducing system and load reducing program
US7472112B2 (en) * 2003-06-23 2008-12-30 Microsoft Corporation Distributed query engine pipeline method and system

Also Published As

Publication number Publication date
JP2007026373A (ja) 2007-02-01
US7644110B2 (en) 2010-01-05
US20070022092A1 (en) 2007-01-25

Similar Documents

Publication Publication Date Title
JP4723301B2 (ja) ストリームデータ処理システムおよびストリームデータ処理方法
US9197710B1 (en) Temporal based data string intern pools
US10762539B2 (en) Resource estimation for queries in large-scale distributed database system
US8949420B2 (en) Content pre-fetching and preparation
JP4687253B2 (ja) ストリームデータ処理システムのクエリ処理方法
US6182111B1 (en) Method and system for managing distributed data
JP4025379B2 (ja) 検索システム
US7437725B1 (en) Processing techniques for servers handling client/server traffic and communications
CN100511220C (zh) 分布式高速缓存中维护数据的方法和系统
KR101672901B1 (ko) 분산 파일 시스템에서 소형 파일에 대한 접근성 향상을 위한 캐시 관리 시스템
US20030004998A1 (en) Proxy-based acceleration of dynamically generated content
NO326041B1 (no) Fremgangsmate til administrasjon av datalagring i et system for soking og gjenfinning av informasjon
CN101390080A (zh) 基于查询部分来供应高速缓存的查询结果
JP2007526537A (ja) 持続的にイベントデータを記憶および提供するためのサーバアーキテクチャおよび方法
WO2018214936A1 (zh) 数据热度统计
JP2001101061A (ja) キャッシュサーバ
JP2002099565A (ja) 情報検索装置
Bhushan et al. Recommendation of optimized web pages to users using Web Log mining techniques
Aishwarya et al. Efficient prefetching technique for storage of heterogeneous small files in Hadoop Distributed File System Federation
JP5211180B2 (ja) データベース管理装置、データベース管理プログラム、データベース管理方法、データベース管理システム
CN115769196B (zh) 管理实时数据流处理
JP2010165170A (ja) 検索処理方法、システム、及びプログラム
US7853580B2 (en) Method, system and computer program for downloading information based on a snapshot approach
JP4502063B2 (ja) データウェアハウスシステムとそこで用いられる問合せ処理方法及びそのためのデータ収集方法と装置及び課金システム
JP2004070957A (ja) 検索システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080702

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100809

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110407

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

Free format text: PAYMENT UNTIL: 20140415

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140415

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees