説明

ストリームデータ処理における性能保証方法および装置

【課題】リアルタイム性を確保しながら、レイテンシ保証・処理精度の保証が可能なストリームデータ処理における性能保証方法、および装置を提供する。
【解決手段】クエリで使用する複数の計算方式各々について、そのときの入力データ受信部301のキュー319にあるデータ量と、演算時間、処理精度を、実行方式決定部313が評価する。この評価は事前に行っても良いし、クエリ実行部302の実行中に蓄積しても良い。そして、クエリ処理の実行中、何らかの理由でキュー319にあるデータ量が増大し,要求レイテンシよりも大きくなりそうな場合は、評価結果に基づき実行方式決定部313により、最終的な質が許容される範囲でレイテンシの少なくなる計算方式やそれらの組に変更する。逆に、精度を下げた状態でレイテンシが要求レイテンシを大幅に下回りそうな場合は処理精度のよい計算方式やそれらの組に変更する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストリームデータ処理システム、特にストリームデータ処理におけるレイテンシ・処理精度等の性能保証技術に関する。
【背景技術】
【0002】
通常のストリームデータ処理は連続データを継続的に処理し,判断,補完,予測などをしている(特許文献1参照)。しかし,データが急激に増加した場合,レイテンシが低下し,ユーザの所望するリアルタイム性を維持できなくなる。
【0003】
一方,数値計算の分野においては、あらかじめ計算方式を複数用意しておき,各計算方式における過去の計算結果を利用し,ユーザの要求するレイテンシ,処理精度を満たすように、どの計算方式を使うかを自動選択する方式がある(特許文献2参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許出願公開US2008/0005392
【特許文献2】特開2007−34375号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ストリームデータ処理においては、上述のようにデータが急激に増加した場合に,精度を下げてもレイテンシを維持すべきか,逆にレイテンシをある程度あきらめても精度を維持するべきかアプリケーション(以下、アプリ)により対応を異ならせる必要がある。例えば,スマートグリッドにおける各家庭の次の時間の電力消費量の予測や、画像のリアルタイム圧縮処理,情報機器の障害予兆の予測などはある程度精度を犠牲にしてもレイテンシを維持する必要がある。対して,セキュリティ分野や経済指標の計算などでは精度を落とすことはできない。このようなアプリの要求を入力可能とし、それに対応する仕組みが求められている。
【0006】
特許文献1では、サーバにユーザ・ベンダが作成した外部定義関数をクエリに適用する機能を実装し、この中でレイテンシを保証するため、他のサーバに振り分けするか、もしくはサーバのリソース使用量から入力タプルの一部を削除しているが、複数のサーバを必要とする、或いは入力データの一部削減により得られる結果が異なる恐れがある、という問題がある。
【0007】
そこで、特許文献2の数値計算の分野の方法を、特許文献1のストリームデータ処理の外部定義関数に適用することを検討した場合,事前にレイテンシを予測する手段が不十分であるため、計算方式の切替えが遅れる問題がある。また,全体を統括する仕組みが無いため,処理全体のレイテンシや処理精度を考慮せずに各々の関数が計算方式を選択する問題がある。
【0008】
本発明の目的は、上記の問題点を解決し、リアルタイム性を確保しながら、レイテンシ保証、更には処理精度保証が可能なストリームデータ処理における性能保証方法、および装置を提供することにある。
【課題を解決するための手段】
【0009】
上記の目的を達成するため、本発明においては、処理部とインタフェース部を備えた計算機の、ストリームデータ処理における性能保証方法であって,ストリームデータ処理に対する、処理性能の異なる複数の実行方式を備えておき、
処理部は、インタフェース部を介して受信した入力データに対し,ストリームデータ処理を実行する際に、未処理の入力データの量から性能値を予測し、予測した性能値に基づき要求性能値を満たす実行方式を決定し、決定した実行方式に切替えてストリームデータ処理を実行し、処理結果を出力データとしてインタフェース部に出力するストリームデータ処理における性能保証方法を提供する。
【0010】
また、上記の目的を達成するため、本発明においては、ストリームデータ処理における性能保証装置であって、入力データを受信する入力データ受信部と、入力データに対するクエリ処理を実行する処理部と、実行結果を出力データとして出力するデータ送信部と、要求性能値を入力する要求入力部とを備え、処理部は、クエリ処理に対する、処理性能の異なる複数の実行方式を備え、入力データ受信部を介して受信した入力データに対し,クエリ処理を実行する際に、未処理の入力データの量から性能値を予測し、予測した性能値に基づき、要求性能値を満たす実行方式を決定し、決定した実行方式によりクエリ処理を実行し、処理結果を出力データとしてデータ送信部に出力する構成のストリームデータ処理における性能保証装置を提供する。
【0011】
すなわち、上記の目的を達成するため、本発明の好適な態様においては、クエリ処理で使用する各計算の実行方式について、そのときのキューにあるデータ量、演算時間、処理精度を評価する。また、各計算方式の組み合わせによる最終的な処理精度も評価する。この評価は事前に行っても良いし、実行中に蓄積しても良い。そして、実行中、何らかの理由でキューにあるデータ量が増大し,要求レイテンシよりも大きくなりそうな場合は最終的な質が許容される範囲でレイテンシの少なくなる計算方式の組に変更する。逆に、精度を下げた状態でレイテンシが要求レイテンシを大幅に下回りそうな場合は処理精度のよい計算方式の組に変更する。
【発明の効果】
【0012】
本発明によれば、処理全体のレイテンシや質を考慮して計算内容を選択し、系全体でユーザ要求を満たすことが可能なストリームデータ処理技術を提供できる。
【図面の簡単な説明】
【0013】
【図1】第1の実施例に係る、ストリームデータ処理サーバが利用される計算機環境の構成の一例を示す図である。
【図2】第1の実施例に係る、ストリームデータ処理サーバの構成の一例を示す図である。
【図3】第1の実施例に係る、ストリームデータ処理システムにおける性能保証ソフトウェア機能の一例を示す図である。
【図4】第1の実施例に係る、データ処理定義の一例を示す図である。
【図5】図4に示すデータ処理定義内で使用される複数の実行方式を備える関数の一例を示す図である。
【図6】第1の実施例に係る、1つの関数における複数の実行方式を並べた一例を示す図である。
【図7】図6の各実行方式の、実行結果取得部によって取得された、実行結果の一例を示す図であるである。
【図8A】第1の実施例に係る、入力データのキュー容量と,要求性能値の一例を示す図である。
【図8B】第1の実施例に係る、キュー容量と実行結果取得部の保持する実行結果から予測した性能値の一例を示す図である。
【図8C】第1の実施例に係る、レイテンシ評価部による実行方式の適用可否の判断の一例を示す図である。
【図9】第1の実施例に係る、ストリームデータ処理システムにおける実行方式の切替え動作を示すフローチャートを示す図である。
【図10】第2の実施例に係る、ストリームデータ処理システムにおける複数の関数の各実行方式の一例を示す図である。
【図11】第2の実施例に係る、ストリームデータ処理システムにおける有効実行方式の選定を行う動作を示すフローチャートを示す図である。
【図12】第2の実施例に係る、選定された有効実行方式の組の一例を示す図である。
【図13】第2の実施例に係る、複数の関数の各有効実行方式に対する評価結果の一例を示す図である。
【図14】第2の実施例に係る、ストリームデータ処理システムにおける実行方式切替え時間の一例を示す図である。
【図15A】第2の実施例に係る、キュー容量と、要求性能,要求精度の一例を示す図である。
【図15B】第2の実施例に係る、キュー容量と、保持する実行結果,実行方式切替え時間から予測した性能値の一例を示す図である。
【図15C】第2の実施例に係る、実行方式の適用可否の判断の一例を示す図である。
【図16】第2の実施例に係る、要求精度,実行方式切替え時間を考慮した、実行方式の切替え動作を示すフローチャートを示す図である。
【図17】第2の実施例に係る、実行方式の切替え時刻の記録の一例を示す図である。
【図18】第2の実施例における、要求性能と要求精度を設定するGUI(Graphical User Interface)の一例を示す図である。
【発明を実施するための形態】
【0014】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図面において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。また、本明細書において、ストリームデータ処理、すなわち入力されるストリームデータに対するクエリ処理を実行する処理サーバを構成する計算機などが実行するプログラムを、「機能」、「手段」、「部」等と呼ぶ場合がある。例えば、実行方式決定プログラムの機能を、「実行方式決定機能」、「実行方式決定手段」、「実行方式決定部」などである。
【実施例1】
【0015】
まず、図1および図2を用いて、第1の実施例に係るストリームデータ処理を実行するシステムの基本構成を説明する。
【0016】
図1に示すように、ストリームデータ処理を実行するシステムでは、ネットワーク104にストリームデータ処理サーバ100と計算機101、102、103が接続されている。ストリームデータ処理サーバ100は、ネットワーク104を介して、データソース107が動作する計算機102からデータ108を受け取り、処理結果のデータ110を計算機103上の結果利用アプリケーション109に送信する。また、計算機101上では、ストリームデータ処理のためのクエリを登録するための、クエリ登録コマンド実行インタフェース105が動作する。これらの計算機101、102、103の任意の2つ、3つを1つの計算機で構成することもできるし、ストリームデータ処理サーバ100に統合することもできる。
【0017】
図2に示すように、ストリームデータ処理サーバ100は、計算機200から構成され、計算機200は、記憶部であるメモリ202、処理部である中央処理部(Central Processing Unit:CPU)201、ネットワークインタフェース(Interface:I/F)204、記憶部であるストレージ203、およびそれらを結合するバス205によって構成される。メモリ202上に、ストリームデータ処理の論理動作を定義する、ストリームデータ処理システム206を配置する。ストリームデータ処理システム206は、後で詳述するようにCPU201によって解釈実行可能な実行イメージである。
【0018】
図2に示すように、ストリームデータ処理サーバ100を構成する計算機200は、インタフェース部であるネットワークI/F204を介して外部のネットワーク104に接続される。なお、ストリームデータ処理サーバ100を構成する計算機は1個に限らず複数であっても良いが、ここでは1個の計算機構成を図示説明する。
【0019】
ネットワーク104に接続された計算機101上で動作する、クエリ登録コマンド実行インタフェース105を介して、ユーザによって定義されたクエリ106を、ストリームデータ処理サーバ100を構成する計算機200が受取ると、ストリームデータ処理システム206は、この定義に従ってストリームデータ処理を実行可能なクエリグラフを自身の内部に構成する。この後、ネットワーク104に接続された計算機102上で動作するデータソース107によって送信されるデータ108を、ストリームデータ処理サーバ100を構成する計算機200が受取ると、このクエリグラフに従ってデータ処理し、結果データ110を生成し、計算機103上で動作する結果利用アプリケーション109に送信する。ストレージ203は、ストリームデータ処理システム206の他、一度受取ったクエリ106を保存する。ストリームデータ処理システム206は、起動時にストレージ203からこの定義をロードし、クエリグラフを構成することも可能である。
【0020】
ここで説明した本実施例のストリームデータ処理サーバの構成は一例であり、計算機は1個である必要はなく、複数の計算機で構成しても良いし、計算機の処理部であるCPU201は、同一計算機上の二つのプロセッサで構成しても良いし、更にその二つのプロセッサは一つのマルチコアCPUにおける二つの計算コアであっても構わない。本明細書において、サーバは、少なくとも処理部と記憶部とインタフェース部を備えておれば、どのような構成を取っても良い。
【0021】
図3を用いて、第1の実施例に係るストリームデータ処理システムの性能保証方法を実行するソフトウェアの機能ブロック構成を示す図である。なお、同図において、太線のブロックは、計算機200の処理部であるCPU201で実行される各種のソフトウェア機能を、細線のブロックはソフトウェアの実行の際、メモリ202上等に形成される各種のデータの保存領域を模式的に示している。また、このソフトウェアの機能ブロック構成図は、第2の実施例に係るストリームデータ処理システムのソフトウェア機能ブロック構成を示す図と兼用しており、以下説明するように、一部の機能ブロックやデータは第1の実施例では用いられない点に留意されたい。
【0022】
図3において、ストリームデータ処理システム206は、入力データ108を受信する入力データ受信部301、ユーザの定義したクエリ106と外部定義関数305を受信し解析するクエリ受信・解析部306、クエリグラフとオペレータ等を保持するクエリ実行ワークエリア308、クエリ受信・解析部306内で、クエリ実行ワークエリア308と入力データ108に基づいてクエリを実行するクエリ実行部302、要求性能値である要求レイテンシ310から成るユーザ要求309が入力される要求入力部312、クエリ実行結果110を出力する出力データ送信部304を備える。
【0023】
加えて、ストリームデータ処理システム206は、要求レイテンシ310から成るユーザ要求309を受信する要求入力部312、実行方式決定部313、入力データ受信部からデータの入力された時刻とその時のキュー319の容量を受信し、加えてクエリ実行部302から当該データを処理する際に用いた関数の実行方式を受信し、出力データ送信部304から処理された当該データが出力された通過時刻を受信し、当該データの出力された時刻と入力された時刻の差分からレイテンシを測定し、測定したレイテンシをその際のキューの容量と使用した方式の情報とともに記録する実行結果取得部318、実行結果取得部318が記録した情報を元に要求入力部312で受信したユーザ要求309を満たす関数を決定する実行方式決定部313を備える。
なお、本明細書において、便宜上、入力データ受信部301と出力データ送信部304、更には要求入力部312を総称してインタフェース部と呼ぶ場合があるが、このインタフェース部は、図2のインタフェース部と同一物としても良いが、同一のものである必要はなく、好適にはストリームデータ処理サーバ100上で動作するストリームデータ処理システム自身の機能的なインタフェース部とすることができる。
【0024】
ここで、キュー319は、入力データ受信部301はストリームデータ処理システム206の未処理のデータを保持する。また、クエリ受信・解析部306は外部定義関数305をクエリ実行ワークエリア308に組込む外部定義関数組込部307を備える。
【0025】
クエリ実行ワークエリア308は、個々の処理内容を示すオペレータ1〜オペレータ3を備える。ここではオペレータ1はさらに組込関数1を、組込関数1は方式1A、1B、1Cを備え、オペレータ2はさらに組込関数2を、組込関数2は方式2A、2B、2Cを備える。ここで、組込関数1A、1B、1Cは同じ演算を行う複数の関数であるが、本実施例においてはそれぞれ計算精度と演算時間が異なる。オペレータ2の組込関数2A、2B、2Cも同様である。
【0026】
本実施例に係るクエリ実行部302は、実行方式決定部313の決定に従い、クエリの実行において使用する関数の方式を動的に変更する実行方式切替え部303を備える。また、実行方式決定部313は入力データ受信部からキュー319の容量を受信し、実行結果取得部318が記録した過去の情報から関数の各方式を使用した際のレイテンシを予測するレイテンシ予測部314、レイテンシ予測部314の予測とユーザの要求レイテンシ310から使用可能な方式を評価するレイテンシ評価部315を備える。
【0027】
なお、図3において図示されている、ユーザ要求309中の要求演算精度311、実行方式決定部313中の演算精度評価部316と有効方式決定部317は、第2の実施例に関係する部分であり、後で詳述するため、ここでは説明を省略する。
【0028】
次に、図4および図5を用いて、本実施例のストリームデータ処理におけるクエリ処理の一例を説明する。図4はデータ処理定義の一例を示す図であり、同図に示すように、データ処理定義400は、2つの入力ストリームsaおよびsb、3つのクエリq1、q2およびq3を定義するクエリである。図5の500は、図4に示すデータ処理定義内で使用される複数の実行方式を備える関数の一例を示す図である。図3に示したストリームデータ処理システム206のクエリ受信・解析部306は、図4に示すクエリを受信・解析し、必要な外部定義関数を組み込む。図4、図5に示すデータ処理定義400、および関数例500はあくまで一例であり、これに限定するものでない。
【0029】
続いて図6を用いて、本実施例のストリームデータ処理システムにおける、上述した各関数に対する複数の計算方式について説明する。図6の600は、本実施例のストリームデータ処理システムが所定の関数を実行するために備える、複数の実行方式と対応する演算時間を保持するテーブルである。同図では、所定の関数に対する複数の方式の一例として、関数サイン(sin)の例として図示した。同図において、方式a、方式b、方式cはそれぞれ演算時間が短、中、長となる。
【0030】
図7は、本実施例における、実行結果取得部318が取得・保持する、各実行方式の実行結果の一例をグラフ化して示す図である。図6に示した関数sin計算方式a、方式b、方式cに対応し、演算データ量を横軸、演算時間を縦軸に示した。同図において、実線は方式a、二点鎖線は方式b、破線は方式cの実行結果を示している。
【0031】
さて、図3に示した本実施例のストリームデータ処理システム206において、上述の通り、実行方式決定部313は、実行結果取得部318が取得、保持した情報を元に、要求入力部312で受信した要求性能値であるユーザ要求309を満たす関数を決定する。クエリ実行部302の実行方式切替え部303は、実行方式決定部313の決定に従い、クエリの実行において使用する関数の方式を動的に変更する。また、実行方式決定部313のレイテンシ予測部318は、入力データ受信部301から入力データ108のキュー319の容量を受信し、実行結果取得部318が記録した過去の情報から、関数の各方式を使用した際のレイテンシを予測し、レイテンシ評価部315は、レイテンシ予測部314の予測とユーザの要求レイテンシ310から使用可能な方式を評価する。
【0032】
すなわち、ストリームデータ処理システム206の実行方式決定部313においては、入力データ受信部301から、データの入力された時刻とその時のキュー319の容量を受信し、加えてクエリ実行部302から当該データを処理する際に用いた関数の実行方式を受信し、出力データ送信部304から処理された当該データが出力された通過時刻を受信する。そして、実行結果取得部318は、当該データの出力された時刻と入力された時刻の差分からレイテンシを測定し、測定したレイテンシをその際のキューの容量と使用した方式の情報とともに記録する。そして、実行方式決定部313は、実行結果取得部318が保持した情報を元に、要求入力部312が受信したユーザ要求309を満たす関数を決定する。
【0033】
図8Aの800は、本実施例に係る、実行方式決定部313が入力データ受信部301より与えられるキュー容量と,要求入力部312より与えられる要求性能値の一例を示す。ここでは要求性能値は要求レイテンシを示す。同様に、図8Bの801は、レイテンシ予測部314が与えられたキュー容量と、実行結果取得部318の保持する実行結果から、予測した各方式の予測性能値の一例を示す。ここで、予測性能値は、各実行方式で必要となる演算時間を示している。また、図8Cの802は、レイテンシ評価部315による、実行方式の適用可否の評価後の評価結果の一例を示す。
【0034】
すなわち、図8A、図8B、図8Cに示すように、キュー319のデータ容量は10000、ユーザからの要求レイテンシ310は40msで、方式a、方式b、方式cの演算時間が14ms、40ms、60msの場合、方式a、方式bが適用可と判断され、方式cは適用不可と判断される。これらのデータを、図3の実行結果取得部318が取得し、その内部他に保持する。
【0035】
図9は、本実施例のストリームデータ処理システム206の実行方式決定部313、およびクエリ実行部302による、複数の実行方式の動的な切替え動作を示すフローチャートである。まず、入力データ受信部301に入力されるデータ108のキュー容量に変化があった場合、処理フローがスタートする(ステップ900、以下括弧内ステップ省略)。
【0036】
実行方式決定部313は、レイテンシに問題が無いかを判断する(901)。レイテンシに問題がなければ(N)、実行結果取得部318に複数の方式の測定結果が既にあるか否かを判断し(902)、問題があれば(Y)、終了する(910)。
【0037】
複数の方式の測定結果がある場合(Y)、引き続いて要求レイテンシを満たす有効方式を探索する(903)。その結果、有効な方式が有れば(Y)、その有効な方式に変更し(905)、処理を終了する(910)。有効な方式が無い場合は、エラー出力し(906)、終了する(910)。
【0038】
ステップ902において、全方式の測定結果がなかった場合(N)、方式の傾向情報が予め実行結果取得部318などに記憶されているか否かをチェックし(907)、方式の傾向情報が存在する場合は、当該の方式の傾向情報から、現状の問題を解消できる方式を選択し、方式の切替え変更を行う(908)。傾向情報が無い場合は、本実施例においては、ランダムに未測定の方式から選択し変更を実行する(909)。なお、この方式の傾向情報は、システム構成時に、必要に応じて実行結果取得部318などに保持しておくことができる。
【0039】
本実施例の処理部であるCPUで実行される、ストリームデータ処理システムの実行方式決定部313を、取得した性能値が要求性能値を上回っている状態において,未処理の前記入力データの量が増加した場合に、実行方式を切替える決定をするよう構成することも可能である。また、実行結果取得部318に保持された過去の性能値と未処理の入力データの量を比較し,要求性能値を満たす実行方式に切替える決定をするよう構成することも可能であることは言うまでも無い。
【0040】
以上詳述した、第1の実施例のストリームデータ処理システムによれば、システムが受信するデータ量を元に、予測レイテンシを指標として、受信データに対する計算の実行方式を切替え、選択することができ、リアルタイム性を確保しながら、レイテンシ保証が可能となる。
【実施例2】
【0041】
続いて、第2の実施例として、レイテンシ保証に加え、処理精度も保証可能なストリームデータ処理システムを説明する。なお、本実施例の説明に当たり、第1の実施例の説明と共通する部分については、説明を省略する。本実施例のストリームデータ処理サーバが利用される計算機環境の構成、及びストリームデータ処理サーバの構成は図1、図2のものと同じであるのでここでは説明を省略することとする。
【0042】
図3の説明の際に述べたように、図3のストリームデータ処理における性能保証ソフトウェア機能図において、本実施例においてのみ使用されるデータ、機能が有る。すなわち、図3において、要求性能値であるユーザ要求309には、要求レイテンシ310に加え、本実施例においてのみ使用される、要求精度としての要求演算精度311が含まれる。そして、実行方式決定部313には、レイテンシ予測部314、レイテンシ評価部315に加え、本実施例において使用される演算精度評価部316と有効方式決定部317が含まれる。
【0043】
本実施例においては、実行方式決定部313は、先の実施例1の機能に加え、出力データを評価し演算精度を測定し、実行結果取得部318は、測定したレイテンシと演算精度を、その際のキューの容量と使用した方式の情報とともに記録・保持する。そして、実行結果取得部318が記録・保持した情報を元に、要求入力部312で受信したユーザ要求309を満たす1又は複数の関数の実行方式を決定する。
【0044】
ここで、本実施例においても、クエリ実行部302の実行方式切替え部303は、実行方式決定部313の決定に従い、クエリの実行において使用する関数の方式を動的に変更する。また、実行方式決定部313は、実施例1と同様、入力データ受信部からキュー319の容量を受信し、実行結果取得部318が記録した過去の情報から関数の各方式を使用した際のレイテンシを予測するレイテンシ予測部314、レイテンシ予測部314の予測とユーザの要求性能309から使用可能な方式を評価するレイテンシ評価部315に加え、上述の通り、実行結果取得部318の記録した情報を元に要求演算精度311を満たす方式を評価する演算精度評価部316、複数の組込関数がクエリ実行ワークエリア308上で使用されている場合に、有効な方式の組み合わせを決定する有効方式決定部317を新たに備えている。
【0045】
図10に本実施例に係る、レイテンシ評価部、演算精度評価部による複数の関数の各実行方式の一例を示す。図10の(a)、(b)はそれぞれ関数sin
、関数cosに対応する。それぞれ、方式a、方式b、方式cと、方式α、方式β、方式γに対応し、図6同様、演算時間の短、中、長と、且つその精度が求められ保持される。なお、同図において、精度は指数表示で示してある。
【0046】
図11は、実施例2において、複数の組込関数がクエリ実行ワークエリア308上で使用されている場合に、実行方式決定部313による有効な方式の組み合わせの選定を行う動作を示すフローチャートを示す図である。同図において、存在する複数の関数を、順次、関数I、関数Jの組み合わせとして検討する(I、J、Kそれぞれ1以上の自然数である)。すなわち、関数Jの各実装方式で演算精度が実装方式Kよりも良く、その中で最も演算時間の短い実装方式を選択する(1103)。この処理を、関数I以外の全ての関数Jについて実行し(1102、1104、1105)、関数Iの全ての実装方式Kについて実行し(1101、1106,1107)、全ての関数Iについて実行して(1100、1108、1109)終了する。
【0047】
図12の1200は、以上のような第2の実施例における選定処理の結果、選定され、保持された有効実行方式の組の一例を示す図である。組i、ii、iii、iv、vはそれぞれ図示の精度に対応し、結果として関数1と関数2の欄に示す関数セットが選定される。
【0048】
図13は、図12に示した本実施例のレイテンシ評価部315による、複数の関数の組の各有効実行方式に対する評価結果の一例をグラフ化して示す図である。精度が高くなるに連れ、演算時間が増加する。
【0049】
図14は、第2の実施例のストリームデータ処理システムにおける実行方式切替え時間の一例を示す図である。この切替え時間についても、実行結果取得部318等に保持される。同図の場合、精度が向上するに連れ、切替え時間が増加することを示している。
【0050】
図15Aは、本実施例における、実行方式決定部313が入力データ受信部301より与えられるキュー容量と,要求入力部312より与えられる要求性能値,要求演算精度の一例を示し、図15Bは、レイテンシ予測部314が与えられたキュー容量と、実行方式取得部318の保持する実行結果,実行方式切替え時間から予測した性能値の一例を示し、図15Cに示す例の場合は、切替え時間も考慮した、レイテンシ評価部315,演算精度評価部316による実行方式の適用可否の判断の一例を示している。図15Cに示す例の場合、方式iiと方式iiiが合計時間と精度の点から適用可と判断され、残りの3方式は適用不可と判断されている。
【0051】
図16は、本実施例に係る、要求精度,実行方式切替え時間まで考慮した実行方式決定部313、およびクエリ実行部302による実行方式の切替え動作を示すフローチャートを示す図である。同図においては、図9のフローチャートと同様、まず、入力データ受信部301に入力されるデータ108のキュー容量に変化があった場合、処理フローがスタートする(1600)。
【0052】
実行方式決定部313は、レイテンシ、精度共に問題が無いかを判断する(1601)。問題があれば(Y)、可能な限りレイテンシを少なくする指示があるか否かをチェックする(1602)。そのような指示がある場合、処理を終了する(1611)。
【0053】
可能な限りレイテンシを少なくする指示が無い場合(N)、或いは、レイテンシ、精度共に問題が無い場合(N)、複数の方式の測定結果が既にあるか否かを判断し(1603)、
複数の方式の測定結果がある場合(Y)、引き続いて要求レイテンシ、精度の両方を満たす有効方式を、切替え時間を足して探索する(1604、1605)。その結果、有効な方式が有れば(Y)、その有効な方式に変更し(1606)、処理を終了する(1611)。有効な方式が無い場合は、エラー出力し(1607)、終了する(1611)。
【0054】
ステップ1603において、全方式の測定結果がなかった場合(N)、実施例1と同様に、方式の傾向情報が記憶されているか否かをチェックし(1608)、方式の傾向情報が存在する場合は、当該の方式の傾向情報から、現状の問題を解消する方式を選択し、変更を行う(1609)。傾向情報が無い場合は、ランダムに未測定の方式から選択し変更を実行する(1610)。
【0055】
本実施例おいては、クエリ処理の単一,もしくは複数のオペレータで、切替えすべき複数の実行方式の組が存在した場合、出力データの演算精度を基準として,演算精度で最も性能の高い実行方式の組を決定するよう構成することも可能である。すなわち、ストリームデータ処理内に、複数の実行方式の切替え点(関数)が存在する場合に、それぞれの演算性能と演算精度を評価し、最も有効な組み合わせを選択すると良い。
【0056】
なお、図17に、第2の実施例のストリームデータ処理システムの実行結果取得部318が取得し、保持する、実行方式の切替え時刻の記録の一例を示した。同図より明らかなように、それぞれの組の識別情報と、対応するその切替え時刻が保持されている。本図の切替え時刻のデータ保持は第2の実施例に限らず、実施例1においても利用すると好適であるが、実施例1の場合は、組の識別情報の代わりに、実行方式の識別情報と切替え時刻になることは言うまでもない。
【0057】
図18に、本実施例における、要求性能と要求精度を設定するGUI(Graphical User Interface)の一例を示す。なお、同様なGUIを実施例1のシステムでも利用することができることは言うまでもないが、その場合、精度設定部分の表示は必要がないことは言うまでもない。
【0058】
同図において、実施例2に対応し、GUI画面1800には、要求性能・精度設定画面が表示されている。このような表示画面を表示するデバイスは、通常の表示機器と画像表示ソフトウェアを用いれば実現可能であることは言うまでもない。図18のGUIの設定画面においては、「実行方式の自動選択機能を有効にする」、「レイテンシが指定の値以上にならないように選択する」、「出力データの精度が、要求精度を維持するように選択する」等を、図示のチェック部1803にマークを施すことにより選択できる。また、要求レイテンシと要求演算精度は、所望の数値を画面から適宜入力することによって可能であることは言うまでもない。なお、1802、1803はそれぞれ、最適化実施と設定の指示ボタンを示している。
【0059】
以上詳述した、第2の実施例のストリームデータ処理システムによれば、システムが受信するデータ量を元に、予測レイテンシと演算精度を指標として、受信データに対する計算の実行方式を切替え、選択することができ、リアルタイム性を確保しながら、レイテンシ保証と処理精度の保証が可能となる。
【0060】
上述の通り本発明の種々の実施例について説明してきたが、本発明はこれらの実施例に限定されるものなく、様々な変形例が含まれうることは言うまでもない。上述した実施例は本発明のより良い理解のために説明したものであり、本発明はそれに限定されるもので無い。また、ある実施例構成の一部を他の実施例の構成に置き換えることも可能であり、ある実施例の構成に他の実施例の構成を加えることも可能である。例えば、実施例2で説明した、実行方式切替え時間を考慮した切替え法を、実施例1に適用するなどのことができることは言うまでもない。また、上述した各実施例の構成、機能、処理等は、それらの一部又は全部を主体として説明したソフトウェア構成のみならず、専用のハードウェア構成、あるいはそれらを共用した構成として実現できることは言うまでもない。
【産業上の利用可能性】
【0061】
本発明は、ストリームデータ処理分野における、レイテンシ保証、更には処理精度の保証を目的としたストリーム処理技術として極めて有用である。
【符号の説明】
【0062】
100…ストリーム処理サーバ
101、102、103、200…計算機
104…ネットワーク
201…CPU
202…メモリ
203…ストレージ装置
204…ネットワークI/F
205…計算機内部バス
206…ストリームデータ処理システム
301…入力データ受信部
302…クエリ実行部
303…実行方式切替え部
304…出力データ送信部
305…外部定義関数
306…クエリ受信・解析部
307…外部定義関数組込部
308…クエリ実行ワークエリア
309…ユーザ要求
310…要求レイテンシ
311…要求演算精度
312…要求入力部
313…実行方式決定部
314…レイテンシ予測部
315…レイテンシ評価部
316…演算精度評価部
317…有効方式決定部
318…実行結果取得部
319…キュー
1800…GUI画面
1800…最適化実施実行ボタン
1800…設定実行ボタン。

【特許請求の範囲】
【請求項1】
処理部とインタフェース部を備えた計算機により実行されるストリームデータ処理における性能保証方法であって,
前記ストリームデータ処理に対する、処理性能の異なる複数の実行方式を備えておき、
前記処理部は、
前記インタフェース部を介して受信した前記入力データに対し,前記ストリームデータ処理を実行する際に、未処理の前記入力データの量から性能値を予測し、
予測した前記性能値と要求性能値に基づき、前記要求性能値を満たす前記実行方式を決定し、
決定した前記実行方式に切替えて前記ストリームデータ処理を実行し、
得られた処理結果を出力データとして前記インタフェース部に出力する、
ことを特徴とするストリームデータ処理における性能保証方法。
【請求項2】
請求項1に記載のストリームデータ処理における性能保証方法であって、
前記処理部は、
前記入力データ及び前記出力データの前記インタフェース部の通過時刻を取得し、
取得した前記通過時刻から未処理の前記入力データの量ごとの前記性能値を取得し、
取得した前記性能値と前記要求性能値を比較して評価し、
前記要求性能値を下回ったと評価したことを契機に前記実行方式を切替える、
ことを特徴とするストリームデータ処理における性能保証方法。
【請求項3】
請求項1に記載のストリームデータ処理における性能保証方法であって、
前記処理部は、
取得した前記性能値が前記要求性能値を上回っている状態において,未処理の前記入力データの量が増加した場合に、前記実行方式を切替える決定をする、
ことを特徴とするストリームデータ処理における性能保証方法。
【請求項4】
請求項1に記載のストリームデータ処理における性能保証方法であって、
前記処理部は、
保持された過去の性能値と、未処理の前記入力データの量を比較し,前記要求性能値を満たす前記実行方式に切替える決定をする、
ことを特徴とするストリームデータ処理における性能保証方法。
【請求項5】
請求項4に記載のストリームデータ処理における性能保証方法であって、
前記処理部は、
前記実行方式の切替えに必要となる切替え時間と前記過去の性能値を合計し,その合計値が前記要求性能値を満たす前記実行方式に切替える決定をする、
ことを特徴とするストリームデータ処理における性能保証方法。
【請求項6】
請求項1に記載のストリームデータ処理における性能保証方法であって、
前記処理部は、
前記出力データの演算精度が、前記インタフェース部より入力される要求精度を満たすか否かを評価し、
予測した前記性能値が前記要求性能値を満たすか否か、及び前記出力データの演算精度が前記要求精度を満たしているかを評価し、
当該評価結果を元に、前記要求性能値と前記要求精度の双方を満たす実行方式に切替える、
ことを特徴とするストリームデータ処理における性能保証方法。
【請求項7】
請求項1に記載のストリームデータ処理における性能保証方法であって、
前記処理部は、
前記ストリームデータ処理において,単一,もしくは複数のオペレータで複数の前記実行方式の変更点が存在する場合に,前記出力データの演算精度を基準として,当該演算精度で最も性能の高い前記実行方式の組を決定する、
ことを特徴とするストリームデータ処理における性能保証方法。
【請求項8】
ストリームデータ処理における性能保証装置であって、
入力データを受信する入力データ受信部、
前記入力データに対するクエリ処理を実行する処理部、
前記処理部の実行結果を出力データとして出力するデータ送信部、
要求性能値が入力される要求入力部を備え、
前記処理部は、
前記クエリ処理に対する、処理性能の異なる複数の実行方式を備えておき、
前記入力データ受信部を介して受信した前記入力データに対し,前記クエリ処理を実行する際に、未処理の前記入力データの量から性能値を予測し、
予測した前記性能値に基づき、前記要求性能値を満たす前記実行方式を決定し、
決定した前記実行方式に切替えて前記ストリームデータに対する前記クエリ処理を実行し、
前記処理部の前記実行結果を前記データ送信部に出力する、
ことを特徴とするストリームデータ処理における性能保証装置。
【請求項9】
請求項8に記載のストリームデータ処理における性能保証装置であって、
前記処理部は、
前記入力データの前記入力データ受信部、及び前記出力データの前記データ送信部の通過時刻を取得し、
取得した前記通過時刻から未処理の前記入力データの量ごとの前記性能値を取得し,取得した前記性能値と前記要求性能値を比較して評価し、前記要求性能値を下回っていると評価したことを契機に前記実行方式を切替える、
ことを特徴とするストリームデータ処理における性能保証装置。
【請求項10】
請求項8に記載のストリームデータ処理における性能保証装置であって、
前記処理部は、
取得した前記性能値が前記要求性能値を上回っている状態において,さらに未処理の前記入力データの量が増加した場合に、前記実行方式を切替える、
ことを特徴とするストリームデータ処理における性能保証装置。
【請求項11】
請求項8記載のストリームデータ処理における性能保証装置であって、
前記処理部は、
過去の性能値を保持するよう制御し、
保持された前記過去の性能値と、未処理の前記入力データの量を比較し,前記要求性能値を満たす前記実行方式に切替える、
ことを特徴とするストリームデータ処理における性能保証装置。
【請求項12】
請求項11に記載のストリームデータ処理における性能保証装置であって、
前記処理部は、
前記実行方式の切替えに必要となる時間と前記過去の性能値を合計し,当該合計値が前記要求性能値を満たす前記実行方式に切替える、
ことを特徴とするストリームデータ処理における性能保証装置。
【請求項13】
請求項8に記載のストリームデータ処理における性能保証装置であって、
前記要求入力部から前記出力結果の要求精度が入力され、
前記処理部は、
前記出力データの演算精度が前記出力結果の要求精度を満たすか否かを評価し、
予測した前記性能値が前記要求性能値を満たすか否か、及び前記出力データの演算精度が前記出力結果の要求精度を満たしているかを評価し、
評価結果を元に、前記要求性能値と前記要求精度の双方を満たす実行方式に切替える、
ことを特徴とするストリームデータ処理における性能保証装置。
【請求項14】
請求項8に記載のストリームデータ処理における性能保証装置であって、
前記処理部は、
前記クエリ処理において,単一,もしくは複数のオペレータで、切替えすべき複数の前記実行方式が存在する場合に,前記出力データの演算精度を基準として,当該演算精度で最も性能の高い前記実行方式の組を決定する、
ことを特徴とするストリームデータ処理における性能保証装置。
【請求項15】
請求項8に記載のストリームデータ処理における性能保証装置であって、
前記処理部は、
前記実行方式を切替えた時刻と切替えた前記実行方式を識別する識別情報を保持、出力する、
ことを特徴とするストリームデータ処理における性能保証装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8A】
image rotate

【図8B】
image rotate

【図8C】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15A】
image rotate

【図15B】
image rotate

【図15C】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate