JPWO2016035128A1 - ストリームデータ処理システム及び処理方法 - Google Patents
ストリームデータ処理システム及び処理方法 Download PDFInfo
- Publication number
- JPWO2016035128A1 JPWO2016035128A1 JP2016546211A JP2016546211A JPWO2016035128A1 JP WO2016035128 A1 JPWO2016035128 A1 JP WO2016035128A1 JP 2016546211 A JP2016546211 A JP 2016546211A JP 2016546211 A JP2016546211 A JP 2016546211A JP WO2016035128 A1 JPWO2016035128 A1 JP WO2016035128A1
- Authority
- JP
- Japan
- Prior art keywords
- stream data
- data
- migration
- server
- input
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/026—Capturing of monitoring data using flow identification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0894—Packet rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Environmental & Geological Engineering (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
ストリームデータ処理システムは、移行対象の入力ストリームデータ(以下、データ)を蓄積し、データの移行を移行元及び移行先へ指示し、蓄積データの転送指示に応答して、蓄積データを移行先へ転送し、データの移行元への転送を停止して、蓄積データに引き続きデータを移行先へ転送する入力サーバ、移行の指示に応答して、入力サーバから転送された移行対象のデータを処理するクエリとクエリのあるデータの入力に対応する実行の完了に伴う中間値を移行先へ移行し、移行先からのクエリの実行の停止指示に応答して、クエリの実行を停止し、クエリの実行結果を移行先へ転送する移行元、及び、移行の指示に応答して、移行元から移行されたクエリの実行を開始し、入力サーバから転送される、蓄積データ及び引き続くデータの中の、移行された中間値に対応するデータまでを読み飛ばし、移行元から転送されたクエリの実行結果までの出力を破棄する移行先サーバを有する。
Description
本発明は、ストリームデータの処理システム及びその処理方法に関する。
ストリームデータ処理システムにおいて、処理内容を定義したクエリを実行中の計算機とは別に、新たに計算機を追加して,追加した計算機に一部のクエリを移行することにより、計算機負荷を分散させるスケールアウトを実現する方法が提案されている。
たとえば,特許文献1は,クエリが定義する定義情報を基に、移行にかかるコストを計算し、計算した移行コストに応じて、移行するクエリを選択し、予め設定された移行方式でクエリを移行することを開示している。その移行方式として、クエリを実行するストリームデータ処理部が保存しているデータを移行先へコピーするコピー方式と、移行元と移行先のクエリの実行に伴うデータが一致するまで、移行元と移行先の双方へ同一のストリームデータを送信するウォームアップ方式が開示されている。
特許文献1に開示された移行方式であるコピー方式は、ストリームデータ処理部が保存しているデータの移行先へのコピー中は、ストリームデータ処理部への新たなストリームデータの入力を一時的に停止させる必要があり、リアルタイム性が損なわれる。また、一時的に入力を停止させるストリームデータを記憶しておかなければ、停止期間中のストリームデータに欠損を生じる。
ウォームアップ方式は、移行元と移行先のクエリの実行に伴うデータがいつまでも一致しない場合がある。極端な例として、移行対象のストリームデータが1時間間隔で入力されるような場合、少なくとも1時間は一致せず、場合によっては何時間も一致しないことになる。
そこで、移行元と移行先のクエリの実行に伴うデータに欠損を生じさせずに、いつまでもデータ一致しないという状況を生じさせないこと、すなわち移行時間を短くすることが必要になる。
開示するストリームデータ処理システムは、移行対象の入力ストリームデータと入力ストリームデータを処理させる移行先サーバとを特定する情報を含む移行指示に応答して、移行対象の入力ストリームデータを蓄積し、移行対象の入力ストリームデータの移行を移行元サーバ及び移行先サーバへ指示し、移行先サーバからの蓄積データの転送指示に応答して、蓄積した移行対象の入力ストリームデータを移行先サーバへ転送し、蓄積した移行対象の入力ストリームデータの移行先サーバへの転送完了に応答して、移行対象の入力ストリームデータの移行元サーバへの転送を停止し、蓄積した移行対象の入力ストリームデータに引き続く移行対象の入力ストリームデータの移行先サーバへの転送を開始する入力サーバ、入力サーバからの移行対象の入力ストリームデータの移行の指示に応答して、入力サーバから転送された移行対象の入力ストリームデータを処理する処理内容を定義したクエリの、移行対象の入力ストリームデータのあるデータの入力に対応する実行の完了に応じて、クエリとクエリのあるデータの入力に対応する実行の完了に伴う中間値を移行先サーバへ移行し、移行先サーバからのクエリの実行の停止指示に応答して、クエリの実行を停止し、クエリの実行結果を移行先サーバへ転送する移行元サーバ、及び、入力サーバからの移行対象の入力ストリームデータの移行の指示に応答して、移行元サーバから移行されたクエリの実行を開始し、蓄積データの転送指示を入力サーバへ出力し、入力サーバから転送される、蓄積した入力ストリームデータ及び引き続く移行対象の入力ストリームデータの中の、中間値に対応するデータまでを読み飛ばし、移行元サーバから転送されたクエリの実行結果までの、クエリの実行結果の出力を破棄する移行先サーバを有する。
開示するストリームデータ処理システムによれば、移行時間を短くできる。
図1および図2は、ストリームデータ処理部の概要図である。図1は、処理内容(シナリオとも呼ぶ。)を定義するクエリを実行するストリームデータ処理部の一例である。ストリームデータ処理部1はクエリに従って、(1)入力ストリームデータから処理対象のデータを抽出し、抽出したデータをウィンドウ3と呼ぶ記憶領域に格納するウィンドウ演算2、(2)ウィンドウ3に格納されたデータを対象に所定の演算を実行し、実行結果をオペレータ5と呼ぶ記憶領域に格納する関係演算4、及び(3)オペレータ5に格納されたデータを出力ストリームデータとしてストリーム化するストリーム化演算6を実行する。
ウィンドウ3は、入力ストリームデータの各データの生成時刻Time(生成順序番号でもよい。)、そのデータのID(図2を用いて後述するように、入力ストリームデータにIDで識別される複数種類のデータが含まれる場合がある。)、及びそのデータの値VALを格納する。オペレータ5は、関係演算4の実行結果としての値VALを格納する。
クエリが定義する処理内容として、入力ストリームデータの最新の3つのデータの合計を求める簡単な例を説明する。煩雑さを避けるために、データをD(Time、ID、VAL)、または更に簡略化してD(Time)と表す。また、現時点を10:00とする。また関係演算4の実行結果としてのデータをVAL(Time)と表す。
ウィンドウ演算2は、09:59の時点でウィンドウ3にD(09:59)、D(09:58)、D(09:57)を格納して、関係演算4は実行結果としてVAL(09:59)を得るとともに、D(09:57)をウィンドウ3からワークエリアに移す。現時点10:00のD(10:00)が入力されると、ウィンドウ演算2は、入力ストリームデータからD(10:00)を抽出し、ウィンドウ3へ格納する。結果として、ウィンドウ3には、図1に示すように、D(10:00)、D(09:59)、D(09:58)が格納される。
関係演算4は、差分演算により最新の3つのデータの合計(VAL(10:00))を求めるために、VAL(10:00)=VAL(09:59)−D(09:57)+D(10:00)を実行し、実行結果であるVAL(10:00)をオペレータ5に格納する。また、関係演算4はD(09:58)をウィンドウ3からワークエリアに移す。この例では、ワークエリアに移すデータは1つであるが、複数の場合があり、かつ、関係演算4の実行結果又は実行の中間結果であるデータをワークエリアに格納する場合もある。例えば、Time=tのデータD(t)を最新のデータとして、VAL(t)=D(t)+D(t−2)+D(t−4)=VAL(t−2)−D(t−6)+D(t)を関係演算4が実行する場合、VAL(t−2)及びD(t−6)がワークエリアに格納されている必要がある。直前の処理は、VAL(t−1)=VAL(t−3)−D(t−7)+D(t−1)であり、オペレータ5には、VAL(t−1)が格納され、VAL(t−2)は格納されていない(VAL(t−1)が上書きされている)可能性があるからである。一方、最新のデータ一つを処理対象として抽出する場合として後述するように、ワークエリアに格納するデータがない場合もある。
ストリーム化演算6はオペレータ5に格納されたVAL(10:00)を出力ストリームデータとして出力する。出力ストリームデータは、入力ストリームデータと同様に、VAL(Time、ID、VAL)の形式としてもよい。
以上のように、クエリが定義する処理内容の一環としてウィンドウ3が定義される。上例は、データが3つという数(個数)を定義している。個数を定義したウィンドウ3は、ROWSウィンドウと呼ばれる。他のウィンドウ3の定義の例として、範囲(時間)がある。例えば、最新の10分間のデータと定義する。この場合は、データの数としてみると、データは必ずしも周期的に入力されるとは限らないので、可変になる。時間を定義したウィンドウ3は、RANGEウィンドウと呼ばれる。他のウィンドウ3の定義の例として、最新のデータ一つを処理対象として抽出する場合がある。この場合は、関係演算4は、ウィンドウ3に格納されている最新のデータ、または最新のデータと前回の実行結果VAL(Time)とを変数とする所定の演算を実行することになる。最新のデータ一つを処理対象とするように定義したウィンドウ3は、NOWウィンドウと呼ばれる。
図2は、異なるストリームデータに対して、同一の処理内容を定義するクエリを実行するストリームデータ処理部1の一例である。図1と対比して、異なる点を中心に説明する。図2に示すストリームデータ処理部1は、同一の処理内容を定義するクエリを実行する処理対象に、異なるIDで識別される複数のストリームデータを含んでいる。したがって、ウィンドウ3及びオペレータ5には、図2に示すように、IDに対応付けて所定のデータが格納される。関係演算4は、ウィンドウ3に格納されるIDごとのデータを処理対象として所定の演算(例えば、上例の差分演算)を実行する。同一の処理内容の実行の対象となる、異なる複数のストリームデータは、たとえば、複数の同種のセンサのデータであって、これらに対する処理内容が同一の場合である。このように、異なるIDで識別されるストリームデータを格納するように定義したウィンドウ3は、PARTITION BYウィンドウと呼ばれる。IDに関して見れば、PARTITION BYウィンドウは、前述のROWSウィンドウ、RANGEウィンドウ及びNOWウィンドウのいずれかであり、PARTITION BYウィンドウは、これらのいずれかと組み合わせて用いられる。
以上説明したストリームデータ処理部1の処理を実行しているサーバ(移行元サーバ、単に移行元)から、移行対象とするストリームデータを処理するストリームデータ処理部1を他のサーバ(移行先サーバ、単に移行先)に移行する移行処理を簡単に説明する。移行対象は、ストリームデータとクエリである。クエリの移行は、移行先に改めて同じクエリを定義するか、移行元のクエリを具体化したプログラムを移行先にコピーし、実行すればよい。
移行処理中にデータの欠損などを生じずに、データを移行先に短時間で移行することが課題である。ウィンドウ3として、4種類のタイプを説明した。4種類のタイプに対して共通のデータ移行は、ウィンドウ3、オペレータ5、及び関係演算4を実行するために用いるワークエリアの各データ(これらを纏めて中間値と呼ぶ。)を移行するとともに、入力ストリームデータの中の移行対象データを欠損または重複なく移行できればよい。
そこで、(1)移行処理の開始に伴って、移行対象の入力ストリームデータを蓄積する、(2)移行元において、移行対象の入力ストリームデータを処理するストリームデータ処理部を二重化し(分かり易くするために、元々のストリームデータ処理部を元ストリームデータ処理部、二重化のために追加したストリームデータ処理部を新規ストリームデータ処理部と呼ぶ。)、新規ストリームデータ処理部も実行する、二重化するタイミングは、ウィンドウ3とオペレータ5の内容の対応関係を維持するために、関係演算4の実行直後から、次のデータがウィンドウ演算2によってウィンドウ3に格納される直前までが望ましい、(3)新規ストリームデータ処理部が関係演算4を実行して、実行結果(オペレータ5の内容)を得たタイミング(ウィンドウ3とオペレータ5の内容が対応しているタイミング)で新規ストリームデータ処理部を停止し、停止した新規ストリームデータ処理部の中間値を移行先に移行(コピー)する、(4)中間値の移行完了に応じて、元ストリームデータ処理部を停止し、停止した元ストリームデータ処理部の中間値の中の、オペレータ5に格納されている、関係演算4の実行結果(上例のVAL(Time))を移行先に退避する、(5)ストリームデータ処理を移行先で再開し、蓄積した入力ストリームデータを移行先のストリームデータ処理部に入力する、このとき処理済みの入力ストリームデータとの重複を排除する(ウィンドウ3に格納されている最新テータまでの入力を読み飛ばす。)とともに、退避した元ストリームデータ処理部の中間値の中の、オペレータ5に格納されている、関係演算4の実行結果を参照して、出力済の出力ストリームデータとの重複を排除する(元ストリームデータ処理部が出力した出力ストリームデータを出力しない。)、(6)蓄積した入力ストリームデータの移行先への入力完了に応じて、入力ストリームデータを移行先のストリームデータ処理に入力する手順によって、移行対象の入力ストリームデータを処理するストリームデータ処理を移行する。
図3は、以上の手順の実行を実現する、ストリームデータ処理システムの構成である。ストリームデータ処理システムは、ストリームデータ処理を実行するサーバ20、30と、これらのサーバ20、30へ入力ストリームデータを振り分ける入力サーバ10を有する。
入力サーバ10は、移行決定部11、転送先管理部12、ストリームデータ転送部13、蓄積データ転送部14の各処理部と入力ストリームデータを一時的に蓄積するデータ一時記憶部15を有する。
移行決定部11は、クエリを実行するストリームデータ処理を移行すべきか否か、移行するときはどの入力ストリームデータを対象(移行対象データ)とするかを決定する。移行決定部11の処理の詳細は、後述する。
転送先管理部12は、入力ストリームデータのIDに対応して、ストリームデータ処理を実行するサーバ20又は30へ入力ストリームデータを振り分け、およびストリームデータ処理部の移行に処理に伴う入力ストリームデータのデータ一時記憶部15への蓄積をストリームデータ転送部13へ指示する。また、転送先管理部12は、蓄積データ転送部14へ、データ一時記憶部15へ蓄積した入力ストリームデータの転送を指示する。
ストリームデータ転送部13は、転送先管理部12からの指示に対応して、入力ストリームデータの振り分け、および入力ストリームデータのデータ一時記憶部15への蓄積を実行する。
蓄積データ転送部14は、転送先管理部12からの指示に応答して、データ一時記憶部15へ蓄積してある入力ストリームデータをサーバ30(ここでは、ストリームデータ処理をサーバ20からサーバ30移行するものとして説明する。)へ転送する。
サーバ20は、ここではストリームデータ処理の移行元のサーバとして説明する。サーバ20は、入力サーバ10から転送される入力ストリームデータを処理するストリームデータ処理部21、およびストリームデータ処理のサーバ30への移行処理を実行する移行元処理部26を有する。
ストリームデータ処理部21は、ストリームデータ処理部(A)22(前述の元ストリームデータ処理部)、ストリームデータ処理部(A)22による中間値を格納する中間値記憶部(A)23、ストリームデータ処理部(B)24(前述の新規ストリームデータ処理部)、ストリームデータ処理部(B)24による中間値を格納する中間値記憶部(B)25を有する。ストリームデータ処理部(B)24および中間値記憶部(B)25は、前述したように、ストリームデータ処理部(A)22による中間値を格納する中間値記憶部(A)をコピーしたものである。実行するクエリによっては、中間値記憶部(A)の容量が大きい場合もあり、このような場合にはスナップショットコピーを用いることにより、コピー処理を短時間で実行できるので、ストリームデータ処理部(A)22の実行を妨げずに前述の二重化するタイミングを守ることができる。図3には、移行対象のストリームデータ処理を実行するストリームデータ処理部(A)22を示し、移行対象でないストリームデータ処理を実行する他のストリームデータ処理部の図示を省略している。
サーバ30は、ここではストリームデータ処理の移行先のサーバとして説明する。図3には、移行したストリームデータ処理を実行するストリームデータ処理部(A)31を示し、サーバ30に元々存在するストリームデータ処理を実行する他のストリームデータ処理部の図示を省略している。サーバ30は、移行された入力ストリームデータを処理するストリームデータ処理部32、サーバ20からのストリームデータ処理部の移行処理を実行する移行先処理部34、および移行に伴う入力ストリームデータや出力ストリームデータの重複を排除するために、ストリームデータ処理部32を制御するタイミング制御部35を有する。
移行元処理部26、移行先処理部34およびタイミング制御部35の詳細は後述する。また、図3の煩雑さを避けるために、前述した、停止したストリームデータ処理部(A)22の中間値記憶部(A)23の中の、オペレータ5に格納されている、関係演算4の実行結果を退避する、移行先の記憶領域、さらに後述するテーブルの図示を省略している。
図4は、図3では図示を省略した、入力サーバ10が有するデータ振り分けテーブル40である。データ振り分けテーブル40は、入力ストリームデータに付されたID41対応に、ストリームデータ処理を実行するサーバ42(表中、図3のサーバ20又はサーバ30を表している。)、データ流量43、および移行対象44を含む。データ流量43は、図4ではデータ数/分を単位としているが、bps(1秒当たりのビット数)などを単位としてもよい。データ流量43は、後述する移行決定部11が、移行対象を決定する際の目安にする項目であり、厳密である必要はない。したがって、RANGEウィンドウの場合、平均値や理論値などを用いてもよい。
移行対象44は、フラグとして機能する。移行決定部11による移行対象の決定に伴って設定され、移行処理の完了に伴って削除される。図4の、ID41がkの入力ストリームデータを処理するストリームデータ処理を移行対象44に、フラグではなく、移行先としてのサーバ30と記してあるのは、図3の例とは異なり、移行先の選択対象のサーバが複数ある場合を想定して、移行先サーバを特定している。
本明細書では、図4に示すように、IDを特定した入力ストリームデータもIDを特定しない複数の入力ストリームデータも、入力ストリームデータ又はストリームデータと呼ぶ。IDを特定した入力ストリームデータか否かは、修飾語等による文脈から明らかになる。
以下、移行処理を中心に、ストリームデータ処理システムを構成する各処理部の動作を説明する。
図5は、転送先管理部12の処理フローチャートである。転送先管理部12は、データ振り分けテーブル40の移行対象44(移行対象フラグであり、移行指示である。)を参照し、移行対象のストリームデータ処理が処理する入力ストリームデータ(以下、移行対象の入力ストリームデータ)があるかを判定する(S120)。移行対象がないならば、S120を繰り返す。
移行対象があるならば、転送先管理部12は、移行対象の入力ストリームデータのデータ一時記憶部15への蓄積をストリームデータ転送部13に指示済みかを判定する(S121)。蓄積の指示は、入力サーバ10内の所定の記憶領域に、転送先管理部12によって格納され、ストリームデータ転送部13によって参照される。したがって、転送先管理部12は、二重に蓄積を指示することはない。蓄積を指示済みならば、転送先管理部12は、S123の処理へ移る。蓄積を指示済みでないならば、転送先管理部12は、移行対象の入力ストリームデータのデータ一時記憶部15への蓄積をストリームデータ転送部13に指示する(S122)。
転送先管理部12は、データ一時記憶部15に蓄積してある移行対象の入力ストリームデータ(蓄積データ)の転送を蓄積データ転送部14に指示済みかを判定する(S123)。この転送の指示も、入力サーバ10内の所定の記憶領域に、転送先管理部12によって格納され、蓄積データ転送部14によって参照される。したがって、転送先管理部12は、二重に蓄積データの転送を指示することはない。蓄積データの転送を指示済みならば、転送先管理部12は、S126の処理へ移る。蓄積データの転送を指示済みでないならば、詳細を後述する、移行先であるサーバ30のタイミング制御部35から蓄積データの転送指示を受けたかを判定する(S124)。移行先から蓄積データの転送指示も入力サーバ10内の所定の記憶領域に格納される。移行先は、図4の例ではサーバ30であり、その移行先処理部35から蓄積データの転送指示が送信されるので、入力サーバ10(図示しない受信部)は受信した蓄積データの転送指示を入力サーバ10内の所定の記憶領域に格納する。蓄積データの転送指示を受信していないならば、転送先管理部12は、S126の処理へ移る。蓄積データの転送指示を受信しているならば、転送先管理部12は、データ一時記憶部15に蓄積してある移行対象の入力ストリームデータの転送を蓄積データ転送部14に指示する(S125)。この転送の指示も、入力サーバ10内の所定の記憶領域に転送先管理部12によって格納される。
転送先管理部12は、移行処理を移行元であるサーバ20と移行先であるサーバ30へ指示済みかを判定する(S126)。移行処理の指示は、移行元と移行先へ転送されるとともに、入力サーバ10内の所定の記憶領域にストリームデータ転送部13によって格納される。なお、移行処理の指示には、移行対象のストリーミングデータを特定するIDを含んでいる。図4の例では、ID=kである。移行処理を指示済みならば、転送先管理部12は、S128の処理へ移る。移行処理を指示済みでないならば、転送先管理部12は、移行元であるサーバ20と移行先であるサーバ30へ、移行対象のストリーミングデータを特定するIDを含んだ、移行処理の指示を転送する。
なお、転送先管理部12は、ストリームデータの欠損を防ぐために、移行元および移行先への移行処理の指示よりも早く、ストリームデータの蓄積を指示している。
転送先管理部12は、蓄積データの転送完了通知があるかを判定する(S128)。蓄積データの転送完了通知も入力サーバ10内の所定の記憶領域にストリームデータ転送部13によって格納される。蓄積データの転送完了通知が、蓄積データ転送部14でなく、ストリームデータ転送部13によって格納される理由は、ストリームデータ転送部13の説明として後述する。蓄積データの転送完了通知がないならば、転送先管理部12は、S120の処理へ移る。蓄積データの転送完了通知があるならば、ストリームデータ転送部13が移行した入力ストリームデータの移行先のサーバ30に向けて転送を再開したことなので、転送先管理部12は、データ振り分けテーブル40の移行対象44(移行対象フラグ)を削除し、入力サーバ10内の所定の記憶領域に格納されている、蓄積の指示、蓄積データの転送の指示、移行先から蓄積データの転送指示、移行元および移行先への移行処理の指示、並びに蓄積データの転送完了通知を削除する。
なお、蓄積データの転送完了通知は、たとえば転送先管理部12からの削除とストリームデータ転送部13からの格納とを排他制御する必要があるが、本実施形態の動作の本質でないので、説明を省略する。
図6は、ストリームデータ転送部13の処理フローチャートである。ストリームデータ転送部13は、データ振り分けテーブル40の移行対象44を参照し、移行対象のストリームデータ処理が処理する入力ストリームデータがあるかを判定する(S130)。移行対象がないならば、ストリームデータ転送部13はS137へ移る。S137は、データ振り分けテーブル40の設定に従って、入力ストリームデータをサーバ20又はサーバ30に転送する通常時の処理である。
移行対象があるならば、転送先管理部12によって入力サーバ10内の所定の記憶領域に格納される蓄積指示があるかを、ストリームデータ転送部13は判定する(S131)。蓄積指示がないならば、ストリームデータ転送部13はS137へ移る。
蓄積指示があるならば、ストリームデータ転送部13は、データ振り分けテーブル40のID41を参照し、入力ストリームデータは蓄積するIDのデータかを判定する(S132)。蓄積するIDのデータでないならば、ストリームデータ転送部13はS137へ移る。蓄積するIDのデータならば、ストリームデータ転送部13は、最初の蓄積データかを判定する(S133)。最初の蓄積データでないならば、ストリームデータ転送部13はS135へ移る。
ストリームデータ転送部13は、データ一時記憶部15に蓄積データがあるかを判定する(S134)。データ一時記憶部15に蓄積データがあるならば、ストリームデータ転送部13は、蓄積すべきIDのデータをデータ一時記憶部15に格納する(S135)。データ一時記憶部15に蓄積データがないならば、蓄積すべきIDのデータをデータ一時記憶部15に格納せずに、移行先のサーバ30へ転送し、蓄積データの転送完了通知を入力サーバ10内の所定の記憶領域に格納する(S136)。
S133〜S136の処理を分かり易く説明する。データ一時記憶部15はFIFO(First In First Out)でデータが格納され、取り出される。データは取り出されると、データ一時記憶部15から削除されている。このような記憶部を用いたとき、蓄積データの転送の完了を蓄積データ転送部14が検知するようにすると、蓄積データ転送部14が蓄積データの転送の完了(データ一時記憶部15に蓄積データがない状態)を検知した直後に、ストリームデータ転送部13が新たな蓄積データをデータ一時記憶部15に格納してしまう状態が発生する。この状態の発生を防ぐために、ストリームデータ転送部13が蓄積データの転送の完了を検知する。ところが、データ一時記憶部15に蓄積データがない状態は、蓄積開始直前までと蓄積データの移行先への転送完了直後に発生する。そこで、最初の蓄積データのとき、データ一時記憶部15内の蓄積データの有無にかかわらず、データ一時記憶部15に蓄積する。したがって、データ一時記憶部15に蓄積データがない状態は、蓄積データの移行先への転送完了後に限られる。
図7は、蓄積データ転送部14の処理フローチャートである。蓄積データ転送部14は、転送先管理部12によって入力サーバ10内の所定の記憶領域に格納された、蓄積データの転送指示があるかを判定する(S140)。蓄積データの転送指示がないならば、蓄積データ転送部14はS140の処理を繰り返す。
蓄積データの転送指示があるならば、蓄積データ転送部14は、データ一時記憶部15に移行対象の入力ストリームデータ(蓄積データ)があるかを判定する(S141)。蓄積データがないならば、蓄積データ転送部14はS140に移る。蓄積データ転送部14は、データ一時記憶部15に格納されている蓄積データを移行先であるサーバ30に順次転送し(S142)、S140に移る。
蓄積データの転送指示がないとき、蓄積データ転送部14の処理を終了させてもよい。ただし、その場合は、転送先管理部12は、蓄積データの転送を指示するときに、蓄積データ転送部14を起動する必要がある。
図8は、移行元のサーバ20の移行元処理部26の処理フローチャートである。移行元処理部26は、転送先管理部12からの移行指示(図7のS127)に応答して起動される。
移行元処理部26は、移行元のサーバ20のストリームデータ処理部21を2重化する(S260)。具体的には、図3において、ストリームデータ処理部(A)22をコピーして、ストリームデータ処理部(B)24を生成し、中間値記憶部(A)23をコピーして、中間値記憶部(B)25を生成する。図示を省略するが、生成したストリームデータ処理部(B)24を実行させる。これらの生成方法や生成タイミングは前述したとおりである。
移行元処理部26は、新規ストリームデータ処理部であるストリームデータ処理部(B)24の中間値記憶部(B)25に含まれるオペレータ5の内容は、元ストリームデータ処理部であるストリームデータ処理部(A)22の中間値記憶部(A)23に含まれるオペレータ5の内容と同じかを判定する(S261)。S260のコピー処理中(ストリームデータ処理部(B)24の実行開始前)に、ストリームデータ処理部(A)22には新たなストリームデータが入力される可能性があるので、オペレータ5の内容を判定する。移行対象の入力ストリームデータの入力間隔が、コピー処理時間に比べて長ければ同じであり、短ければ異なっている可能性がある。この可能性を低下させるために、スナップショットコピーを用いてもよい。この判定は、移行先において、移行元の可能な限り新しい状態を反映するためであり、後述する移行処理中も同様の状態(移行元と移行先のオペレータ5の内容が異なる状態)が発生するので、必ずしも必要な処理ではない。
移行元処理部26は、新規ストリームデータ処理部であるストリームデータ処理部(B)24の実行を停止する(S262)。実行を停止するタイミングは、前述したように、ウィンドウ3とオペレータ5の内容の対応関係を維持するために、関係演算4の実行直後から、次のデータがウィンドウ演算2によってウィンドウ3に格納される直前までの時刻が望ましいので、関係演算4の実行直後とする。
移行元処理部26は、停止したストリームデータ処理部(B)24を移行先のサーバ30へ移行する(S263)。この移行方法は前述したように、処理部を移行先にコピーするか、移行先に新たに生成すればよい。移行元処理部26は、中間値記憶部(B)25を移行先のサーバ30へ移行する(S264)。
移行元処理部26は、元ストリームデータ処理部であるストリームデータ処理部(A)22の停止指示を待つ(S265)。この停止指示は、後述するタイミング制御部35から出力されるもので、移行先において、移行したストリームデータ処理の再開の準備が完了したタイミングで出力される。
移行元処理部26は、ストリームデータ処理部(A)22の停止指示を受けたならば、元ストリームデータ処理部であるストリームデータ処理部(A)22の実行を停止する(S266)。この実行の停止タイミングも、ストリームデータ処理部(A)22の関係演算4の実行直後とする。
移行元処理部26は、ストリームデータ処理部(A)22の関係演算4の実行結果であるオペレータ5の内容を移行先へ出力する(S267)。前述のコピー処理中と同様に、移行処理中に、ストリームデータ処理部(A)22が新たな入力ストリームデータを処理し、オペレータ5の内容を更新している可能性があるからである。
図9は、移行先のサーバ30の移行先処理部34の処理フローチャートである。移行先処理部34は、転送先管理部12からの移行指示(図7のS127)に応答して起動される。
移行先処理部34は、移行元からのストリームデータ処理部(B)24の移行を待ち(S340)、ストリームデータ処理部(B)24を移行元のサーバ20から移行し、ストリームデータ処理部(C)32とする(S341)。この移行方法は前述したように、処理部を移行先にコピーするか、移行先に新たに生成すればよい。
移行先処理部34は、中間値記憶部(B)25を移行元のサーバ20から移行し、中間値記憶部(C)33とする(S342)。移行先処理部34は、タイミング制御部35を起動して(S343)、処理を終了する。
前述したように、移行処理中に、ストリームデータ処理部(A)22が新たな入力ストリームデータを処理し、オペレータ5の内容を更新している可能性があるので、オペレータ5の内容の更新に対応できれば(対応方法は、タイミング制御部35の説明として後述する。)、移行元処理部26のストリームデータ処理部の二重化せずに、すなわちストリームデータ処理部(B)24及び中間値記憶部(B)25を生成せずに、ストリームデータ処理部(A)22及び中間値記憶部(A)23からストリームデータ処理部(C)32及び中間値記憶部(C)33を生成(移行)してもよい。
ストリームデータ処理部(B)24及び中間値記憶部(B)25を介する処理としたのは、移行元のサーバ20から移行先のサーバ30への移行にはサーバ間通信が必要となり、サーバ間通信はサーバ内コピーよりも処理時間が長くなるので、ストリームデータ処理部(A)22とストリームデータ処理部(C)32の処理の進捗の差が大きくなるからである。この処理の進捗の差は、前述のオペレータ5の内容の更新(更新回数)であるので、この更新に対応できればよいことになる。また、処理の進捗の差を短くするために、差がなくなることは保証できないが、スナップショットコピーを用いてもよい。
図10は、移行先のサーバ30のタイミング制御部35の処理フローチャートである。タイミング制御部35は、移行先処理部34によるストリームデータ処理部(C)32及び中間値記憶部(C)33を生成(移行)の完了に伴って起動される。
タイミング制御部35は、移行元のサーバ20で実行中の元ストリームデータ処理部であるストリームデータ処理部(A)22の停止を指示する(S350)。
タイミング制御部35は、移行元のサーバ20から、ストリームデータ処理部(A)22の関係演算4の実行結果であるオペレータ5の内容(移行元処理部26のS267で出力される。)を取得し(S351)、サーバ30内の所定のワークエリアに格納する。
タイミング制御部35は、転送先管理部12に蓄積データの転送を指示する(S352)。タイミング制御部35は、中間値記憶部(C)33のウィンドウ3に格納されている最新データより新しいデータの入力を待つ(S353)。ウィンドウ3に格納されている最新データまでを、ストリームデータ処理部(C)32は処理しているので、それよりも新しいデータを待つ。換言すると、ウィンドウ3に格納されている最新データまでを読み飛ばすことになる。この読み飛ばしにより、入力ストリーミングデータの重複、すなわち同じ入力ストリーミングデータを処理対象としたストリームデータ処理部(C)32の処理の重複を避けることができる。
タイミング制御部35は、ウィンドウ3に格納されている最新データより新しいデータを入力したならば、ストリームデータ処理部(C)32を起動する(S354)。ストリームデータ処理部(C)32の実行に伴いオペレータ5の内容が更新されるが、タイミング制御部35は、このオペレータ5の内容がサーバ30内の所定のワークエリアに格納したオペレータ5の内容(ストリームデータ処理部(A)の実行結果)より以前のものかを判定し(S355)、以前のものであれば、ストリームデータ処理部(C)32の実行に伴い得られたオペレータ5の内容を破棄する。具体的には、オペレータ5の内容が出力ストリームデータとして出力されないようにする。
タイミング制御部35は、ストリームデータ処理部(C)32の実行に伴い得られたオペレータ5の内容が、サーバ30内の所定のワークエリアに格納したオペレータ5の内容を時間的に超えたならば、処理を終了する。
このように、ストリームデータ処理部(C)32の実行に伴い得られたオペレータ5の内容を、ストリームデータ処理部(A)の実行に伴い得られたオペレータ5の内容と比較し、データ(オペレータ5の内容)を破棄することにより、出力ストリーミングデータの重複、すなわち同じ入力ストリーミングデータを処理対象としたストリームデータ処理部(C)32の出力データの重複を避けることができる。
なお、タイミング制御部35は、以前や時間的に超えたとの判断には、前述のD(Time)のVAL(Time)の時刻データを用いる。
以上のように、入力ストリームデータのIDを特定して、ストリームデータ処理を移行するストリームデータ処理システムを説明した。IDを特定することにより、複数のIDの入力ストリームデータを処理対象として同じクエリを実行するPARTITION BYウィンドウの個々のID対応のストリームデータ処理を移行できる。また、ROWSウィンドウ、RANGEウィンドウ及びNOWウィンドウの場合は、入力ストリームデータのIDはクエリと1対1に対応しているので、クエリを特定して、ストリームデータ処理を移行することも可能である。
さらに、複数のIDの入力ストリームデータを処理対象として同じクエリを実行するPARTITION BYウィンドウのクエリを特定して、ストリームデータ処理を移行することも可能である。なぜならば、図4に示したデータ振り分けテーブル40の移行対象44として、同じクエリを実行する複数のIDを設定し、IDごとに説明した各処理部を実行すればよいからである。
次に、ストリームデータ処理を移行の必要性を説明する。ストリームデータ処理の移行は、ストリームデータ処理を実行するサーバの過大な負荷を防止するために実行される。一般に、ストリームデータ処理を実行するサーバが、同時に他の処理も実行するように構築されることはまれであるので、ストリームデータ処理の実行に伴って、負荷が過大になっているサーバの一部の負荷を他のサーバに移行すればよい。たとえば、1台のサーバでストリームデータ処理を実行するストリームデータ処理システムにおいては、そのサーバの負荷が過大であれば、新規のサーバ(負荷なし)を追加し、追加したサーバに負荷の一部を移行する。複数台のサーバで、入力ストリームデータを分散して、各々がストリームデータ処理を実行するストリームデータ処理システムにおいては、過大な負荷のサーバを検知して、検知したサーバの負荷の一部を他のサーバに移行する。
サーバの負荷は、一般にサーバのCPU利用率で計測され、所定の閾値以上のCPU利用率であれば、そのサーバは過負荷と判定する。ストリームデータ処理システムにおいては、入力ストリームデータのサーバ毎のデータ流量(データ数/分)によって過負荷と判定することができる。なぜならば、ストリームデータ処理は、その関係演算4によって差分演算が用いられるからである。前述した例からも明らかなように、前回の実行結果であるオペレータ5の内容と、ウィンドウ3に格納される最新データおよびワーククエリに格納したデータを用いた差分演算を実行するので、差分演算を用いない場合に比べて、関係演算4の複雑さがCPU利用率を高くすることはない。
そこで、ストリームデータ転送部13の説明では言及しなかったが、ストリームデータ転送部13において、入力ストリームデータのID対応にデータ流量を計測し、データ振り分けテーブル40(図4)のデータ流量43に格納すればよい。
図11は、ストリームデータ処理の移行を決定する移行決定部11の処理フローチャートである。移行決定部11は、データ振り分けテーブル40のデータ流量43をサーバ毎に算出する(S110)。移行決定部11は、算出したデータ流量が、閾値を超えるサーバがあるかを判定する(S111)。閾値を超えるサーバがないならば、移行決定部11は処理を終了する。閾値を超えるサーバがあるならば、移行決定部11は、IDを特定して移行対象のストリームデータを決定し、移行先(サーバ)を決定して決定した結果を、データ振り分けテーブル40の移行対象のストリームデータに対応した移行対象44に移行先(サーバ)を格納し、処理を終了する(S112)。
移行決定部11は、移行先サーバとして、算出したデータ流量が最も小さいサーバを選択する。移行決定部11は、移行対象として、閾値を超えるサーバに入力するストリームデータの中で、データ流量が多い方から2番目のストリームデータを選択する。
データ流量が低い(値が小さい)データを移行対象データとしても、負荷が過大なサーバの負荷を軽減できる可能性が低いからである。また、データ流量が最も高いデータを移行対象データとすると、移行元のサーバのアクセス頻度が低下する一方、移行先のサーバのデータ流量が上昇し、極端には、次の移動対象データの特定時には、移行先のサーバのデータ流量が閾値を超え、移行したデータを元のサーバに戻す現象が生じる可能性があるからである。
説明した実施形態によれば、入力ストリームデータの欠損を防止するために、入力ストリームデータの重複、出力ストリームデータの重複を許容して、移行処理のほとんどを実行し、移行処理の完了の直前に重複排除する処理を実行するので、移行を決定したストリームデータの移行時間を短くなる。
1:ストリームデータ処理部、2:ウィンドウ演算、3:ウィンドウ、4:関係演算、5:オペレータ、6:ストリーム化演算、10:入力サーバ、11:移行決定部、12:転送先管理部、13:ストリームデータ転送部、14:蓄積データ転送部、15:データ一時記憶部、20、30:サーバ、21、31:ストリームデータ処理部、23、25、33:中間値記憶部、26:移行元処理部、34:移行先処理部、35:タイミング制御部。
Claims (12)
- 移行対象の入力ストリームデータと前記入力ストリームデータを処理させる移行先サーバとを特定する情報を含む移行指示に応答して、前記移行対象の入力ストリームデータを蓄積し、前記移行対象の入力ストリームデータの移行を移行元サーバ及び前記移行先サーバへ指示し、前記移行先サーバからの蓄積データの転送指示に応答して、蓄積した前記移行対象の入力ストリームデータを前記移行先サーバへ転送し、蓄積した前記移行対象の入力ストリームデータの前記移行先サーバへの転送完了に応答して、前記移行対象の入力ストリームデータの前記移行元サーバへの転送を停止し、蓄積した前記移行対象の入力ストリームデータに引き続く前記移行対象の入力ストリームデータの前記移行先サーバへの転送を開始する入力サーバ、
前記入力サーバからの前記移行対象の入力ストリームデータの移行の前記指示に応答して、前記入力サーバから転送された前記移行対象の入力ストリームデータを処理する処理内容を定義したクエリの、前記移行対象の入力ストリームデータのあるデータの入力に対応する実行の完了に応じて、前記クエリと前記クエリの前記あるデータの入力に対応する実行の完了に伴う中間値を前記移行先サーバへ移行し、前記移行先サーバからの前記クエリの実行の停止指示に応答して、前記クエリの実行を停止し、前記クエリの実行結果を前記移行先サーバへ転送する前記移行元サーバ、及び、
前記入力サーバからの前記移行対象の入力ストリームデータの移行の前記指示に応答して、前記移行元サーバから移行された前記クエリの実行を開始し、前記蓄積データの前記転送指示を前記入力サーバへ出力し、前記入力サーバから転送される、前記蓄積した入力ストリームデータ及び引き続く前記移行対象の入力ストリームデータの中の、前記中間値に対応するデータまでを読み飛ばし、前記移行元サーバから転送された前記クエリの前記実行結果までの、前記クエリの実行結果の出力を破棄する前記移行先サーバを有することを特徴とするストリームデータ処理システム。 - 前記クエリの実行は、前記入力ストリームデータから処理対象のデータを抽出し、抽出したデータをウィンドウと呼ぶ記憶領域に格納するウィンドウ演算、前記ウィンドウに格納された前記データを対象に所定の演算を実行し、実行結果をオペレータと呼ぶ記憶領域に格納する関係演算、及び、前記オペレータに格納されたデータを出力ストリームデータとしてストリーム化するストリーム化演算を含むことを特徴とする請求項1記載のストリームデータ処理システム。
- 前記中間値は、前記ウィンドウ、前記オペレータ、及び、前記関係演算を実行するために用いるワークエリアの各データであることを特徴とする請求項2記載のストリームデータ処理システム。
- 前記関係演算が所定の演算を実行する前記データが格納される前記ウィンドウは、前記入力ストリームデータのデータの数を定義したROWSウィンドウ、前記入力ストリームデータのデータの範囲を定義したRANGEウィンドウ、および、前記入力ストリームデータの最新のデータを定義したNOWウィンドウのいずれか一つであることを特徴とする請求項2記載のストリームデータ処理システム。
- 前記クエリ対応に設けられる前記ウィンドウは、IDを付して識別される複数の前記入力ストリームデータを格納するPARTITION BYウィンドウであることを特徴とする請求項2記載のストリームデータ処理システム。
- 前記入力サーバは、処理対象の前記入力ストリームデータのデータ流量が最も小さいサーバを前記移行先サーバとし、処理対象の前記入力ストリームデータのデータ流量が閾値を超えるサーバである前記移行元サーバへの入力するストリームデータの中で、データ流量が多い方から2番目のストリームデータを前記移行対象の入力ストリームデータとして選択して、前記移行指示とすることを特徴とする請求項1記載のストリームデータ処理システム。
- 入力サーバ、移行元サーバおよび移行先サーバを接続したストリームデータ処理システムにおけるストリームデータ処理方法であって、
前記入力サーバは、
移行対象の入力ストリームデータと前記入力ストリームデータを処理させる前記移行先サーバとを特定する情報を含む移行指示に応答して、前記移行対象の入力ストリームデータを蓄積し、
前記移行対象の入力ストリームデータの移行を前記移行元サーバ及び前記移行先サーバへ指示し、
前記移行先サーバからの蓄積データの転送指示に応答して、蓄積した前記移行対象の入力ストリームデータを前記移行先サーバへ転送し、
蓄積した前記移行対象の入力ストリームデータの前記移行先サーバへの転送完了に応答して、前記移行対象の入力ストリームデータの前記移行元サーバへの転送を停止し、
蓄積した前記移行対象の入力ストリームデータに引き続く前記移行対象の入力ストリームデータの前記移行先サーバへの転送を開始し、
前記移行元サーバは、
前記入力サーバからの前記移行対象の入力ストリームデータの移行の前記指示に応答して、前記入力サーバから転送された前記移行対象の入力ストリームデータを処理する処理内容を定義したクエリの、前記移行対象の入力ストリームデータのあるデータの入力に対応する実行の完了に応じて、前記クエリと前記クエリの前記あるデータの入力に対応する実行の完了に伴う中間値を前記移行先サーバへ移行し、
前記移行先サーバからの前記クエリの実行の停止指示に応答して、前記クエリの実行を停止し、
前記クエリの実行結果を前記移行先サーバへ転送し、
前記移行先サーバは、
前記入力サーバからの前記移行対象の入力ストリームデータの移行の前記指示に応答して、前記移行元サーバから移行された前記クエリの実行を開始し、
前記蓄積データの前記転送指示を前記入力サーバへ出力し、
前記入力サーバから転送される、前記蓄積した入力ストリームデータ及び引き続く前記移行対象の入力ストリームデータの中の、前記中間値に対応するデータまでを読み飛ばし、
前記移行元サーバから転送された前記クエリの前記実行結果までの、前記クエリの実行結果の出力を破棄することを特徴とするストリームデータ処理方法。 - 前記クエリの実行は、
前記入力ストリームデータから処理対象のデータを抽出し、抽出したデータをウィンドウと呼ぶ記憶領域に格納するウィンドウ演算、
前記ウィンドウに格納された前記データを対象に所定の演算を実行し、実行結果をオペレータと呼ぶ記憶領域に格納する関係演算、および、
前記オペレータに格納されたデータを出力ストリームデータとしてストリーム化するストリーム化演算を含むことを特徴とする請求項7記載のストリームデータ処理方法。 - 前記中間値は、前記ウィンドウ、前記オペレータ、及び、前記関係演算を実行するために用いるワークエリアの各データであることを特徴とする請求項8記載のストリームデータ処理方法。
- 前記関係演算が所定の演算を実行する前記データが格納される前記ウィンドウは、前記入力ストリームデータのデータの数を定義したROWSウィンドウ、前記入力ストリームデータのデータの範囲を定義したRANGEウィンドウ、および、前記入力ストリームデータの最新のデータを定義したNOWウィンドウのいずれか一つであることを特徴とする請求項8記載のストリームデータ処理方法。
- 前記クエリ対応に設けられる前記ウィンドウは、IDを付して識別される複数の前記入力ストリームデータを格納するPARTITION BYウィンドウであることを特徴とする請求項8記載のストリームデータ処理方法。
- 前記入力サーバは、処理対象の前記入力ストリームデータのデータ流量が最も小さいサーバを前記移行先サーバとし、処理対象の前記入力ストリームデータのデータ流量が閾値を超えるサーバである前記移行元サーバへの入力するストリームデータの中で、データ流量が多い方から2番目のストリームデータを前記移行対象の入力ストリームデータとして選択して、前記移行指示とすることを特徴とする請求項7記載のストリームデータ処理方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/072974 WO2016035128A1 (ja) | 2014-09-02 | 2014-09-02 | ストリームデータ処理システム及び処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2016035128A1 true JPWO2016035128A1 (ja) | 2017-04-27 |
JP6162340B2 JP6162340B2 (ja) | 2017-07-12 |
Family
ID=55439236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016546211A Active JP6162340B2 (ja) | 2014-09-02 | 2014-09-02 | ストリームデータ処理システム及び処理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10182113B2 (ja) |
JP (1) | JP6162340B2 (ja) |
WO (1) | WO2016035128A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10447752B2 (en) * | 2016-11-22 | 2019-10-15 | Vmware, Inc. | Live migration of virtualized video stream decoding |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010217968A (ja) * | 2009-03-13 | 2010-09-30 | Hitachi Ltd | ストリームデータ処理システムにおける障害回復方法、計算機システム及び障害回復プログラム |
JP2010219613A (ja) * | 2009-03-13 | 2010-09-30 | Hitachi Ltd | ストリーム回復方法、ストリーム回復プログラム、および、障害回復装置 |
US20130117317A1 (en) * | 2011-11-03 | 2013-05-09 | Sap Ag | Multi-state query migration in data stream management |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4727715B2 (ja) | 2008-12-12 | 2011-07-20 | 株式会社日立製作所 | ストリームデータ処理方法、及びシステム |
-
2014
- 2014-09-02 WO PCT/JP2014/072974 patent/WO2016035128A1/ja active Application Filing
- 2014-09-02 JP JP2016546211A patent/JP6162340B2/ja active Active
- 2014-09-02 US US15/122,808 patent/US10182113B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010217968A (ja) * | 2009-03-13 | 2010-09-30 | Hitachi Ltd | ストリームデータ処理システムにおける障害回復方法、計算機システム及び障害回復プログラム |
JP2010219613A (ja) * | 2009-03-13 | 2010-09-30 | Hitachi Ltd | ストリーム回復方法、ストリーム回復プログラム、および、障害回復装置 |
US20130117317A1 (en) * | 2011-11-03 | 2013-05-09 | Sap Ag | Multi-state query migration in data stream management |
Also Published As
Publication number | Publication date |
---|---|
US10182113B2 (en) | 2019-01-15 |
WO2016035128A1 (ja) | 2016-03-10 |
JP6162340B2 (ja) | 2017-07-12 |
US20170070572A1 (en) | 2017-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4856955B2 (ja) | Nasシステム及びリモートコピー方法 | |
US10001945B2 (en) | Method of storing data and data storage managing server | |
US9658808B2 (en) | Printing system, printing control method in cluster environment, and printing control program | |
JP2008250695A (ja) | ディスクアレイコントローラ及びこれを備えたディスクアレイシステム | |
CN103580915A (zh) | 集群系统中确定主控节点的方法及装置 | |
US20080148272A1 (en) | Job allocation program, method and apparatus | |
JP2018503159A (ja) | 分散トランザクション・リソースを実行するための方法、装置、及びシステム | |
JPWO2014010213A1 (ja) | マイグレーションシステム、マイグレーション方法及び制御プログラムを格納した非一時的なコンピュータ可読媒体 | |
JP6535386B2 (ja) | 計算機のスケールアウト方法、計算機システム及び記憶媒体 | |
JP6162340B2 (ja) | ストリームデータ処理システム及び処理方法 | |
US20190087181A1 (en) | Storage system | |
CN109361625B (zh) | 核查转发表项的方法、装置和控制器 | |
JP5613119B2 (ja) | マスター/スレーブシステム、制御装置、マスター/スレーブ切替方法、および、マスター/スレーブ切替プログラム | |
JP2016201795A (ja) | シンクノード状態の監視方法、装置及びシステム | |
JP2011145833A (ja) | データ分散管理システム及びデータ分散管理方法 | |
US10838479B2 (en) | Information processing system, management device, and method of controlling information processing system | |
US20170262201A1 (en) | Information processing apparatus, information processing system and program medium | |
US8667243B2 (en) | Storage apparatus, controller, and method of controlling controller | |
JP7075077B2 (ja) | バックアップサーバ、バックアップ方法、プログラム、ストレージシステム | |
WO2016056210A1 (ja) | サーバ、フロー制御方法および仮想スイッチ用プログラム | |
US9189808B2 (en) | Monitoring apparatus, monitoring method, and storage medium for acquiring counter information from an image forming apparatus | |
US20190213049A1 (en) | Data controlling method of distributed computing system and distributed computing system | |
US9301232B2 (en) | Management apparatus of controller for communication network | |
US11636005B2 (en) | Techniques for scheduled anti-entropy repair design | |
JP5449471B2 (ja) | 共有データに対する更新処理の同期処理方法、データ共有システムおよびデータ共有プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20170530 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170614 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6162340 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |