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

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

Info

Publication number
WO2012056732A1
WO2012056732A1 PCT/JP2011/051484 JP2011051484W WO2012056732A1 WO 2012056732 A1 WO2012056732 A1 WO 2012056732A1 JP 2011051484 W JP2011051484 W JP 2011051484W WO 2012056732 A1 WO2012056732 A1 WO 2012056732A1
Authority
WO
WIPO (PCT)
Prior art keywords
performance
stream data
data processing
execution
unit
Prior art date
Application number
PCT/JP2011/051484
Other languages
English (en)
French (fr)
Inventor
隆雄 櫻井
知広 花井
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to US13/820,048 priority Critical patent/US9247025B2/en
Publication of WO2012056732A1 publication Critical patent/WO2012056732A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/38Flow control; Congestion control by adapting coding or compression rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control

Definitions

  • the present invention relates to a stream data processing system, and more particularly to performance guarantee technology such as latency and processing accuracy in stream data processing.
  • a server implements a function of applying an externally defined function created by a user or a vendor to a query, and distributes it to another server in order to guarantee the latency in this, or from the resource usage of the server Although part of the input tuple is deleted, there is a problem that a plurality of servers may be required, or the result obtained by partial reduction of the input data may be different.
  • An object of the present invention is to solve the above problems and provide a performance guarantee method and apparatus for stream data processing that can guarantee latency and further guarantee processing accuracy while ensuring real time performance.
  • a performance guarantee method for stream data processing of a computer provided with a processing unit and an interface unit, comprising a plurality of execution methods having different processing capabilities for stream data processing. Leave The processing unit predicts a performance value from the amount of unprocessed input data when performing stream data processing on input data received via the interface unit, and satisfies the required performance value based on the predicted performance value. An execution method is determined, switched to the determined execution method, stream data processing is executed, and a performance guarantee method in stream data processing is provided, which outputs the processing result as output data to an interface unit.
  • an apparatus for guaranteeing performance in stream data processing comprising: an input data receiving unit for receiving input data; a processing unit for executing query processing on input data;
  • the processing unit includes a data transmission unit that outputs the result as output data, and a request input unit that inputs a required performance value.
  • the processing unit includes a plurality of execution methods with different processing performance for query processing, and receives an input data reception unit.
  • the performance value is predicted from the amount of unprocessed input data, and based on the predicted performance value, the execution method satisfying the required performance value is determined and determined.
  • Provides a performance guarantee device for stream data processing configured to execute query processing according to the execution method and output the processing result as output data to the data transmission unit.
  • the amount of data in the queue at that time, the operation time, and the processing accuracy are evaluated for the execution method of each calculation used in query processing.
  • the final processing accuracy by the combination of each calculation method is also evaluated. This evaluation may be performed in advance or may be accumulated during execution. Then, during execution, if the amount of data in the queue increases for some reason, and it is likely to be larger than the required latency, it is changed to a set of calculation methods that reduce the latency within a range that allows the final quality. Conversely, if the latency is likely to be much lower than the required latency with reduced accuracy, change to a set of calculation methods with high processing accuracy.
  • FIG. 2 is a diagram showing an example of the configuration of a computer environment in which a stream data processing server is used according to the first embodiment. It is a figure which shows an example of a structure of a stream data processing server based on a 1st Example.
  • FIG. 7 is a diagram showing an example of a performance guarantee software function in the stream data processing system according to the first embodiment. It is a figure which shows an example of the data processing definition based on a 1st Example.
  • FIG. 5 is a diagram showing an example of a function having a plurality of execution methods used in the data processing definition shown in FIG. 4; It is a figure which shows an example which put in order the several execution system in one function based on a 1st Example.
  • FIG. 16 is a diagram illustrating an example of the determination of whether the execution method is applicable by the latency evaluation unit according to the first embodiment.
  • FIG. 7 is a diagram showing a flowchart showing switching operation of the execution method in the stream data processing system according to the first embodiment.
  • FIG. 14 is a flowchart showing an operation of selecting a valid execution method in the stream data processing system according to the second embodiment. It is a figure which shows an example of the set of the selected effective execution system based on a 2nd Example. It is a figure which shows an example of the evaluation result with respect to each effective execution system of several functions based on a 2nd Example. It is a figure which shows an example of the execution system switching time in a stream data processing system based on a 2nd Example.
  • FIG. 14 is a flowchart showing a switching operation of the execution method in consideration of the required accuracy and the execution method switching time according to the second embodiment. It is a figure which shows an example of recording of the switching time of the execution system based on a 2nd Example. It is a figure which shows an example of GUI (Graphical User Interface) which sets request
  • GUI Graphic User Interface
  • a stream data processing server 100 and computers 101, 102, and 103 are connected to a network 104.
  • the stream data processing server 100 receives data 108 from the computer 102 operating the data source 107 via the network 104, and transmits data 110 of the processing result to the result utilization application 109 on the computer 103.
  • a query registration command execution interface 105 for registering a query for stream data processing operates. Any two or three of these computers 101, 102, 103 can be configured by one computer, or can be integrated into the stream data processing server 100.
  • the stream data processing server 100 includes a computer 200, and the computer 200 includes a memory 202 which is a storage unit, a central processing unit (Central Processing Unit: CPU) 201 which is a processing unit, An interface (I / F) 204, a storage unit 203 which is a storage unit, and a bus 205 connecting them.
  • a stream data processing system 206 is disposed on the memory 202, which defines the logical operation of stream data processing.
  • the stream data processing system 206 is an executable image that can be interpreted and executed by the CPU 201 as described in detail later.
  • the computer 200 constituting the stream data processing server 100 is connected to an external network 104 via a network I / F 204 which is an interface unit.
  • the stream data processing server 100 may include a plurality of computers without being limited to one, one computer configuration will be illustrated and described here.
  • the stream data processing system 206 constructs a query graph that can execute stream data processing according to this definition inside itself. Thereafter, when the computer 200 constituting the stream data processing server 100 receives the data 108 transmitted by the data source 107 operating on the computer 102 connected to the network 104, it processes the data according to this query graph, and results data 110 is generated and transmitted to the result utilization application 109 operating on the computer 103.
  • the storage 203 stores the stream data processing system 206 as well as the query 106 once received. The stream data processing system 206 can also load this definition from the storage 203 at startup and construct a query graph.
  • the configuration of the stream data processing server of this embodiment described here is an example, and there is no need to have one computer, and it may be configured by a plurality of computers, and the CPUs 201 which are processing units of the computer are the same. It may be configured by two processors on a computer, and further, the two processors may be two calculation cores in one multi-core CPU.
  • the server may have any configuration as long as it includes at least a processing unit, a storage unit, and an interface unit.
  • FIG. 3 is a diagram showing a functional block configuration of software that executes the method for guaranteeing the performance of the stream data processing system according to the first embodiment, using FIG. 3.
  • blocks with thick lines indicate various software functions executed by the CPU 201 which is a processing unit of the computer 200
  • blocks with thin lines indicate various data formed on the memory 202 or the like when the software is executed.
  • the storage area of is schematically shown.
  • the functional block configuration diagram of this software is also used as the diagram showing the software functional block configuration of the stream data processing system according to the second embodiment, and as described below, some of the functional blocks and data are It should be noted that it is not used in the first embodiment.
  • the stream data processing system 206 includes an input data reception unit 301 for receiving input data 108, a query reception / analysis unit 306 for receiving and analyzing a user-defined query 106 and an externally defined function 305, a query graph and an operator In the query execution work area 308, etc., the query reception / analysis section 306, the query execution section 302 which executes the query based on the query execution work area 308 and the input data 108, and the request latency 310 which is the required performance value
  • the stream data processing system 206 receives the user request 309 consisting of the request latency 310, the request input unit 312, the execution method determination unit 313, the time when the data is input from the input data reception unit, and the capacity of the queue 319 at that time.
  • the execution method of the function used in processing the data is received from the query execution unit 302, and the passing time at which the data processed by the output data transmission unit 304 is output is received,
  • the execution result acquisition unit 318 and the execution result acquisition unit 318 measure the latency from the difference between the output time of the data and the input time, and record the measured latency together with the information on the capacity of the queue and the method used.
  • Execution method determination unit that determines a function that satisfies the user request 309 received by the request input unit 312 based on the recorded information Equipped with a 13.
  • the input data receiving unit 301, the output data transmitting unit 304, and the request input unit 312 may be collectively referred to as an interface unit for convenience, but this interface unit corresponds to the interface unit of FIG.
  • the stream data processing system may be the same as that of the stream data processing system 100.
  • the stream data processing system 100 preferably operates on the stream data processing system 100 itself.
  • the input data reception unit 301 holds unprocessed data of the stream data processing system 206.
  • the query reception / analysis unit 306 includes an external definition function incorporating unit 307 that incorporates the external definition function 305 into the query execution work area 308.
  • the query execution work area 308 includes an operator 1 to an operator 3 indicating individual processing contents.
  • operator 1 further includes embedded function 1
  • embedded function 1 includes methods 1A, 1B, and 1C
  • operator 2 further includes embedded function 2
  • embedded function 2 includes methods 2A, 2B, and 2C.
  • the built-in functions 1A, 1B, and 1C are a plurality of functions that perform the same operation, but in this embodiment, the calculation accuracy and the operation time are different. The same applies to the built-in functions 2A, 2B and 2C of the operator 2.
  • the query execution unit 302 includes an execution method switching unit 303 that dynamically changes the method of the function used in the execution of the query according to the determination of the execution method determination unit 313. Also, the execution method determination unit 313 receives the capacity of the queue 319 from the input data reception unit, and predicts the latency when using each method of the function from the past information recorded by the execution result acquisition unit 318. And a latency evaluation unit 315 that evaluates available schemes from the prediction of the latency prediction unit 314 and the user request latency 310.
  • the request calculation accuracy 311 in the user request 309, the calculation accuracy evaluation unit 316 in the execution method determination unit 313, and the valid method determination unit 317 illustrated in FIG. 3 are parts related to the second embodiment. The description is omitted here for the sake of detailed explanation later.
  • FIG. 4 is a diagram showing an example of data processing definition, and as shown in the figure, the data processing definition 400 is a query that defines two input streams sa and sb, and three queries q1, q2 and q3.
  • 500 of FIG. 5 is a figure which shows an example of a function provided with the several execution system used in the data processing definition shown in FIG.
  • the query reception / analysis unit 306 of the stream data processing system 206 shown in FIG. 3 receives and analyzes the query shown in FIG. 4 and incorporates necessary external definition functions.
  • the data processing definition 400 and the function example 500 shown in FIGS. 4 and 5 are merely examples, and the present invention is not limited thereto.
  • Reference numeral 600 in FIG. 6 is a table for holding operation times corresponding to a plurality of execution methods, which the stream data processing system of this embodiment is equipped to execute a predetermined function.
  • a predetermined function it is illustrated as an example of a function sine (sin).
  • the operation time of the method a, the method b and the method c is short, medium and long, respectively.
  • FIG. 7 is a graph showing an example of the execution result of each execution method acquired and held by the execution result acquisition unit 318 in the present embodiment.
  • the calculated data amount is shown on the horizontal axis
  • the calculated time is shown on the vertical axis.
  • the solid line indicates the method a
  • the two-dot chain line indicates the method b
  • the broken line indicates the result of the method c.
  • the execution method determination unit 313 receives the request input unit 312 based on the information acquired and held by the execution result acquisition unit 318 as described above.
  • the function satisfying the user requirement 309 which is the required performance value is determined.
  • the execution method switching unit 303 of the query execution unit 302 dynamically changes the method of the function used in the query execution according to the determination of the execution method determination unit 313.
  • the latency prediction unit 318 of the execution method determination unit 313 receives the capacity of the queue 319 of the input data 108 from the input data reception unit 301, and based on the past information recorded by the execution result acquisition unit 318, The latency upon use is predicted, and the latency evaluation unit 315 evaluates available schemes from the prediction of the latency prediction unit 314 and the request latency 310 of the user.
  • the execution method determination unit 313 of the stream data processing system 206 determines a function that satisfies the user request 309 received by the request input unit 312.
  • 800 indicates an example of the queue capacity provided by the input data receiving unit 301 and the required performance value provided by the request input unit 312 according to the present embodiment.
  • the required performance value indicates the required latency.
  • 801 in FIG. 8B shows an example of predicted performance values of each scheme predicted from the queue capacity to which the latency prediction unit 314 is given and the execution result held by the execution result acquisition unit 318.
  • the predicted performance value indicates the operation time required for each execution method.
  • 802 indicates an example of the evaluation result after evaluating the applicability of the execution method by the latency evaluation unit 315.
  • the data capacity of the queue 319 is 10000
  • the request latency 310 from the user is 40 ms
  • the operation time of methods a, b and c is 14 ms, 40 ms, 60 ms.
  • FIG. 9 is a flowchart showing a dynamic switching operation of a plurality of execution methods by the execution method determination unit 313 and the query execution unit 302 of the stream data processing system 206 of this embodiment.
  • the execution method determination unit 313 determines whether there is a problem with latency (901). If there is no problem in latency (N), it is judged whether the execution result acquisition unit 318 already has measurement results of a plurality of methods (902), and if there is a problem (Y), the process ends (910).
  • step 902 when there is no measurement result of all the methods (N), it is checked whether the tendency information of the method is stored in advance in the execution result acquisition unit 318 or the like (907). In this case, a method capable of solving the current problem is selected from the tendency information of the method concerned, and switching of the method is changed (908). If there is no trend information, in the present embodiment, a method is selected at random from the unmeasured methods and the change is executed (909). In addition, the tendency information of this method can be held in the execution result acquisition unit 318 or the like as needed at the time of system configuration.
  • the amount of unprocessed input data is in a state where the acquired performance value exceeds the required performance value. It is also possible to configure to make a decision to switch the execution scheme if it increases. Also, it is possible to compare the past performance value held in the execution result acquisition unit 318 with the amount of unprocessed input data and decide to switch to an execution method that satisfies the required performance value. Not even until.
  • the user request 309 which is the required performance value includes the required operation accuracy 311 as the required accuracy, which is used only in the present embodiment.
  • the execution method determination unit 313 includes, in addition to the latency prediction unit 314 and the latency evaluation unit 315, an operation accuracy evaluation unit 316 and an effective method determination unit 317 used in the present embodiment.
  • the execution method determination unit 313 evaluates output data and measures operation accuracy, and the execution result acquisition unit 318 measures the measured latency and operation accuracy. Record and hold the queue capacity and information on the method used. Then, based on the information recorded and held by the execution result acquisition unit 318, the execution method of one or more functions satisfying the user request 309 received by the request input unit 312 is determined.
  • the execution method switching unit 303 of the query execution unit 302 dynamically changes the method of the function used in the execution of the query according to the determination of the execution method determination unit 313. Further, the execution method determination unit 313 receives the capacity of the queue 319 from the input data reception unit as in the first embodiment, and the latency when using each method of the function from the past information recorded by the execution result acquisition unit 318
  • the information recorded by the execution result acquisition unit 318 is Operation accuracy evaluation unit 316 which evaluates a method satisfying the required operation accuracy 311, and an effective method determination unit 317 which determines a combination of effective methods when a plurality of built-in functions are used on the query execution work area 308 Are newly equipped.
  • FIG. 10 shows an example of each execution method of a plurality of functions by the latency evaluation unit and the calculation accuracy evaluation unit according to the present embodiment.
  • (A) and (b) of FIG. 10 correspond to the function sin and the function cos, respectively.
  • the method a, the method b, the method c, the method ⁇ , the method ⁇ , and the method ⁇ , as in FIG. 6, the short, middle and long operation time and the accuracy thereof are obtained and held.
  • the accuracy is indicated by an index.
  • FIG. 11 is a flowchart showing an operation of selecting a combination of valid methods by the execution method determination unit 313 when a plurality of built-in functions are used on the query execution work area 308 in the second embodiment.
  • FIG. In the same figure, a plurality of existing functions are examined sequentially as a combination of the function I and the function J (I, J, K each being a natural number of 1 or more). That is, in each mounting method of the function J, the calculation method is better than the mounting method K, and the mounting method with the shortest calculation time is selected (1103).
  • This process is executed for all functions J other than function I (1102, 1104, 1105), for all implementation methods K of function I (1101, 1106, 1107), and for all functions I
  • the process ends (1100, 1108, 1109).
  • FIG. 12 is a figure which shows an example of the set of the effective execution system selected and hold
  • the sets i, ii, iii, iv, v respectively correspond to the illustrated accuracy, and as a result, the function set shown in the column of function 1 and function 2 is selected.
  • FIG. 13 is a graph showing an example of an evaluation result of each effective execution method of a plurality of sets of functions by the latency evaluation unit 315 of the present embodiment shown in FIG. As the accuracy increases, the computation time increases.
  • FIG. 14 is a diagram showing an example of execution method switching time in the stream data processing system of the second embodiment.
  • the switching time is also held by the execution result acquisition unit 318 and the like. In the case of the same figure, it shows that switching time increases as accuracy improves.
  • FIG. 15A shows an example of the queue capacity to which the execution method determination unit 313 is given from the input data reception unit 301, the required performance value given from the request input unit 312, and the required operation accuracy in the present embodiment.
  • An example of the queue capacity given by the latency prediction unit 314, the execution result held by the execution method acquisition unit 318, and the performance value predicted from the execution method switching time is shown, and in the case of the example shown in FIG.
  • An example of determination of applicability of the execution method by the latency evaluation unit 315 and the calculation accuracy evaluation unit 316 is shown.
  • FIG. 15C it is determined that method ii and method iii are applicable in terms of total time and accuracy, and the remaining three methods are determined not to be applicable.
  • FIG. 16 is a diagram showing a flowchart showing switching operation of the execution method by the execution method determination unit 313 and the query execution unit 302 in consideration of the request accuracy and the execution method switching time according to the present embodiment.
  • the processing flow starts (1600).
  • the execution method determination unit 313 determines whether there is no problem with both the latency and the accuracy (1601). If there is a problem (Y), it is checked whether there is an instruction to reduce the latency as much as possible (1602). If there is such an instruction, the process ends (1611).
  • step 1603 when there is no measurement result of all the systems (N), it is checked whether the system tendency information is stored or not as in the first embodiment (1608), and the system tendency information exists From the trend information of the system concerned, the system which solves the current problem is selected and changed (1609). If there is no trend information, it randomly selects from unmeasured methods and executes change (1610).
  • FIG. 17 shows an example of the recording of the switching time of the execution method acquired and held by the execution result acquisition unit 318 of the stream data processing system of the second embodiment.
  • the identification information of each set and the corresponding switching time are held.
  • the data holding at the switching time in this figure is not limited to the second embodiment, and is preferably used also in the first embodiment, but in the case of the first embodiment, identification information of the execution method instead of identification information of a set. It goes without saying that the switching time is reached.
  • FIG. 18 shows an example of GUI (Graphical User Interface) for setting the required performance and the required accuracy in the present embodiment.
  • GUI Graphic User Interface
  • the GUI screen 1800 displays a required performance / accuracy setting screen.
  • a device for displaying such a display screen can be realized by using a normal display device and image display software.
  • Reference numerals 1802 and 1803 denote instruction buttons for optimization execution and setting, respectively.
  • the execution method of calculation for received data is switched and selected based on the amount of data received by the system, using the prediction latency and the calculation accuracy as an index. It is possible to guarantee the latency and the processing accuracy while securing the real time property.
  • the present invention is extremely useful as a stream processing technique for the purpose of guaranteeing latency and further guaranteeing processing accuracy in the field of stream data processing.
  • Stream processing server 101, 102, 103, 200 Computer 104: Network 201: CPU 202: Memory 203: Storage device 204: Network I / F 205: Computer internal bus 206: Stream data processing system 301: Input data reception unit 302: Query execution unit 303: Execution method switching unit 304: Output data transmission unit 305: External definition function 306: Query reception and analysis unit 307: External definition Function incorporation unit 308: Query execution work area 309: User request 310: Request latency 311: Request operation accuracy 312: Request input unit 313: Execution method determination unit 314: Latency prediction unit 315: Latency evaluation unit 316: Calculation accuracy evaluation unit 317 ... Valid method determination unit 318 ... Execution result acquisition unit 319 ... Queue 1800 ... GUI screen 1800 ... Optimization execution execution button 1800 ... Setting execution button

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

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

Claims (15)

  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に記載のストリームデータ処理における性能保証装置であって、
    前記処理部は、
    前記実行方式を切替えた時刻と切替えた前記実行方式を識別する識別情報を保持、出力する、
    ことを特徴とするストリームデータ処理における性能保証装置。
PCT/JP2011/051484 2010-10-25 2011-01-26 ストリームデータ処理における性能保証方法および装置 WO2012056732A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/820,048 US9247025B2 (en) 2010-10-25 2011-01-26 Method and device for guaranteeing performance in stream data processing

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-238782 2010-10-25
JP2010238782A JP5586417B2 (ja) 2010-10-25 2010-10-25 ストリームデータ処理における性能保証方法および装置

Publications (1)

Publication Number Publication Date
WO2012056732A1 true WO2012056732A1 (ja) 2012-05-03

Family

ID=45993475

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/051484 WO2012056732A1 (ja) 2010-10-25 2011-01-26 ストリームデータ処理における性能保証方法および装置

Country Status (3)

Country Link
US (1) US9247025B2 (ja)
JP (1) JP5586417B2 (ja)
WO (1) WO2012056732A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10083465B2 (en) * 2013-09-06 2018-09-25 Facebook, Inc. Allocating information for content selection among computing resources of an online system
JP6244771B2 (ja) * 2013-09-24 2017-12-13 日本電気株式会社 情報処理システム、処理装置、分散処理方法、及び、プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007034375A (ja) * 2005-07-22 2007-02-08 Hitachi Ltd 数値計算ライブラリのチューニングパラメータ算出プログラム及び方法
JP2009122925A (ja) * 2007-11-14 2009-06-04 Toshiba Corp データ処理プログラム、データ処理方法およびデータ処理システム
JP2010206486A (ja) * 2009-03-03 2010-09-16 Sharp Corp 動画像ストリーム復号装置及びその制御方法並びにプログラム、記録媒体

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5408465A (en) * 1993-06-21 1995-04-18 Hewlett-Packard Company Flexible scheme for admission control of multimedia streams on integrated networks
US6006264A (en) * 1997-08-01 1999-12-21 Arrowpoint Communications, Inc. Method and system for directing a flow between a client and a server
US7616640B1 (en) * 1998-12-02 2009-11-10 Cisco Technology, Inc. Load balancing between service component instances
US6944678B2 (en) * 2001-06-18 2005-09-13 Transtech Networks Usa, Inc. Content-aware application switch and methods thereof
US7035210B2 (en) * 2001-07-12 2006-04-25 Telefonaktiebolaget Lm Ericsson (Publ) Media stream delay monitoring for node
JP2003069109A (ja) 2001-08-30 2003-03-07 Sony Corp 磁気抵抗効果型磁気センサ、磁気抵抗効果型磁気ヘッド、磁気再生装置と、磁気抵抗効果型磁気センサおよび磁気抵抗効果型磁気ヘッドの製造方法
JP2006350828A (ja) * 2005-06-17 2006-12-28 Matsushita Electric Ind Co Ltd ストリーム制御装置
US7613848B2 (en) 2006-06-13 2009-11-03 International Business Machines Corporation Dynamic stabilization for a stream processing system
JP2009055327A (ja) * 2007-08-27 2009-03-12 Hitachi Ltd ネットワークシステム
US8228929B2 (en) * 2008-10-24 2012-07-24 Juniper Networks, Inc. Flow consistent dynamic load balancing
KR101519825B1 (ko) * 2008-12-05 2015-05-13 삼성전자주식회사 데이터 처리 장치 및 그 제어 방법
JP5149840B2 (ja) * 2009-03-03 2013-02-20 株式会社日立製作所 ストリームデータ処理方法、ストリームデータ処理プログラム、および、ストリームデータ処理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007034375A (ja) * 2005-07-22 2007-02-08 Hitachi Ltd 数値計算ライブラリのチューニングパラメータ算出プログラム及び方法
JP2009122925A (ja) * 2007-11-14 2009-06-04 Toshiba Corp データ処理プログラム、データ処理方法およびデータ処理システム
JP2010206486A (ja) * 2009-03-03 2010-09-16 Sharp Corp 動画像ストリーム復号装置及びその制御方法並びにプログラム、記録媒体

Also Published As

Publication number Publication date
JP5586417B2 (ja) 2014-09-10
US20130204931A1 (en) 2013-08-08
JP2012094996A (ja) 2012-05-17
US9247025B2 (en) 2016-01-26

Similar Documents

Publication Publication Date Title
US10181981B2 (en) Performance and security management of applications deployed in hosted computing environments
US8751415B2 (en) Visualization for resource capacity management
US9575810B2 (en) Load balancing using improved component capacity estimation
KR102110757B1 (ko) 분산형 저장 시스템의 성능 모니터링
US8024737B2 (en) Method and a system that enables the calculation of resource requirements for a composite application
US10712958B2 (en) Elastic storage volume type selection and optimization engine for public cloud environments
US9197431B2 (en) Matching an autonomic manager with a manageable resource
CN114208126A (zh) 用于配置云存储软件设备的方法和装置
Ahmad et al. Predicting system performance for multi-tenant database workloads
KR20140117905A (ko) 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법
US20180081715A1 (en) Network interface controller-based scheduling of processing tasks in a distributed computing system
JP5112277B2 (ja) 再現処理方法、計算機システムおよびプログラム
WO2013038473A1 (ja) ストリームデータの異常検知方法および装置
WO2012056732A1 (ja) ストリームデータ処理における性能保証方法および装置
US20220050716A1 (en) Virtual machine placement method and virtual machine placement device implementing the same
US8667157B2 (en) Hardware bus redirection switching
KR102269271B1 (ko) 오픈 컴퓨팅 언어 기반의 애플리케이션 실행 방법 및 장치
JP4843379B2 (ja) 計算機システムの開発プログラム
US20040236764A1 (en) Information processing system, method for outputting log data, and computer-readable medium storing a computer software program for the same
JP2013127685A (ja) 情報処理システムおよび運用管理方法
US11748138B2 (en) Systems and methods for computing a success probability of a session launch using stochastic automata
JP5045576B2 (ja) マルチプロセッサシステム及びプログラム実行方法
US9286124B2 (en) Simulating the performance of medical-engineering procedures in a client-server environment
Rao et al. CoSL: A coordinated statistical learning approach to measuring the capacity of multi-tier websites
EP3599547A1 (en) Elastic storage volume type selection and optimization engine for public cloud environments

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11835876

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13820048

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11835876

Country of ref document: EP

Kind code of ref document: A1