JP2009104513A - Filter processing apparatus, data storage device, filter processing method, and filter processing program - Google Patents
Filter processing apparatus, data storage device, filter processing method, and filter processing program Download PDFInfo
- Publication number
- JP2009104513A JP2009104513A JP2007277370A JP2007277370A JP2009104513A JP 2009104513 A JP2009104513 A JP 2009104513A JP 2007277370 A JP2007277370 A JP 2007277370A JP 2007277370 A JP2007277370 A JP 2007277370A JP 2009104513 A JP2009104513 A JP 2009104513A
- Authority
- JP
- Japan
- Prior art keywords
- data
- data storage
- filter processing
- unit
- queue load
- 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
Landscapes
- Computer And Data Communications (AREA)
Abstract
Description
本発明は、ストリームデータ処理技術に関する。 The present invention relates to a stream data processing technique.
従来、各種センサやICタグ、携帯電話等で計測されたデータをストリームデータとして受信し、このストリームデータにフィルタ処理を行い、所定の利用先へ流通させるストリームデータ処理技術がある。このようなストリームデータ処理技術として、telegraphCQ(非特許文献1参照)や、borealis(非特許文献2参照)が提案されている。
前記したtelegraphCQは、入力されるデータの性質変化に合わせてストリームデータ処理を実行するものであるが、処理を実行するのは単一サーバである。つまり、前記したtelegraphCQにおいて、複数のサーバでストリームデータ処理を実行することについては考慮されていない。 The telegraph CQ described above performs stream data processing in accordance with changes in the properties of input data, but the processing is performed by a single server. That is, in the telegraphCQ described above, consideration is not given to executing stream data processing by a plurality of servers.
また、前記したborealisは、複数のサーバでストリームデータ処理を実行するものであるが、各サーバの最適配置が決定した後に、ストリームデータ処理のマイグレーション処理(負荷の大きいサーバから、負荷の小さいサーバへオペレーションを移行する処理)を行う必要がある。しかし、各サーバにおいてこのようなマイグレーション処理を実行すると、マイグレーション自体の負荷が大きくなり、特に、各種センサやICタグ等、様々な情報源からデータ入力を受け付けたり、また、その情報源からのデータ入力量の変化が激しかったりする場合、システム全体の処理能力が下がる可能性がある。 In addition, the above-described borealis executes stream data processing on a plurality of servers. After the optimum arrangement of each server is determined, stream data processing migration processing (from a server with a high load to a server with a low load). Processing to migrate operations). However, if such a migration process is executed in each server, the load of the migration itself increases. In particular, data input from various information sources such as various sensors and IC tags is accepted, and data from the information source is also received. If the change in input amount is severe, the processing capacity of the entire system may be reduced.
そこで、本発明は前記した問題を解決し、様々な情報源からストリームデータを受信する場合であっても、システム全体の処理能力が低下しないようにするフィルタ処理装置等を提供することを目的とする。 SUMMARY OF THE INVENTION Accordingly, an object of the present invention is to provide a filter processing apparatus and the like that solves the above-described problems and prevents the processing capacity of the entire system from being lowered even when stream data is received from various information sources. To do.
前記した課題を解決するため、請求項1に記載の発明は、複数のフィルタ処理装置によりストリームデータのフィルタ処理を行うストリームデータ管理システムに用いられる前記フィルタ処理装置であって、各種データの入力を受け付ける入力部と、複数の情報源より送信されたストリームデータを蓄積する1以上のデータ蓄積装置それぞれから、前記入力部経由で、当該データ蓄積装置におけるキュー負荷の値を示したキュー負荷情報を受信し、この受信したキュー負荷情報をキュー負荷テーブルへ格納するキュー負荷テーブル更新部と、前記データ蓄積装置それぞれのキュー負荷を示した前記キュー負荷テーブルを記憶する記憶部と、前記キュー負荷テーブルに示されるデータ蓄積装置のうち、そのキュー負荷の値が大きいデータ蓄積装置ほど高確率で選択し、選択した順に前記データ蓄積装置の識別情報を取得先リストに記録し、前記選択したデータ蓄積装置の識別情報を記録した取得先リストを前記記憶部に格納する取得先リスト作成部と、前記取得先リストに示される順に前記ストリームデータの取得先となる前記データ蓄積装置を選択する選択処理部と、前記選択されたデータ蓄積装置から、前記ストリームデータを取得するデータ取得処理部と、前記取得したストリームデータに対しフィルタ処理を実行するフィルタ処理部と、前記フィルタ処理後のストリームデータを出力する出力部とを備える構成とした。
In order to solve the above-described problem, the invention described in
請求項7に記載の発明は、複数の情報源より送信されたストリームデータを蓄積する1以上のデータ蓄積装置それぞれのキュー負荷の値を示したキュー負荷テーブルを記憶する記憶部を備え、複数のフィルタ処理装置によりストリームデータのフィルタ処理を行うストリームデータ管理システムに用いられる前記フィルタ処理装置が、前記データ蓄積装置それぞれから、入力部経由で、当該データ蓄積装置におけるキュー負荷を示したキュー負荷情報を受信し、この受信したキュー負荷情報を前記記憶部のキュー負荷テーブルへ格納するステップと、前記キュー負荷テーブルに示されるデータ蓄積装置のうち、そのキュー負荷の値が大きいデータ蓄積装置ほど高確率で選択し、この選択したデータ蓄積装置の識別情報を順次取得先リストに記録し、前記選択したデータ蓄積装置の識別情報を記録した取得先リストを前記記憶部に格納するステップと、前記取得先リストに示される順に前記ストリームデータの取得先となる前記データ蓄積装置を選択するステップと、前記選択されたデータ蓄積装置から、前記ストリームデータを取得するステップと、前記取得したストリームデータに対しフィルタ処理を実行するステップと、前記フィルタ処理後のストリームデータを出力部経由で出力するステップとを実行する方法とした。 The invention according to claim 7 includes a storage unit that stores a queue load table indicating a queue load value of each of one or more data storage devices that store stream data transmitted from a plurality of information sources, The filter processing device used in the stream data management system for filtering stream data by the filter processing device receives queue load information indicating the queue load in the data storage device from each of the data storage devices via the input unit. Receiving and storing the received queue load information in the queue load table of the storage unit, and among the data storage devices indicated in the queue load table, a data storage device having a larger queue load value has a higher probability. Select and select the data storage device identification information in the acquisition list. And storing the acquisition destination list in which the identification information of the selected data storage device is recorded in the storage unit, and selecting the data storage device that is the acquisition destination of the stream data in the order indicated in the acquisition destination list. A step of acquiring the stream data from the selected data storage device, a step of executing a filtering process on the acquired stream data, and outputting the stream data after the filtering process via an output unit And step by step.
このようにすることで、ストリームデータ管理システムのフィルタ処理装置はキュー負荷の値が大きいデータ蓄積装置ほど高確率で選択して、取得先リストを作成し、その取得先リストに従いデータ蓄積装置からストリームデータを取得する。従って、フィルタ処理装置は、キュー負荷が大きいデータ蓄積装置から優先的にデータを取得することができる。よって、特定のデータ蓄積装置にキュー負荷が偏ることがなくなる。また、このように取得先リストを参照して、データ取得先となるデータ蓄積装置を選択するので、フィルタ処理装置それぞれでマイグレーションを行う必要がなくなり、システム全体の処理能力の低下を防止できる。 In this way, the filter processing device of the stream data management system selects a data storage device with a larger queue load value with a higher probability, creates an acquisition destination list, and streams from the data storage device according to the acquisition destination list. Get the data. Therefore, the filter processing apparatus can preferentially acquire data from a data storage apparatus with a large queue load. Therefore, the queue load is not biased to a specific data storage device. In addition, since the data storage device that is the data acquisition destination is selected with reference to the acquisition destination list in this way, it is not necessary to perform migration in each filter processing device, and it is possible to prevent a reduction in processing capacity of the entire system.
請求項2に記載の発明は、請求項1に記載のフィルタ処理装置において、前記キュー負荷情報が、当該データ蓄積装置における(1)入力スループットと、(2)このデータ蓄積装置から送出されたデータの前記フィルタ処理装置におけるデータ1個あたりの平均処理時間とを含む構成とした。 According to a second aspect of the present invention, in the filter processing device according to the first aspect, the queue load information includes (1) input throughput in the data storage device and (2) data transmitted from the data storage device. And the average processing time per piece of data in the filter processing apparatus.
このようにすることで、フィルタ処理装置は、各データ蓄積手段におけるキュー負荷を正確に把握することができる。 In this way, the filter processing apparatus can accurately grasp the queue load in each data storage unit.
請求項3に記載の発明は、請求項1または請求項2に記載のフィルタ処理装置において、前記記憶部が、前記ストリームデータ管理システムに用いられるフィルタ処理装置それぞれのフィルタ処理能力の合計値Pを記憶し、前記フィルタ処理装置それぞれのフィルタ処理能力の合計値Pと、前記キュー負荷テーブルに示されるデータ蓄積装置それぞれのキュー負荷の合計値Sとの差(P−S)が、所定の閾値P×εを超えるとき、前記取得先リストに、前記データ取得処理部に前記データ蓄積装置からストリームデータを取得させないスリープ時間を示したスリープ情報を設定するスリープ情報追加部をさらに備え、前記選択処理部は、前記取得先リストから前記スリープ情報を読み出したとき、前記データ取得処理部は、前記読み出したスリープ情報に示されるスリープ時間が経過するまで前記ストリームデータを取得しない構成とした。 According to a third aspect of the present invention, in the filter processing device according to the first or second aspect, the storage unit calculates a total value P of filter processing capacities of the filter processing devices used in the stream data management system. The difference (PS) between the total value P of the filter processing capabilities of each of the filter processing devices and the total value S of the queue loads of the data storage devices indicated in the queue load table is a predetermined threshold value P When the number exceeds ε, the selection processing unit further includes a sleep information adding unit that sets sleep information indicating a sleep time during which the data acquisition processing unit does not acquire stream data from the data storage device in the acquisition destination list. When the sleep information is read from the acquisition destination list, the data acquisition processing unit The stream data is not acquired until the sleep time indicated by the loop information elapses.
このようにすることで、各フィルタ処理装置のフィルタ処理能力の合計値の方が、各データ蓄積装置におけるキュー負荷の合計値を上回る場合に、フィルタ処理装置は適宜スリープ時間を入れながらデータ蓄積装置からストリームデータを取得する。これにより、フィルタ処理装置は、データ蓄積装置から必要以上にデータ取得を行うこと(空振り)を低減できるので、無駄な電気消費を抑制できる。さらに、このようにフィルタ処理装置において適宜スリープ時間を入れながらデータ蓄積装置からストリームデータを取得することで、データ蓄積装置において過剰にストリームデータの取得要求を受け付けることがなくなる。これによりデータ蓄積装置における入力データの受け付け能力の低下を防止できる。 By doing in this way, when the total value of the filter processing capacity of each filter processing device exceeds the total value of the queue load in each data storage device, the filter processing device appropriately puts the sleep time into the data storage device Get stream data from. As a result, the filter processing device can reduce unnecessary data acquisition from the data storage device (empty swing), and therefore wasteful electricity consumption can be suppressed. Further, by acquiring the stream data from the data storage device while appropriately putting a sleep time in the filter processing device in this manner, the data storage device does not receive an excessive stream data acquisition request. As a result, it is possible to prevent a decrease in the ability to accept input data in the data storage device.
請求項4に記載の発明は、請求項3に記載のフィルタ処理装置において、前記εの値は、0.2〜0.3であり、前記スリープ情報追加部は、前記スリープ時間の合計値が、前記(P−S)×(0.7〜0.8)となるよう、前記取得先リストに前記スリープ情報を設定する構成とした。 According to a fourth aspect of the present invention, in the filter processing device according to the third aspect, the value of ε is 0.2 to 0.3, and the sleep information adding unit has a total value of the sleep time. The sleep information is set in the acquisition source list such that (PS) × (0.7 to 0.8).
このようにすることで、フィルタ処理装置は、前記した空振りを低減しつつ、各データ蓄積装置におけるデータの平均待ち行列長を短くできる。 By doing so, the filter processing device can shorten the average queue length of data in each data storage device while reducing the above-described idling.
請求項5に記載の発明は、請求項3または請求項4に記載の前記スリープ情報追加部が、前記取得先リストに前記スリープ情報を設定するとき、前記スリープ時間の合計値を、記取得先リストに設定されるデータ取得の回数で割った値を、前記取得先リスト上で前記取得先となるデータ蓄積装置の識別情報それぞれの後に設定する構成とした。 According to a fifth aspect of the present invention, when the sleep information adding unit according to the third or fourth aspect sets the sleep information in the acquisition destination list, the total value of the sleep time is stored in the acquisition destination. A value divided by the number of times of data acquisition set in the list is set after each identification information of the data storage device as the acquisition destination on the acquisition destination list.
このようにすることで、フィルタ処置装置は、各データ蓄積装置からデータを取得するとき、スリープ時間を均等にして取得するので、特定のデータ蓄積装置にデータが溜まることを防止できる。 In this way, when the filter treatment device acquires data from each data storage device, the filter treatment device acquires the sleep time evenly, so that it is possible to prevent data from being accumulated in a specific data storage device.
請求項6に記載の発明は、請求項1ないし請求項5のいずれか1項に記載のフィルタ処理装置へ、前記ストリームデータを送信するデータ蓄積装置であって、前記フィルタ処理装置へデータを送出したとき、その時刻を記録し、前記フィルタ処理装置において当該データのフィルタ処理を完了すると、その旨の通知を受信し、当該フィルタ処理装置にデータを送出してから前記通知を受信するまでの時間の平均値を計算し、この計算した平均値を前記送出したデータ数で割って、前記データ蓄積装置から送出されたデータの前記フィルタ処理装置におけるデータ1個あたりの平均処理時間として記録し、前記データ蓄積装置における(1)入力スループットおよび(2)前記データ蓄積装置から送出されたデータの前記フィルタ処理装置におけるデータ1個あたりの平均処理時間の少なくとも一方が、所定の閾値以上に変化したとき、前記フィルタ処理装置へ、前記データ蓄積装置におけるキュー負荷の値を示した前記キュー負荷情報を送信する構成とした。 A sixth aspect of the present invention is a data storage device for transmitting the stream data to the filter processing device according to any one of the first to fifth aspects, wherein the data is transmitted to the filter processing device. The time is recorded, and when the filtering process of the data is completed in the filter processing device, a notification to that effect is received, and the time from when the data is sent to the filter processing device until the notification is received The average value is calculated by dividing the calculated average value by the number of transmitted data, and recorded as the average processing time per data in the filter processing device of the data transmitted from the data storage device, (1) input throughput in the data storage device and (2) the filter processing device for data sent from the data storage device A configuration in which the queue load information indicating a queue load value in the data storage device is transmitted to the filter processing device when at least one of the average processing time per data changes to a predetermined threshold value or more; did.
このようにすることで、各フィルタ処理装置は各データ蓄積装置からキュー負荷情報を受信するので、それぞれのキュー負荷情報に基づきデータ取得先を選択できる。従って、各フィルタ処理装置でマイグレーションを行う必要がなくなり、システム全体の処理能力の低下を防止できる。 By doing so, each filter processing device receives queue load information from each data storage device, so that a data acquisition destination can be selected based on the respective queue load information. Therefore, it is not necessary to perform migration in each filter processing apparatus, and it is possible to prevent a reduction in processing capacity of the entire system.
請求項8に記載の発明は、請求項7に記載のフィルタ処理方法を、フィルタ処理装置であるコンピュータに実行させることを特徴とするフィルタ処理プログラムとした。 According to an eighth aspect of the present invention, there is provided a filter processing program that causes a computer as a filter processing apparatus to execute the filter processing method according to the seventh aspect.
このようなプログラムによれば、一般的なコンピュータに請求項7に記載のフィルタ処理方法を実行させることができる。 According to such a program, it is possible to cause a general computer to execute the filter processing method according to claim 7.
本発明によれば、ストリームデータ管理システムにおいて、情報源のデータ入力量の変化が激しい場合であっても、システム全体の処理能力を著しく低下させないようにすることができる。 According to the present invention, in the stream data management system, even when the data input amount of the information source changes drastically, the processing capacity of the entire system can be prevented from being significantly reduced.
以下、本発明を実施するための最良の形態(以下、実施の形態という)を、第1の実施の形態および第2の実施の形態に分けて説明する。 Hereinafter, the best mode for carrying out the present invention (hereinafter referred to as an “embodiment”) will be described by dividing it into a first embodiment and a second embodiment.
≪第1の実施の形態≫
図1は、本実施の形態のストリームデータ管理システムを含むシステムの構成例を示した図である。図1に示すように、システムは、様々な情報源から取得したデータにサービスID(SID)を付し、このデータをストリームデータとして送信するクライアント50(50A,50B)と、受信したストリームデータのフィルタ処理を行うストリームデータ管理システム1と、フィルタ処理されたデータの出力先である、出力先60(60A〜60N)と、この出力先60からデータの検索を行う検索クライアント70(70A〜70N)とを含んで構成される。
<< First Embodiment >>
FIG. 1 is a diagram illustrating a configuration example of a system including a stream data management system according to the present embodiment. As shown in FIG. 1, the system attaches a service ID (SID) to data acquired from various information sources, transmits the data as stream data, and a client 50 (50A, 50B) and the received stream data. The stream
ストリームデータ管理システム1は、クライアント50へ、ストリームデータの送信先となるデータ蓄積手段(装置)20を指示するキュー割当手段40と、クライアント50から送信されたストリームデータを蓄積するデータ蓄積手段(装置)20(20A,20B,…,20N)と、ストリームデータのフィルタ処理を行うフィルタ処理手段(装置)10(10A〜10N)と、このフィルタ処理手段10におけるフィルタ処理部124(詳細は後記)の機能を実現するファイルデータ等を記憶する共有情報管理手段(装置)30とを含んで構成される。
The stream
また、出力先60は、ストリームデータ管理システム1においてフィルタ処理されたデータをDB(データベース)61に蓄積する蓄積処理部62と、フィルタ処理されたデータを記憶するDB61と、検索クライアント70からの要求に応じて、このDB61から所定のデータを検索する検索処理部63とを含んで構成される。
Further, the
(1)クライアント50とストリームデータ管理システム1との間、(2)ストリームデータ管理システム1と出力先60との間はそれぞれ、図示しない伝送経路により接続される。さらに、データ蓄積手段20、フィルタ処理手段10、出力先60の数は、図1において、それぞれN個としたが、これに限定されない。なお、フィルタ処理手段10はそれぞれ同じ機能を備えるものとする。
(1) The
<動作概要>
ここで、図1のシステムの動作概要を説明する。まず、クライアント50は、様々な情報源からデータを取得し、そのデータに応じたSIDを付する。このSIDはSIDのバージョンの情報を含んでいてもよい。そして、クライアント50は、このSIDを付したデータをストリームデータとして、ストリームデータ管理システム1へ送信する。ストリームデータ管理システム1のキュー割当手段40は、ストリームデータの送信先であるデータ蓄積手段20を選択する。そして、クライアント50に対し、ストリームデータの送信先のデータ蓄積手段20を指示し、クライアント50は、指示されたデータ蓄積手段20にストリームデータを送信する。なお、データ蓄積手段20はそれぞれ、自身のキュー負荷に所定の閾値以上の変化があったとき、そのキュー負荷の値を示したキュー負荷情報を含むキュー負荷情報変更通知を各フィルタ処理手段10へ通知する。そして、キュー負荷テーブル更新部126はキュー負荷情報を、各データ蓄積手段20におけるキュー負荷テーブル141に反映する。
<Overview of operation>
Here, an outline of the operation of the system of FIG. 1 will be described. First, the
続いて、フィルタ処理手段10は、取得先リスト142を作成する。この取得先リスト142はストリームデータの取得先となるデータ蓄積手段20を時系列で示した情報であえる。例えば、フィルタ処理手段10は、データ蓄積手段20(20A〜20N)から、ランダム値を用いて、データ取得先となるデータ蓄積手段20を順に選択する。このとき、フィルタ処理手段10は、キュー負荷テーブル141に示される各データ蓄積手段20のキュー負荷の値をもとに、キュー負荷が高いデータ蓄積手段20ほど優先的に選択するようにする。例えば、データ蓄積手段20Aにおけるキュー負荷の値が「10」であり、データ蓄積手段20B,20Cのキュー負荷の値がそれぞれ「5」であった場合、フィルタ処理手段10は、10:5:5の確率で選択するようにして、この選択したデータ蓄積手段20の識別情報を取得先リスト142に順次書きこんでいく。このようにしてフィルタ処理手段10は取得先リスト142を作成する。そして、フィルタ処理手段10は、この作成した取得先リスト142に示される順にデータ蓄積手段20からデータを取得する。そして、フィルタ処理手段10は、この決定したデータ蓄積手段20からストリームデータを取得し、フィルタ処理を行う。各ストリームデータに対し行うべきフィルタ処理は、このストリームデータに付されたSIDに基づき判断する。なお、ここで、このストリームデータに必要なフィルタ処理機能が自身のフィルタ処理部124になかった場合、フィルタ処理手段10は、共有情報管理手段30からファイルデータを取得して、フィルタ処理機能の追加を行うようにしてもよい。
Subsequently, the
フィルタ処理手段10は、フィルタ処理後、ストリームデータを所定の出力先60へ出力する。そして、出力先60においてフィルタ処理後のデータをDB61に蓄積し、このDB61のデータは、検索クライアント70により検索可能となる。
The filter processing means 10 outputs the stream data to a
また、このクライアント50、キュー割当手段40、データ蓄積手段20、共有情報管理手段30、フィルタ処理手段10、出力先60および検索クライアント70は、入出力インタフェース、CPU(Central Processing Unit)等の演算処理部、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)等の記憶部等を備えるコンピュータにより実現される。また、各処理部は、CPUによるプログラム実行処理あるいは専用回路により実現される。
Further, the
また、データ蓄積手段20(20A〜20N)はそれぞれ別個のコンピュータ(装置)により実現するようにしてもよいし、これらをまとめて1つのコンピュータにより実現するようにしてもよい。さらに、フィルタ処理手段10(10A〜10N)についても、それぞれ別個のコンピュータ(装置)により実現するようにしてもよいし、これらをまとめて1つのコンピュータにより実現するようにしてもよい。つまり、データ蓄積手段20(20A〜20N)およびフィルタ処理手段10(10A〜10N)をそれぞれ、プロセスにより実現するようにしてもよいし、コンピュータ(マシン)により実現するようにしてもよい。さらに、キュー割当手段40は、ロードバランサをさらに備え、このロードバランサにより各データ蓄積手段20へのストリームデータの割り当てを行うようにしてもよい。
The data storage means 20 (20A to 20N) may be realized by separate computers (devices), or may be realized by a single computer. Further, the filter processing means 10 (10A to 10N) may be realized by separate computers (devices), or may be realized by a single computer. That is, the data storage means 20 (20A to 20N) and the filter processing means 10 (10A to 10N) may be realized by processes or may be realized by a computer (machine). Further, the
<データ蓄積手段>
次に、図2を用いてデータ蓄積手段20を詳細に説明する。図2は、図1のデータ蓄積手段の詳細を示した機能ブロック図である。
<Data storage means>
Next, the data storage means 20 will be described in detail with reference to FIG. FIG. 2 is a functional block diagram showing details of the data storage means of FIG.
データ蓄積手段20は、クライアント50から送信されたストリームデータを一時的に蓄積する手段である。このようなデータ蓄積手段20は、図2に示すように、クライアント50からのストリームデータの入力を受け付ける入力部21と、記憶部24におけるキュー241の状態を監視し、所定の閾値以上にキュー負荷の変化があったとき、このデータ蓄積手段20におけるキュー負荷情報(入力スループット、フィルタ処理手段10におけるデータ1個あたりの平均処理時間、このデータ蓄積手段20に溜まっているデータの個数等)を送信する処理部22と、ストリームデータおよび前記したキュー負荷情報を出力するための出力部23と、蓄積したストリームデータのキュー241が形成される記憶部24とを含んで構成される。
The
なお、この入力部21および出力部23は、クライアント50やフィルタ処理手段10との間でデータ入出力可能な入出力インタフェースにより実現され、記憶部24は、RAM、HDD等により実現される。また、処理部22は、CPUによる記憶部24に記憶されるプログラムの実行処理、専用回路等により実現される。なお、記憶部24において、キュー241として蓄積されたストリームデータは、フィルタ処理手段10からの要求に応じて、フィルタ処理手段10へ送信される。
The
処理部22は、キュー負荷監視部221と、キュー負荷情報送信部222とを含んで構成される。キュー負荷監視部221は、自身のデータ蓄積手段20におけるキュー負荷を監視する。そして、キュー負荷監視部221は、所定の閾値(共有情報管理手段30のキュー負荷情報通知閾値321)以上に、キュー負荷が変化したか否かを監視する
The processing unit 22 includes a queue
キュー負荷情報送信部222は、キュー負荷監視部221においてキュー負荷が共有情報管理手段30のキュー負荷情報通知閾値321に示される閾値以上に変化したとき、このデータ蓄積手段20におけるキュー負荷情報を各フィルタ処理手段10へ送信する。例えば、キュー負荷情報のうち、入力スループット、フィルタ処理手段10におけるデータ1個あたりの平均処理時間およびこのデータ蓄積手段20に溜まっているデータの個数のうち少なくともいずれか1つがキュー負荷情報通知閾値321に示される値以上に変化したとき、キュー負荷情報を各フィルタ処理手段10へ送信する。このときのキュー負荷情報には、自身のデータ蓄積手段20の識別情報が付される。また、キュー負荷情報の送信は、例えば、各フィルタ処理手段10への同報送信等により行われる。
When the queue
このようにすることで、データ蓄積手段20は、自身のキュー負荷に変化があったとき、自身のキュー負荷をいち早く各フィルタ処理手段10へ通知することができる。なお、キュー負荷情報通知閾値321は、このデータ蓄積手段20が共有情報管理手段30からコピーして記憶部24に記憶しておき、キュー負荷監視部221は、この記憶部24に記憶されたキュー負荷情報通知閾値321を参照して、キュー負荷の監視を行うようにしてもよい。
In this way, the
<フィルタ処理手段>
図1に戻ってフィルタ処理手段10を詳細に説明する。フィルタ処理手段10は、図1に示すように、ストリームデータの入力を受け付ける入力部11と、ストリームデータをデータ蓄積手段20から取得し、フィルタ処理を行う処理部12と、フィルタ処理を行ったデータを出力する出力部13と、このフィルタ処理手段10の機能を実現するためのプログラムや、各データ蓄積手段20のキュー負荷を示したキュー負荷テーブル141、データの取得先となるデータ蓄積手段20を時系列で示した取得先リスト142を記憶する記憶部14とを含んで構成される。この入力部11および出力部13も、データ蓄積手段20や出力先60との間でデータ入出力可能な入出力インタフェースにより実現され、記憶部14は、RAM、HDD等により実現される。また、処理部12は、CPUによる記憶部14に記憶されるプログラムの実行処理、専用回路等により実現される。
<Filter processing means>
Returning to FIG. 1, the filter processing means 10 will be described in detail. As shown in FIG. 1, the
この処理部12は、選択処理部121と、データ取得処理部122と、フィルタ実行制御部123と、フィルタ処理部124と、取得先リスト作成部125と、キュー負荷テーブル更新部126とを含んで構成される。スリープ情報追加部127については、別途第2の実施の形態で説明する。
The processing unit 12 includes a
選択処理部121は取得先リスト142に示される順にデータ蓄積手段20を選択し、この選択したデータ蓄積手段20をデータ取得先としてデータ取得処理部122へ指示する。
The
データ取得処理部122は、選択処理部121により指示されたデータ蓄積手段20からストリームデータを取得する。なお、ストリームデータを取得するタイミングは、例えば、自身のフィルタ処理手段10において処理しているデータがなくなったときでもよいし、処理中のデータが所定の閾値以下となったときでもよい。
The data
フィルタ実行制御部123は、データ取得処理部122から取得したストリームデータに付されたSIDと、共有情報管理手段30のSIDテーブル(図示省略)とを参照して、このストリームデータに対し実行すべきフィルタ処理(フィルタオペレーションの適用手順)を決定する。そして、フィルタ実行制御部123は、記憶部14からフィルタオペレーション(FOP)を読み出し、FOPにより記述されるフィルタ処理をフィルタ処理部124に実行させる。
The filter
なお、このフィルタ実行制御部123は、このストリームデータに対し実行すべきフィルタ処理機能が自身のフィルタ処理手段10にないとき、共有情報管理手段30から、このフィルタ処理機能を実現するためのファイルデータ(フィルタオペレーションを含む)をダウンロードし、機能追加を行うようにしてもよい。
The filter
フィルタ処理部124は、フィルタ実行制御部123からの指示に基づき、ストリームデータに対しフィルタ処理を実行する。このフィルタ処理部124におけるフィルタ処理の内容はフィルタオペレーション(FOP)により記述され、フィルタ処理部124は、このFOPに基づきフィルタ処理を実行する。このFOPは例えば「画像フォーマットをJPEG(Joint Photographic Experts Group)から、Bitmapフォーマットに変換する」というものや、「画像サイズを特徴抽出ルーチンに合うように正規化する」というもの等である。また、このFOPは、「処理後のデータを出力先60Aに出力する」等、処理後のデータの出力先に関する情報を含んでいてもよい。このFOPは、記憶部14に記憶され、フィルタ実行制御部123により読み出される。
Based on an instruction from the filter
取得先リスト作成部125は、キュー負荷テーブル141をもとに取得先リスト142を作成する。このとき、取得先リスト作成部125は、キュー負荷テーブル141に示される各データ蓄積手段20のうち、キュー負荷が高いデータ蓄積手段20を高い確率で選択するようにする。そして、このような選択を所定回数(例えば、M回)繰り返し、選択した順に、この選択したデータ蓄積手段20の識別情報を取得先リスト142に記録する。例えば、データ蓄積手段20Aにおけるキュー負荷の値が「10」であり、データ蓄積手段20B,20Cのキュー負荷の値がそれぞれ「5」であった場合、フィルタ処理手段10は、10:5:5の確率で選択するようにして、この選択したデータ蓄積手段20の識別情報を取得先リスト142に順次書きこんでいく。このときの取得先リスト142の作成手順の具体例は、図3を用いて後記する。なお、このようにして作成された取得先リスト142は、選択処理部121により、データ取得先のデータ蓄積手段20を選択する際に参照される。
The acquisition destination
キュー負荷テーブル更新部126は、データ蓄積手段20からキュー負荷情報変更通知を受信すると、この通知に含まれるキュー負荷情報を記憶部14に格納する。そして、キュー負荷テーブル更新部126は、このキュー負荷情報をもとに各データ蓄積手段20のキュー負荷ciを計算し、その計算した負荷ciをキュー負荷テーブル141に書き込む。
When receiving the queue load information change notification from the
記憶部14は、前記したFOP、このフィルタ処理手段10の機能を実現するプログラム(図示省略)、キュー負荷テーブル141、取得先リスト142等を記憶する。なお、取得先リスト142aについては、別途第2の実施の形態で説明する。このキュー負荷テーブル141および取得先リスト142を、図3を参照しながら説明する。図3は、図1のキュー負荷テーブルに基づく取得先リストの作成を概念的に説明した図である。
The storage unit 14 stores the FOP, a program (not shown) that implements the function of the
このキュー負荷テーブル141は、図3に示すように、データ蓄積手段20ごとのキュー負荷(負荷)ci(データ蓄積手段iで計測されたキュー負荷)を示した情報である。例えば、図3に示すキュー負荷テーブル141において、ID「1」のデータ蓄積手段20のキュー負荷は「10」であることを示す。このキュー負荷ciは以下の式(1)により定義される。
ci=λixi+pixi…式(1)
λi:単位時間あたりの平均入力データ数(入力スループット)
xi:データ1個あたりの平均処理時間(CPUコスト)
pi:データ蓄積手段に溜まっているデータ数
従って、これらのΣciは、図3の式(2)のように定義される。なお、データ1個あたりの平均処理時間xiは、データ蓄積手段20がフィルタ処理手段10へデータを渡した後に、そのデータが処理されるまでの時間である。つまり、データ蓄積手段20は、フィルタ処理手段10へデータを送出したとき、その送出時刻を記録しておく。そして、フィルタ処理手段10において当該データのフィルタ処理を完了すると、その旨の通知をこのフィルタ処理手段10から受信するので、データ蓄積手段20は、フィルタ処理手段10にデータを渡してからこの通知を受信するまでの時間の平均値を、データ数で割ってデータ1個あたりの平均処理時間xiとする。また、前記した式(1)においてpixiを含めないようにしてもよい。
As shown in FIG. 3, the queue load table 141 is information indicating a queue load (load) c i (queue load measured by the data storage unit i) for each
c i = λ i x i + p i x i (1)
λ i : Average number of input data per unit time (input throughput)
x i : Average processing time per data (CPU cost)
p i : Number of data accumulated in the data accumulating means Therefore, these Σc i are defined as in the equation (2) in FIG. The average processing time x i per piece of data is the time until the data is processed after the data storage means 20 delivers the data to the filter processing means 10. That is, when data is sent to the filter processing means 10, the data storage means 20 records the sending time. When the
また、取得先リスト142は、図3に示すように、データの取得先となるデータ蓄積手段20の識別情報(ID)を取得順に示した情報である。例えば、図3に示す取得先リスト142において、データ取得処理部122は、ID「1」→「1」→「2」→「1」→「1」→…→「1」という順にデータ蓄積手段20からデータを取得することを示す。
Further, as shown in FIG. 3, the acquisition destination list 142 is information indicating the identification information (ID) of the
ここで、キュー負荷テーブル141を参照した取得先リスト142の作成手順を、図3を用いて説明する。(1)まず、図1の取得先リスト作成部125は、キュー負荷テーブル141における総負荷Sを求める。ここでの総負荷Sは、図3に例示したキュー負荷テーブル141に示されるciの値から、総負荷S=20となる。(2)次に、取得先リスト作成部125は、1〜20(総負荷S)までの間のランダム値rを生成する。(3)そして、取得先リスト作成部125は、前記した(2)で生成したランダム値rをもとに、データを取得するデータ蓄積手段20を決定(選択)する。例えば、キュー負荷テーブル141に示されるID「1」、「2」、「3」のデータ蓄積手段20のキュー負荷ciはそれぞれ「10」、「5」、「5」である。従って、総負荷Sの値「20」を10:5:5に分割し、(2)で生成したランダム値rが1≦r≦10を満たすものであれば、ID「1」のデータ蓄積手段20を選択し、ランダム値rが11≦r≦15を満たすものであれば、ID「2」のデータ蓄積手段20を選択し、ランダム値rが16≦r≦20を満たすものであれば、ID「3」のデータ蓄積手段20を選択する。
Here, a procedure for creating the acquisition source list 142 with reference to the queue load table 141 will be described with reference to FIG. (1) First, the acquisition destination
すなわち、データ蓄積手段20の数が3個であった場合、ID「1」のデータ蓄積手段20が選択される確率は50%、ID「2」のデータ蓄積手段20が選択される確率は25%、ID「3」のデータ蓄積手段20が選択される確率は25%となるようにする。つまり、各フィルタ処理手段10の取得先リスト142は、ストリームデータを取得するデータ蓄積手段20を選択するとき、当該データ蓄積手段20のキュー負荷の値に比例した確率でデータ蓄積手段20を選択する。
That is, when the number of data storage means 20 is 3, the probability that the data storage means 20 with ID “1” is selected is 50%, and the probability that the data storage means 20 with ID “2” is selected is 25. %, The probability that the data storage means 20 with ID “3” will be selected is set to 25%. That is, the acquisition destination list 142 of each
(4)取得先リスト作成部125は、前記した(2)、(3)を繰り返すことで、取得先リスト142を作成する。この取得先リスト142は、前記したとおり、データの取得先であるデータ蓄積手段20のキュー負荷の値に比例した確率でデータ蓄積手段20を選択したものである。従って、この取得先リスト142に示されるデータ取得元の各データ蓄積手段20のIDの登場回数は、ほぼ各データ蓄積手段20のキュー負荷の値に比例した回数になる。よって、このような取得先リスト142に基づきデータ取得を行うデータ取得処理部122は、データ蓄積手段20それぞれのキュー負荷の値に比例した頻度でデータ蓄積手段20からデータ取得を行うことになる。
(4) The acquisition destination
<動作手順>
次に、図1〜図3を参照しつつ図4を用いて、図1のフィルタ処理手段10の動作手順を説明する。図4は、図1のフィルタ処理手段の動作を示したフローチャートである。
<Operation procedure>
Next, the operation procedure of the filter processing means 10 of FIG. 1 will be described using FIG. 4 with reference to FIGS. FIG. 4 is a flowchart showing the operation of the filter processing means of FIG.
図1のフィルタ処理手段10のキュー負荷テーブル更新部126は、データ蓄積手段20からのキュー負荷情報変更通知の受信を待つ(S101)。そして、キュー負荷テーブル更新部126は、キュー負荷情報変更通知を受信すると(S101のYes)、この通知に含まれるキュー負荷情報を記憶部14に格納する。そして、キュー負荷テーブル更新部126は、このキュー負荷情報をもとに各データ蓄積手段20のキュー負荷ciを計算し、その計算した負荷ciをもとにキュー負荷テーブル141(図3参照)を更新する(S102)。
The queue load table update unit 126 of the
そして、取得先リスト作成部125は、更新したキュー負荷テーブル141をもとに取得先リスト142(図3参照)を作成する(S103)。この取得先リスト142の作成手順については、後記する。そして、取得先リスト作成部125は、作成した取得先リスト142を記憶部14に格納する。
Then, the acquisition destination
次に、選択処理部121は、この取得先リスト142の位置番号カウンタCに初期値「1」をセットする(S104)。そして、新たなキュー負荷情報変更通知を受信したか否かを判断し(S105)、キュー負荷情報変更通知を受信していないことを確認すると(S105のNo)、選択処理部121は、位置番号カウンタCが取得先リスト142の大きさ(登録されているデータ数M)を超えているか否かを判断する(S106)。ここで、位置番号カウンタCが取得先リスト142の大きさを超えていれば(S106のYes)、選択処理部121は、位置番号カウンタCを初期値「1」に戻し(S107)、S108へ進む。なお、S105でキュー負荷情報変更通知を受信していたとき(S105のYes)、キュー負荷テーブル141の変更が必要なので、S102へ戻る。
Next, the
一方、位置番号カウンタCが取得先リスト142の大きさを超えていなければ(S106のNo)、選択処理部121はこの位置番号カウンタCに対応するデータ蓄積手段20のIDを取得先リスト142から読み取り(S108)、データ取得処理部122はこの読み取ったIDのデータ蓄積手段20からデータ取得を行う。そして、フィルタ実行制御部123において取得したデータのフィルタ処理を実行する(S109)。そして、選択処理部121は、位置番号カウンタCをインクリメントし(S110)、S105へ戻る。
On the other hand, if the position number counter C does not exceed the size of the acquisition destination list 142 (No in S106), the
このような処理を行うことで、フィルタ処理手段10は、各データ蓄積手段20の最新のキュー負荷を反映した取得先リスト142を作成する。従って、フィルタ処理手段10は、この最新のキュー負荷を反映した取得先リスト142に従ってデータ蓄積手段20からデータを取得することができる。
By performing such processing, the
次に、図5を用いて、取得先リスト142の作成手順を説明する。図5は、図1の取得先リストの作成手順を示すフローチャートである。 Next, a procedure for creating the acquisition destination list 142 will be described with reference to FIG. FIG. 5 is a flowchart showing a procedure for creating the acquisition destination list of FIG.
まず、取得先リスト作成部125は、ループカウンタaに初期値「0」をセットする(S201)。そして、キュー負荷テーブル141を参照して、すべてのデータ蓄積手段20における負荷ciの和S(総負荷S)を計算する(S202)。
First, the acquisition destination
次に、取得先リスト作成部125は、ループカウンタaが取得先リスト142の大きさMよりも大きければ(S203のYes)、取得先リスト142を出力し(S208)、処理を終了する。
Next, if the loop counter a is larger than the size M of the acquisition destination list 142 (Yes in S203), the acquisition destination
一方、ループカウンタaの値が取得先リスト142の大きさM以下であれば(S203のNo)、取得先リスト作成部125は、1〜S(S202で計算したすべてのデータ蓄積手段20における負荷ciの和)の間の値で、ランダム値rを生成する(S204)。このときのランダム値rの生成は、公知の技術を用いてよい。
On the other hand, if the value of the loop counter a is equal to or smaller than the size M of the acquisition destination list 142 (No in S203), the acquisition destination
そして、取得先リスト作成部125は、[c1(1番目のデータ蓄積手段20における負荷)からch(h番目のデータ蓄積手段20における負荷)までの和]≦[r]<[c1(1番目のデータ蓄積手段20における負荷)からch+1(h+1番目のデータ蓄積手段20における負荷)までの和]を満たすhを決定する(S205)。なお、ストリームデータ管理システム1におけるデータ蓄積手段20の数がNであるとき、hは、1≦h≦Nを満たす値である。
Then, the acquisition destination
次に、取得先リスト作成部125は、取得先リスト142の第a番目の要素として、h番目のデータ蓄積手段20のIDを取得先リスト142に格納する(S206)。そして、取得先リスト作成部125は、ループカウンタaをインクリメントして(S207)、S203へ戻る。
Next, the acquisition destination
このようにして作成された、取得先リスト142に基づきデータ取得処理部122はデータ蓄積手段20のキュー負荷が高ければ高い頻度で、データ蓄積手段20のキュー負荷が低ければ低い頻度で、データ取得を行う。従って、特定のデータ蓄積手段20だけがデータの待ち行列長が長くなるのを防止できるの。つまり、データ蓄積手段20へのデータ入力量の変化が激しい場合であっても、各データ蓄積手段20においてキュー負荷や待ち行列の長さに偏りがなくなるので、ストリームデータ管理システム1全体の処理能力を著しく低下させないようにすることができる。
Based on the acquisition destination list 142 created in this way, the data
≪第2の実施の形態≫
次に、本発明の第2の実施の形態を説明する。第2の実施の形態は、各フィルタ処理手段10のフィルタ処理能力の方が、各データ蓄積手段20におけるキュー負荷の合計を上回るとき、フィルタ処理手段10は適宜スリープ時間を入れながらデータ蓄積手段20からデータ取得を行うことを特徴とする。これにより、フィルタ処理手段10は、データ蓄積手段20から必要以上にデータ取得を行うこと(空振り)が無くなるので、無駄な電気消費を抑制できる。さらに、フィルタ処理手段10は必要以上にデータ蓄積手段20へストリームデータの取得要求を行わないので、データ蓄積手段20の負荷を低減し、データ蓄積手段20はクライアント50からの入力データ受信も滞りなく行うことができる。
<< Second Embodiment >>
Next, a second embodiment of the present invention will be described. In the second embodiment, when the filter processing capability of each
第2の実施の形態のフィルタ処理手段10は、スリープ情報追加部127を含み、このスリープ情報追加部127は、取得先リスト142aにスリープ時間を設定する。スリープ時間とは、データ取得処理部122にデータ蓄積手段20からのデータ取得を行わせない時間である。図6は、第2の実施の形態の取得先リストを概念的に説明した図である。図6に示すように、取得先リスト142aは、データ取得処理部122の取得先となるデータ蓄積手段20のID以外に、このデータ取得処理部122にデータ取得を行わせないスリープを示す情報(スリープ情報)を含む。このスリープ情報は、データ取得処理部122にデータ取得を行わせない時間(スリープ時間)を含む。選択処理部121において、このスリープ情報を読み取ったとき、スリープ時間が経過するまでデータ取得処理部122にデータ取得を指示しない。
The filter processing means 10 of the second exemplary embodiment includes a sleep
例えば、このような取得先リスト142aに基づき、選択処理部121はデータ取得処理部122にID「1」のデータ蓄積手段20からのデータ取得→スリープ→再度ID「1」のデータ蓄積手段20からのデータ取得→スリープ…というように指示を行う。なお、このスリープ時間の合計は、図6に示すように、データ蓄積手段20の総負荷をS、フィルタ処理手段10の総処理能力をPとしたとき、各フィルタ処理手段10の総負荷を(P−S)に相当する時間まで削減する値とする。例えば、このようなスリープによる負荷削減率(P−S)/P=Rとしたとき、各フィルタ処理手段10におけるスリープ時間は、{R/(1−R)}Sに相当する時間とする。
For example, based on such an acquisition destination list 142a, the
次に、図7を用いて、スリープ情報追加部127の動作手順を説明する。図7は、第2の実施の形態のスリープ情報追加部の動作手順を示したフローチャートである。図7に示すように、まず、スリープ情報追加部127は、キュー負荷テーブル141から、各データ蓄積手段20の総負荷Sを計算する(S301)。そして、(各フィルタ処理手段10の総処理能力P−総負荷S)が所定の閾値(P×ε)より大きいか否かを判断する(S302)。なお、各フィルタ処理手段10の総処理能力Pの値は、例えば、フィルタ処理手段10に記憶部14に格納してあるものものとする。この総処理能力Pの値は、共有情報管理手段30において管理し、この共有情報管理手段30が各フィルタ処理手段10の総処理能力Pの値が変化したときに、フィルタ処理手段10へ送信するようにしてもよい。また、εの値は、例えば0.2〜0.3程度とする。
Next, the operation procedure of the sleep
ここで、(各フィルタ処理手段10の総処理能力P−総負荷S)が所定の閾値(P×ε)より大きいとき(S302のYes)、スリープ情報追加部127は、負荷削減率R(=(P−S)/P)を計算する(S303)。そして、スリープ情報追加部127は、{R/(1−R)}Sのスリープを取得先リスト142aへ追加する(S304)。なお、ここで取得先リスト142aに追加するスリープは、{R/(1−R)}Sに0.7〜0.8をかけた値とするのが好ましい。この理由については後記する。
Here, when (total processing capacity P-total load S of each filter processing unit 10) is larger than a predetermined threshold (P × ε) (Yes in S302), the sleep
一方、(各フィルタ処理手段10の総処理能力P−総負荷S)が所定の閾値(P×ε)より小さいときは(S302のNo)、取得先リスト142aへのスリープ情報の追加を行わず、処理を終了する。 On the other hand, when (total processing capacity P-total load S of each filter processing means 10) is smaller than the predetermined threshold (P × ε) (No in S302), sleep information is not added to the acquisition destination list 142a. The process is terminated.
なお、(各フィルタ処理手段10の総処理能力P−総負荷S)の値が所定の閾値(P×ε)より大きいときに、取得先リスト142にスリープ時間を設定することにしたのは、(各フィルタ処理手段10の総処理能力P−総負荷S)が小さければ空振りは殆ど発生せず、スリープ時間の設定は不要だからである。 When the value of (total processing capacity P-total load S of each filter processing means 10) is larger than a predetermined threshold (P × ε), the reason for setting the sleep time in the acquisition destination list 142 is that This is because if the (total processing capacity P-total load S of each filter processing means 10) is small, the idling hardly occurs and the setting of the sleep time is unnecessary.
さらに、取得先リスト142aに設定するスリープ時間は、{R/(1−R)}Sに0.7〜0.8をかけた値とするのが好ましいのは、これは以下の理由による。図8は、データ処理における待ち行列長の原理を説明するために引用したグラフである。図8に示すように、ρ=到着率(総負荷)/平均サービス量(総処理能力)としたとき、待ち行列長はほぼ1/(1−ρ)に近い値になることが知られている。つまり、ρ=1近傍、総処理能力P=総負荷Sにすると、待ち行列長は激増する。一方、ρ=0.7〜0.8程度の値であれば、データ蓄積手段20における待ち行列長の増加は抑えられる。つまり、スリープ時間を{R/(1−R)}S×(0.7〜0.8)とした方が、各データ蓄積手段20における待ち行列長の増加が抑制され、かつ空振りも低減できることが期待できるからである。
Furthermore, the sleep time set in the acquisition destination list 142a is preferably set to a value obtained by multiplying {R / (1-R)} S by 0.7 to 0.8 for the following reason. FIG. 8 is a graph quoted for explaining the principle of queue length in data processing. As shown in FIG. 8, when ρ = arrival rate (total load) / average service amount (total processing capacity), the queue length is known to be a value close to 1 / (1-ρ). Yes. That is, if ρ = 1 and the total processing capacity P = total load S, the queue length increases drastically. On the other hand, if the value is about ρ = 0.7 to 0.8, an increase in the queue length in the
また、取得先リスト142aへのスリープ情報の設定は、例えば、図6に示すように、取得先リスト142a全体にわたり、まんべんなく設定するのが好ましい。例えば、スリープ時間の合計値を、取得先リスト142に設定される要素数(データ蓄積手段20へのデータ取得の回数)で割った値を、取得先であるデータ蓄積装置20のIDそれぞれの後に均等に設定する。これは、データ取得処理部122が各データ蓄積手段20から何回かデータ取得を行った後、まとめてスリープ時間をとるよりも、データ取得の後にこまめにスリープ時間をとる方が、データ蓄積手段20におけるデータ行列長の増加を抑制できるからである。
Moreover, it is preferable to set the sleep information in the acquisition destination list 142a evenly over the entire acquisition destination list 142a, for example, as shown in FIG. For example, the value obtained by dividing the total value of the sleep time by the number of elements set in the acquisition destination list 142 (the number of times of data acquisition to the data storage unit 20) is after each ID of the
次に、第2の実施の形態のフィルタ処理手段10の動作手順を説明する。図9は、第2の実施の形態のフィルタ処理手段の動作手順を示したフローチャートである。図9のS401,402は、図4のS101,102と同様である。なお、S403における取得先リスト142aの作成は、前記したとおりスリープ情報の設定処理を含む。S404〜S408は、図4のS104〜S108と同様であるが、S408で読み取ったIDが「スリープ」であった場合(S409のYes)、選択処理部121は、スリープ情報に設定されたスリープ時間が経過するまでデータ取得処理部122にデータ取得を指示しない。つまりスリープ情報を読み取った場合、データ取得処理部122は指定時間スリープする(S410)。そして、このスリープ情報に設定されたスリープ時間経過後、選択処理部121は、位置番号カウンタCをインクリメントし(S412)、S405へ戻る。一方、S408で読み取ったIDが「スリープ」でなかった場合(S409のNo)、図4のS109と同様に、選択処理部121はデータ取得処理部122に、この読み取ったIDを持つデータ蓄積手段20からのデータ取得を指示する。そして、フィルタ実行制御部123において取得したデータのフィルタ処理を実行する。
Next, the operation procedure of the filter processing means 10 of the second embodiment will be described. FIG. 9 is a flowchart showing the operation procedure of the filter processing means of the second embodiment. S401 and 402 in FIG. 9 are the same as S101 and 102 in FIG. Note that the creation of the acquisition source list 142a in S403 includes the sleep information setting process as described above. S404 to S408 are the same as S104 to S108 in FIG. 4, but if the ID read in S408 is “sleep” (Yes in S409), the
このようにすることでフィルタ処理手段10は、データ蓄積手段20から必要以上にデータ取得を行うこと(空振り)が無くなるので、無駄な電気消費を抑制できる。さらに、データ蓄積手段20において、フィルタ処理手段10から必要以上にストリームデータの取得を受け付けることで負荷が増大し、データ蓄積手段20がクライアント50からの入力データを受け付けられないという事態を防止できる。
By doing so, the filter processing means 10 does not acquire data more than necessary from the data storage means 20 (idle swing), and therefore it is possible to suppress wasteful electricity consumption. Furthermore, in the
≪実験結果≫
次に、本実施の形態のストリームデータ管理システム1を用いた実験結果を説明する。
≪Experimental results≫
Next, experimental results using the stream
図10は、第2の実施の形態のストリームデータ管理システムを用いた実験結果を示したグラフである。本実験において、比較例のストリームデータ管理システムのフィルタ処理手段は取得先リスト142を持たず、処理すべきデータが無くなった時点でデータ取得先となるデータ蓄積手段を選択するものとした。なお、この比較例におけるデータ蓄積手段の選択方法はラウンドロビンとした。また、データ蓄積手段の数を、それぞれ50個とした場合と、200個とした場合の、両方について実験を行った。グラフの横軸は、各データ蓄積手段の入力スループットの合計値を示し、縦軸は、各データ蓄積手段に必要となるフィルタ処理手段の数を示す。ここで、フィルタ処理手段の1個あたりの処理能力(CPUコスト)は、0.1(sec)とした。また、各データ蓄積手段に必要となるフィルタ処理手段の数とは、いずれか1つのデータ蓄積手段においてキュー長が「600」を超えた時点のフィルタ処理手段の数とした。取得先リスト142の大きさMは、「50」とした。 FIG. 10 is a graph showing a result of an experiment using the stream data management system according to the second embodiment. In this experiment, the filter processing means of the stream data management system of the comparative example does not have the acquisition destination list 142, and selects the data storage means as the data acquisition destination when there is no data to be processed. The selection method of the data storage means in this comparative example was round robin. In addition, an experiment was conducted for both the case where the number of data storage means was 50 and 200 respectively. The horizontal axis of the graph indicates the total input throughput of each data storage unit, and the vertical axis indicates the number of filter processing units required for each data storage unit. Here, the processing capacity (CPU cost) per filter processing means was set to 0.1 (sec). The number of filter processing means required for each data storage means is the number of filter processing means when the queue length exceeds “600” in any one data storage means. The size M of the acquisition destination list 142 is “50”.
図10に示すように、本実験において比較例のストリームデータ管理システムは、データ蓄積手段の数が50個の場合、入力スループットが「200」を超えたあたりで、必要となるフィルタ処理手段の数が50個をはるかに超えてしまっている。また、データ蓄積手段の数が200個の場合、既に、入力スループットが「5」を超えたあたりで、必要となるフィルタ処理手段の数が50個をはるかに超えてしまっている。つまり、比較例の場合、データ蓄積手段の数の増加にともない、少ない入力スループットであっても必要となるフィルタ処理手段の数が爆発的に増加し、システム全体の性能が大きく劣化することが分かる。 As shown in FIG. 10, the stream data management system of the comparative example in this experiment is that the number of filter processing means required when the input throughput exceeds “200” when the number of data storage means is 50. There are far more than 50. When the number of data storage means is 200, the number of necessary filter processing means has already far exceeded 50 when the input throughput exceeds “5”. In other words, in the case of the comparative example, as the number of data storage means increases, the number of necessary filter processing means increases explosively even with a small input throughput, and the performance of the entire system is greatly deteriorated. .
一方、本実施の形態のストリームデータ管理システム1によれば、データ蓄積手段20の入力スループットが増えた場合でも、必要となるフィルタ処理手段10の数は50個までゆるやかな伸びを示す。つまり、本実施の形態のストリームデータ管理システム1によれば、データ蓄積手段20の数が増加しても、システム全体の処理能力があまり劣化しないことが分かる。
On the other hand, according to the stream
すなわち、本実施の形態のストリームデータ管理システム1におけるフィルタ処理手段10のように、キュー負荷の値が大きいデータ蓄積手段20ほど高確率で選択して、データ取得先となるデータ蓄積手段20を示した取得先リスト142に設定しておき、この取得先リスト142に示される順にデータ蓄積手段20からデータ取得を行った方が、データ蓄積手段20の入力スループットが増加した場合でも、システム全体の処理能力はあまり劣化しないことが分かる。
That is, the
図11は、第2の実施の形態のストリームデータ管理システムを用いた実験結果を示したグラフである。本実験において、ストリームデータ管理システム1で計算されたスリープ時間を変化させ、各データ蓄積手段20の平均待ち行列長と、各フィルタ処理手段10の空振り率と計測した。ここでのスリープ時間は、計算されたスリープ時間{R/(1−R)}Sに対する乗数を0〜1まで変化させたものとした。また、データ蓄積手段20の数は、「30」とし、フィルタ処理手段10のCPUコストは0.1(sec)とした。図11に示すように、計算されたスリープ時間に対する乗数が「1」の場合、つまり、計算された{R/(1−R)}Sそのものである場合、空振り率は限りなく「0」に近づくが、平均待ち行列長が激増する。一方、計算されたスリープ時間に対する乗数が「0」に近づくにつれて、空振り率は増加する。従って、フィルタ処理手段10の空振り率を低減しつつ、データ蓄積手段20の平均待ち行列長の増加も抑制するには、スリープ時間{R/(1−R)}Sに対する乗数として「0.7〜0.8」を採用するのがよいことが分かる。
FIG. 11 is a graph showing a result of an experiment using the stream data management system according to the second embodiment. In this experiment, the sleep time calculated in the stream
本実施の形態に係るフィルタ処理手段10、データ蓄積手段20、共有情報管理手段30は、前記したような処理を実行させるプログラムによって実現することができ、そのプログラムをコンピュータによる読み取り可能な記憶媒体(CD−ROM等)に記憶して提供することが可能である。また、そのプログラムを、インターネット等のネットワークを通して提供することも可能である。
The
1 ストリームデータ管理システム
10 フィルタ処理手段(フィルタ処理装置)
11,21 入力部
12,22 処理部
13,23 出力部
14,24 記憶部
20 データ蓄積手段(データ蓄積装置)
30 共有情報管理手段
40 キュー割当手段
50 クライアント
60 出力先
62 蓄積処理部
63 検索処理部
70 検索クライアント
121 選択処理部
122 データ取得処理部
123 フィルタ実行制御部
124 フィルタ処理部
125 取得先リスト作成部
126 キュー負荷テーブル更新部
127 スリープ情報追加部
141 キュー負荷テーブル
142,142a 取得先リスト
DESCRIPTION OF
DESCRIPTION OF
30 Shared
Claims (8)
各種データの入力を受け付ける入力部と、
複数の情報源より送信されたストリームデータを蓄積する1以上のデータ蓄積装置それぞれから、前記入力部経由で、当該データ蓄積装置におけるキュー負荷の値を示したキュー負荷情報を受信し、この受信したキュー負荷情報をキュー負荷テーブルへ格納するキュー負荷テーブル更新部と、
前記データ蓄積装置それぞれのキュー負荷を示した前記キュー負荷テーブルを記憶する記憶部と、
前記キュー負荷テーブルに示されるデータ蓄積装置のうち、そのキュー負荷の値が大きいデータ蓄積装置ほど高確率で選択し、選択した順に前記データ蓄積装置の識別情報を取得先リストに記録し、前記選択したデータ蓄積装置の識別情報を記録した取得先リストを前記記憶部に格納する取得先リスト作成部と、
前記取得先リストに示される順に前記ストリームデータの取得先となる前記データ蓄積装置を選択する選択処理部と、
前記選択されたデータ蓄積装置から、前記ストリームデータを取得するデータ取得処理部と、
前記取得したストリームデータに対しフィルタ処理を実行するフィルタ処理部と、
前記フィルタ処理後のストリームデータを出力する出力部とを備えることを特徴とするフィルタ処理装置。 The filter processing device used in a stream data management system that performs filtering of stream data by a plurality of filter processing devices,
An input unit for receiving input of various data;
The queue load information indicating the value of the queue load in the data storage device is received from each of the one or more data storage devices that store the stream data transmitted from a plurality of information sources via the input unit. A queue load table update unit for storing queue load information in the queue load table;
A storage unit for storing the queue load table indicating the queue load of each of the data storage devices;
Among the data storage devices shown in the queue load table, a data storage device having a larger queue load value is selected with a higher probability, and the identification information of the data storage device is recorded in the acquisition destination list in the selected order, and the selection is performed. An acquisition destination list creation unit that stores an acquisition destination list in which the identification information of the data storage device is recorded in the storage unit;
A selection processing unit that selects the data storage device that is the acquisition destination of the stream data in the order shown in the acquisition destination list;
A data acquisition processing unit for acquiring the stream data from the selected data storage device;
A filter processing unit that performs a filtering process on the acquired stream data;
And an output unit that outputs the stream data after the filtering process.
前記フィルタ処理装置それぞれのフィルタ処理能力の合計値Pと、前記キュー負荷テーブルに示されるデータ蓄積装置それぞれのキュー負荷の合計値Sとの差(P−S)が、所定の閾値P×εを超えるとき、前記取得先リストに、前記データ取得処理部に前記データ蓄積装置からストリームデータを取得させないスリープ時間を示したスリープ情報を設定するスリープ情報追加部をさらに備え、
前記選択処理部が、前記取得先リストから前記スリープ情報を読み出したとき、
前記データ取得処理部は、
前記読み出したスリープ情報に示されるスリープ時間が経過するまで前記ストリームデータを取得しないことを特徴とする請求項1または請求項2に記載のフィルタ処理装置。 The storage unit stores a total value P of filter processing capacities of filter processing devices used in the stream data management system,
The difference (PS) between the total value P of the filter processing capabilities of the respective filter processing devices and the total value S of the queue loads of the respective data storage devices indicated in the queue load table is a predetermined threshold value P × ε. A sleep information adding unit that sets sleep information indicating a sleep time during which the data acquisition processing unit does not acquire stream data from the data storage device in the acquisition destination list,
When the selection processing unit reads the sleep information from the acquisition destination list,
The data acquisition processing unit
3. The filter processing apparatus according to claim 1, wherein the stream data is not acquired until a sleep time indicated by the read sleep information elapses.
前記スリープ情報追加部は、
前記スリープ時間の合計値が、前記(P−S)×(0.7〜0.8)となるよう、前記取得先リストに前記スリープ情報を設定することを特徴とする請求項3に記載のフィルタ処理装置。 The value of ε is 0.2 to 0.3,
The sleep information adding unit
The sleep information is set in the acquisition source list so that a total value of the sleep times becomes (PS) × (0.7 to 0.8). Filter processing device.
前記取得先リストに前記スリープ情報を設定するとき、前記スリープ時間の合計値を、前記取得先リストに設定されるデータ取得の回数で割った値を、前記取得先リスト上で前記取得先となるデータ蓄積装置の識別情報それぞれの後に設定することを特徴とする請求項3または請求項4に記載のフィルタ処理装置。 The sleep information adding unit
When setting the sleep information in the acquisition destination list, a value obtained by dividing the total value of the sleep time by the number of data acquisitions set in the acquisition destination list becomes the acquisition destination on the acquisition destination list. 5. The filter processing device according to claim 3, wherein the filter processing device is set after each identification information of the data storage device.
前記フィルタ処理装置へデータを送出したとき、その時刻を記録し、前記フィルタ処理装置において当該データのフィルタ処理を完了すると、その旨の通知を受信し、当該フィルタ処理装置にデータを送出してから前記通知を受信するまでの時間の平均値を計算し、この計算した平均値を前記送出したデータ数で割って、前記データ蓄積装置から送出されたデータの前記フィルタ処理装置におけるデータ1個あたりの平均処理時間として記録し、
前記データ蓄積装置における(1)入力スループットおよび(2)前記データ蓄積装置から送出されたデータの前記フィルタ処理装置におけるデータ1個あたりの平均処理時間の少なくとも一方が、所定の閾値以上に変化したとき、前記フィルタ処理装置へ、前記データ蓄積装置におけるキュー負荷の値を示した前記キュー負荷情報を送信することを特徴とするデータ蓄積装置。 A data storage device that transmits the stream data to the filter processing device according to any one of claims 1 to 5,
When data is sent to the filter processing device, the time is recorded, and when the filter processing of the data is completed in the filter processing device, a notification to that effect is received and the data is sent to the filter processing device. The average value of the time until the notification is received is calculated, the calculated average value is divided by the number of transmitted data, and the data sent from the data storage device per data in the filter processing device is calculated. Record as average processing time,
When at least one of (1) input throughput in the data storage device and (2) average processing time per data in the filter processing device of data sent from the data storage device changes to a predetermined threshold value or more The data storage device, wherein the queue load information indicating a queue load value in the data storage device is transmitted to the filter processing device.
前記データ蓄積装置それぞれから、入力部経由で、当該データ蓄積装置におけるキュー負荷を示したキュー負荷情報を受信し、この受信したキュー負荷情報を前記記憶部のキュー負荷テーブルへ格納するステップと、
前記キュー負荷テーブルに示されるデータ蓄積装置のうち、そのキュー負荷の値が大きいデータ蓄積装置ほど高確率で選択し、この選択したデータ蓄積装置の識別情報を順次取得先リストに記録し、前記選択したデータ蓄積装置の識別情報を記録した取得先リストを前記記憶部に格納するステップと、
前記取得先リストに示される順に前記ストリームデータの取得先となる前記データ蓄積装置を選択するステップと、
前記選択されたデータ蓄積装置から、前記ストリームデータを取得するステップと、
前記取得したストリームデータに対しフィルタ処理を実行するステップと、
前記フィルタ処理後のストリームデータを出力部経由で出力するステップとを実行することを特徴とするフィルタ処理方法。 A storage unit for storing a queue load table indicating a queue load value of each of one or more data storage devices that store stream data transmitted from a plurality of information sources is provided, and a plurality of filter processing devices filter stream data The filter processing device used in the stream data management system for performing
Receiving queue load information indicating the queue load in the data storage device from each of the data storage devices via the input unit, and storing the received queue load information in the queue load table of the storage unit;
Among the data storage devices shown in the queue load table, a data storage device having a larger queue load value is selected with higher probability, and identification information of the selected data storage device is sequentially recorded in the acquisition destination list, and the selection is performed. Storing an acquisition destination list in which the identification information of the data storage device is recorded in the storage unit;
Selecting the data storage device that is the acquisition destination of the stream data in the order shown in the acquisition destination list;
Obtaining the stream data from the selected data storage device;
Performing a filtering process on the acquired stream data;
And a step of outputting the stream data after the filtering process via an output unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007277370A JP4714202B2 (en) | 2007-10-25 | 2007-10-25 | Filter processing apparatus, filter processing method, and filter processing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007277370A JP4714202B2 (en) | 2007-10-25 | 2007-10-25 | Filter processing apparatus, filter processing method, and filter processing program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009104513A true JP2009104513A (en) | 2009-05-14 |
JP4714202B2 JP4714202B2 (en) | 2011-06-29 |
Family
ID=40706103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007277370A Active JP4714202B2 (en) | 2007-10-25 | 2007-10-25 | Filter processing apparatus, filter processing method, and filter processing program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4714202B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011164734A (en) * | 2010-02-05 | 2011-08-25 | Nippon Telegr & Teleph Corp <Ntt> | System and method for processing stream data, data storage device, and program |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6190253A (en) * | 1984-10-09 | 1986-05-08 | Fujitsu Ltd | Information processing method and its device using system with queue |
JPS63214046A (en) * | 1987-03-02 | 1988-09-06 | Matsushita Electric Ind Co Ltd | Communication control equipment |
JPH05265781A (en) * | 1991-12-31 | 1993-10-15 | Internatl Business Mach Corp <Ibm> | Multimedia data processing system |
JP2003298661A (en) * | 2002-04-02 | 2003-10-17 | Matsushita Electric Ind Co Ltd | Stream data processing equipment, method therefor, program and medium |
-
2007
- 2007-10-25 JP JP2007277370A patent/JP4714202B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6190253A (en) * | 1984-10-09 | 1986-05-08 | Fujitsu Ltd | Information processing method and its device using system with queue |
JPS63214046A (en) * | 1987-03-02 | 1988-09-06 | Matsushita Electric Ind Co Ltd | Communication control equipment |
JPH05265781A (en) * | 1991-12-31 | 1993-10-15 | Internatl Business Mach Corp <Ibm> | Multimedia data processing system |
JP2003298661A (en) * | 2002-04-02 | 2003-10-17 | Matsushita Electric Ind Co Ltd | Stream data processing equipment, method therefor, program and medium |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011164734A (en) * | 2010-02-05 | 2011-08-25 | Nippon Telegr & Teleph Corp <Ntt> | System and method for processing stream data, data storage device, and program |
Also Published As
Publication number | Publication date |
---|---|
JP4714202B2 (en) | 2011-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5815512B2 (en) | Resource management method, computer system, and program | |
CN104462225B (en) | The method, apparatus and system of a kind of digital independent | |
US20170346893A1 (en) | Peer-to-peer data migration | |
JP6972714B2 (en) | Data acquisition programs, equipment, and methods | |
EP3349130B1 (en) | Data compression method and storage system | |
JP2012079242A (en) | Composite event distribution device, composite event distribution method and composite event distribution program | |
JP5895944B2 (en) | Management device, management program, and management method | |
JP5218985B2 (en) | Memory management method computer system and program | |
JP2010231502A (en) | Job processing method, computer-readable recording medium having stored job processing program, and job processing system | |
JP2023505783A (en) | GPU packet aggregation system | |
JP4714202B2 (en) | Filter processing apparatus, filter processing method, and filter processing program | |
US20150277801A1 (en) | Information processing system, control method of information processing system, and recording medium | |
JP2012221217A (en) | Memory management device, memory management method, and control program | |
JP2011108014A (en) | Virtual machine management device, virtual machine management method, and virtual machine management program | |
JP2015225560A (en) | Virtual machine arrangement device, virtual machine arrangement method, and virtual machine arrangement program | |
JP5617586B2 (en) | Information processing program, relay device, and relay management device | |
JP2015094976A (en) | Information processing apparatus, information processing method, and program | |
CN111405313B (en) | Method and system for storing streaming media data | |
JP6204287B2 (en) | Distributed processing method, processing server, and program | |
WO2013065151A1 (en) | Computer system, data transmission method, and data transmission program | |
JPWO2016079786A1 (en) | Computer system and data processing method | |
JP6398737B2 (en) | Log acquisition management program, log acquisition management device, and log acquisition management method | |
JP6235973B2 (en) | server | |
JP5899369B2 (en) | Garbage collection that selects the area to be released based on the update of reference source information | |
CN107087010B (en) | Intermediate data transmission method and system and distributed system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090128 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100819 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100824 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101014 |
|
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: 20110322 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110325 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4714202 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |