JP2010204880A - ストリームデータ処理方法、ストリームデータ処理プログラム、および、ストリームデータ処理装置 - Google Patents

ストリームデータ処理方法、ストリームデータ処理プログラム、および、ストリームデータ処理装置 Download PDF

Info

Publication number
JP2010204880A
JP2010204880A JP2009048792A JP2009048792A JP2010204880A JP 2010204880 A JP2010204880 A JP 2010204880A JP 2009048792 A JP2009048792 A JP 2009048792A JP 2009048792 A JP2009048792 A JP 2009048792A JP 2010204880 A JP2010204880 A JP 2010204880A
Authority
JP
Japan
Prior art keywords
query
stream data
data processing
group
stream
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.)
Granted
Application number
JP2009048792A
Other languages
English (en)
Other versions
JP2010204880A5 (ja
JP5149840B2 (ja
Inventor
Shinichi Ito
信一 伊藤
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 JP2009048792A priority Critical patent/JP5149840B2/ja
Priority to US12/627,726 priority patent/US8533730B2/en
Publication of JP2010204880A publication Critical patent/JP2010204880A/ja
Publication of JP2010204880A5 publication Critical patent/JP2010204880A5/ja
Application granted granted Critical
Publication of JP5149840B2 publication Critical patent/JP5149840B2/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Abstract

【課題】ストリームデータ処理システムのストリームデータのクエリ処理に関するスループットを向上させること。
【解決手段】サーバ装置2のスケジューラ33が、クエリ43をグループ化するクエリグループへのデータ停滞が発生すると、クエリグループを構成するクエリ43ごとに、そのクエリ43の入力流量情報およびレイテンシ情報の内の少なくとも1つの情報を基に、そのクエリの負荷評価値を計算し、クエリグループを構成するクエリ43を、互いにクエリの負荷評価値の和が略均等になるように、複数のクエリグループへと分割し、分割後の複数のクエリグループを、それぞれ異なるプロセッサ91に再割り当てする。
【選択図】図1

Description

本発明は、ストリームデータ処理方法、ストリームデータ処理プログラム、および、ストリームデータ処理装置の技術に関する。
従来、企業情報システムのデータ管理の中心にはデータベース管理システム(以下、DBMSとする)が位置づけられていた。DBMSは、処理対象のデータをストレージに格納し、格納したデータに対してトランザクション処理に代表される高信頼な処理を実現している。これに対して、時々刻々と到着する大量のデータをリアルタイム処理するデータ処理システムへの要求が高まっている。例えば、株取引を支援するファイナンシャルアプリケーションを考えた場合、株価の変動に如何に迅速に反応できるかがシステムの最重要の課題の一つである。
従来のDBMSのように株式のデータを一旦記憶装置に格納してから、該格納データに関して検索を行うようなシステムでは、データの格納とそれに続く検索処理が株価変動のスピードに追いつくことができず、ビジネスチャンスを逃してしまうことになりかねない。Java(登録商標)に代表されるプログラミング言語を用いて、各種のリアルタイムアプリケーションを個別に作りこむアプローチは、開発期間の長期化、開発コストの高騰、該アプリケーションを利用する業務の変化への迅速な対応が難しいなどの問題があり、汎用のリアルタイムデータ処理機構が求められるようになっていた。このようなリアルタイムデータ処理に好適なデータ処理システムとして、特許文献1,2などに記載された、ストリームデータ処理システムが提案されている。
非特許文献1には、ストリームデータ処理システムSTREAMが開示されている。ストリームデータ処理システムでは、従来のDBMSとは異なり、まずクエリ(問合せ)をシステムに登録し、データの到来と共に該クエリが継続的に実行される。ここでのストリームデータとは、映像ストリームのような論理的に継続する一つの大きなデータではなく、ファイナンシャルアプリケーションにおける株価配信データ、小売業でのPOSデータ、交通情報システムにおけるプローブカーデータ、計算機システム管理におけるエラーログ、センサやRFIDなどのユビキタスデバイスから発生するセンシングデータなど、比較的小さな論理的には独立した大量の時系列データである。
ストリームデータは継続してシステムに到着し続けるため、その終わりを待ってから処理を開始するのでは実時間での処理は不可能である。また、システムに到着したデータは、データ処理の負荷に影響されることなく、その到着順を守って処理する必要がある。前記STREAMでは、システムに到来し続けるストリームデータを、最新10分間などの時間の幅、もしくは最新1000件などの個数の幅を指定してストリームデータの一部を切り取りながらリアルタイムの処理を実現するため、スライディングウィンドウ(以下単にウィンドウと呼ぶ)と呼ばれる概念を導入している。
非特許文献1には、ウィンドウ指定を含むクエリの記述言語の好適な例として、CQL(Continuous Query Language)が開示されている。CQLは、DBMSで広く用いられているSQL(Structured Query Language)のFROM句に、ストリーム名に続いて括弧を用いることにより、ウィンドウを指定する拡張が施されている。
従来のDBMSで取り扱うテーブル(表)のような静止化されたデータではなく、切れ目のないストリームデータでは、ウィンドウ指定による、ストリームデータのどの部分を対象とするかの指定なしでは、処理不可能となる。ウィンドウによって切り取られたストリームデータはメモリ上に保持され、クエリ処理に使用される。
代表的なウィンドウの指定方法には、ウィンドウの幅を時間で指定するRangeウィンドウと、ウィンドウの幅をデータ数で指定するRowウィンドウがある。例えば、Rangeウィンドウを用いて、[Range 10 minutes]とすると、最新の10分間分がクエリ処理の対象となり、Rowウィンドウを用いて[Rows 10]とすると、最新の10件がクエリ処理の対象となる。
特開2003−298661号公報 特開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」,section 2(Query Language),In Proc. of the 2003 Conf. on Innovative Data Systems Research (CIDR), January 2003
ストリームデータ処理システムで扱うストリームデータは、切れ目無く時々刻々と到来するデータ群であるが、ストリームデータ処理システムが1つのデータに対してクエリ処理する速度が単位時間当たりに到来するデータの速度に満たない場合、到来するデータを処理しきれない。負荷の高いクエリ処理がボトルネックとなってしまい、そのクエリ処理の周辺にデータ停滞が発生してしまう。そして、データ停滞が一カ所でも発生すると、そのシステム全体のスループットが低下してしまう。
そこで、本発明は、前記した問題を解決し、ストリームデータ処理システムのストリームデータのクエリ処理に関するスループットを向上させることを、主な目的とする。
前記課題を解決するために、本発明は、入力され続けるストリームデータを受け付け、クエリ演算処理を実行するストリームデータ処理装置によるストリームデータ処理方法であって、
前記ストリームデータ処理装置が、前記ストリームデータを格納する記憶手段と、前記ストリームデータ処理装置を制御するストリーム制御部と、前記ストリームデータに対して前記クエリ演算処理を実行するクエリ実行部と、前記ストリームデータ処理装置の計算機資源を割り当てるスケジューラと、を有し、
前記スケジューラが、
前記クエリ演算処理を定義する1つ以上のクエリをクエリグループとしてグループ化し、そのクエリグループを単位として前記計算機資源のスレッドに割り当てることで、前記クエリ実行部に前記クエリ演算処理を実行させ、
所定クエリグループへのデータ停滞が発生すると、
前記所定クエリグループを構成するクエリごとに、そのクエリの入力流量情報およびレイテンシ情報の内の少なくとも1つの情報を前記記憶手段から読み取り、そのクエリの負荷評価値を計算し、
前記所定クエリグループを構成するクエリを、互いにクエリの負荷評価値の和が略均等になるように、複数のクエリグループへと分割し、
前記分割後の複数のクエリグループを、それぞれ異なる前記計算機資源のスレッドに再割り当てするように、前記ストリーム制御部に指示することを特徴とする。
その他の手段は、後記する。
本発明によれば、ストリームデータ処理システムのストリームデータのクエリ処理に関するスループットを向上させることができる。
本発明の一実施形態に関するストリームデータ処理システムを示す構成図である。 本発明の一実施形態に関するクエリ処理部30の詳細を示す説明図である。 本発明の一実施形態に関するクエリグループ45の分割処理を示す説明図である。 本発明の一実施形態に関するクエリグループ管理テーブル37内の登録情報を示す説明図である。 本発明の一実施形態に関する1つのクエリ43を、複数のクエリグループ45に分割する旨を示す説明図である。 本発明の一実施形態に関する統計情報テーブル38を示す構成図である。 本発明の一実施形態に関する統計情報取得部34が実行する、統計情報テーブル38の作成処理を示すフローチャートである。 本発明の一実施形態に関する流量監視部32が実行する、データ停滞の監視処理を示すフローチャートである。 本発明の一実施形態に関するスケジューラ33が実行する、クエリグループ45(Gi)を対象とする分割処理の詳細を示すフローチャートである。 本発明の一実施形態に関するスケジューラ33が実行する、クエリグループ45(Gi)の分割位置の決定処理を示すフローチャートである。
以下、図面を用いて、本発明の一実施形態を説明する。
図1は、本実施形態のストリームデータ処理システムを示す構成図である。ストリームデータ処理システムは、1台以上のクライアント装置1と、サーバ装置2と、1つ以上のストリームソース41と、がネットワーク9を介して接続されて構成される。なお、ネットワーク9は、イーサネット(登録商標)、光ファイバなどで接続されるローカルエリアネットワーク(LAN)、もしくはLANよりも低速なインターネットを含んだワイドエリアネットワーク(WAN)でも差し支えない。
ストリームソース41は、時々刻々と大量のストリームデータを配信(出力)する情報源である。ストリームデータの好適な例としては、ファイナンシャルアプリケーションにおける株価配信情報、小売業でのPOSデータ、交通情報システムにおけるプローブカー情報、計算機システム管理におけるエラーログなどが挙げられる。
ストリームソース41から配信されるストリームデータの一例を示す。ストリームデータ「S1」は、3つの整数型の変数(a,b,c)と、1つの浮動小数点型の変数(x)とで1つのタプルを構成する。このストリームデータ「S1」は、以下のように定義される。
register stream S1
(a int, b int, c int, x float)
クライアント装置1は、例えば、パーソナルコンピュータ、ブレード型の計算機システムなどの任意のコンピュータシステムとして構成される。クライアント装置1は、アプリケーション処理部1aを有する。アプリケーション処理部1aは、コマンド42およびクエリ43を入力として、アプリケーションを実行し、その結果をクエリ処理結果44として出力する。
サーバ装置2は、1つ以上のプロセッサ91、主記憶装置92、入力装置93、出力装置94、および、補助記憶装置95を備えた計算機である。サーバ装置2は、例えば、ブレード型計算機システム、PCサーバなどの任意のコンピュータシステムとして構成される。
なお、プロセッサ91は、マルチコアを有するハードウェアとして構成されていてもよいし、マルチスレッドをサポートしたハードウェアとして構成されていてもよい。これらのハードウェアを機能させるためのOSがプロセッサ91によって動作する。つまり、サーバ装置2には、複数のスレッドを割り当てるための計算機資源が搭載されている。
なお、スレッド(thread)とは、CPUを利用してプログラムを実行するときの実行単位である。
ストリーム処理部10は、主記憶装置92に展開され、サーバ装置2を構成する各要素と連携して動作する。ストリーム処理部10は、ストリーム制御部11により制御される。さらに、ストリーム処理部10は、インタフェース部12と、コマンド処理部20と、クエリ処理部30とを含めて構成される。
なお、特許文献2には、ストリーム処理部10のうちの一部の方法について、好適な実施の方法が開示されている。例えば、特許文献2には、クエリ登録の詳細な手順、ストリームデータ処理システム内部のデータの格納方法、格納形式、クエリを受け付けた後の解析方法、最適化方法、システムへの登録方法、ストリームデータ処理システムへのストリームの登録方法、システム内のデータ保持方法について、それぞれ開示されている。
インタフェース部12は、サーバ装置2の各ハードウェア(入力装置93、出力装置94、および、ネットワーク9と接続するための図示しない通信用インターフェスなど)と、サーバ装置2のストリーム処理部10との間で、データ仲介をするインタフェースである。例えば、インタフェース部12は、入力装置93を介して入力されたストリームソース41を、クエリ処理部30に送付する。
コマンド処理部20は、コマンド解析部21と、コマンド実行部22と、コマンド管理部23とを含めて構成される。
コマンド解析部21は、コマンド42を構文解析する。
コマンド42は、ストリーム制御部11に対して入力される、ストリーム処理部10の制御情報である。コマンド42は、サーバ装置2の入力装置93から入力されてもよいし、クライアント装置1に入力された後にネットワーク9を経由して受信してもよい。
コマンド実行部22は、コマンド解析部21が解析したコマンド42を、コマンド管理部23に登録する。
クエリ処理部30は、クエリ解析部31と、流量監視部32と、スケジューラ33と、統計情報取得部34と、クエリ実行部35と、クエリリポジトリ36と、クエリグループ管理テーブル37と、統計情報テーブル38と、を含めて構成される。
クエリ解析部31は、クエリ43を構文解析してから最適化して実行形式に変換し、クエリリポジトリ36に格納する。
クエリ43は、サーバ装置2の入力装置93から入力されてもよいし、クライアント装置1に入力された後にネットワーク9を経由して受信してもよい。
図2は、クエリ処理部30の詳細を示す説明図である。
流量監視部32は、クエリ実行部35が処理対象とするストリームデータが、クエリ実行部35のクエリ演算処理の内部または外部でデータ停滞している事象を監視する。具体的には、流量監視部32は、クエリ演算処理の内部におけるデータ停滞を検知するために、統計情報テーブル38の情報を参照するとともに、クエリ演算処理の外部におけるデータ停滞を検知するために、クエリ実行部35内のキュー(後記する入力キュー46、中間キュー48)の使用状態を参照する。そして、流量監視部32は、データ停滞を検知すると、スケジューラ33に通知する。
スケジューラ33は、クエリ43の集合をクエリグループ45として形成し、そのクエリグループ45単位でスレッドに割り当てる。スケジューラ33は、クエリグループ45の構成結果をクエリグループ管理テーブル37に書き込む。さらに、スケジューラ33は、流量監視部32からのデータ停滞通知を受けると、統計情報取得部34を参照して、データ停滞している1つのクエリグループ45を2つのクエリグループ45へと分割し、その2つのクエリグループ45それぞれについて、別々のスレッドに割り当てる。
統計情報取得部34は、クエリ43ごとの実行時の統計情報をクエリ実行部35から取得して、統計情報テーブル38(図6参照)に書き込む。
クエリ実行部35は、ストリームソース41から入力されたストリームデータに対して、クエリ43が示すクエリ演算処理を実行し、その結果をクエリ処理結果44として出力する。このクエリ処理結果44は、インタフェース部12を介して、出力装置94から出力される。または、クエリ処理結果44は、ネットワーク9を経由して、クライアント装置1上のアプリケーション処理部1aからクエリ処理結果44として出力してもよい。ここで、クエリ実行部35は、複数のスレッドにより構成され、各スレッドは、割り当てられているクエリグループ45に属するクエリ43が示すクエリ演算処理を実行する。スレッドとスレッドとの間は、直列に接続されており、スレッド間でのパイプライン処理による並列処理が行われる。
クエリ実行部35には、クエリリポジトリ36からクエリ43(Q1→Q2→Q3)がロードされ、その前には入力キュー46が接続され、その後には出力キュー47が接続される。
入力キュー46は、インタフェース部12を介して入力されたストリームデータを格納する。
クエリ43(Q1→Q2→Q3)は、入力キュー46に入力されたストリームデータを、Q1→Q2→Q3の順に処理する処理内容を示す。
出力キュー47は、クエリ43(Q3)の処理結果を格納する。
クエリリポジトリ36は、入力されたクエリ43を格納する。なお、クエリリポジトリ36は、サーバ装置2上の主記憶装置92に配置してもよいし、補助記憶装置95に配置してもよい。
図3は、クエリグループ45の分割処理を示す説明図である。クエリグループ45を複数に分割して、各クエリグループ45を別々のスレッドに割り当て、それらを並列に実行することによって、各クエリグループ45の並列処理が可能となり、スループットを向上させることができる。
図4は、図3で示すクエリグループ45を示すクエリグループ管理テーブル37内の登録情報を示す。図3(a)と図4(a)、図3(b)と図4(b)、および、図3(c)と図4(c)、はそれぞれ対応する。
以下、図3および図4を参照して、クエリグループ45の分割処理を説明する。
まず、図3および図4では、クエリ43の一例として、5つのクエリ(Q1→Q2→Q3→Q4→Q5)を示す。これらのクエリは、前のクエリの実行結果が次のクエリの入力になるように、直列に接続されている。
クエリQ1は、データストリームS1を入力し、ウィンドウ枠[rows 10]で定義された最新10件の入力データを処理対象とし、where句の条件に合致したものを出力することを示す。
register query Q1
select S1.a,S1,b,S1.x from S1[rows 10] where S1.a > 0
クエリQ2は、クエリQ1の出力結果を入力し、groupby句に従い、集約演算avgを行う。
register query Q2
select Q1.a,Q1.b,avg(Q1.x) from Q1 groupby Q1.a,Q1.b
クエリQ3は、以下のように定義される。
register query Q3
select Q1.a,Q1.x from Q2
where Q1.x > Q1.a and Q1.x < Q1.b
クエリQ4は、以下のように定義される。
register query Q4
select max(Q3.x) from Q3
クエリQ5は、以下のように定義される。
register query Q5
istream(select * from Q4 where S1.x > 1000)
まず、図3(a)で示す、クエリグループの分割前の状態では、5つのクエリ43が1つのクエリグループ45(G1)にまとめられて、そのクエリグループ45(G1)に対してスレッド「1」が割り当てられている。
図4(a)に示すクエリグループ管理テーブル37は、クエリグループ45と、そのクエリグループ45を構成するクエリ43と、そのクエリグループ45に割り当てられているスレッドとを対応づけて管理する。
入力されるストリームデータのタプルは、まず、入力キュー46に格納される。クエリグループ45(G1)の先頭クエリ43(Q1)は、入力キュー46からタプルを順に読み出して、クエリ演算処理を実行する。クエリ43(Q1)は、実行結果を次のクエリ43(Q2)に渡す。そして、クエリグループ45(G1)の末尾クエリ43(Q5)は、クエリ43(Q4)から入力されるタプルの実行結果を、出力キュー47へと出力する。
次に、図3(b)で示す、図3(a)の状態からの1回目の分割の状態では、5つのクエリ43(Q1→Q2→Q3→Q4→Q5)を含む1つのクエリグループ45(G1)が、クエリ43(Q1→Q2)を含むクエリグループ45(G11)と、クエリ43(Q3→Q4→Q5)を含むクエリグループ45(G12)と、に分割されている。そして、分割された2つのクエリグループ45(G11,G12)の間には、それらのクエリグループ45間でのデータの受け渡しを行うための中間キュー48が設けられる。さらに、分割された2つのクエリグループ45(G11,G12)には、それぞれ別々のスレッドが割り当てられることにより、2つのクエリグループ45間での並列処理が行われるため、スループットが向上する。
次に、図3(c)で示す、図3(a)の状態からに対する2回目の分割の状態(つまり、図3(b)からの分割の状態)では、クエリグループ45(G11)が、クエリグループ45(G11a)と、クエリグループ45(G11b)とに分割されている。さらに、クエリグループ45(G12)が、クエリグループ45(G12a)と、クエリグループ45(G12b)とに分割されている。そして、図3(b)と同様に、クエリグループ45間でのデータの受け渡しを行うための中間キュー48が設けられる。これにより、合計4つのクエリグループ45が作成され、各クエリグループ45に1つずつのスレッドが割り当てられる(つまり、スレッド数は合計4つである)。
以上、図3および図4を参照して説明したクエリグループ45の分割処理は、スケジューラ33によって、実行される。スケジューラ33は、分割処理を実行するための契機として、例えば、分割対象のクエリグループ45の負荷増大を検知したときとする。スケジューラ33は、分割処理における分割後のクエリグループ45を構成するクエリ43について、分割後のクエリグループ45の負荷(処理時間)が略均等になるように、分割処理を実行する。
図5は、1つのクエリ43を、複数のクエリグループ45に分割する旨を示す説明図である。図3で説明したように、基本的には、1つのクエリグループ45には、1つ以上のクエリ43が属することとする。しかし、1つのクエリ43の負荷が大きいときなどには、1つのクエリ43を構成する複数のオペレータを抽出し、そのオペレータを単位としてクエリグループ45を割り当てることとしてもよい。
図5では、図3のクエリ43(Q1)が、3つのオペレータによって構成されるため、そのオペレータそれぞれにクエリグループ45を割り当てる例を示している。
オペレータ「RowWindow」というウィンドウ演算は、クエリ43(Q1)の「from S1[rows 10]」に対応する。
オペレータ「Filter」という条件指定のフィルタリング演算は、クエリ43(Q1)の「where S1.a >0」に対応する。
オペレータ「Projection」という射影演算は、クエリ43(Q1)の「select S1.a,S1.b,S1.x」に対応する。
このように、クエリ43単位のクエリグループ45の分割では充分なスループットが得られない場合には、オペレータ単位のクエリグループ45の定義により、スループットをさらに向上させることができる。
図6は、統計情報テーブル38を示す構成図である。図6(a)は、データの停滞前の状態を示す統計情報テーブル38を示す。図6(b)は、データの停滞時の状態を示す統計情報テーブル38を示す。
統計情報テーブル38は、クエリ43と、入力流量と、レイテンシと、負荷評価値とを対応づけて管理する。
「入力流量」は、対応するクエリ43の単位時間当たりのタプルの入力件数であり、単位は[タプル/秒]である。
「レイテンシ」は、対応するクエリ43に入力されたタプルの、入力されてから出力されるまでの平均時間を示し、単位は[ミリ秒]である。この「レイテンシ」は、タプルの平均時間について、実測値による統計情報を設定してもよいし、クエリ43のオペレータをプログラム解析した理論見積値としてもよい。なお、クエリ43の「入力流量」が、そのクエリ43の最大スループット(「レイテンシ」の逆数)を上回るときには、クエリ43の処理がおいつかないため、データあふれが発生する。
「負荷評価値」は、対応するクエリ43の負荷を評価する値であり、例えば、「入力流量」と「レイテンシ」との積で計算できる。一方、負荷評価値の計算式として、例えば、以下の式を用いてもよい。
・負荷評価値=「入力流量」
・負荷評価値=「レイテンシ」の実測値
・負荷評価値=「レイテンシ」の理論見積値
ここで、負荷評価値に着目して、図6(a)と図6(b)とを比較すると、図6(b)のほうが負荷評価値が高い。つまり、図6(b)は、データの停滞時の状態になっている。
図7は、統計情報取得部34が実行する、統計情報テーブル38の作成処理を示すフローチャートである。このフローチャートは、サーバ装置2のシステム起動時に実行される。
S101において、統計情報テーブル38を初期化する。具体的には、クエリリポジトリ36の各クエリ43を示すレコードを作成し、そのレコード内の列をすべて初期値「0」に設定する。
S102において、パラメータ「システム起動時刻」に、現在時刻を設定する。
S103において、クエリ実行部35のクエリ43(Qi)に対して、タプル(Tj)の入力が発生したか否かを判定する。S103でYesならS104へ進み、NoならS105へ進む。
S104において、クエリ43(Qi)のタプル(Tj)の入力時刻に、現在時刻を設定する。
S105において、クエリ実行部35のクエリ43(Qi)に対して、タプル(Tj)の出力が発生したか否かを判定する。S105でYesならS106へ進み、NoならS103へ戻る。
S106において、統計情報テーブル38にタプル(Tj)の統計情報を反映する。
具体的には、クエリ43(Qi)のデータ入力量に、タプル(Tj)の分(値=1)を加算する。クエリ43(Qi)の処理時間に、タプル(Tj)の処理時間(現在時刻−「クエリ43(Qi)のタプル(Tj)の入力時刻」)を加算する。
そして、以下の式により、統計情報テーブル38のクエリ43(Qi)の列の値を更新する。
クエリ43(Qi)の入力流量=クエリ43(Qi)のデータ入力量÷(現在時刻−システム起動時刻)
クエリ43(Qi)のレイテンシ=クエリ43(Qi)の処理時間÷クエリ43(Qi)のデータ入力量
図8は、流量監視部32が実行する、データ停滞の監視処理を示すフローチャートである。
S201において、クエリグループ管理テーブル37からクエリグループ45を1つずつ選択するループを開始する。なお、現在選択されているクエリグループ45を、クエリグループ45(Gi)と表記する。
S202において、クエリグループ45(Gi)が分割可能か否かを判定する。ここで、分割可能とは、例えば、クエリグループ45(Gi)に2つ以上のクエリ43が含まれている場合としてもよいし(図3などを参照)、クエリグループ45(Gi)に1つのクエリ43が含まれており、かつ、そのクエリ43に2つ以上のオペレータが含まれている場合としてもよい(図5などを参照)。S202でYesならS203へ進み、NoならS205へ進む。
S203において、クエリグループ45(Gi)に対して、データ停滞が発生しているか否かを判定する。データ停滞の検知手法は、後記する。S203でYesならS204へ進み、NoならS205へ進む。
S204において、クエリグループ45(Gi)を対象とする分割処理を起動して(図9の処理を呼び出して)、本フローチャートを終了する。なお、起動した分割処理から、本フローチャートのS201が再起動される。
S205において、S201からのループ処理を終了する。
S206において、所定時間だけ流量監視部32の処理を中断(スリープ)した後、S201へ戻る。このように、クエリグループ45の分割処理を繰り返すことで、必要なだけクエリグループ45の分割を行い、相応するスループットを得ることができる。
ここで、S203におけるデータ停滞を検知する手法について、2つの手法を例示する。これらの手法のうち、少なくとも1つの手法を活用することで、クエリグループ45(Gi)のデータ停滞を検知する。
まず、第1の手法は、統計情報テーブル38をもとに、データ停滞を検知する手法である。
クエリグループ45(Gi)の入力流量Xは、クエリグループ45(Gi)内の先頭クエリ43の「入力流量」である。例えば、図6(a)では、先頭クエリ43(Q1)の「入力流量」=40が、入力流量Xになる。
クエリグループ45(Gi)の平均レイテンシYは、クエリグループ45(Gi)内の各クエリ43を、クエリ43(Qj)とすると、「クエリ43(Qj)の「レイテンシ」×(クエリ43(Qj)の「入力流量」÷入力流量X」を、クエリ43(Qj)ごとに計算し、その総和とする。例えば、図6(a)では、以下の計算により、平均レイテンシYを求める。
10×(40÷40)
+8×(30÷40)
+16×(30÷40)
+4×(25÷40)
+2×(20÷40)=31.5(ミリ秒)。
データ停滞の判定式は、「入力流量X>1000÷平均レイテンシY」である。例えば、図6(a)では、
(入力流量X=40)>1000÷(平均レイテンシY=31.5)
であり、40>31.7なので、データ停滞発生あり、と判定される。
一方、第2の手法は、入力キュー46をもとに、データ停滞を検知する手法である。クエリグループ45(Gi)の入力位置に存在する入力キュー46または中間キュー48内のタプル数を計測し、そのタプル数が、所定閾値を超えている場合に、「データ停滞がある」と判断すればよい。
図9は、スケジューラ33が実行する、クエリグループ45(Gi)を対象とする分割処理の詳細を示すフローチャートである。
S301において、割り当てられるスレッドに余裕があるか否かを判断する。なお、スレッドに余裕があるとは、例えば、利用可能なスレッド数(CPU数)が、既に割当済みのスレッド数よりも多いときを指す。S301でYesならS302へ進み、Noなら処理を終了する。
S302において、クエリグループ45(Gi)の分割位置を決定するため、図10の処理を呼び出す。
S303において、クエリグループ45(Gi)の分割処理を実行する。具体的には、以下の手順を実行する。
(1)分割前のクエリグループ45(Gi)の入力位置に存在するキュー(入力キュー46または中間キュー48)からのクエリグループ45(Gi)へのデータ入力を停止させる。
(2)分割前のクエリグループ45(Gi)が処理中であるデータが、クエリグループ45(Gi)の出力位置に存在するキュー(出力キュー47または中間キュー48)にすべて出力されるまで、クエリ演算処理の実行を待つ。
(3)S302で決定した分割位置に従って、1つのクエリグループ45(Gi)を、2つのクエリグループ45へと分割する。分割後の第1クエリグループ45は、クエリグループ45(Gi)が含むクエリ43のうちの分割位置より前側にあるクエリ43を含む。分割後の第2クエリグループ45は、クエリグループ45(Gi)が含むクエリ43のうちの分割位置より後側にあるクエリ43を含む。
(4)分割後の第1クエリグループ45と第2クエリグループ45との間を、中間キュー48で接続する。
(5)第1クエリグループ45には分割前のクエリグループ45(Gi)と同じスレッドを割り当て、第2クエリグループ45には新しいスレッドを割り当てる。
S304において、分割後のクエリグループ45を稼動する。そのため、まず、流量監視部32の処理(図8)を再起動する。次に、統計情報テーブル38のレコードについて、分割前のクエリグループ45のレコードを削除するとともに、分割後のクエリグループ45のレコードを新規生成して、その列の値を0に初期化する。さらに、S303の(1)で停止していた、データ入力を再開させる。
図10は、スケジューラ33が実行する、クエリグループ45(Gi)の分割位置の決定処理を示すフローチャートである。
S311において、分割基準点Wを計算する。具体的には、統計情報テーブル38からクエリグループ45(Gi)を構成する各クエリ43の「負荷評価値」を取得し、その総和をクエリグループ45(Gi)の「負荷評価値」とする。そして、「負荷評価値」を2で割った値を分割基準点Wとする。
S312において、クエリグループ45(Gi)を構成する各クエリ43を、先頭から1つずつ順に選択するループを開始する。このループでj番目に選択中のクエリ43を、クエリ43(Qj)とする。
S313において、「負荷評価値」の和A,Bをそれぞれ計算する。
「負荷評価値」の和A=クエリグループ45(Gi)を構成する先頭のクエリ43から、クエリ43(Qj)までの各クエリ43における「負荷評価値」の総和
「負荷評価値」の和B=クエリグループ45(Gi)を構成する先頭のクエリ43から、クエリ43(Q(j−1))までの各クエリ43における「負荷評価値」の総和
S314において、「負荷評価値」の和Aが分割基準点Wより大きいか否かを判定する。S314でYesならS315へ進み、NoならS318へ進む。
S315において、「負荷評価値」の和Aが、「負荷評価値」の和Bよりも分割基準点Wに近いか否かを判定する。具体的には、「負荷評価値」の和それぞれと、分割基準点Wとの距離を求める。S315でYesならS316へ進み、NoならS317へ進む。
S316において、クエリ43(Qj)とクエリ43(Q(j+1))との間に、分割点を設定する。
S317において、クエリ43(Q(j−1))とクエリ43(Qj)との間に、分割点を設定する。
S318において、S312からのループを終了する。
以上説明した分割位置の決定処理について、図6(a)の統計情報テーブル38では、
第1クエリグループ45(Q1,Q2)=「負荷評価値」の和が「640」
第2クエリグループ45(Q3,Q4,Q5)=「負荷評価値」の和が「620」
という分割位置が、略均等になる。
以上説明した本実施形態によれば、スケジューラ33は、所定のクエリグループ45に対するデータの停滞の通知を受け、その所定のクエリグループ45を処理時間が略均等になる2つのクエリグループ45へと分割し、それぞれを別々のスレッドに再割り当てする。これにより、入力されたストリームデータは、分割後の各クエリグループ45によって並列に実行されるため、スループットが向上する。
なお、分割対象のクエリグループ45は、以前分割されたクエリグループ45であってもよい。これにより、負荷の高いクエリグループ45が、1回以上の分割処理によって、適切な粒度のクエリグループ45へと分割される。
さらに、スケジューラ33は、クエリグループ45の分割処理の契機を、そのクエリグループ45へのデータ停滞の発生時期とすることにより、到来するデータ入力速度に対して充分処理を実行できるクエリグループ45への分割を抑制し、処理速度、使用資源への影響を最小限に保つことができる。
1 クライアント装置
1a アプリケーション処理部
2 サーバ装置(ストリームデータ処理装置)
9 ネットワーク
10 ストリーム処理部
11 ストリーム制御部
12 インタフェース部
20 コマンド処理部
21 コマンド解析部
22 コマンド実行部
23 コマンド管理部
30 クエリ処理部
31 クエリ解析部
32 流量監視部
33 スケジューラ
34 統計情報取得部
35 クエリ実行部
36 クエリリポジトリ
37 クエリグループ管理テーブル
38 統計情報テーブル
41 ストリームソース
42 コマンド
43 クエリ
44 クエリ処理結果
45 クエリグループ
46 入力キュー
47 出力キュー
48 中間キュー
91 プロセッサ
92 主記憶装置
93 入力装置
94 出力装置
95 補助記憶装置

Claims (8)

  1. 入力され続けるストリームデータを受け付け、クエリ演算処理を実行するストリームデータ処理装置によるストリームデータ処理方法であって、
    前記ストリームデータ処理装置は、前記ストリームデータを格納する記憶手段と、前記ストリームデータ処理装置を制御するストリーム制御部と、前記ストリームデータに対して前記クエリ演算処理を実行するクエリ実行部と、前記ストリームデータ処理装置の計算機資源を割り当てるスケジューラと、を有し、
    前記スケジューラは、
    前記クエリ演算処理を定義する1つ以上のクエリをクエリグループとしてグループ化し、そのクエリグループを単位として前記計算機資源のスレッドに割り当てることで、前記クエリ実行部に前記クエリ演算処理を実行させ、
    所定クエリグループへのデータ停滞が発生すると、
    前記所定クエリグループを構成するクエリごとに、そのクエリの入力流量情報およびレイテンシ情報の内の少なくとも1つの情報を前記記憶手段から読み取り、そのクエリの負荷評価値を計算し、
    前記所定クエリグループを構成するクエリを、互いにクエリの負荷評価値の和が略均等になるように、複数のクエリグループへと分割し、
    前記分割後の複数のクエリグループを、それぞれ異なる前記計算機資源のスレッドに再割り当てするように、前記ストリーム制御部に指示することを特徴とする
    ストリームデータ処理方法。
  2. 前記スケジューラは、前記所定クエリグループへの前記ストリームデータの入力流量が、前記所定クエリグループを構成する各クエリの処理流量の平均値を超えたときに、前記所定クエリグループへのデータ停滞を検知することを特徴とする
    請求項1に記載のストリームデータ処理方法。
  3. 前記スケジューラは、前記所定クエリグループへの前記ストリームデータの入力流量が、所定閾値を超えたときに、前記所定クエリグループへのデータ停滞を検知することを特徴とする
    請求項1に記載のストリームデータ処理方法。
  4. 前記スケジューラは、前記ストリームデータ処理装置の前記計算機資源のスレッドについて、割当済みのスレッド数が利用可能なスレッド数と等しいときには、前記所定クエリグループを複数のクエリグループへと分割する処理を省略することを特徴とする
    請求項1ないし請求項3のいずれか1項に記載のストリームデータ処理方法。
  5. 前記スケジューラは、
    前記クエリ演算処理を定義する1つ以上のクエリをクエリグループとしてグループ化するときに、クエリの構成要素であるオペレータをクエリグループとしてグループ化することを特徴とする
    請求項1ないし請求項4のいずれか1項に記載のストリームデータ処理方法。
  6. 前記スケジューラは、クエリごとの負荷評価値を計算するときに、そのクエリの入力流量と、そのクエリのレイテンシとの積を、負荷評価値とすることを特徴とする
    請求項1ないし請求項5のいずれか1項に記載のストリームデータ処理方法。
  7. 請求項1ないし請求項6のいずれか1項に記載のストリームデータ処理方法を、コンピュータである前記ストリームデータ処理装置に実行させるためのストリームデータ処理プログラム。
  8. 入力され続けるストリームデータを受け付け、クエリ演算処理を実行するストリームデータ処理装置であって、
    前記ストリームデータ処理装置は、前記ストリームデータを格納する記憶手段と、前記ストリームデータ処理装置を制御するストリーム制御部と、前記ストリームデータに対して前記クエリ演算処理を実行するクエリ実行部と、前記ストリームデータ処理装置の計算機資源を割り当てるスケジューラと、を有し、
    前記スケジューラは、
    前記クエリ演算処理を定義する1つ以上のクエリをクエリグループとしてグループ化し、そのクエリグループを単位として前記計算機資源のスレッドに割り当てることで、前記クエリ実行部に前記クエリ演算処理を実行させ、
    所定クエリグループへのデータ停滞が発生すると、
    前記所定クエリグループを構成するクエリごとに、そのクエリの入力流量情報およびレイテンシ情報の内の少なくとも1つの情報を前記記憶手段から読み取り、そのクエリの負荷評価値を計算し、
    前記所定クエリグループを構成するクエリを、互いにクエリの負荷評価値の和が略均等になるように、複数のクエリグループへと分割し、
    前記分割後の複数のクエリグループを、それぞれ異なる前記計算機資源のスレッドに再割り当てするように、前記ストリーム制御部に指示することを特徴とする
    ストリームデータ処理装置。
JP2009048792A 2009-03-03 2009-03-03 ストリームデータ処理方法、ストリームデータ処理プログラム、および、ストリームデータ処理装置 Expired - Fee Related JP5149840B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009048792A JP5149840B2 (ja) 2009-03-03 2009-03-03 ストリームデータ処理方法、ストリームデータ処理プログラム、および、ストリームデータ処理装置
US12/627,726 US8533730B2 (en) 2009-03-03 2009-11-30 Stream data processing method, stream data processing program and stream data processing apparatus for runtime query group data stagnation detection and load balancing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009048792A JP5149840B2 (ja) 2009-03-03 2009-03-03 ストリームデータ処理方法、ストリームデータ処理プログラム、および、ストリームデータ処理装置

Publications (3)

Publication Number Publication Date
JP2010204880A true JP2010204880A (ja) 2010-09-16
JP2010204880A5 JP2010204880A5 (ja) 2011-05-06
JP5149840B2 JP5149840B2 (ja) 2013-02-20

Family

ID=42679389

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009048792A Expired - Fee Related JP5149840B2 (ja) 2009-03-03 2009-03-03 ストリームデータ処理方法、ストリームデータ処理プログラム、および、ストリームデータ処理装置

Country Status (2)

Country Link
US (1) US8533730B2 (ja)
JP (1) JP5149840B2 (ja)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012059976A1 (ja) * 2010-11-02 2012-05-10 株式会社日立製作所 プログラム、ストリームデータ処理方法及びストリームデータ処理計算機
KR20130084906A (ko) * 2012-01-18 2013-07-26 삼성전자주식회사 Dsms에서 사용자 정의 연산자의 스케쥴링 장치 및 방법
WO2013145310A1 (ja) * 2012-03-30 2013-10-03 富士通株式会社 データストリームの並列処理プログラム、方法、及びシステム
WO2014041673A1 (ja) * 2012-09-14 2014-03-20 株式会社日立製作所 ストリームデータ多重処理方法
JP2014123354A (ja) * 2012-12-20 2014-07-03 Hitachi Ltd グラフデータの再帰クエリを用いたストリームデータ処理方法
JP2015045996A (ja) * 2013-08-28 2015-03-12 Kddi株式会社 分散クエリ処理装置、処理方法及び処理プログラム
JP2016514299A (ja) * 2013-02-19 2016-05-19 オラクル・インターナショナル・コーポレイション 連続イベント処理(cep)クエリの並列の実行
JP2017509075A (ja) * 2014-03-06 2017-03-30 華為技術有限公司Huawei Technologies Co.,Ltd. ストリーム計算システムにおけるデータ処理方法、制御ノードおよびストリーム計算システム
JP2017514216A (ja) * 2014-03-31 2017-06-01 華為技術有限公司Huawei Technologies Co.,Ltd. イベント処理システム
WO2017104072A1 (ja) * 2015-12-18 2017-06-22 株式会社日立製作所 ストリームデータの分散処理方法、ストリームデータの分散処理システム及び記憶媒体
KR101752699B1 (ko) * 2011-07-18 2017-07-03 한국전자통신연구원 폭증 데이터 스트림 처리 방법 및 장치
KR101827369B1 (ko) 2012-02-21 2018-02-09 한국전자통신연구원 데이터 스트림 분산 병렬 처리 서비스 관리 장치 및 방법
US9921883B2 (en) 2015-01-22 2018-03-20 Fujitsu Limited Job management device and method for determining processing elements for job assignment
US11204928B2 (en) 2017-01-13 2021-12-21 International Business Machines Corporation Reducing flow delays in a data streaming application caused by lookup operations

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5586417B2 (ja) * 2010-10-25 2014-09-10 株式会社日立製作所 ストリームデータ処理における性能保証方法および装置
KR20120072252A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 분산 데이터 스트림 처리 시스템에서 연속 처리 태스크를 병렬 처리하기 위한 장치 및 그 방법
JP5664230B2 (ja) * 2010-12-28 2015-02-04 コニカミノルタ株式会社 画像読み込みシステムおよび読み込み画像処理システム
KR101770736B1 (ko) 2011-03-17 2017-09-06 삼성전자주식회사 응용프로그램의 질의 스케쥴링을 이용한 시스템의 소모전력 절감 방법 및 그 방법을 이용하여 소모전력을 절감하는 휴대단말기
US8560526B2 (en) * 2011-07-26 2013-10-15 International Business Machines Corporation Management system for processing streaming data
US8990452B2 (en) * 2011-07-26 2015-03-24 International Business Machines Corporation Dynamic reduction of stream backpressure
US9148495B2 (en) 2011-07-26 2015-09-29 International Business Machines Corporation Dynamic runtime choosing of processing communication methods
US8959313B2 (en) 2011-07-26 2015-02-17 International Business Machines Corporation Using predictive determinism within a streaming environment
US9286354B2 (en) * 2011-08-15 2016-03-15 Software Ag Systems and/or methods for forecasting future behavior of event streams in complex event processing (CEP) environments
US9396157B2 (en) * 2011-08-26 2016-07-19 International Business Machines Corporation Stream application performance monitoring metrics
JP5862245B2 (ja) * 2011-11-30 2016-02-16 富士通株式会社 配置装置、配置プログラムおよび配置方法
JP5927871B2 (ja) * 2011-11-30 2016-06-01 富士通株式会社 管理装置、情報処理装置、管理プログラム、管理方法、プログラムおよび処理方法
US9405553B2 (en) 2012-01-30 2016-08-02 International Business Machines Corporation Processing element management in a streaming data system
US9146775B2 (en) 2012-04-26 2015-09-29 International Business Machines Corporation Operator graph changes in response to dynamic connections in stream computing applications
US9710515B2 (en) * 2012-05-31 2017-07-18 Hitachi, Ltd. Analysis system, computer system, and analysis method for analyzing behavior of database management system
US10652318B2 (en) * 2012-08-13 2020-05-12 Verisign, Inc. Systems and methods for load balancing using predictive routing
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
US9930081B2 (en) 2012-11-13 2018-03-27 International Business Machines Corporation Streams optional execution paths depending upon data rates
US9087082B2 (en) * 2013-03-07 2015-07-21 International Business Machines Corporation Processing control in a streaming application
US9571545B2 (en) 2013-03-15 2017-02-14 International Business Machines Corporation Evaluating a stream-based computing application
US9910896B2 (en) * 2013-03-15 2018-03-06 Cisco Technology, Inc. Suspending and resuming continuous queries over data streams
US20140278336A1 (en) * 2013-03-15 2014-09-18 International Business Machines Corporation Stream input reduction through capture and simulation
US9329970B2 (en) * 2013-03-15 2016-05-03 International Business Machines Corporation Selecting an operator graph configuration for a stream-based computing application
US9147010B2 (en) 2013-04-17 2015-09-29 International Business Machines Corporation Reconfiguring an operator graph based on attribute usage
US9384302B2 (en) 2013-06-17 2016-07-05 International Business Machines Corporation Generating differences for tuple attributes
US9379950B2 (en) 2013-11-07 2016-06-28 International Business Machines Corporation Using cloud resources to improve performance of a streaming application
US9237079B2 (en) 2013-11-19 2016-01-12 International Business Machines Corporation Increasing performance of a streaming application by running experimental permutations
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
JP6197659B2 (ja) * 2014-01-20 2017-09-20 富士ゼロックス株式会社 検出制御装置、プログラム及び検出システム
CN104052811B (zh) 2014-06-17 2018-01-02 华为技术有限公司 一种业务调度的方法、装置及系统
US9959301B2 (en) 2014-07-25 2018-05-01 Cisco Technology, Inc. Distributing and processing streams over one or more networks for on-the-fly schema evolution
US10776404B2 (en) 2015-04-06 2020-09-15 EMC IP Holding Company LLC Scalable distributed computations utilizing multiple distinct computational frameworks
US10509684B2 (en) 2015-04-06 2019-12-17 EMC IP Holding Company LLC Blockchain integration for scalable distributed computations
US10541938B1 (en) 2015-04-06 2020-01-21 EMC IP Holding Company LLC Integration of distributed data processing platform with one or more distinct supporting platforms
US10706970B1 (en) 2015-04-06 2020-07-07 EMC IP Holding Company LLC Distributed data analytics
US10277668B1 (en) 2015-04-06 2019-04-30 EMC IP Holding Company LLC Beacon-based distributed data processing platform
US10496926B2 (en) 2015-04-06 2019-12-03 EMC IP Holding Company LLC Analytics platform for scalable distributed computations
US10515097B2 (en) 2015-04-06 2019-12-24 EMC IP Holding Company LLC Analytics platform for scalable distributed computations
US10331380B1 (en) 2015-04-06 2019-06-25 EMC IP Holding Company LLC Scalable distributed in-memory computation utilizing batch mode extensions
US10348810B1 (en) 2015-04-06 2019-07-09 EMC IP Holding Company LLC Scalable distributed computations utilizing multiple distinct clouds
US10860622B1 (en) 2015-04-06 2020-12-08 EMC IP Holding Company LLC Scalable recursive computation for pattern identification across distributed data processing nodes
US10122806B1 (en) * 2015-04-06 2018-11-06 EMC IP Holding Company LLC Distributed analytics platform
US10528875B1 (en) 2015-04-06 2020-01-07 EMC IP Holding Company LLC Methods and apparatus implementing data model for disease monitoring, characterization and investigation
US10511659B1 (en) 2015-04-06 2019-12-17 EMC IP Holding Company LLC Global benchmarking and statistical analysis at scale
US10812341B1 (en) 2015-04-06 2020-10-20 EMC IP Holding Company LLC Scalable recursive computation across distributed data processing nodes
US10791063B1 (en) 2015-04-06 2020-09-29 EMC IP Holding Company LLC Scalable edge computing using devices with limited resources
US10505863B1 (en) 2015-04-06 2019-12-10 EMC IP Holding Company LLC Multi-framework distributed computation
US10366111B1 (en) 2015-04-06 2019-07-30 EMC IP Holding Company LLC Scalable distributed computations utilizing multiple distinct computational frameworks
US10425350B1 (en) 2015-04-06 2019-09-24 EMC IP Holding Company LLC Distributed catalog service for data processing platform
US10404787B1 (en) 2015-04-06 2019-09-03 EMC IP Holding Company LLC Scalable distributed data streaming computations across multiple data processing clusters
US10541936B1 (en) 2015-04-06 2020-01-21 EMC IP Holding Company LLC Method and system for distributed analysis
US10191768B2 (en) 2015-09-16 2019-01-29 Salesforce.Com, Inc. Providing strong ordering in multi-stage streaming processing
US10198298B2 (en) * 2015-09-16 2019-02-05 Salesforce.Com, Inc. Handling multiple task sequences in a stream processing framework
US10146592B2 (en) 2015-09-18 2018-12-04 Salesforce.Com, Inc. Managing resource allocation in a stream processing framework
US9965330B2 (en) 2015-09-18 2018-05-08 Salesforce.Com, Inc. Maintaining throughput of a stream processing framework while increasing processing load
US10656861B1 (en) 2015-12-29 2020-05-19 EMC IP Holding Company LLC Scalable distributed in-memory computation
US10437635B2 (en) 2016-02-10 2019-10-08 Salesforce.Com, Inc. Throttling events in entity lifecycle management
US11074254B2 (en) 2016-03-23 2021-07-27 International Business Machines Corporation Performance management using thresholds for queries of a service for a database as a service
US10049133B2 (en) * 2016-10-27 2018-08-14 International Business Machines Corporation Query governor across queries
US10374968B1 (en) 2016-12-30 2019-08-06 EMC IP Holding Company LLC Data-driven automation mechanism for analytics workload distribution
US10157048B2 (en) 2017-02-03 2018-12-18 International Business Machines Corporation Splitting operators in a streaming application

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06214843A (ja) * 1993-01-20 1994-08-05 Hitachi Ltd データベース管理システムおよび問合せの処理方法
JP2006338432A (ja) * 2005-06-03 2006-12-14 Hitachi Ltd ストリームデータ処理システムのクエリ処理方法
JP2007026373A (ja) * 2005-07-21 2007-02-01 Hitachi Ltd ストリームデータ処理システムおよびストリームデータ処理方法
JP2007199804A (ja) * 2006-01-24 2007-08-09 Hitachi Ltd データベース管理方法、データベース管理プログラム、データベース管理装置、および、データベース管理システム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6795868B1 (en) * 2000-08-31 2004-09-21 Data Junction Corp. System and method for event-driven data transformation
US7251294B2 (en) * 2001-09-17 2007-07-31 Digeo, Inc. System and method for concurrently demodulating and decoding multiple data streams
JP3808394B2 (ja) 2002-04-02 2006-08-09 松下電器産業株式会社 ストリームデータ処理装置、ストリームデータ処理方法、プログラム、及び、媒体
US7010538B1 (en) * 2003-03-15 2006-03-07 Damian Black Method for distributed RDSMS
US20070088828A1 (en) * 2005-10-18 2007-04-19 International Business Machines Corporation System, method and program product for executing an application
US20070250365A1 (en) * 2006-04-21 2007-10-25 Infosys Technologies Ltd. Grid computing systems and methods thereof
US7493406B2 (en) * 2006-06-13 2009-02-17 International Business Machines Corporation Maximal flow scheduling for a stream processing system
JP4933222B2 (ja) * 2006-11-15 2012-05-16 株式会社日立製作所 インデックス処理方法及び計算機システム
US8321849B2 (en) * 2007-01-26 2012-11-27 Nvidia Corporation Virtual architecture and instruction set for parallel thread computing
WO2009033248A1 (en) * 2007-09-10 2009-03-19 Novell, Inc. A method for efficient thread usage for hierarchically structured tasks
US9727373B2 (en) * 2008-03-27 2017-08-08 Apple Inc. Providing resumption data in a distributed processing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06214843A (ja) * 1993-01-20 1994-08-05 Hitachi Ltd データベース管理システムおよび問合せの処理方法
JP2006338432A (ja) * 2005-06-03 2006-12-14 Hitachi Ltd ストリームデータ処理システムのクエリ処理方法
JP2007026373A (ja) * 2005-07-21 2007-02-01 Hitachi Ltd ストリームデータ処理システムおよびストリームデータ処理方法
JP2007199804A (ja) * 2006-01-24 2007-08-09 Hitachi Ltd データベース管理方法、データベース管理プログラム、データベース管理装置、および、データベース管理システム

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5472885B2 (ja) * 2010-11-02 2014-04-16 株式会社日立製作所 プログラム、ストリームデータ処理方法及びストリームデータ処理計算機
WO2012059976A1 (ja) * 2010-11-02 2012-05-10 株式会社日立製作所 プログラム、ストリームデータ処理方法及びストリームデータ処理計算機
KR101752699B1 (ko) * 2011-07-18 2017-07-03 한국전자통신연구원 폭증 데이터 스트림 처리 방법 및 장치
KR20130084906A (ko) * 2012-01-18 2013-07-26 삼성전자주식회사 Dsms에서 사용자 정의 연산자의 스케쥴링 장치 및 방법
KR101951747B1 (ko) * 2012-01-18 2019-02-26 삼성전자 주식회사 Dsms에서 사용자 정의 연산자의 스케쥴링 장치 및 방법
KR101827369B1 (ko) 2012-02-21 2018-02-09 한국전자통신연구원 데이터 스트림 분산 병렬 처리 서비스 관리 장치 및 방법
WO2013145310A1 (ja) * 2012-03-30 2013-10-03 富士通株式会社 データストリームの並列処理プログラム、方法、及びシステム
US9798830B2 (en) 2012-09-14 2017-10-24 Hitachi, Ltd. Stream data multiprocessing method
WO2014041673A1 (ja) * 2012-09-14 2014-03-20 株式会社日立製作所 ストリームデータ多重処理方法
JP5887418B2 (ja) * 2012-09-14 2016-03-16 株式会社日立製作所 ストリームデータ多重処理方法
JP2014123354A (ja) * 2012-12-20 2014-07-03 Hitachi Ltd グラフデータの再帰クエリを用いたストリームデータ処理方法
JP2016514299A (ja) * 2013-02-19 2016-05-19 オラクル・インターナショナル・コーポレイション 連続イベント処理(cep)クエリの並列の実行
JP2019032864A (ja) * 2013-02-19 2019-02-28 オラクル・インターナショナル・コーポレイション 連続イベント処理(cep)クエリの並列の実行
JP2015045996A (ja) * 2013-08-28 2015-03-12 Kddi株式会社 分散クエリ処理装置、処理方法及び処理プログラム
US10630737B2 (en) 2014-03-06 2020-04-21 Huawei Technologies Co., Ltd. Data processing method in stream computing system, control node, and stream computing system
JP2017509075A (ja) * 2014-03-06 2017-03-30 華為技術有限公司Huawei Technologies Co.,Ltd. ストリーム計算システムにおけるデータ処理方法、制御ノードおよびストリーム計算システム
US10097595B2 (en) 2014-03-06 2018-10-09 Huawei Technologies Co., Ltd. Data processing method in stream computing system, control node, and stream computing system
JP2017514216A (ja) * 2014-03-31 2017-06-01 華為技術有限公司Huawei Technologies Co.,Ltd. イベント処理システム
US11138177B2 (en) 2014-03-31 2021-10-05 Huawei Technologies Co., Ltd. Event processing system
US9921883B2 (en) 2015-01-22 2018-03-20 Fujitsu Limited Job management device and method for determining processing elements for job assignment
WO2017104072A1 (ja) * 2015-12-18 2017-06-22 株式会社日立製作所 ストリームデータの分散処理方法、ストリームデータの分散処理システム及び記憶媒体
US11204928B2 (en) 2017-01-13 2021-12-21 International Business Machines Corporation Reducing flow delays in a data streaming application caused by lookup operations
US11210298B2 (en) 2017-01-13 2021-12-28 International Business Machines Corporation Reducing flow delays in a data streaming application caused by lookup operations

Also Published As

Publication number Publication date
US8533730B2 (en) 2013-09-10
US20100229178A1 (en) 2010-09-09
JP5149840B2 (ja) 2013-02-20

Similar Documents

Publication Publication Date Title
JP5149840B2 (ja) ストリームデータ処理方法、ストリームデータ処理プログラム、および、ストリームデータ処理装置
US11733982B1 (en) Dynamically changing input data streams processed by data stream language programs
JP6887544B2 (ja) イベント処理のための動的に型付けされたビッグデータによるイベントの充実化
JP5887418B2 (ja) ストリームデータ多重処理方法
US10089142B2 (en) Dynamic task prioritization for in-memory databases
Hesse et al. Conceptual survey on data stream processing systems
Li et al. Supporting scalable analytics with latency constraints
JP5377897B2 (ja) ストリームデータのランキングクエリ処理方法およびランキングクエリ処理機構を有するストリームデータ処理システム
Brito et al. Scalable and low-latency data processing with stream mapreduce
WO2018130341A1 (en) Reducing flow delays in a data streaming application
US20130117759A1 (en) Network Aware Process Scheduling
JP5552449B2 (ja) データ分析及び機械学習処理装置及び方法及びプログラム
US20120324454A1 (en) Control Flow Graph Driven Operating System
JP6953800B2 (ja) シミュレーションジョブを実行するためのシステム、コントローラ、方法、及びプログラム
US10972555B2 (en) Function based dynamic traffic management for network services
JP5478526B2 (ja) データ分析及び機械学習処理装置及び方法及びプログラム
CN106796520B (zh) 基于软件的仪器化的实时报告
US8458136B2 (en) Scheduling highly parallel jobs having global interdependencies
Maroulis et al. A holistic energy-efficient real-time scheduler for mixed stream and batch processing workloads
Şahin et al. C-stream: a co-routine-based elastic stream processing engine
Kougka et al. Optimization of data flow execution in a parallel environment
Sax et al. Performance optimization for distributed intra-node-parallel streaming systems
He et al. Real-time scheduling in mapreduce clusters
Cho et al. Performance modeling of parallel loops on multi-socket platforms using queueing systems
US11281487B2 (en) Managing processor overcommit for virtual machines

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110318

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110318

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121101

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121130

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20151207

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees