JP5169117B2 - Data stream analysis system and apparatus, method and program used therefor - Google Patents

Data stream analysis system and apparatus, method and program used therefor Download PDF

Info

Publication number
JP5169117B2
JP5169117B2 JP2007258397A JP2007258397A JP5169117B2 JP 5169117 B2 JP5169117 B2 JP 5169117B2 JP 2007258397 A JP2007258397 A JP 2007258397A JP 2007258397 A JP2007258397 A JP 2007258397A JP 5169117 B2 JP5169117 B2 JP 5169117B2
Authority
JP
Japan
Prior art keywords
memory
data
memory management
unit
management means
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.)
Expired - Fee Related
Application number
JP2007258397A
Other languages
Japanese (ja)
Other versions
JP2009087189A (en
Inventor
弘司 喜田
暢達 中村
健一郎 藤山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2007258397A priority Critical patent/JP5169117B2/en
Publication of JP2009087189A publication Critical patent/JP2009087189A/en
Application granted granted Critical
Publication of JP5169117B2 publication Critical patent/JP5169117B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)

Description

本発明は、連続して発生する情報を逐次的に解析するデータストリーム解析システム、情報処理装置、メモリ格納方法およびメモリ格納用プログラムに関する。   The present invention relates to a data stream analysis system, an information processing apparatus, a memory storage method, and a memory storage program that sequentially analyze information that occurs continuously.

連続して発生する情報を逐次的に解析するにあたり、その情報を解析するためのメモリ確保に関する技術が、特許文献1や特許文献2に記載されている。   Patent Document 1 and Patent Document 2 describe technologies relating to memory allocation for sequentially analyzing information generated continuously.

特許文献1には、特定ソフトウェアが使用するための専用メモリプールと、主として他のソフトウェアが使用する汎用メモリプールとをメモリ内に備え、特定ソフトウェアに対するメモリ割り当てを行う際に、専用メモリプールの残量が不足している場合に、汎用メモリプールの一部を使用するよう割り当てを行うメモリ割り当て手段を備えた情報処理装置が記載されている。   In Patent Document 1, a dedicated memory pool for use by specific software and a general-purpose memory pool mainly used by other software are provided in the memory, and when the memory is allocated to the specific software, the remaining dedicated memory pool is stored. There is described an information processing apparatus including a memory allocation unit that allocates a part of a general-purpose memory pool when the amount is insufficient.

また、特許文献2には、共有メモリを全CPUに割り当て可能な部分(共用部分)と、所定のCPUにのみ割り当て可能な部分(専用部分)とに分けて管理するメモリ管理システムであって、各CPUのメモリ需要予測量を求めるメモリ需要予測手段と、CPUからのメモリ確保要求に応じてメモリを確保する際に、専用部分のメモリ容量が不足する場合に、需要予測容量分のメモリ量を共用部分から専用部分に移すメモリ確保手段とを備えたメモリ管理システムが記載されている。   Patent Document 2 discloses a memory management system that manages a shared memory divided into a part that can be assigned to all CPUs (shared part) and a part that can be assigned only to a predetermined CPU (dedicated part). Memory demand forecasting means for obtaining the memory demand forecast amount of each CPU, and when securing memory in response to a memory securing request from the CPU, if the memory capacity of the dedicated part is insufficient, the memory amount for the demand forecast capacity is A memory management system is described that includes a memory securing means that moves from a shared part to a dedicated part.

特開平8−339324号公報JP-A-8-339324 特開平10−320358号公報JP-A-10-320358

しかし、大量に、かつ永続的に時々刻々とデータが発生すると、解析用のメモリ確保が追いつかずセンサデータが消失してしまう可能性がある。例えば、センサが検出する情報(以下、センサデータという。)を汎用コンピュータで解析する場合、センサ内部に一時的にセンサデータを保持するためのメモリを備えていたとしても、あくまで一時的であって解析するためにはそのセンサデータを汎用コンピュータのメモリに記憶させる必要がある。なお、複数のセンサのセンサデータを解析する場合には、複数のセンサから発生するセンサデータをそれぞれ汎用コンピュータのメモリに記憶させなければならない。一般に、汎用コンピュータのOSにより提供されるメモリ確保機能は処理が遅く、センサデータの発生頻度によっては、メモリ確保が追いつかずセンサデータが消失してしまう可能性がある。   However, if a large amount of data is generated constantly and constantly, the memory for analysis cannot be secured and the sensor data may be lost. For example, when information detected by a sensor (hereinafter referred to as sensor data) is analyzed by a general-purpose computer, even if a memory for temporarily holding sensor data is provided in the sensor, it is only temporary. In order to analyze, it is necessary to store the sensor data in the memory of a general-purpose computer. When analyzing sensor data of a plurality of sensors, sensor data generated from the plurality of sensors must be stored in a memory of a general-purpose computer. In general, the memory securing function provided by the OS of the general-purpose computer is slow in processing, and depending on the frequency of sensor data generation, the memory securing cannot catch up and the sensor data may be lost.

特許文献1に記載されている情報処理装置で、時々刻々と発生するセンサデータを処理させようとすると、メモリ割り当て手段にアクセスが集中することになる。また、特許文献1に示される情報処理装置の構成では、メモリ割り当て手段がメモリを確保する際に排他制御が必要となる。このため、発生頻度が異なるデータの発生が重なったりすると、それらを処理している間に発生頻度の高いセンサデータのコピー(引き取り)が間に合わなくなり、新たに発生したセンサデータにより上書き消去されてしまう可能性がある。   When the information processing apparatus described in Patent Document 1 is used to process sensor data generated every moment, access concentrates on the memory allocation means. Further, in the configuration of the information processing apparatus disclosed in Patent Document 1, exclusive control is required when the memory allocation unit secures the memory. For this reason, if the occurrence of data with different occurrence frequencies overlaps, copying of the sensor data with a high occurrence frequency (processing) will not be in time while processing the data, and the data will be overwritten and erased by newly generated sensor data. there is a possibility.

なお、特許文献1に記載されている技術を利用して、メモリ割り当て手段をセンサ数だけ分散化させた場合には、メモリ容量の管理が煩雑となり、メモリの使用効率が低下する場合が生じる。   Note that when the memory allocation means is distributed by the number of sensors using the technique described in Patent Document 1, the management of the memory capacity becomes complicated and the use efficiency of the memory may be reduced.

なお、特許文献2に記載されているメモリ管理システムでは、各CPUが排他処理をすることなく確保できるメモリ領域を予め用意しておき、そのメモリ容量が足りなくなった場合に共用部分から需要予測容量分のメモリ量を移すことで、共用部分へのアクセスに伴う排他処理をなるべく少なくしている。しかし、特許文献2に記載されているメモリ管理システムは、マルチCPUにおける各CPUの処理の最適化が目的であって、何千,何万といったセンサから発生されるセンサデータに対するメモリ確保処理を高速に行うということは考慮されていない。例えば、特許文献2に記載されている方法をセンサデータに対するメモリ確保処理で利用しようとすると、各センサデータに対するメモリ確保処理を平等に高速にすることはできるが、頻繁にデータが更新されないセンサに対しても専用メモリ領域を割り当てることになる。このため、メモリ管理のためのメモリ領域が必要であることからも、メモリの使用効率を著しく低下させることになる。   In the memory management system described in Patent Document 2, a memory area that each CPU can secure without performing an exclusive process is prepared in advance, and when the memory capacity becomes insufficient, the demand forecast capacity starts from the shared portion. By shifting the amount of memory, the exclusion process associated with accessing the shared portion is reduced as much as possible. However, the memory management system described in Patent Document 2 is aimed at optimizing the processing of each CPU in a multi-CPU, and performs high-speed memory allocation processing for sensor data generated from thousands or tens of thousands of sensors. This is not taken into account. For example, if the method described in Patent Document 2 is used in the memory securing process for sensor data, the memory securing process for each sensor data can be speeded up evenly, but the sensor is not frequently updated. In contrast, a dedicated memory area is allocated. For this reason, since the memory area for memory management is required, the memory use efficiency is significantly reduced.

そこで、本発明は、連続して発生する情報を逐次的に解析するデータストリーム解析システムにおいて、メモリの使用効率と実行速度とのバランスをとることができるようにすることを目的とする。なお、本発明において、データストリームとは、時々刻々と変化するデータの発生をデータの流れとして捉えたものであって、値を変化させながら永続的に(連続して)発生するデータの集合体を指す。なお、値を変化させながら永続的にデータを発生させる発生源が複数ある場合には、複数の発生源から発生するデータの集合体を指す場合もある。   Accordingly, an object of the present invention is to make it possible to balance the memory usage efficiency and the execution speed in a data stream analysis system that sequentially analyzes continuously generated information. In the present invention, a data stream is a collection of data that is generated permanently (continuously) while changing its value as a data flow, which is an occurrence of data that changes every moment. Point to. In addition, when there are a plurality of generation sources that permanently generate data while changing the value, it may indicate a collection of data generated from the plurality of generation sources.

本発明によるデータストリーム解析システムは、連続して発生するデータを解析するデータストリーム解析システムであって、解析用にデータを格納するためのメモリ領域が複数のメモリプールとして割り当てられるデータ記憶手段と、複数のメモリプールのうちいずれか1つのメモリプールと1対1に対応し、対応づけられた一のメモリプールに対する手続きをとりまとめて行う複数のメモリ管理手段と、予め区分けされたデータの種類別に独立して動作し、解析対象とするデータが発生すると、メモリ領域に該データを格納する1つ以上のメモリ格納手段と、メモリ格納手段とメモリ管理手段との対応づけを示す情報を記憶する対応関係記憶手段と、メモリ格納手段とメモリ管理手段との対応づけを最適化する最適化手段とを備え、複数のメモリ管理手段は、排他制御を行った上でメモリプールに対する手続きを行う共有メモリ管理手段と、排他制御を行わずにメモリプールに対する手続きを行う専用メモリ管理手段とに分けられ、最適化手段は、種類別のデータの発生頻度、共有メモリ管理手段として機能するメモリ管理手段の数および専用メモリ管理手段として機能するメモリ管理手段の数に基づいて、メモリ格納手段とメモリ管理手段との対応づけを最適化し、対応関係記憶手段は、最適化手段によって最適化されたメモリ格納手段とメモリ管理手段との対応づけを示す情報を記憶し、メモリ格納手段は、解析対象とするデータが発生すると、当該メモリ格納手段に対応づけられているメモリ管理手段を用いて複数のメモリプールのいずれかから確保したメモリ領域に該データを格納することを特徴とする。 A data stream analysis system according to the present invention is a data stream analysis system for analyzing continuously generated data, and a data storage means in which memory areas for storing data for analysis are allocated as a plurality of memory pools; A plurality of memory management means that correspond one-to-one with any one of the plurality of memory pools, and that collectively perform procedures for the associated memory pool, and are independent for each type of pre-divided data When the data to be analyzed is generated, one or more memory storage means for storing the data in the memory area, and the correspondence relationship for storing information indicating the correspondence between the memory storage means and the memory management means comprising storage means, and optimizing means for optimizing the correspondence between the memory storage means and the memory management unit, multiple Memory management means are divided into a dedicated memory management unit for performing a shared memory management means for performing procedures with respect to the memory pool after performing exclusive control, the procedure for the memory pool without exclusive control, optimization means, Optimize the correspondence between memory storage means and memory management means based on the frequency of data generation by type, the number of memory management means functioning as shared memory management means, and the number of memory management means functioning as dedicated memory management means The correspondence relationship storage means stores information indicating the correspondence between the memory storage means optimized by the optimization means and the memory management means. When the data to be analyzed is generated , the memory storage means The memory area secured from any of the plurality of memory pools using the memory management means associated with the storage means Characterized by storing over data.

また、本発明による情報処理装置は、連続して発生するデータを解析するために用いる情報処理装置であって、解析用にデータを格納するためのメモリ領域が複数のメモリプールとして割り当てられるデータ記憶手段と、複数のメモリプールのうちいずれか1つのメモリプールと1対1に対応し、対応づけられた一のメモリプールに対する手続きをとりまとめて行う複数のメモリ管理手段と、予め区分けされたデータの種類別に独立して動作し、解析対象とするデータが発生すると、メモリ領域に該データを格納する1つ以上のメモリ格納手段と、メモリ格納手段と、メモリ管理手段との対応づけを示す情報を記憶する対応関係記憶手段と、メモリ格納手段とメモリ管理手段との対応づけを最適化する最適化手段とを備え、複数のメモリ管理手段は、排他制御を行った上でメモリプールに対する手続きを行う共有メモリ管理手段と、排他制御を行わずにメモリプールに対する手続きを行う専用メモリ管理手段とに分けられ、最適化手段は、種類別のデータの発生頻度、共有メモリ管理手段として機能するメモリ管理手段の数および専用メモリ管理手段として機能するメモリ管理手段の数に基づいて、メモリ格納手段とメモリ管理手段との対応づけを最適化し、対応関係記憶手段は、最適化手段によって最適化されたメモリ格納手段とメモリ管理手段との対応づけを示す情報を記憶し、メモリ格納手段は、解析対象とするデータが発生すると、当該メモリ格納手段に対応づけられているメモリ管理手段を用いて複数のメモリプールのいずれかから確保したメモリ領域に該データを格納することを特徴とする。 An information processing apparatus according to the present invention is an information processing apparatus used for analyzing continuously generated data, and a data storage in which memory areas for storing data for analysis are allocated as a plurality of memory pools Means, a plurality of memory management means for performing one-to-one correspondence with any one of the plurality of memory pools and performing a procedure for the associated one memory pool, and for pre-sorted data When data to be analyzed operates independently for each type and data to be analyzed is generated, information indicating the correspondence between one or more memory storage means for storing the data in the memory area, the memory storage means, and the memory management means is displayed. includes a correspondence relationship storing means for storing, and optimizing means for optimizing the correspondence between the memory storage means and the memory management unit, a plurality of memory management Stage is divided into a dedicated memory management unit for performing a shared memory management means for performing procedures with respect to the memory pool after performing exclusive control, the procedure for the memory pool without exclusive control, optimization means, Type Optimize the correspondence between the memory storage means and the memory management means based on the occurrence frequency of the data, the number of memory management means functioning as the shared memory management means and the number of memory management means functioning as the dedicated memory management means, The correspondence relationship storage means stores information indicating the correspondence between the memory storage means optimized by the optimization means and the memory management means, and when the data to be analyzed is generated, the memory storage means The data is stored in a memory area secured from one of a plurality of memory pools using the memory management means associated with And wherein the Rukoto.

また、本発明によるメモリ格納方法は、連続して発生するデータを格納するためのメモリ領域が、複数のメモリプールに分かれて割り当てられる記憶手段と、複数のメモリプールのうちいずれか1つのメモリプールと1対1に対応づけられ、対応づけられた1つのメモリプールに対する手続きをとりまとめて行う複数のメモリ管理手段とを備えた情報処理装置に適用されるメモリ格納方法であって、複数のメモリ管理手段を、排他制御を行った上でメモリプールに対する手続きを行う共有メモリ管理手段と、排他制御を行わずにメモリプールに対する手続きを行う専用メモリ管理手段とに分けた上で、種類別のデータの発生頻度、共有メモリ管理手段として機能するメモリ管理手段の数および専用メモリ管理手段として機能するメモリ管理手段の数に基づいて、予め区分けされたデータの種類別に独立して動作するメモリ格納手段とモリ管理手段との対応づけを最適化し、最適化されたメモリ格納手段とメモリ管理手段との対応づけを示す情報を記憶し、メモリ格納手段が、該メモリ格納手段が処理対象としているデータを受け付けた際に、当該メモリ格納手段と対応づけられているメモリ管理手段を用いて確保したメモリ領域に、該データを格納することを特徴とする。 In addition, the memory storage method according to the present invention includes a storage unit in which memory areas for storing continuously generated data are divided and assigned to a plurality of memory pools, and any one of the plurality of memory pools. Storage method applied to an information processing apparatus that includes a plurality of memory management means that perform one-to-one correspondence with a memory pool that is associated with each other, and that performs a plurality of memory management units. The method is divided into a shared memory management means that performs a procedure for a memory pool after performing exclusive control and a dedicated memory management means that performs a procedure for a memory pool without performing exclusive control . Frequency of occurrence, number of memory management means functioning as shared memory management means, and memory management means functioning as dedicated memory management means Based on the number of, correspondence between the memory storage means and to optimize the association between memory management unit, optimized memory storage means and memory management means operating independently of each type of data previously divided stores information indicating, memory storage means, upon receiving the data those said memory storage means is processed, the memory area secured by using the memory management means are associated with the memory storage means The data is stored.

また、本発明によるメモリ格納用プログラムは、連続して発生するデータを解析する情報処理装置に適用されるメモリ格納用プログラムであって、連続して発生するデータを格納するためのメモリ領域が、複数のメモリプールに分かれて割り当てられる記憶手段を備えたコンピュータに、予め区分けされたデータの種類別に独立して動作するメモリ格納処理複数のメモリプールのいずれか1つと1対1に対応づけられ、対応づけられた1つのメモリプールに対する手続きをとりまとめて行う複数のメモリ管理処理、複数のメモリ管理処理を、排他制御を行った上でメモリプールに対する手続きを行う共有メモリ管理処理と、排他制御を行わずにメモリプールに対する手続きを行う専用メモリ管理処理とに分けた上で、種類別のデータの発生頻度、共有メモリ管理手段として機能するメモリ管理手段の数および専用メモリ管理手段として機能するメモリ管理手段の数に基づいて、予め区分けされたデータの種類別に独立して動作するメモリ格納処理と前記メモリ管理処理との対応づけを最適化する最適化処理、および最適化された前記メモリ格納処理と前記メモリ管理処理との対応づけを示す情報を記憶する処理を実行させ、メモリ格納処理で、当該メモリ格納処理が対象とする種類のデータを受け付けた際に、前記複数のメモリプールのいずれか1つと1対1に対応するメモリ管理処理のうち、当該メモリ格納処理と対応づけられているメモリ管理処理を用いて確保したメモリ領域に、該データを格納させ、メモリ管理処理で、設定に応じて、排他制御を行った上で対応づけられている1のメモリプールに対する手続きを行わせるか、または排他制御を行わないで対応づけられている1のメモリプールに対する手続きを行わせることを特徴とする。 The memory storage program according to the present invention is a memory storage program applied to an information processing apparatus that analyzes continuously generated data, and a memory area for storing continuously generated data is: A memory storage process that operates independently for each type of data that has been pre-divided into a computer having storage means that is divided and assigned to a plurality of memory pools, and one-to-one correspondence with any one of the plurality of memory pools , A plurality of memory management processes that collectively perform a procedure for one associated memory pool, a plurality of memory management processes , a shared memory management process that performs a procedure for a memory pool after performing an exclusive control, and an exclusive control Generation of data by type after dividing into dedicated memory management processing that performs procedures for memory pools without performing A memory storing process that operates independently for each type of data divided in advance based on the number of memory management means functioning as shared memory management means and the number of memory management means functioning as dedicated memory management means, and the memory An optimization process for optimizing the correspondence with the management process, and a process for storing information indicating the correspondence between the optimized memory storage process and the memory management process are executed. Among the memory management processes corresponding to any one of the plurality of memory pools when receiving the type of data targeted for the storage process, the memory management process associated with the memory storage process The data is stored in the memory area secured using, and is associated with exclusive control according to the settings in the memory management process. Or to perform procedures for one memory pool are, or, characterized in that to perform the procedure for a memory pool is associated not perform exclusive control.

本発明によれば、連続して発生する情報を逐次的に解析するデータストリーム解析システムにおいて、メモリの使用効率と実行速度とのバランスをとることができる。   According to the present invention, it is possible to balance the memory usage efficiency and the execution speed in a data stream analysis system that sequentially analyzes information that occurs continuously.

実施形態1.
以下、本発明の実施形態を図面を参照して説明する。図1は、本発明の第1の実施形態におけるデータストリーム解析システムの構成例を示す説明図である。図1に示すデータストリーム解析システムは、データ発生源から連続して発生するデータを逐次的に解析するためのコンピュータ100を備え、コンピュータ100は、複数のメモリ格納手段11(11−1〜11−n)と、複数のメモリ管理手段12(12−1〜12−m)と、対応関係記憶手段13と、データ解析手段14とを含む。
Embodiment 1. FIG.
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is an explanatory diagram showing a configuration example of a data stream analysis system according to the first embodiment of the present invention. The data stream analysis system shown in FIG. 1 includes a computer 100 for sequentially analyzing data continuously generated from a data generation source. The computer 100 includes a plurality of memory storage units 11 (11-1 to 11- n), a plurality of memory management means 12 (12-1 to 12-m), a correspondence relation storage means 13, and a data analysis means 14.

メモリ格納手段11は、予め区分けされたデータの種類別に独立して動作する処理手段であって、解析対象とするデータが発生すると、当該コンピュータ100内のメモリ領域(具体的には、データ解析手段14が参照可能なメモリ領域)に該データを格納する。なお、このメモリ領域は、当該コンピュータ100が備えるデータ記憶手段(図示せず。)に、複数のメモリプールとして割り当てられている。メモリ格納手段11は、当該メモリ格納手段11が処理対象としている種類のデータが発生すると、当該メモリ格納手段11に対応づけられているメモリ管理手段12を用いて当該コンピュータ100が備えるデータ記憶手段に割り当てられた複数のメモリプールのいずれかから確保したメモリ領域に該データを格納する。なお、メモリ格納手段11とメモリ管理手段12との対応づけは、データ類別−メモリ対応管理手段14で保持されている情報に従う。   The memory storage unit 11 is a processing unit that operates independently for each type of data divided in advance. When data to be analyzed is generated, a memory area in the computer 100 (specifically, a data analysis unit) The data is stored in a memory area 14 can be referred to. This memory area is allocated as a plurality of memory pools to data storage means (not shown) provided in the computer 100. When the type of data that is to be processed by the memory storage unit 11 is generated, the memory storage unit 11 uses the memory management unit 12 associated with the memory storage unit 11 as a data storage unit included in the computer 100. The data is stored in a memory area secured from any of the plurality of allocated memory pools. The association between the memory storage unit 11 and the memory management unit 12 is in accordance with the information held by the data category-memory association management unit 14.

ここで、データの種類とは、例えば、解析対象とするデータの入力方法、発生源もしくは発生要因又はそれらの組み合わせに基づいて区分けされたものであってもよい。当該コンピュータ100が備える入力手段とのインタフェース(例えば、ポートデバイスドライバやプロトコルスタックやファイルシステムが提供するAPI)において判別可能な種類であれば、どのような種類であってもよいが、解析対象とするデータをメモリに格納する際に並列動作させることを考慮し、データの発生頻度に応じて区分けされていることが好ましい。   Here, the data type may be classified based on, for example, an input method of data to be analyzed, a generation source or a generation factor, or a combination thereof. Any type can be used as long as it can be discriminated in an interface (for example, an API provided by a port device driver, a protocol stack, or a file system) with an input unit included in the computer 100. In consideration of parallel operation when storing the data to be stored in the memory, it is preferable to classify the data according to the frequency of data generation.

各メモリ格納手段11は、例えば、当該コンピュータ100上で動作するプログラム処理上の処理主体(ここでは、プロセス、スレッド、タスク等)のインスタンスとして実装される。なお、図1におけるメモリ格納手段11−1〜11−nの”n”は、メモリ格納手段11として動作するプログラム処理上のインスタンスの数(ここでは、データの種類の数と同じ)を示している。以下、各メモリ格納手段11といった場合には、メモリ格納手段11として動作する各インスタンスを指すものとする。なお、データの種類に対し、どのメモリ格納手段11が動作するかは、予め対応づけられているものとする。   Each memory storage unit 11 is implemented as, for example, an instance of a processing entity (in this case, a process, a thread, a task, etc.) in program processing that runs on the computer 100. Note that “n” in the memory storage means 11-1 to 11-n in FIG. 1 indicates the number of instances in the program processing that operate as the memory storage means 11 (here, the same as the number of data types). Yes. Hereinafter, each memory storage unit 11 refers to each instance operating as the memory storage unit 11. It is assumed that which memory storage means 11 is operated in advance for the type of data.

次に、メモリ格納手段11の具体例を示す。例えば、データ発生源(例えば、RFIDタグから情報を読み込むRFIDリーダ)が当該コンピュータ100のUSBポート等にHUBを介して接続される接続形態である場合には、メモリ格納手段11は、USBポートドライバを介してデータ発生源が出力したデータを受け付ける(入力する)処理を行う処理手段となる。なお、データの種類は、例えば、予めデータ発生源毎に割り当てておいたデバイス番号により判別されるようにすればよい。   Next, a specific example of the memory storage unit 11 will be shown. For example, if the data generation source (for example, an RFID reader that reads information from an RFID tag) is connected to a USB port or the like of the computer 100 via a HUB, the memory storage unit 11 includes a USB port driver. This is processing means for performing processing for receiving (inputting) data output from the data generation source via the. Note that the type of data may be determined by, for example, a device number assigned in advance for each data generation source.

また、例えば、データ発生源(例えば、ログ情報を出力するサーバ装置)が、ネットワークを介して接続される接続形態である場合には、メモリ格納手段11は、プロトコルスタックを介してデータ発生源(またはそのデータ発生源と接続されている通信装置)が送信したデータを受け付ける(受信する)処理を行う処理手段となる。なお、データの受け付け動作には、データ発生源にデータを要求し、その応答として受信する場合も含む。また、データの種類は、例えば、受信ポートによって一意に定まるようにしたり、データの発信元(IPアドレス等)を示す情報により判別されるようにすればよい。なお、解析対象とするデータがログ情報である場合には、そのログの発生要因に応じてデータの種類を区分けしてもよい。もちろん、ログを発生させた発生源に応じて区分けしてもよいし、これらの組み合わせで区分けすることも可能である。   Further, for example, when a data generation source (for example, a server device that outputs log information) is connected via a network, the memory storage unit 11 uses the data generation source ( Alternatively, it is a processing means for performing a process of receiving (receiving) data transmitted by a communication device connected to the data generation source. The data receiving operation includes a case where data is requested from the data generation source and received as a response. The type of data may be determined uniquely by the receiving port, for example, or may be determined by information indicating the data source (IP address or the like). If the data to be analyzed is log information, the type of data may be classified according to the log generation factor. Of course, the log may be classified according to the source that generated the log, or may be classified by a combination thereof.

また、例えば、コンピュータ100内にデータ発生源(例えば、コンピュータ100上で動作する他の処理手段)が含まれている場合には、メモリ格納手段11は、例えば、ファイルシステムやOSを介してデータ発生源が出力したデータを受け付ける処理を行う処理手段となる。例えば、データ発生源がファイル形式でデータを出力する場合には、メモリ格納手段11は、ファイルシステムを介してそのデータを読み出す処理を行う処理手段となる。また、例えば、データ発生源がスレッド間メッセージとしてデータを出力する場合には、メモリ格納手段11は、OSを介してそのデータを受信する処理を行う処理手段となる。なお、データの受け付け動作には、メモリ格納手段11が予め定められた周期に従って自発的に出力有無を確かめてそれを読み出す場合も含む。また、データの種類は、例えば、ファイル名や、スレッド間メッセージの発信元で宛先を指定することによって一意に定まるようにすればよい。なお、これらの接続形態を組み合わせることも可能である。   Further, for example, when the computer 100 includes a data generation source (for example, other processing means that operates on the computer 100), the memory storage means 11 may store data via a file system or OS, for example. It becomes a processing means which performs the process which receives the data which the generation source output. For example, when the data generation source outputs data in a file format, the memory storage unit 11 serves as a processing unit that performs a process of reading the data via the file system. Further, for example, when the data generation source outputs data as an inter-thread message, the memory storage unit 11 is a processing unit that performs a process of receiving the data via the OS. The data receiving operation includes a case where the memory storage unit 11 voluntarily confirms the presence / absence of output according to a predetermined cycle and reads it. The type of data may be uniquely determined by specifying a destination by a file name or an inter-thread message source, for example. In addition, it is also possible to combine these connection forms.

メモリ管理手段12は、データを格納するためのメモリ領域が割り当てられた複数のメモリプールのうちのいずれかと1対1に対応づけられ、対応づけられた1つのメモリプール(以下、管理対象メモリプールという。)に対する手続きをとりまとめて行う。ここで、メモリプールとは、プログラム処理上で利用するために割り当てられるメモリ領域を一塊りにまとめたものをいう。なお、メモリプールから所定の手続きに従って取得されるメモリ領域のことをメモリブロックと呼ぶ場合がある。従って、メモリプールは、複数のメモリブロックの集合体として扱われるメモリ領域であるとも言える。なお、管理対象メモリプールの生成(実メモリ領域への割り当て)をメモリ管理手段12が行ってもよい。   The memory management means 12 is associated with one of a plurality of memory pools to which a memory area for storing data is assigned, and is associated with one memory pool (hereinafter, a management target memory pool). Collective procedures for Here, the memory pool is a collection of memory areas allotted for use in program processing. A memory area acquired from a memory pool according to a predetermined procedure may be called a memory block. Therefore, it can be said that the memory pool is a memory area handled as an aggregate of a plurality of memory blocks. Note that the memory management unit 12 may generate a management target memory pool (assignment to a real memory area).

メモリ管理手段12は、管理対象メモリプールについて、少なくとも管理対象メモリプールとして割り当てられたメモリ領域の使用状況(確保された状態であるか解放された状態であるか)を管理しながら、他の手段(具体的には、メモリ格納手段11)からの要求に応じて管理対象メモリプールからメモリ領域を確保したり、他の手段(具体的には、データ解析手段14)からの要求に応じて当該メモリプールから確保されたメモリ領域を解放したりする処理を取りまとめて行う。なお、管理対象メモリプールに対する手続きには、管理対象メモリプールの使用状況を示す情報を参照したり、更新する処理を含む。   The memory management means 12 manages at least the use status (whether reserved or released) of the memory area allocated as the managed memory pool for the managed memory pool while other means are used. (Specifically, the memory area is secured from the management target memory pool in response to a request from the memory storage unit 11), or in response to a request from another unit (specifically, the data analysis unit 14). Collectively perform processing to release the memory area secured from the memory pool. The procedure for the management target memory pool includes processing for referring to or updating information indicating the usage status of the management target memory pool.

本実施形態において、メモリ管理手段12は、排他制御を行った上で管理対象メモリプールに対する手続きを行う共有メモリ管理手段として機能するものと、排他制御を行わずに管理対象メモリプールに対する手続きを行う専用メモリ管理手段として機能するものとに分けられる。なお、少なくとも1つ以上の共有メモリ管理手段と、少なくとも1つ以上の専用メモリ管理手段とが含まれるようにする。例えば、各メモリ管理手段12は、管理対象メモリプールが、1つのデータ種類に専用で用いられるか、または複数のデータ種類から共有で用いられるかを設定できるようにし、その設定を切り替えることによって共有メモリ管理手段として機能する場合と、専用メモリ管理手段として機能する場合とを切り替えられるようにしてもよい。   In this embodiment, the memory management unit 12 functions as a shared memory management unit that performs a procedure for the management target memory pool after performing exclusive control, and performs a procedure for the management target memory pool without performing exclusive control. It can be divided into those that function as dedicated memory management means. It should be noted that at least one or more shared memory management means and at least one or more dedicated memory management means are included. For example, each memory management unit 12 can set whether the management target memory pool is used exclusively for one data type or shared from a plurality of data types, and is shared by switching the setting. You may make it switch between the case where it functions as a memory management means, and the case where it functions as a dedicated memory management means.

各メモリ管理手段12は、例えば、当該コンピュータ100上で動作するプログラム処理上の手続き関数群およびそれに用いる変数のインスタンスとして実装される。なお、図1におけるメモリ管理手段12−1〜12−mの”m”は、メモリ管理手段12として機能するプログラム処理上のインスタンスの数(ここでは、メモリプールの数と同じ)を示している。なお、メモリプールの数は、データの種類数よりも少ない数でよい(m<n)。以下、各メモリ管理手段12といった場合には、メモリ管理手段12として機能する各インスタンスを指すものとする。   Each memory management unit 12 is implemented as, for example, a procedure function group on program processing that operates on the computer 100 and an instance of a variable used therefor. Note that “m” in the memory management means 12-1 to 12 -m in FIG. 1 indicates the number of instances on the program processing functioning as the memory management means 12 (here, the same as the number of memory pools). . The number of memory pools may be smaller than the number of data types (m <n). Hereinafter, each memory management unit 12 refers to each instance that functions as the memory management unit 12.

例えば、各メモリ管理手段12は、他の手段に向けて管理対象メモリプールに対する手続きを行うための関数を提供するにあたり、スレッドセーフモードとスレッドフリーモードの2種類のモードを切り替えられるようにしてもよい。スレッドセーフモードは、あるデータや手続き(ここでは、管理対象メモリプールに対する一連の手続き)に対し排他制御をすることで複数プロセスからの同時呼び出しを強制的にシーケンシャルの呼び出しに変換して正しく動作させるモードである。排他制御をするためにスレッドセーフモードの動作は遅い。スレッドフリーモードは、複数プロセスから同時呼び出しがないことを前提とした排他制御をしないモードである。排他制御をしないために、スレッドフリーモードはスレッドセーフモードと比較して非常に高速に動作することができる。   For example, each memory management unit 12 may be able to switch between two types of modes, a thread safe mode and a thread free mode, in providing a function for performing a procedure for the management target memory pool to other units. . The thread safe mode is a mode in which simultaneous calls from multiple processes are forcibly converted into sequential calls by performing exclusive control on certain data and procedures (in this case, a series of procedures for the managed memory pool). It is. The thread safe mode is slow because of exclusive control. The thread free mode is a mode that does not perform exclusive control on the assumption that there are no simultaneous calls from a plurality of processes. Since the exclusive control is not performed, the thread free mode can operate at a very high speed as compared with the thread safe mode.

対応関係記憶手段13は、メモリ格納手段11と、メモリ管理手段12との対応づけを示す情報を記憶する。対応関係記憶手段13は、例えば、メモリ格納手段11を識別するための識別子と、メモリ管理手段12を識別するための識別子とを対応づけた情報を記憶してもよい。また、各メモリ格納手段11は、データの種類と1対1に対応づけられるものであり、各メモリ管理手段12は、メモリプールと1対1に対応づけられるものであるから、対応関係記憶手段13は、例えば、データの種類を識別するためのデータ種別IDと、メモリプールを識別するためのメモリプールIDとを対応づけた情報を記憶してもよい。また、例えば、データ種別IDと、各メモリ管理手段12へのポインタ(メモリ管理手段12として実装された各インスタンスを指すポインタ変数)とを対応づけた情報を記憶してもよい。   The correspondence relationship storage unit 13 stores information indicating the correspondence between the memory storage unit 11 and the memory management unit 12. The correspondence relationship storage unit 13 may store, for example, information in which an identifier for identifying the memory storage unit 11 and an identifier for identifying the memory management unit 12 are associated with each other. Further, each memory storage means 11 is associated with a data type in a one-to-one relationship, and each memory management means 12 is associated with a memory pool in a one-to-one relationship. For example, 13 may store information in which a data type ID for identifying a data type is associated with a memory pool ID for identifying a memory pool. In addition, for example, information in which a data type ID is associated with a pointer to each memory management unit 12 (a pointer variable indicating each instance implemented as the memory management unit 12) may be stored.

データ解析手段14は、連続して発生するデータの解析を行う。データ解析手段14は、メモリ格納手段11によって当該コンピュータ100が備えるメモリ(具体的には、当該コンピュータ100が備えるデータ記憶手段に複数のメモリプールとして割り当てられたメモリ領域のいずれか)に格納されたデータを読み出して解析を行う。データ解析手段14は、例えば、メモリ格納手段11からメモリ領域にデータを格納した旨の通知を受けて、該メモリ領域に格納されたデータを逐次的に読み出して解析を行ってもよい。なお、データ解析手段14の数(データ解析手段14として動作する処理主体のインスタンスの数)は、いくつであってもよい。例えば、データの全種別をまとめて解析する一つのインスタンスとして実装されてもよいし、データの種類別に独立して動作する複数のインスタンスとして実装されてもよい。   The data analysis means 14 analyzes continuously generated data. The data analysis unit 14 is stored in the memory included in the computer 100 by the memory storage unit 11 (specifically, one of the memory areas allocated as a plurality of memory pools in the data storage unit included in the computer 100). Read data for analysis. For example, the data analysis unit 14 may receive notification that the data has been stored in the memory area from the memory storage unit 11, and sequentially read and analyze the data stored in the memory area. Note that the number of the data analysis means 14 (the number of instances of the processing entity operating as the data analysis means 14) may be any number. For example, it may be implemented as one instance that analyzes all types of data collectively, or may be implemented as a plurality of instances that operate independently for each type of data.

以下、より具体的な構成例を用いて説明する。図2は、本実施形態によるデータストリーム解析システムのより具体的な構成例を示すブロック図である。図2に示すデータストリーム解析システムは、センサから発生されるセンサデータを解析するデータストリーム解析システムの例であって、解析対象となるセンサデータの発生源である複数のセンサ200−1〜200−nと、センサ200−1〜200−nから発生されるセンサデータの解析を行うコンピュータ100とを備える。なお、本例では、センサデータの種類は、センサデータの発生源別に区分けたものとする。   Hereinafter, a description will be given using a more specific configuration example. FIG. 2 is a block diagram showing a more specific configuration example of the data stream analysis system according to the present embodiment. The data stream analysis system shown in FIG. 2 is an example of a data stream analysis system that analyzes sensor data generated from sensors, and a plurality of sensors 200-1 to 200- that are sources of sensor data to be analyzed. n and a computer 100 for analyzing sensor data generated from the sensors 200-1 to 200-n. In this example, it is assumed that the types of sensor data are classified according to the generation source of the sensor data.

また、コンピュータ100は、センサデータ受付手段11−1〜11−nと、メモリ管理手段12−1〜12−mと、センサ−メモリ対応管理手段13と、データ解析手段14と、対応関係最適化手段15と、センサ属性管理手段16と、排他制御手段17とを含む。   The computer 100 also includes sensor data receiving means 11-1 to 11-n, memory management means 12-1 to 12-m, sensor-memory correspondence management means 13, data analysis means 14, and correspondence optimization. Means 15, sensor attribute management means 16, and exclusive control means 17 are included.

センサ200は、解析対象とするセンサデータを発生する手段であり、時々刻々と変化するデータを発生する手段であればよい。センサ200は、例えば、1分間隔に気温を計測し、そのデータを発生させる装置や、RFIDシステムのように商品情報が書き込まれたICチップの情報をRFIDリーダで読み取り、そのデータを発生させる手段などである。   The sensor 200 is a means for generating sensor data to be analyzed and may be any means for generating data that changes every moment. For example, the sensor 200 measures the temperature at intervals of 1 minute and generates data thereof, or means for reading the information of an IC chip in which product information is written, such as an RFID system, with an RFID reader and generating the data. Etc.

センサ200が発生したセンサデータは、各センサ200内のデータ記憶手段に一旦記憶される。なお、本例では、センサ200内のデータ記憶手段に対して、データ解析手段17は、直接にはアクセスできないものとする。従って、発生したセンサデータを解析するためには、データ解析手段17からアクセス可能なメモリ領域にセンサデータを格納する必要がある。なお、本例では、複数のセンサ200(センサ200−1〜200−n)から発生するセンサデータを1つのコンピュータ100で解析することを前提としている。   Sensor data generated by the sensors 200 is temporarily stored in a data storage means in each sensor 200. In this example, it is assumed that the data analysis unit 17 cannot directly access the data storage unit in the sensor 200. Therefore, in order to analyze the generated sensor data, it is necessary to store the sensor data in a memory area accessible from the data analysis means 17. In this example, it is assumed that sensor data generated from a plurality of sensors 200 (sensors 200-1 to 200-n) is analyzed by one computer 100.

センサデータ受付手段11は、予め区分けされたセンサデータの種類別(すなわち、センサデータの発生源別)に独立して動作する処理手段であって、解析対象とするセンサデータが発生すると、当該コンピュータ100内のメモリ領域(具体的には、データ解析手段14が参照可能なメモリ領域)に該センサデータを格納する。なお、解析対象とするセンサデータを格納するためのメモリ領域は、当該コンピュータ100が備えるデータ記憶装置(図示せず。)に、複数のメモリプール121として割り当てられている。なお、センサデータ受付手段11は、図1におけるメモリ格納手段11に相当する処理手段である。本例では、センサデータの発生源であるセンサ200に対し、各センサ200を識別するための識別子が割り当てられているものとする。以下、この識別子をセンサIDという。なお、センサIDは、センサデータ受付手段11として動作する各インスタンスを識別するための識別子でもあり、センサデータの種別を識別するための識別子でもある。センサIDは、例えば、通し番号であってもよい。本例では、S1,S2,・・・,Sn(nはセンサ数)というセンサIDが付与されているものとする。   The sensor data receiving means 11 is a processing means that operates independently for each type of sensor data (ie, for each source of sensor data) that has been divided in advance, and when the sensor data to be analyzed is generated, the computer The sensor data is stored in a memory area in 100 (specifically, a memory area that can be referred to by the data analysis means 14). A memory area for storing sensor data to be analyzed is allocated as a plurality of memory pools 121 to a data storage device (not shown) provided in the computer 100. The sensor data receiving means 11 is a processing means corresponding to the memory storage means 11 in FIG. In this example, it is assumed that an identifier for identifying each sensor 200 is assigned to the sensor 200 that is a generation source of the sensor data. Hereinafter, this identifier is referred to as a sensor ID. The sensor ID is also an identifier for identifying each instance that operates as the sensor data receiving unit 11, and is also an identifier for identifying the type of sensor data. The sensor ID may be a serial number, for example. In this example, it is assumed that sensor IDs S1, S2,..., Sn (n is the number of sensors) are assigned.

また、メモリ管理手段12は、センサデータを格納するためのメモリ領域が割り当てられた複数のメモリプールのうちのいずれかと1対1に対応づけられ、対応づけられた1つのメモリプール(管理対象メモリプール)に対する手続きをとりまとめて行う。メモリ管理手段12は、これらの機能を実現するための機能ブロックとして、空きメモリ管理手段122と、メモリ獲得・解放手段123と、アクセスモード記憶手段124とを含む。本例では、解析用のセンサデータを格納するためのメモリプールに対し、各メモリプールをを識別するための識別子が割り当てられているものとする。以下、この識別子をメモリIDという。なお、メモリIDは、メモリ管理手段12として機能する各インスタンスを識別するための識別子でもある。メモリIDは、例えば、通し番号であってもよい。本例では、M1,M2,・・・,Mm(mはメモリプール数)というメモリIDが付与されているものとする。   The memory management unit 12 is associated with one of a plurality of memory pools to which a memory area for storing sensor data is allocated, and is associated with one memory pool (memory to be managed). Collective procedures for pool). The memory management unit 12 includes a free memory management unit 122, a memory acquisition / release unit 123, and an access mode storage unit 124 as functional blocks for realizing these functions. In this example, it is assumed that an identifier for identifying each memory pool is assigned to a memory pool for storing sensor data for analysis. Hereinafter, this identifier is referred to as a memory ID. The memory ID is also an identifier for identifying each instance that functions as the memory management unit 12. The memory ID may be a serial number, for example. In this example, it is assumed that memory IDs M1, M2,..., Mm (m is the number of memory pools) are assigned.

空きメモリ管理手段122は、管理対象メモリプール121について、少なくとも管理対象メモリプールとして割り当てられたメモリ領域の使用状況を管理する。空きメモリ管理手段122は、初期化処理として、センサデータの解析を開始する前に、当該コンピュータ100上で動作しているOSが提供するシステムコールを利用して、当該コンピュータ100が備えるデータ記憶手段(図示せず。)から管理対象メモリプール121として使用するメモリ領域を確保することによって、管理対象メモリプール121を生成してもよい。なお、コンピュータ100上で動作するOSは、例えば、Windows(登録商標)やLINUXなどの汎用的なOSでよい。   The free memory management unit 122 manages at least the usage status of the memory area allocated as the management target memory pool for the management target memory pool 121. As an initialization process, the free memory management unit 122 uses a system call provided by the OS running on the computer 100 before starting the analysis of sensor data, and a data storage unit included in the computer 100 The management target memory pool 121 may be generated by securing a memory area to be used as the management target memory pool 121 from (not shown). The OS operating on the computer 100 may be a general-purpose OS such as Windows (registered trademark) or LINUX.

具体的には、予め定められているメモリブロックの数分、メモリブロックとして扱うメモリ領域を確保するためのシステムコールを呼び出せばよい。その際、メモリブロックのサイズを指定する。メモリブロックのサイズは、全センサ200のセンサデータのサイズが共通であれば、そのサイズを用いればよい。共通でなければ、最も大きいセンサデータのサイズを用いればよい。そして、システムコールの戻り値として得られる、確保したメモリ領域(メモリブロック)へのポインタの集合を、管理対象メモリプール121の実体情報として保持するようにすればよい。以下、メモリブロックへのポインタをメモリブロックポインタと呼ぶ。なお、メモリブロックの数は、実行マシンの搭載メモリ量と、センサデータの発生頻度等に基づいて設定されればよい。なお、必ずしもOSから条件通りのメモリ領域が確保されるとは限らないため、より厳密には、メモリ領域が確保されなかった場合の例外処理等は必要である。   Specifically, a system call for securing a memory area to be handled as a memory block may be called for a predetermined number of memory blocks. At that time, the size of the memory block is designated. If the size of the sensor data of all the sensors 200 is common, the size of the memory block may be used. If not common, the largest sensor data size may be used. Then, a set of pointers to the reserved memory area (memory block) obtained as a return value of the system call may be held as entity information of the management target memory pool 121. Hereinafter, a pointer to a memory block is referred to as a memory block pointer. The number of memory blocks may be set based on the amount of memory installed in the execution machine, the frequency of occurrence of sensor data, and the like. It should be noted that since the memory area is not necessarily secured from the OS according to the conditions, more strictly, exception processing when the memory area is not secured is necessary.

なお、空きメモリ管理手段122は、予め定められているメモリブロックのサイズとメモリブロックの数によって示される管理対象メモリプール121の全メモリ容量として必要なメモリサイズを指定して、一括してメモリプールとして扱うメモリ領域を確保するようにしてもよい。そのような場合、システムコールの戻り値として得られる、確保したメモリ領域(メモリプール)へのポインタから、メモリブロックのサイズをオフセットとして加算することによって得られるポインタの集合を、管理対象メモリプール121の実体情報として保持するようにすればよい。このようにすれば、OSのシステムコールの呼び出し回数を減少させることができる。また、このような場合において、OSからの一括確保に失敗した場合に、メモリブロック毎の確保を試みるようにしてもよい。   The free memory management unit 122 designates a memory size required as the total memory capacity of the management target memory pool 121 indicated by a predetermined memory block size and the number of memory blocks, and batches the memory pool. It is also possible to secure a memory area handled as In such a case, a set of pointers obtained by adding the size of the memory block as an offset from the pointer to the reserved memory area (memory pool) obtained as a return value of the system call is set as the management target memory pool 121. May be held as the entity information. In this way, the number of OS system calls can be reduced. Further, in such a case, when collective securing from the OS fails, securing for each memory block may be attempted.

空きメモリ管理手段122は、管理対象メモリプール121が生成される(実メモリ領域が割り当てられる)と、管理対象メモリプール121として割り当てられたメモリ領域の使用状況を示す情報を初期化する。例えば、空きメモリ管理手段122は、メモリブロックが他の処理手段によって確保されていない状態(以下、空き状態という。)にあるメモリブロックへのポインタの集合を、未使用のメモリブロックを示す情報として保持するようにしてもよい。なお、これはスタックやキューによって実現できる。   When the management target memory pool 121 is generated (the real memory area is allocated), the free memory management unit 122 initializes information indicating the usage status of the memory area allocated as the management target memory pool 121. For example, the free memory management unit 122 uses, as information indicating an unused memory block, a set of pointers to memory blocks in a state where the memory block is not secured by another processing unit (hereinafter referred to as a free state). You may make it hold | maintain. This can be realized by a stack or a queue.

空きメモリ管理手段122は、例えば、図3に示すような利用可能メモリキューを用いて、空き状態にあるメモリブロックへのポインタを保持するようにしてもよい。空きメモリ管理手段122では、例えば、管理対象メモリプール121を生成した際に、利用可能メモリキューに全てのメモリブロックポインタを格納すればよい。以後、メモリブロックの確保要求に応じて利用可能メモリキューからメモリブロックポインタを取り出したり(Pop)、メモリブロックの解放要求に応じて解放されるメモリブロックへのポインタを利用可能メモリキューに戻したりすればよい(Push)。   The free memory management unit 122 may hold a pointer to a memory block in a free state using, for example, an available memory queue as shown in FIG. In the free memory management unit 122, for example, when the management target memory pool 121 is generated, all the memory block pointers may be stored in the available memory queue. Thereafter, the memory block pointer is extracted from the available memory queue in response to a memory block allocation request (Pop), or the pointer to the memory block to be released in response to a memory block release request is returned to the available memory queue. (Push)

メモリ獲得・解放手段123は、他の手段に対して、管理対象メモリプール121からメモリブロックを獲得するための手続き、および獲得したメモリブロックを解放するための手続きを提供する。メモリ獲得・解放手段123は、具体的には、管理対象メモリプール121からのメモリブロックを獲得するための手続き、および獲得したメモリブロックを解放するための手続きを規定して代行する提供関数として実装される。   The memory acquisition / release means 123 provides a procedure for acquiring a memory block from the management target memory pool 121 and a procedure for releasing the acquired memory block to other means. Specifically, the memory acquisition / release unit 123 is implemented as a provision function that prescribes a procedure for acquiring a memory block from the management target memory pool 121 and a procedure for releasing the acquired memory block. Is done.

メモリ獲得・解放手段123は、他の手段(具体的には、センサデータ受付手段11)からのメモリブロック獲得要求に応じて、管理対象メモリプール121から空き状態にあるメモリブロックを獲得する。本例では、メモリ獲得・解放手段123は、空きメモリ管理手段122で管理されている利用可能メモリキューからメモリブロックポインタを一つ取り出す(Pop)ことによって、空き状態にあるメモリブロックを獲得すればよい。図4は、メモリブロックの獲得にかかる管理対象メモリプール121の空き状態の変化を示す説明図である。図4(a)は、メモリブロック獲得前の管理対象メモリプール121の空き状態の一例を示す説明図である。また、図4(b)は、メモリブロック獲得後の管理対象メモリプール121の空き状態の一例を示す説明図である。図4(a)に示すように、例えば、利用可能メモリキューの最も先頭にあるメモリブロックポインタがメモリブロックMB1へのポインタであった場合、メモリ獲得・解放手段123では、空きメモリ管理手段122が利用可能メモリキューからメモリブロックMB1へのポインタを取り出す。なお、具体的には、先頭にあるメモリブロックポインタに関するエントリを参照した後、そのエントリを利用可能メモリキューから削除する。   The memory acquisition / release unit 123 acquires a free memory block from the management target memory pool 121 in response to a memory block acquisition request from another unit (specifically, the sensor data receiving unit 11). In this example, if the memory acquisition / release unit 123 acquires a memory block in a free state by taking out (Pop) one memory block pointer from the available memory queue managed by the free memory management unit 122. Good. FIG. 4 is an explanatory diagram showing a change in the free state of the management target memory pool 121 related to acquisition of a memory block. FIG. 4A is an explanatory diagram illustrating an example of a free state of the management target memory pool 121 before acquiring the memory block. FIG. 4B is an explanatory diagram showing an example of a free state of the management target memory pool 121 after acquiring the memory block. As shown in FIG. 4A, for example, when the memory block pointer at the head of the available memory queue is a pointer to the memory block MB1, the memory acquisition / release unit 123 sets the free memory management unit 122 to A pointer to the memory block MB1 is taken out from the available memory queue. Specifically, after referring to the entry related to the memory block pointer at the head, the entry is deleted from the available memory queue.

メモリ獲得・解放手段123では、当該メモリ管理手段12が共有メモリ管理手段として機能している場合には、利用可能メモリキューに対する一連のアクセス(利用可能メモリキューから1つのメモリブロックポインタを取り出してそのエントリを削除するまでの一連の処理)を、クリティカルセクションとする。具体的には、利用可能メモリキューから1つのメモリブロックポインタを取り出す前またはエントリの有無を確認する前に排他制御を開始し、取り出したメモリブロックポインタに関するエントリを削除した後に、排他制御を解除すればよい。あるセンサデータ受付手段11からの呼び出しによってあるメモリ管理手段12のメモリ獲得・解放手段123で、利用可能メモリキューの先頭にあるエントリを参照して、このエントリをキューから削除する前に、他のセンサデータ受付手段11からの呼び出しによって同じメモリ管理手段12のメモリ獲得・解放手段123で、このエントリにアクセスできると、同じメモリ領域を提供してしまうことになるため、これを防ぐためである。   In the memory acquisition / release means 123, when the memory management means 12 functions as a shared memory management means, a series of accesses to the available memory queue (one memory block pointer is extracted from the available memory queue and A critical process is defined as a series of processing until an entry is deleted. Specifically, exclusive control is started before one memory block pointer is extracted from the available memory queue or before the presence of an entry is confirmed, and after the entry related to the extracted memory block pointer is deleted, the exclusive control is released. That's fine. By referring to the entry at the head of the available memory queue by the memory acquisition / release means 123 of a memory management means 12 by calling from a certain sensor data receiving means 11, before deleting this entry from the queue, This is to prevent the same memory area from being provided if the memory acquisition / release means 123 of the same memory management means 12 can access this entry by a call from the sensor data accepting means 11.

なお、このとき取得されたメモリブロックMB1へのポインタは、メモリ獲得・解放手段123を呼び出した他の手段(具体的には、センサデータ受付手段11)に渡され、解析対象とするセンサデータの格納先を示す情報として利用される。具体的には、センサデータ受付手段11で、そのメモリブロックポインタが指すメモリブロックMB1にセンサデータが格納され、データ解析手段14に渡される。なお、図4では、データ解析メモリキューを用いてデータ解析手段14へメモリブロックポインタを引き渡す例が示されている。ここでは、データ解析メモリキューの最後尾に追加される。   Note that the pointer to the memory block MB1 acquired at this time is passed to another means (specifically, the sensor data receiving means 11) that called the memory acquisition / release means 123, and the sensor data to be analyzed is sent to the memory block MB1. Used as information indicating the storage location. Specifically, the sensor data receiving means 11 stores the sensor data in the memory block MB1 pointed to by the memory block pointer and passes it to the data analysis means 14. FIG. 4 shows an example in which the memory block pointer is delivered to the data analysis means 14 using the data analysis memory queue. Here, it is added at the end of the data analysis memory queue.

一方、メモリ獲得・解放手段123は、他の手段(具体的には、データ解析手段14)からのメモリブロック解放要求に応じて、獲得されたメモリブロックを解放する。メモリ獲得・解放手段123は、空きメモリ管理手段122が管理している利用可能メモリキューに渡されたメモリブロックポインタを追加する(Push)ことによってメモリブロックを解放すればよい。図5は、メモリブロックの解放にかかる管理対象メモリプール121の空き状態の変化を示す説明図である。図5(a)は、メモリブロック解放前の管理対象メモリプール121の空き状態の一例を示す説明図である。また、図5(b)は、メモリブロック解放後の管理対象メモリプール121の空き状態の一例を示す説明図である。図5(a)に示すように、例えば、データ解析手段14によって解析が完了したセンサデータを格納しているメモリブロックがメモリブロックMB1へのポインタであった場合、メモリ獲得・解放手段123には、メモリブロックMB1へのポインタを指定したメモリブロック解放要求がされる。このような場合には、メモリ獲得・解放手段123では、空きメモリ管理手段122を用いて利用可能メモリキューにメモリブロックMB1へのポインタを追加する。なお、具体的には、指定されたメモリブロックポインタに関する情報を登録したエントリを利用可能メモリキューに追加する。ここでは、利用可能メモリキューの最後尾に追加する。利用可能メモリキューにエントリが追加されることによって、そのメモリブロックポインタは空き状態となり、別のセンサデータを格納するためのメモリ領域として利用可能になる。   On the other hand, the memory acquisition / release means 123 releases the acquired memory block in response to a memory block release request from another means (specifically, the data analysis means 14). The memory acquisition / release unit 123 may release the memory block by adding (Push) the memory block pointer transferred to the available memory queue managed by the free memory management unit 122. FIG. 5 is an explanatory diagram showing a change in the free state of the management target memory pool 121 related to the release of the memory block. FIG. 5A is an explanatory diagram illustrating an example of a free state of the management target memory pool 121 before the memory block is released. FIG. 5B is an explanatory diagram showing an example of a free state of the management target memory pool 121 after the memory block is released. As shown in FIG. 5A, for example, when the memory block storing the sensor data analyzed by the data analysis unit 14 is a pointer to the memory block MB1, the memory acquisition / release unit 123 includes A memory block release request designating a pointer to the memory block MB1 is made. In such a case, the memory acquisition / release unit 123 uses the free memory management unit 122 to add a pointer to the memory block MB1 to the available memory queue. Specifically, an entry in which information related to the designated memory block pointer is registered is added to the available memory queue. Here, it is added at the end of the available memory queue. By adding an entry to the available memory queue, the memory block pointer becomes empty and can be used as a memory area for storing other sensor data.

なお、メモリブロックの解放時において、複数のプロセスが同時にアクセスすることによってキューの整合性がとれなくなる可能性がある場合には、当該メモリ管理手段12が共有メモリ管理手段として機能しているかに応じて排他制御を行うようにすればよい。なお、本例では、センサデータ受付手段11とデータ解析手段14とは、同期を取ったり、同じインスタンスとして実装される等により、管理対象メモリプール121へのアクセスが競合しないように実装されているものとする。   If there is a possibility that the consistency of the queue may not be obtained due to simultaneous access by a plurality of processes at the time of releasing the memory block, it depends on whether the memory management unit 12 functions as a shared memory management unit. Thus, exclusive control may be performed. In this example, the sensor data receiving unit 11 and the data analyzing unit 14 are mounted so that access to the management target memory pool 121 does not compete by synchronizing or mounting as the same instance. Shall.

なお、当該メモリ管理手段12が共有メモリ管理手段として機能しているかまたは専用メモリ管理手段12として機能しているかは、アクセスモード記憶手段124に記憶されている情報に従えばよい。なお、メモリ獲得・解放手段123は、メモリブロック獲得要求またはメモリブロック解放要求が呼び出される度に、アクセスモード記憶手段124に記憶されている情報を参照するようにしてもよい。なお、予め共有メモリ管理手段として機能するメモリ管理手段12と、専用メモリ管理手段として機能するメモリ管理手段12とを固定的に分けて定義しておくことも可能である。そのような場合には、アクセスモード記憶手段124は省略してもよい。   Whether the memory management unit 12 functions as the shared memory management unit 12 or the dedicated memory management unit 12 may be determined according to information stored in the access mode storage unit 124. Note that the memory acquisition / release means 123 may refer to the information stored in the access mode storage means 124 every time a memory block acquisition request or a memory block release request is called. Note that the memory management unit 12 that functions as the shared memory management unit and the memory management unit 12 that functions as the dedicated memory management unit may be defined separately in advance. In such a case, the access mode storage unit 124 may be omitted.

アクセスモード記憶手段124は、管理対象メモリプール121に対する手続きに関して、排他制御の必要性の有無を示すフラグを記憶する。このフラグは、1ビットでよい。   The access mode storage unit 124 stores a flag indicating whether or not exclusive control is necessary for the procedure for the management target memory pool 121. This flag may be 1 bit.

センサ−メモリ対応管理手段13は、センサデータ受付手段11と、メモリ管理手段12との対応付けを示す情報を記憶する。本例では、センサ−メモリ対応管理手段13は、図6に示すように、センサIDと、メモリIDとを対応づけた情報を記憶する。なお、図6では、センサID=S1とメモリID=M1とが対応づけられている。また、センサID=S2とメモリID=M2とが対応づけられている。また、センサID=S3とメモリID=M1とが対応づけられている。従って、センサID=S1で識別されるセンサデータ受付手段11が受け付けるセンサデータは、メモリID=M1で識別されるメモリ管理手段12を用いて確保したメモリブロックに格納されることがわかる。また、メモリID=M1が、センサID=S1とセンサID=S3とに対応づけられていることから、メモリID=M1で識別されるメモリ管理手段12は、共有メモリ管理手段として機能することがわかる。   The sensor-memory correspondence management unit 13 stores information indicating the correspondence between the sensor data receiving unit 11 and the memory management unit 12. In this example, the sensor-memory correspondence management unit 13 stores information in which the sensor ID and the memory ID are associated with each other as shown in FIG. In FIG. 6, sensor ID = S1 and memory ID = M1 are associated with each other. Further, the sensor ID = S2 is associated with the memory ID = M2. Further, the sensor ID = S3 and the memory ID = M1 are associated with each other. Therefore, it can be seen that the sensor data received by the sensor data receiving unit 11 identified by the sensor ID = S1 is stored in the memory block secured by using the memory management unit 12 identified by the memory ID = M1. Further, since the memory ID = M1 is associated with the sensor ID = S1 and the sensor ID = S3, the memory management unit 12 identified by the memory ID = M1 can function as a shared memory management unit. Recognize.

データ解析手段14は、センサデータ受付手段11によって当該コンピュータ100内のメモリ領域に格納されたセンサデータを随時読み出して解析を行う。なお、本例では、データ解析手段14は、センサデータ受付手段11と1対1に対応づけられているものとする。例えば、センサデータ受付手段11は、対応するデータ解析手段14へのポインタを記憶しておくことによって、どのデータ解析手段14に解析処理をさせるかを特定するようにしてもよい。   The data analysis means 14 reads and analyzes the sensor data stored in the memory area in the computer 100 as needed by the sensor data reception means 11. In this example, it is assumed that the data analysis unit 14 is associated with the sensor data reception unit 11 on a one-to-one basis. For example, the sensor data reception unit 11 may specify which data analysis unit 14 is to perform analysis processing by storing a pointer to the corresponding data analysis unit 14.

データ解析手段14は、図4(b)に示したように、解析対象とするセンサデータの格納先を示す情報(メモリブロックポインタ)を、発生時間順に保持しておくデータ解析キューを有していてもよい。データ解析手段14に対する要件の一例は、時々刻々と変化しながら永続的に発生するセンサデータを逐次的に解析することである。ここで、逐次的とは、解析が終了した過去のセンサデータの内容は消去されることが前提であり、再度解析には利用しないことを意味している。従って、データ解析手段14は、最新のある一定期間のセンサデータを解析対象にする。具体的な解析方法は特に問わない。例えば、広く知られたアルゴリズムを利用して、センサデータの統計処理をしたり、パターンマッチングをしたり、分類したりしてもよい。なお、データ解析手段14は、あるセンサデータについて解析が終了すると、そのセンサデータを格納しているメモリ領域(メモリブロック)の獲得元であるメモリプールを管理しているメモリ管理手段12を用いて、メモリブロックの解放を行う。   As shown in FIG. 4B, the data analysis unit 14 has a data analysis queue that holds information (memory block pointer) indicating the storage destination of the sensor data to be analyzed in order of generation time. May be. An example of the requirement for the data analysis means 14 is to sequentially analyze sensor data that is permanently generated while changing from moment to moment. Here, “sequential” means that the contents of past sensor data whose analysis has been completed are presupposed to be deleted, and are not used again for analysis. Therefore, the data analysis unit 14 sets the latest sensor data for a certain period as an analysis target. A specific analysis method is not particularly limited. For example, sensor data statistical processing, pattern matching, or classification may be performed using a widely known algorithm. The data analysis means 14 uses the memory management means 12 that manages the memory pool from which the memory area (memory block) storing the sensor data is acquired when the analysis of the sensor data is completed. , Release the memory block.

対応関係最適化手段15は、各種類のデータの発生頻度(本例では、各センサのデータの発生頻度)、共有メモリ管理手段の数(共有使用されるメモリプールの数)および専用メモリ管理手段の数(専用使用されるメモリプールの数)に基づいて、センサデータ受付手段11とメモリ管理手段12との対応づけを最適化する。例えば、対応関係最適化手段15は、センサ属性管理手段16に記憶されている各センサの発生頻度に関する属性情報に基づき、高頻度センサにはそれぞれに専用のメモリプールを割り当て、低頻度センサには、共有のメモリプールを均等に割り当てることによって、センサデータ受付手段11とメモリ管理手段12との対応づけを最適化してもよい。なお、各センサには、専用のメモリプールか共有のメモリプールのいずれかが割り当てられる。なお、専用のメモリプールを割り当てる場合には、そのセンサに対応づけられたセンサデータ受付手段11と、専用メモリ管理手段として機能するメモリ管理手段12とを1対1に対応づければよい。また、また、共有のメモリプールを割り当てる場合には、共有メモリ管理手段として機能する1つのメモリ管理手段12を、そのセンサに対応づけられた複数のセンサデータ受付手段11に対応づければよい。   Correspondence optimization means 15 includes the occurrence frequency of each type of data (in this example, the occurrence frequency of data of each sensor), the number of shared memory management means (the number of shared memory pools), and dedicated memory management means. The correspondence between the sensor data receiving means 11 and the memory management means 12 is optimized based on the number of memory pools (the number of dedicated memory pools). For example, the correspondence optimization unit 15 allocates a dedicated memory pool to each high-frequency sensor based on the attribute information regarding the occurrence frequency of each sensor stored in the sensor attribute management unit 16, and The correspondence between the sensor data receiving unit 11 and the memory management unit 12 may be optimized by equally allocating the shared memory pool. Each sensor is assigned either a dedicated memory pool or a shared memory pool. When a dedicated memory pool is allocated, the sensor data receiving means 11 associated with the sensor and the memory management means 12 functioning as the dedicated memory management means may be associated with each other on a one-to-one basis. In addition, when a shared memory pool is allocated, one memory management unit 12 functioning as a shared memory management unit may be associated with a plurality of sensor data receiving units 11 associated with the sensor.

センサ属性管理手段16は、データの種類毎(センサ毎)に、そのデータの発生頻度に関する情報を記憶する。例えば、センサ毎に、そのセンサが高頻度センサか、又は低頻度センサかを示す情報を記憶してもよい。ここで、高頻度センサーとは、更新が頻繁であり、排他制御をするとその影響が大きいセンサをいう。また、低頻度センサーとは、更新がまれであり、排他制御をしても影響が小さいセンサをいう。ただし、これは一例であり、これに限定されない。例えば、センサ毎に、5段階や10段階でデータの発生頻度を示す情報を記憶してもよい。センサ属性管理手段16は、各センサのデータの発生頻度に関する情報を、例えば、当該コンピュータ100が備える入力手段を介してを受け取ることにより、取得してもよいし、予め設定ファイル等に記憶された内容を読み出すことにより取得してもよい。   The sensor attribute management means 16 stores information regarding the frequency of data generation for each type of data (for each sensor). For example, for each sensor, information indicating whether the sensor is a high-frequency sensor or a low-frequency sensor may be stored. Here, the high-frequency sensor refers to a sensor that is frequently updated and has a large influence when exclusive control is performed. The low-frequency sensor is a sensor that is rarely updated and has little influence even if exclusive control is performed. However, this is an example, and the present invention is not limited to this. For example, information indicating the frequency of data generation may be stored for each sensor in five steps or ten steps. The sensor attribute management means 16 may acquire information related to the occurrence frequency of data of each sensor, for example, by receiving the information via an input means included in the computer 100, or is stored in a setting file or the like in advance. You may acquire by reading the content.

排他制御手段17は、メモリ獲得・解放手段123からの要求に応じて、排他制御を行う。ここで、排他制御とは、同時に一つの処理主体しかクリティカルセクションに入ることを許さないようにすることをいう。なお、排他制御の実現は、例えば、汎用的なOSで一般にAPIとして提供されているミューテックスやセマフォ等を利用すればよい。   The exclusive control unit 17 performs exclusive control in response to a request from the memory acquisition / release unit 123. Here, exclusive control means that only one processing entity is allowed to enter the critical section at the same time. The exclusive control can be realized by using, for example, a mutex or a semaphore generally provided as an API in a general-purpose OS.

次に、図7を参照して、本実施形態の動作を説明する。図7は、本実施形態によるデータストリーム解析システムの動作例を示すフローチャートである。図7に示すように、まず、センサ属性管理手段16に、各センサのデータの発生頻度に関する情報を設定(記憶)する(ステップS11)。ステップS11では、センサ属性管理手段16が、各センサのデータの発生頻度に関する情報を、例えば、当該コンピュータ100が備える入力手段を介してを受け取ることにより取得し、または予め設定ファイル等に記憶された内容を読み出すことにより取得して、所定のメモリ領域に記憶すればよい。   Next, the operation of this embodiment will be described with reference to FIG. FIG. 7 is a flowchart showing an operation example of the data stream analysis system according to the present embodiment. As shown in FIG. 7, first, information on the frequency of data generation of each sensor is set (stored) in the sensor attribute management means 16 (step S11). In step S11, the sensor attribute management unit 16 obtains information related to the frequency of data generation of each sensor, for example, via an input unit provided in the computer 100, or is stored in a setting file or the like in advance. What is necessary is just to acquire by reading the content and to store in a predetermined memory area.

次に、対応関係最適化手段15が、センサ属性管理手段16で保持されている各センサのデータの発生頻度に関する情報に基づいて、センサデータ受付手段11とメモリ管理手段12との対応づけを最適化する(ステップS12)。対応関係最適化手段15は、例えば、図8に示すようなアルゴリズムにより、各センサデータ受付手段11に対し、メモリ管理手段12を割り当てることによって、センサデータの種類とメモリ管理手段12との対応づけを最適化してもよい。図8は、対応関係最適化手段15による最適化のアルゴリズムの例を示すフローチャートである。以下、センサの数(すなわち、センサデータ受付手段11の数)をSNUMと呼び、メモリプールの数(すなわち、メモリ管理手段12の数)をMNUMと呼ぶこととする。なお、図8におけるMpNUMは、専用メモリ管理手段として機能するメモリ管理手段12の数を示している。なお、共有メモリ管理手段として機能するメモリ管理手段12の数をMcNUMとすると、MNUM=MpNUM+McNUMという関係がなりたつ。本例では、MpNUMとMcNUMとはそれぞれ1以上の数値とする。なお、センサの総数または低頻度センサの数によってはMcNUMが0になる場合もある。   Next, the correspondence relationship optimization unit 15 optimizes the correspondence between the sensor data reception unit 11 and the memory management unit 12 based on the information regarding the frequency of data generation of each sensor held in the sensor attribute management unit 16. (Step S12). The correspondence optimization unit 15 assigns the memory management unit 12 to each sensor data receiving unit 11 by using an algorithm as shown in FIG. May be optimized. FIG. 8 is a flowchart showing an example of an algorithm for optimization by the correspondence optimization means 15. Hereinafter, the number of sensors (that is, the number of sensor data receiving means 11) is referred to as SNUM, and the number of memory pools (that is, the number of memory management means 12) is referred to as MNUM. Note that MpNUM in FIG. 8 indicates the number of memory management means 12 functioning as dedicated memory management means. If the number of the memory management means 12 functioning as the shared memory management means is McNUM, there is a relationship of MNUM = MpNUM + McNUM. In this example, MpNUM and McNUM are each set to a numerical value of 1 or more. Note that McNUM may be zero depending on the total number of sensors or the number of low-frequency sensors.

図8に示すように、対応関係最適化手段15は、まず、高頻度センサとして分類されるセンサの数と、MpNUMの数とを比較する(ステップS121)。なお、MpNUMは、設定により専用メモリ管理手段と共有メモリ管理手段とが切り替わる場合には、専用メモリ管理手段として機能しうるメモリ管理手段12の最大数とする。なお、専用メモリ管理手段として機能しうるメモリ管理手段12の最大数は、高頻度センサの数=SNUMである場合にはMNUM、それ以外はMNUM−1となる。   As shown in FIG. 8, the correspondence optimization unit 15 first compares the number of sensors classified as high-frequency sensors with the number of MpNUMs (step S121). MpNUM is the maximum number of memory management means 12 that can function as dedicated memory management means when the dedicated memory management means and shared memory management means are switched by setting. Note that the maximum number of memory management means 12 that can function as dedicated memory management means is MNUM when the number of high-frequency sensors = SNUM, and MNUM-1 otherwise.

ここで、もし高頻度センサとして分類されるセンサの数の方が大きければ(ステップS121のNo)、高頻度センサすべてに専用のメモリプールを割り当てることができないため、ステップS122に進んでこの問題の解決を試みる。なお、高頻度センサとして分類されるセンサの数の方が小さければ(ステップS121のYes)、そのままステップS123に進めばよい。   If the number of sensors classified as high-frequency sensors is larger (No in step S121), a dedicated memory pool cannot be assigned to all high-frequency sensors, and the process proceeds to step S122. Try to solve. If the number of sensors classified as the high-frequency sensor is smaller (Yes in step S121), the process may proceed to step S123 as it is.

ステップS122では、高頻度センサに分類されるセンサの一部または全てを低頻度センサに振り替える処理を行って、高頻度センサの数を減らしていく。例えば、高頻度センサに分類されたセンサの中からランダムに選んだ1つのセンサを低頻度センサに分類するようにしてもよい。なお、各センサのより詳細の頻度情報がわかる場合には、高頻度センサに分類されたセンサの中から最も頻度が低いセンサを低頻度センサに分類するようにしてもよい。ステップS122の繰り返し処理により、高頻度センサの数を減らしていく。   In step S122, a process of transferring some or all of the sensors classified as high-frequency sensors to low-frequency sensors is performed to reduce the number of high-frequency sensors. For example, one sensor randomly selected from the sensors classified as the high frequency sensor may be classified as the low frequency sensor. If more detailed frequency information of each sensor is known, the sensor with the lowest frequency among the sensors classified as the high-frequency sensor may be classified as the low-frequency sensor. The number of high-frequency sensors is reduced by repeating the process in step S122.

ステップS123では、高頻度センサそれぞれに、専用のメモリプールを割り当てる。すなわち、高頻度センサに対応づけられた各センサデータ受付手段11と、専用メモリ管理手段として機能するメモリ管理手段12とを1対1に対応づける。対応関係最適化手段15は、例えば、高頻度センサに対応づけられた各センサデータ受付手段11に、順番に、メモリ管理手段12を対応づけていくとともに、そのメモリ管理手段12を排他制御オフのモードに設定するようにしてもよい。   In step S123, a dedicated memory pool is allocated to each high frequency sensor. That is, each sensor data reception means 11 associated with the high frequency sensor and the memory management means 12 functioning as the dedicated memory management means are associated with each other on a one-to-one basis. For example, the correspondence relationship optimization unit 15 sequentially associates the memory management unit 12 with each sensor data reception unit 11 associated with the high-frequency sensor, and sets the memory management unit 12 to exclusive control off. The mode may be set.

最後に、対応関係最適化手段15は、低頻度センサに、残りのメモリプールを均等に割り当てる(ステップS124)。すなわち、残りのメモリ管理手段12を共有メモリ管理手段とした上で、低頻度センサに対応づけられたセンサデータ受付手段11に均等に割り当てる。例えば、SNUM=10(高頻度=2,低頻度=8)、MNUM=5であった場合、5つのメモリ管理手段12のうち、2つのメモリ管理手段12が専用メモリ管理手段として高頻度センサに割り当てられれば、残りのメモリ管理手段12は3つとなる。対応関係最適化手段15は、この残った3つのメモリ管理手段12を8つの低頻度センサで共有させればよい。例えば、残った3つのメモリ管理手段12をそれぞれa,b,cとすると、aとbのメモリ管理手段12を、それぞれ3つの低頻度センサで共有させるように割り当て、cのメモリ管理手段12を2つの低頻度センサで共有させるように割り当てればよい。   Finally, the correspondence relationship optimization unit 15 assigns the remaining memory pools evenly to the low-frequency sensors (step S124). That is, the remaining memory management means 12 is shared memory management means, and is equally allocated to the sensor data receiving means 11 associated with the low frequency sensor. For example, when SNUM = 10 (high frequency = 2, low frequency = 8) and MNUM = 5, of the five memory management units 12, two memory management units 12 serve as dedicated memory management units as high frequency sensors. If assigned, the remaining memory management means 12 becomes three. The correspondence relationship optimization unit 15 may share the remaining three memory management units 12 with the eight low-frequency sensors. For example, if the remaining three memory management means 12 are a, b, and c, respectively, the a and b memory management means 12 are assigned to be shared by three low-frequency sensors, and the c memory management means 12 is assigned. What is necessary is just to allocate so that it may be shared by two low frequency sensors.

このようにして対応関係最適化手段15は、センサデータ受付手段11とメモリ管理手段12との対応づけの最適化が完了すると、その対応関係を示す情報をセンサ−メモリ対応管理手段13に反映させる。ここまでの処理が、センサデータの解析のための前処理となる。   In this way, the correspondence relationship optimization unit 15 reflects the information indicating the correspondence relationship to the sensor-memory correspondence management unit 13 when the optimization of the correspondence between the sensor data receiving unit 11 and the memory management unit 12 is completed. . The processing so far is preprocessing for analyzing sensor data.

そして、各センサはセンシングを開始する(図7のステップS13)。例えば、各センサの実行を開始させることによって、時々刻々と変化するセンサデータを発生させる。なお、各センサは非同期にセンサデータを発生させる。   Each sensor starts sensing (step S13 in FIG. 7). For example, sensor data that changes from moment to moment is generated by starting the execution of each sensor. Each sensor generates sensor data asynchronously.

各センサがセンシングを開始したことによりセンサデータが発生すると、該センサデータの種類(ここでは、センサデータの発生源)に応じて、センサデータ受付手段11が該センサデータを受け付ける(ステップS14)。センサデータ受付手段11は、まず、センサ−メモリ対応管理手段13で保持されているセンサデータ受付手段11とメモリ管理手段12との対応関係を示す情報に基づいて、利用するメモリ管理手段12を特定する(ステップS15)。センサデータ受付手段11は、センサ−メモリ対応管理手段13で、当該センサデータ受付手段11が処理対象としているセンサに割り当てられているセンサIDに対応づけられているメモリIDを得ることによって、どのメモリ管理手段12を利用するかを特定すればよい。   When sensor data is generated by the start of sensing by each sensor, the sensor data receiving means 11 receives the sensor data according to the type of sensor data (here, the generation source of the sensor data) (step S14). First, the sensor data receiving means 11 specifies the memory management means 12 to be used based on the information indicating the correspondence between the sensor data receiving means 11 and the memory management means 12 held by the sensor-memory correspondence management means 13. (Step S15). The sensor data receiving means 11 is a sensor-memory correspondence managing means 13 that obtains a memory ID associated with a sensor ID assigned to a sensor that is processed by the sensor data receiving means 11. What is necessary is just to specify whether the management means 12 is used.

そして、特定したメモリ管理手段12を用いてセンサデータを格納するためのメモリブロックを確保し、確保したメモリブロックに受け付けたセンサデータを格納する(ステップS16)。これにより、センサデータは、当該コンピュータ100内のメモリにコピーされたことになる。なお、メモリ管理手段12では、メモリ獲得・解放手段123が、空きメモリ管理手段122を介して利用可能メモリキューからメモリブロックポインタを取り出す処理を代行している。なお、この際、メモリ管理手段12が共有メモリ管理手段として機能している場合には、排他制御を行った上で、空きメモリ管理手段122を介して利用可能メモリキューからメモリブロックポインタを取り出す処理が行われる。なお、センサデータ受付手段11がメモリ管理手段12にセンサデータを渡し、メモリ管理手段12でコピー処理も行うようにしてもよい。   Then, a memory block for storing sensor data is secured using the specified memory management means 12, and the received sensor data is stored in the secured memory block (step S16). Thus, the sensor data is copied to the memory in the computer 100. In the memory management unit 12, the memory acquisition / release unit 123 performs the process of taking out the memory block pointer from the available memory queue via the free memory management unit 122. At this time, if the memory management unit 12 functions as a shared memory management unit, a process of taking out a memory block pointer from the available memory queue via the free memory management unit 122 after performing exclusive control. Is done. The sensor data receiving unit 11 may pass the sensor data to the memory management unit 12 and the memory management unit 12 may perform a copy process.

データ解析手段14は、当該コンピュータ100内のメモリにコピーされたセンサデータを解析する(ステップS17)。データ解析手段14は、解析が終了したセンサデータがあれば、そのセンサデータを格納しているメモリブロックを解放する(ステップS18)。なお、ステップS14〜S17の一連の処理は、センサデータが発生する毎に、各センサデータ受付手段11が独立して動作することにより非同期で行われる。   The data analysis unit 14 analyzes the sensor data copied to the memory in the computer 100 (step S17). If there is sensor data for which analysis has been completed, the data analysis unit 14 releases the memory block storing the sensor data (step S18). Note that the series of processing in steps S14 to S17 is performed asynchronously by each sensor data receiving unit 11 operating independently each time sensor data is generated.

以上のように、本実施形態によれば、メモリの使用効率と実行速度とのバランスをとることができる。また、本実施形態では、メモリ管理手段12への集中アクセスによる速度の低減を少なくすることができる。その理由は、データの発生頻度に関する属性情報に基づいて、各センサのセンサデータのメモリ格納処理を非同期に行うセンサデータ受付手段11に対し、専用のメモリプールを割り当てるか、共有のメモリプールを割り当てるかを定めることで、センサデータ受付手段11とメモリ管理手段12との対応を最適化することができるからである。   As described above, according to the present embodiment, it is possible to balance the memory usage efficiency and the execution speed. In the present embodiment, the speed reduction due to the centralized access to the memory management unit 12 can be reduced. The reason is that either a dedicated memory pool or a shared memory pool is allocated to the sensor data receiving means 11 that performs the memory storage process of the sensor data of each sensor asynchronously based on the attribute information relating to the data occurrence frequency. This is because the correspondence between the sensor data receiving means 11 and the memory management means 12 can be optimized.

また、本実施の形態では、メモリ管理手段12へのアクセスに伴う排他制御による速度の低減を少なくすることができる。この速度が低減する原因たる排他制御は、複数のセンサデータ受付手段11間でメモリ確保の要求が競合することから必要となっている。本実施形態では、センサデータ受付手段11とメモリ管理手段12との対応づけにより、発生頻度の高いセンサに対応づけられているセンサデータ受付手段11に対しては専用のメモリプールを与えることができ、メモリ確保の要求頻度が高いセンサデータ受付手段11間での競合をなくすことができるからである。   Further, in the present embodiment, speed reduction due to exclusive control accompanying access to the memory management unit 12 can be reduced. The exclusive control that is the cause of the reduction in the speed is necessary because the memory securing requests compete among the plurality of sensor data receiving means 11. In the present embodiment, by associating the sensor data receiving unit 11 with the memory management unit 12, a dedicated memory pool can be given to the sensor data receiving unit 11 that is associated with a frequently occurring sensor. This is because it is possible to eliminate contention between the sensor data receiving means 11 having a high memory securing request frequency.

実施形態2.
次に、本発明の第2の実施形態について説明する。図9は、第2の実施形態によるデータストリーム解析システムの構成例を示すブロック図である。図9に示すように、本実施形態によるデータストリーム解析システムは、図2に示す第1の実施形態と比べて、さらに、発生頻度分類手段18を備える点、およびメモリ管理手段12が利用状況監視手段125を含む点が異なる。
Embodiment 2. FIG.
Next, a second embodiment of the present invention will be described. FIG. 9 is a block diagram illustrating a configuration example of a data stream analysis system according to the second embodiment. As shown in FIG. 9, the data stream analysis system according to the present embodiment is further provided with an occurrence frequency classification means 18 as compared with the first embodiment shown in FIG. The difference is that the means 125 is included.

利用状況監視手段125は、メモリブロックの確保が行われるタイミングを監視し、センサデータの種類別(すなわち、センサ毎)に、メモリブロックの確保が行われる頻度を計測する。なお、利用状況監視手段125は、例えば、メモリ獲得・解放手段123で、メモリブロック獲得処理が行われたことを受けて、その呼び出し元のセンサデータ受付手段11に対応づけられているセンサIDを判別し、センサID別に呼び出し回数をカウントしていく手段であってもよい。なお、呼び出し元のセンサデータ受付手段11に対応づけられているセンサIDは、メモリ獲得・解放手段123を用いる際に、引数として渡されるようにしてもよい。   The usage status monitoring unit 125 monitors the timing at which the memory block is reserved, and measures the frequency at which the memory block is reserved for each type of sensor data (that is, for each sensor). For example, when the memory acquisition / release unit 123 performs the memory block acquisition process, the usage status monitoring unit 125 determines the sensor ID associated with the caller sensor data reception unit 11. It may be a means for determining and counting the number of calls for each sensor ID. Note that the sensor ID associated with the caller sensor data reception unit 11 may be passed as an argument when the memory acquisition / release unit 123 is used.

発生頻度分類手段18は、利用状況監視手段125による監視結果から、各センサを、データの発生頻度で分類する。   The occurrence frequency classification unit 18 classifies each sensor based on the occurrence frequency of data based on the monitoring result by the usage state monitoring unit 125.

図10は、利用状況監視手段125による監視結果の一例を示す説明図である。図10に示すように、利用状況監視手段125は、例えば、1時間単位にセンサID別のメモリ獲得要求の呼び出し回数をカウントして保持するようにしてもよい。図10に示す例では、例えば、10:00までの1時間の間に、センサID=S1で識別されるセンサデータ受付手段11から60回の呼び出しがされたことが示されている。なお、単位時間は1時間でなくてもよい。なお、利用状況監視手段125の処理を、メモリ獲得・解放手段123が行うようにしてもよい。その際、メモリ獲得・解放手段123では、内部でカウントし、一定周期毎に図10に占めすようなテーブルに書き込むようにしてもよい。また、カウントはメモリ獲得・解放手段123で行い、テーブルの反映を利用状況監視手段125が行うようにしてもよい。例えば、利用状況監視手段125が、メモリ獲得・解放手段123に問い合わせを行い、このテーブルを更新するようにしてもよい。   FIG. 10 is an explanatory diagram illustrating an example of a monitoring result by the usage status monitoring unit 125. As shown in FIG. 10, the usage status monitoring unit 125 may count and hold the number of memory acquisition request calls for each sensor ID, for example, in units of one hour. In the example illustrated in FIG. 10, for example, it is indicated that the sensor data reception unit 11 identified by the sensor ID = S1 has been called 60 times during one hour until 10:00. The unit time may not be 1 hour. The processing of the usage status monitoring unit 125 may be performed by the memory acquisition / release unit 123. At that time, the memory acquisition / release means 123 may count the data internally and write it in a table as shown in FIG. 10 at regular intervals. Further, the counting may be performed by the memory acquisition / release unit 123, and the utilization status monitoring unit 125 may reflect the table. For example, the usage status monitoring unit 125 may make an inquiry to the memory acquisition / release unit 123 to update this table.

発生頻度分類手段18は、例えば、各センサを高頻度センサと低頻度センサに分類してもよい。図11は、センサの分類方法の一例を示す説明図である。図11に示すように、例えば、発生頻度に関してある閾値を設定しておき、監視結果で示される一定期間内のメモリ獲得要求の呼び出し回数の平均が、この閾値より大きいかどうかを判定することによって、分類してもよい。図11において、横軸は時間、縦軸は監視結果である。また、図11では、4つの期間にわたるメモリ獲得要求の呼び出し回数の平均によって判定した例を示している。例えば、図11では、センサID=S1,S2のセンサに対応づけられた各センサデータ受付手段11からの一定期間内のメモリ獲得要求の呼び出し回数の平均は、それぞれ閾値よりも高いため、センサID=S1,S2で識別される各センサは高頻度センサに分類される。また、例えば、図11では、センサID=S3のセンサに対応づけられたセンサデータ受付手段11からの一定期間内のメモリ獲得要求の呼び出し回数の平均が、閾値よりも低いため、センサID=S3で識別されるセンサは低頻度センサに分類される。なお、発生頻度分類手段18は、例えば、K−平均法などを利用して、各センサを高頻度センサと低頻度センサにクラスタリングすることによって分類してもよい。   The occurrence frequency classification unit 18 may classify each sensor into a high-frequency sensor and a low-frequency sensor, for example. FIG. 11 is an explanatory diagram illustrating an example of a sensor classification method. As shown in FIG. 11, for example, by setting a certain threshold regarding the occurrence frequency, it is determined whether or not the average number of calls for memory acquisition requests within a certain period indicated by the monitoring result is larger than this threshold. May be classified. In FIG. 11, the horizontal axis represents time, and the vertical axis represents the monitoring result. Further, FIG. 11 shows an example in which the determination is made based on the average number of calls for memory acquisition requests over four periods. For example, in FIG. 11, since the average number of calls for memory acquisition requests within a certain period from each sensor data accepting unit 11 associated with the sensor of sensor ID = S1, S2 is higher than the threshold value, sensor ID = Each sensor identified by S1 and S2 is classified as a high-frequency sensor. Also, for example, in FIG. 11, the average number of calls for memory acquisition requests within a certain period from the sensor data receiving means 11 associated with the sensor with sensor ID = S3 is lower than the threshold value, so sensor ID = S3 Are identified as low-frequency sensors. Note that the occurrence frequency classification unit 18 may classify the sensors by clustering the sensors into high-frequency sensors and low-frequency sensors using, for example, a K-average method.

次に、本実施形態の動作を説明する。図12は、本実施形態におけるデータストリーム解析システムの動作例を示すフローチャートである。図12では、図7に示す第1の実施形態と同じ動作については、同じステップ番号を付し、説明を省略する。なお、図12において破線矢印は、矢印の元のステップが矢印の先のステップに、非同期に影響を与えることを意味している。   Next, the operation of this embodiment will be described. FIG. 12 is a flowchart showing an operation example of the data stream analysis system in the present embodiment. In FIG. 12, the same operations as those in the first embodiment shown in FIG. In FIG. 12, a dashed arrow means that the original step of the arrow affects the step ahead of the arrow asynchronously.

本実施形態では、ステップS16(センサデータメモリ格納処理)の後に、センサデータ受付手段11毎のメモリ獲得要求の状況を示す情報をロギングする処理を行う(ステップS21)。ステップS21では、例えば、利用状況監視手段125が、各センサデータ受付手段11からのメモリ獲得要求の呼び出し回数を図10に示すようなテーブルに書き込んでいく。   In the present embodiment, after step S16 (sensor data memory storage process), a process of logging information indicating the status of the memory acquisition request for each sensor data receiving means 11 is performed (step S21). In step S21, for example, the usage status monitoring unit 125 writes the number of calls for a memory acquisition request from each sensor data receiving unit 11 in a table as shown in FIG.

また、本実施形態では、一連のメモリ解析処理(ステップS14〜S17。以下、メインフローという。)と並行して、非同期に実行する別のフロー(以下、サブフローという。)が動作する(ステップS22〜S24の繰り返し)。   Further, in the present embodiment, another flow (hereinafter referred to as a subflow) that is executed asynchronously operates in parallel with a series of memory analysis processing (steps S14 to S17, hereinafter referred to as a main flow) (step S22). ~ Repeat S24).

このサブフローでは、まず、ステップS21の利用状況監視手段125による監視結果を受けて、発生頻度分類手段18が、各センサをデータの発生頻度で分類する(ステップS22)。発生頻度分類手段18は、利用状況監視手段125による監視結果で示される、センサデータ受付手段11毎の一定期間内のメモリ獲得要求の呼び出し回数の平均を、センサ毎のデータの発生頻度とみなして、各センサを分類すればよい。そして、その分類結果を、センサ属性管理手段16に反映させる(ステップS23)。対応関係最適化手段15は、センサ属性が更新されたことを受けて、センサデータ受付手段11とメモリ管理手段12との対応づけを最適化する(ステップS24)。   In this sub-flow, first, the occurrence frequency classification means 18 classifies each sensor based on the occurrence frequency of data in response to the monitoring result by the utilization status monitoring means 125 in step S21 (step S22). The occurrence frequency classification unit 18 regards the average of the number of calls for memory acquisition requests within a certain period for each sensor data reception unit 11 indicated by the monitoring result by the usage state monitoring unit 125 as the occurrence frequency of data for each sensor. Each sensor may be classified. Then, the classification result is reflected in the sensor attribute management means 16 (step S23). Correspondence relation optimizing means 15 optimizes the correspondence between sensor data receiving means 11 and memory management means 12 in response to the update of the sensor attributes (step S24).

本例では、メインフローのステップS21のロギング結果が、サブフローのステップS22で非同期に参照されて、センサの分類が行われる。そして、その分類結果を受けたサブフローのステップS24の最適化結果が、メインフローのステップS15で非同期に参照されて、利用メモリ管理手段の特定が行われる。   In this example, the logging result of step S21 in the main flow is asynchronously referred to in step S22 of the subflow, and sensor classification is performed. Then, the optimization result in step S24 of the subflow that has received the classification result is referred to asynchronously in step S15 of the main flow, and the used memory management means is specified.

本実施形態によれば、事前に各センサのデータの発生頻度がわからない場合においても、自動的にセンサの属性をシステムが作成し、最適にメモリ割り当てを行うことができる。なお、他の点に関しては第1の実施形態と同様である。   According to this embodiment, even when the frequency of occurrence of data of each sensor is not known in advance, the system can automatically create sensor attributes and optimally allocate memory. Other points are the same as those in the first embodiment.

実施形態3.
次に、本発明の第3の実施形態について説明する。図13は、第3の実施形態によるデータストリーム解析システムの構成例を示すブロック図である。図13に示すように、本実施形態によるデータストリーム解析システムは、図9に示す第2の実施形態と比べて、さらに、データ発生数予測手段19を備える点が異なる。
Embodiment 3. FIG.
Next, a third embodiment of the present invention will be described. FIG. 13 is a block diagram illustrating a configuration example of a data stream analysis system according to the third embodiment. As shown in FIG. 13, the data stream analysis system according to the present embodiment is different from the second embodiment shown in FIG. 9 in that it further includes a data generation number predicting means 19.

データ発生数予測手段19は、利用状況監視手段125による監視結果に基づいて、将来の各センサのデータの発生頻度を予測する。なお、データ発生数予測手段19によって予測された各センサのデータの発生頻度は、例えば、利用状況監視手段125による監視結果の出力先となるテーブルに追加して記憶するようにしてもよいし、データ発生数予測手段19が別途異なるテーブルに記憶するようにしてもよい。   The data generation number predicting unit 19 predicts the frequency of data generation of each sensor in the future based on the monitoring result by the usage state monitoring unit 125. Note that the frequency of data generation of each sensor predicted by the data generation number prediction unit 19 may be stored in addition to, for example, a table serving as an output destination of the monitoring result by the usage status monitoring unit 125. The data generation number prediction means 19 may be separately stored in a different table.

データ発生数予測手段19の予測方法は、特に限定されない。例えば、最小二乗法を用いてもよい。図14は、データ発生数予測手段19による予測結果の一例を示す説明図である。ここでは、最小二乗法を用いた例として示している。最小二乗法では、各期間における監視結果を関数で近似する方式であり、想定する近似関数が測定値に対してより近似となるように、残差の二乗和を最小とするような係数を決定する方法である。図14は、線形関数で近似させた例を示している。なお、線形関数で近似する方法に限らず、2次以降の高次の関数で近似してもかまわない。関数で近似できると、将来の時間をこの関数に入力することで、将来の予測ができる。図14に示す例では、センサID=S1で識別されるセンサのデータ発生頻度が、将来の時間であるt1において、i1と予測されている。   The prediction method of the data generation number prediction means 19 is not particularly limited. For example, the least square method may be used. FIG. 14 is an explanatory diagram showing an example of a prediction result by the data generation number prediction means 19. Here, an example using the least square method is shown. In the least squares method, the monitoring results in each period are approximated by a function, and a coefficient that minimizes the residual sum of squares is determined so that the assumed approximate function is more approximate to the measured value. It is a method to do. FIG. 14 shows an example approximated by a linear function. Note that the approximation is not limited to a linear function, but may be approximated by a second-order or higher-order function. If the function can be approximated, the future can be predicted by inputting the future time into this function. In the example shown in FIG. 14, the data occurrence frequency of the sensor identified by sensor ID = S1 is predicted to be i1 at t1, which is a future time.

次に、本実施形態の動作を説明する。図15は、本実施形態におけるデータストリーム解析システムの動作例を示すフローチャートである。図15では、図12に示す第2の実施形態と同じ動作については、同じステップ番号を付し、説明を省略する。なお、図15においても破線矢印は、矢印の元のステップが矢印の先のステップに、非同期に影響を与えることを意味している。   Next, the operation of this embodiment will be described. FIG. 15 is a flowchart showing an operation example of the data stream analysis system in the present embodiment. In FIG. 15, the same operations as those of the second embodiment shown in FIG. In FIG. 15 as well, a broken line arrow means that the original step of the arrow affects the step ahead of the arrow asynchronously.

本実施形態では、サブフローのステップS22(センサ分類処理)の前に、利用状況監視手段125による監視結果から将来のデータ発生頻度を予測する処理を行う(ステップS31)。ステップS31では、データ発生数予測手段19が、利用状況監視手段125による監視結果に基づき、各センサの将来のデータの発生頻度を予測する。また、ステップS22では、発生頻度分類手段18は、データ発生数予測手段19が予測した各センサの将来のデータの発生頻度に基づいて、各センサを分類すればよい。   In the present embodiment, before the subflow step S22 (sensor classification process), a process of predicting the frequency of future data generation from the monitoring result by the usage status monitoring unit 125 is performed (step S31). In step S <b> 31, the data generation number prediction unit 19 predicts the frequency of future data generation of each sensor based on the monitoring result by the usage state monitoring unit 125. In step S22, the occurrence frequency classification unit 18 may classify each sensor based on the occurrence frequency of future data of each sensor predicted by the data generation number prediction unit 19.

なお、本例では、メインフローのステップS21のロギング結果が、サブフローのステップS31で非同期に参照されて、将来のデータの発生頻度の予測が行われる。そして、その予測結果を受けたサブフローのステップS24の最適化結果が、メインフローのステップS15で非同期に参照されて、利用メモリ管理手段の特定が行われる。   In this example, the logging result of step S21 in the main flow is asynchronously referred to in step S31 of the subflow, and the occurrence frequency of future data is predicted. Then, the optimization result in step S24 of the subflow that has received the prediction result is asynchronously referred to in step S15 of the main flow, and the used memory management means is specified.

本実施形態によれば、現在のデータ発生状態ではなく、将来のデータ発生状態を考慮して、最適にメモリ割り当てを行うことができる。なお、他の点に関しては、第2の実施形態と同様である。   According to the present embodiment, memory allocation can be performed optimally in consideration of the future data generation state, not the current data generation state. Other points are the same as those in the second embodiment.

実施形態4.
次に、本発明の第4の実施形態について説明する。図16は、第4の実施形態によるデータストリーム解析システムの構成例を示すブロック図である。図16に示すように、本実施形態によるデータストリーム解析システムは、図9に示す第2の実施形態と比べて、さらに、メモリ管理手段12が平均解析寿命監視手段126を含む点が異なる。
Embodiment 4 FIG.
Next, a fourth embodiment of the present invention will be described. FIG. 16 is a block diagram illustrating a configuration example of a data stream analysis system according to the fourth embodiment. As shown in FIG. 16, the data stream analysis system according to the present embodiment is different from the second embodiment shown in FIG. 9 in that the memory management unit 12 includes an average analysis life monitoring unit 126.

平均解析寿命監視手段126は、メモリブロックの確保および解放が行われるタイミングを監視し、センサデータの種類別(すなわち、センサ毎)に、メモリ領域が確保されてから該メモリ領域が解放されるまでにかかる時間(すなわち、データ解析にかかる時間)の平均(以下、平均解析寿命という。)を計測する。   The average analysis lifetime monitoring unit 126 monitors the timing at which the memory block is secured and released, and after the memory area is secured for each type of sensor data (that is, for each sensor) until the memory area is released. The average (hereinafter referred to as the average analysis lifetime) of the time required for the analysis (ie, the time required for data analysis) is measured.

なお、本実施形態では、平均解析寿命監視手段126を実現するために、図17に示すように、メモリプールの各メモリブロックに、該メモリブロックが確保された時間を示す情報を格納しておくための領域(以下、ヘッダ領域という。)を含ませる。   In this embodiment, in order to realize the average analysis life monitoring means 126, as shown in FIG. 17, information indicating the time when the memory block is secured is stored in each memory block of the memory pool. For this purpose (hereinafter referred to as the header area).

平均解析寿命監視手段126は、例えば、メモリ獲得・解放手段123で、メモリブロック獲得処理が行われたことを受けて、そのときの日時を獲得されたメモリブロックのヘッダ領域に記憶させる。そして、メモリ獲得・解放手段123で、メモリブロック解放処理が行われたことを受けて、そのときの日時(解放日時)と、指定されたメモリブロックポインタが指すメモリブロックのヘッダ領域に記憶されている日時(獲得日時)との差分から、データ解析にかかる時間(解析寿命)を算出する。なお、平均解析寿命監視手段126は、一時的にセンサ毎の解析寿命を記憶しておき、一定の時間毎にその平均値を求めてもよい。   For example, when the memory acquisition / release unit 123 performs the memory block acquisition process, the average analysis lifetime monitoring unit 126 stores the date and time at that time in the header area of the acquired memory block. Then, in response to the memory block release processing being performed by the memory acquisition / release means 123, the date and time (release date and time) at that time and the header area of the memory block pointed to by the designated memory block pointer are stored. The time required for data analysis (analysis lifetime) is calculated from the difference from the date and time (acquisition date). The average analysis life monitoring means 126 may temporarily store the analysis life for each sensor, and obtain the average value at regular intervals.

図18は、平均解析寿命監視手段126による観察結果の一例を示す説明図である。図18に示すように、平均解析寿命監視手段126は、例えば、観察結果を示す手段として、1時間単位にセンサID別の平均解析寿命を記憶するテーブルを有していてもよい。なお、センサIDは、メモリブロック解放に係るメモリ獲得・解放手段123を用いる際に、引数として渡されるようにしてもよいし、メモリブロック獲得に係るメモリ獲得・解放手段123を用いる際に引数として渡されるようにした上で、ヘッダ領域に記憶しておいてもよい。図18において、時刻は、平均値を算出した時刻を示している。また、平均解析寿命は、前回の平均を算出した時刻以降の解析寿命の平均値を示している。なお、図18における平均解析寿命の単位は、ミリ秒である。   FIG. 18 is an explanatory diagram showing an example of an observation result by the average analysis life monitoring unit 126. As shown in FIG. 18, the average analysis life monitoring unit 126 may have a table that stores the average analysis life for each sensor ID in units of one hour, for example, as a means for indicating an observation result. The sensor ID may be passed as an argument when using the memory acquisition / release means 123 related to memory block release, or as an argument when using the memory acquisition / release means 123 related to memory block acquisition. It may be stored in the header area after being passed. In FIG. 18, the time indicates the time when the average value is calculated. The average analysis life indicates an average value of analysis life after the time when the previous average is calculated. Note that the unit of the average analysis lifetime in FIG. 18 is milliseconds.

本実施形態では、センサ属性管理手段16は、各センサについて、データの発生頻度に関する属性情報と、解析寿命に関する属性情報とを記憶する。解析寿命に関する属性情報は、例えば、長寿センサか又は短命センサかを示す情報であってもよい。ここで、長寿センサとは、解析に多くの時間が必要であり、センサデータを格納しておくためのメモリが多く必要なセンサをいう。また、短命センサは、解析にあまり時間を要しないセンサであり、センサデータを格納しておくためのメモリをあまり必要としないセンサをいう。ただし、この解析寿命に関する分類は一例であり、例えば、5段階や10段階でデータの解析寿命を表現してもかまわない。   In the present embodiment, the sensor attribute management unit 16 stores attribute information related to the occurrence frequency of data and attribute information related to the analysis lifetime for each sensor. The attribute information related to the analysis life may be information indicating whether the sensor is a long life sensor or a short life sensor, for example. Here, the longevity sensor refers to a sensor that requires a lot of time for analysis and requires a lot of memory for storing sensor data. A short-lived sensor is a sensor that does not require much time for analysis, and that does not require a memory for storing sensor data. However, the classification relating to the analysis life is an example, and for example, the analysis life of the data may be expressed in five or ten stages.

メモリ割り当ての無駄を少なくするためには、メモリを多く使う解析が行われるセンサと、メモリが少なくてよい解析が行われるセンサとを区別して割り当てるとよい。例えば、メモリプールを大サイズのメモリプールと小サイズのメモリプールの2種類用意し、センサ毎の解析寿命に応じて、選択的に割り当てるようにしてもよい。なお、大サイズのメモリプールとは、メモリプール全体として大きな容量が確保されたメモリプールをいう。また、小サイズのメモリプールとは、メモリプール全体として比較的小さな容量が確保されたメモリプールをいう。なお、メモリプール全体としての容量は、メモリブロックの数によって調整できる。本実施形態では、対応関係最適化手段15は、データの発生頻度に応じて専用メモリ管理手段として機能するメモリ管理手段12または共有メモリ管理手段として機能するメモリ管理手段12を割り当てる際に、平均解析寿命が所定の基準時間よりも長いセンサに対し、可能な限りメモリ容量が大きく取られたメモリプールに対応づけられたメモリ管理手段12を割り当てることによって、メモリ格納手段11とメモリ管理手段12とを対応づけを最適化する。   In order to reduce the waste of memory allocation, it is preferable to distinguish between sensors that perform analysis that uses a large amount of memory and sensors that perform analysis that requires less memory. For example, two types of memory pools, a large size memory pool and a small size memory pool, may be prepared and selectively allocated according to the analysis life for each sensor. A large-sized memory pool refers to a memory pool in which a large capacity is secured as a whole memory pool. The small-sized memory pool is a memory pool in which a relatively small capacity is secured as a whole memory pool. Note that the capacity of the entire memory pool can be adjusted by the number of memory blocks. In this embodiment, the correspondence relationship optimization unit 15 performs an average analysis when allocating the memory management unit 12 functioning as the dedicated memory management unit or the memory management unit 12 functioning as the shared memory management unit according to the frequency of data generation. By allocating the memory management means 12 associated with the memory pool having the largest possible memory capacity to the sensor whose lifetime is longer than the predetermined reference time, the memory storage means 11 and the memory management means 12 are Optimize mapping.

図19は、本実施形態における対応関係最適化手段15による最適化のアルゴリズムの例を示すフローチャートである。なお、図19におけるMbNUMは、大サイズのメモリプールの数を示している。なお、小サイズのメモリプールの数をMsNUMとすると、MNUM=MbNUM+MsNUMという関係がなりたつ。本例では、MbNUMとMsNUMとはそれぞれ1以上の数値とする。なお、長寿センサの数、または短命センサの数によってはMbNUMが0であってもよいし、MsNUMが0であってもよい。なお、MbNUMおよびMsNUMは予め定められるものであり、動作中の変更はされない。   FIG. 19 is a flowchart illustrating an example of an optimization algorithm by the correspondence relationship optimization unit 15 in the present embodiment. Note that MbNUM in FIG. 19 indicates the number of large memory pools. If the number of small-sized memory pools is MsNUM, there is a relationship of MNUM = MbNUM + MsNUM. In this example, MbNUM and MsNUM are each a numerical value of 1 or more. MbNUM may be 0 or MsNUM may be 0 depending on the number of longevity sensors or the number of short-life sensors. MbNUM and MsNUM are determined in advance and are not changed during operation.

なお、図19におけるステップS121,122は、図8に示すステップS121,122と同様であるため、説明は省略する。   Note that steps S121 and 122 in FIG. 19 are the same as steps S121 and 122 shown in FIG.

高頻度センサとして分類されるセンサの数に対する専用メモリ管理手段として機能しうるメモリ管理手段12の数の問題が解決されると、対応関係最適化手段15は、長寿センサとして分類されるセンサの数と、MbNUMの数とを比較する(ステップS221)。   When the problem of the number of memory management means 12 that can function as dedicated memory management means for the number of sensors classified as high-frequency sensors is solved, the correspondence optimization means 15 determines the number of sensors classified as longevity sensors. Is compared with the number of MbNUMs (step S221).

ここで、もし長寿センサとして分類されるセンサの数の方が大きければ(ステップS221のNo)、長寿センサすべてに専用の大サイズのメモリプールを割り当てることができないため、ステップS222に進んでこの問題の解決を試みる。なお、長寿センサとして分類されるセンサの数の方が小さければ(ステップS221のYes)、そのままステップS223に進めばよい。   Here, if the number of sensors classified as longevity sensors is larger (No in step S221), a dedicated large memory pool cannot be allocated to all longevity sensors. Try to solve the problem. If the number of sensors classified as longevity sensors is smaller (Yes in step S221), the process may proceed to step S223 as it is.

ステップS222では、長寿センサに分類されるセンサの一部または全てを短命センサに振り替える処理を行って、長寿センサの数を減らしていく。例えば、長寿センサに分類されたセンサの中からランダムに選んだ1つのセンサを短命センサに分類するようにしてもよい。なお、各センサのより詳細の解析寿命情報がわかる場合には、長寿センサに分類されたセンサの中から最も解析寿命が短いセンサを短命センサに分類するようにしてもよい。ステップS122の繰り返し処理により、長寿センサの数を減らしていく。   In step S222, a process of transferring some or all of the sensors classified as longevity sensors to shortlife sensors is performed to reduce the number of longevity sensors. For example, one sensor randomly selected from the sensors classified as longevity sensors may be classified as a short-life sensor. When more detailed analysis life information of each sensor is known, a sensor having the shortest analysis life may be classified as a short-life sensor among sensors classified as long-life sensors. The number of longevity sensors is reduced by repeating the process in step S122.

ステップS223では、長寿の高頻度センサそれぞれに、大サイズの専用のメモリプールを割り当てる。すなわち、長寿かつ高頻度センサに対応づけられた各センサデータ受付手段11と、大サイズのメモリプールに対応づけらえたメモリ管理手段12であって専用メモリ管理手段として機能するメモリ管理手段12とを1対1に対応づける。対応関係最適化手段15は、例えば、高頻度センサに対応づけられた各センサデータ受付手段11に、順番に、メモリ管理手段12を対応づけていくとともに、そのメモリ管理手段12を排他制御オフのモードに設定するようにしてもよい。   In step S223, a large dedicated memory pool is allocated to each long-lived high-frequency sensor. That is, each sensor data receiving means 11 associated with a long-lived and high-frequency sensor and memory management means 12 associated with a large-sized memory pool and functioning as dedicated memory management means 12 One-to-one correspondence. For example, the correspondence relationship optimization unit 15 sequentially associates the memory management unit 12 with each sensor data reception unit 11 associated with the high-frequency sensor, and sets the memory management unit 12 to exclusive control off. The mode may be set.

次に、対応関係最適化手段15は、短命の高頻度センサそれぞれに、小サイズの専用のメモリプールを割り当てる。すなわち、短命かつ高頻度センサに対応づけられた各センサデータ受付手段11と、小サイズのメモリプールに対応づけらえたメモリ管理手段12であって専用メモリ管理手段として機能するメモリ管理手段12とを1対1に対応づける。なお、小サイズのメモリプールが足りなければ、大サイズのメモリプールを割り当ててもよい。対応関係最適化手段15は、例えば、低頻度センサに対応づけられた各センサデータ受付手段11に、順番に、小サイズのメモリプールに対応づけらえたメモリ管理手段12を対応づけていくとともに、そのメモリ管理手段12を排他制御オフのモードに設定するようにしてもよい。   Next, the correspondence relationship optimization unit 15 allocates a small-sized dedicated memory pool to each short-lived high-frequency sensor. That is, each sensor data receiving means 11 associated with a short-lived and high-frequency sensor, and a memory management means 12 associated with a small-sized memory pool and functioning as a dedicated memory management means One-to-one correspondence. If there are not enough small-sized memory pools, large-sized memory pools may be allocated. For example, the correspondence relationship optimization unit 15 sequentially associates the memory management unit 12 associated with the small-sized memory pool with each sensor data reception unit 11 associated with the low-frequency sensor, The memory management unit 12 may be set to the exclusive control off mode.

最後に、対応関係最適化手段15は、低頻度センサに、残りのメモリプールを均等に割り当てる(ステップS224)。なお、大サイズのメモリプールが残っている場合には、長寿命の低頻度センサを含む組み合わせに対して、可能な限り大サイズのメモリプールを割り当てるようにしてもよい。   Finally, the correspondence relationship optimization unit 15 evenly allocates the remaining memory pool to the low-frequency sensors (step S224). If a large-sized memory pool remains, a large-sized memory pool may be allocated as much as possible to a combination including a long-lived low-frequency sensor.

次に、本実施形態の動作について説明する。図20は、本実施形態におけるデータストリーム解析システムの動作例を示すフローチャートである。図20では、図12に示す第2の実施形態と同じ動作については、同じステップ番号を付し、説明を省略する。なお、図20においても破線矢印は、矢印の元のステップが矢印の先のステップに、非同期に影響を与えることを意味している。   Next, the operation of this embodiment will be described. FIG. 20 is a flowchart showing an operation example of the data stream analysis system in the present embodiment. In FIG. 20, the same operations as those in the second embodiment shown in FIG. 12 are denoted by the same step numbers and description thereof is omitted. In FIG. 20, the dashed arrow means that the original step of the arrow affects the step ahead of the arrow asynchronously.

本実施形態では、メインフローのステップS16(センサデータメモリ格納処理)において、平均解析寿命監視手段126が、獲得されるメモリブロックのヘッダ領域に獲得日時を記憶する処理を追加する。また、メインフローのステップS18(メモリブック解放処理)において、平均解析寿命監視手段126が、解放されるメモリブロックのヘッダ領域に記憶された獲得日時と解放日時とを取得する処理を追加する。なお、該センサデータの解析寿命を求めてもよい。   In the present embodiment, in step S16 (sensor data memory storage process) of the main flow, the average analysis lifetime monitoring unit 126 adds a process of storing the acquisition date and time in the header area of the acquired memory block. In step S18 (memory book release process) of the main flow, the average analysis lifetime monitoring unit 126 adds a process of acquiring the acquisition date and the release date stored in the header area of the memory block to be released. Note that the analysis life of the sensor data may be obtained.

そして、ステップS18の後、平均解析寿命監視手段126は、センサデータの解析寿命を求め、必要に応じて、センサデータの種類別の平均解析寿命を求める(ステップS41)。   After step S18, the average analysis life monitoring unit 126 obtains the analysis life of the sensor data and, if necessary, obtains the average analysis life for each type of sensor data (step S41).

また、本実施形態では、サブフローのステップS22(センサ分類処理)の後に、平均解析寿命監視手段126による監視結果(センサデータの種類別の平均解析寿命)を、センサ属性管理手段16に設定する処理を行う(ステップS42)。例えば、センサ属性管理手段16が、平均解析寿命監視手段126によって算出されたセンサデータの種類別の平均解析寿命を取得して、センサ属性管理手段16の解析寿命に関する属性情報を更新するようにしてもよい。対応関係最適化手段15は、センサ属性が更新されたことを受けて、センサデータ受付手段11とメモリ管理手段12との対応づけを最適化する(ステップS43)。なお、対応関係最適化手段15は、データの発生頻度と、解析寿命とを考慮して、センサデータ受付手段11とメモリ管理手段12との対応づけを最適化する。   In the present embodiment, after the sub-flow step S22 (sensor classification process), the process of setting the monitoring result (average analysis life for each type of sensor data) by the average analysis life monitoring means 126 in the sensor attribute management means 16 (Step S42). For example, the sensor attribute management means 16 acquires the average analysis life for each type of sensor data calculated by the average analysis life monitoring means 126 and updates the attribute information related to the analysis life of the sensor attribute management means 16. Also good. Corresponding relationship optimization means 15 receives the fact that the sensor attribute has been updated, and optimizes the correspondence between sensor data receiving means 11 and memory management means 12 (step S43). The correspondence optimization unit 15 optimizes the correspondence between the sensor data reception unit 11 and the memory management unit 12 in consideration of the data generation frequency and the analysis lifetime.

本実施形態では、メモリ管理手段12の分散化によるメモリ効率低下を低減することができる。その理由は、各センサデータの種類別の発生頻度だけでなく、平均解析寿命を考慮して、サイズの異なるメモリプールによるメモリ割り当てを行うことで、メモリ効率をよくすることができるからである。なお、本実施形態は、例えば、第3の実施形態に平均解析寿命監視手段126を追加させた形態としても実施可能である。   In the present embodiment, a decrease in memory efficiency due to the distribution of the memory management unit 12 can be reduced. The reason is that memory efficiency can be improved by performing memory allocation using memory pools of different sizes in consideration of not only the frequency of occurrence of each sensor data type but also the average analysis lifetime. Note that this embodiment can be implemented, for example, as a mode in which the average analysis life monitoring unit 126 is added to the third embodiment.

また、本発明の各実施形態における各構成要素は、その機能をハードウェアによって実現させることができるだけでなく、コンピュータとプログラムとによって実現することも可能である。プログラムは、磁気ディスクや半導体メモリ等のコンピュータ可読機能媒体に記録されて提供され、コンピュータの立ち上げ時などに、コンピュータに読み取られ、そのコンピュータの動作を制御することによって、そのコンピュータを各構成要素として機能させる。   In addition, each component in each embodiment of the present invention can be realized not only by hardware but also by a computer and a program. The program is provided by being recorded on a computer-readable functional medium such as a magnetic disk or a semiconductor memory, and is read by the computer when the computer is started up, etc. To function as.

なお、上記実施形態には、解析用にデータを格納するためのメモリ領域が複数のメモリプール(例えば、各メモリプール121)として割り当てられるデータ記憶手段と、複数のメモリプールのうちいずれか1つのメモリプールと1対1に対応し、対応づけられた一のメモリプールに対する手続きをとりまとめて行う複数のメモリ管理手段(例えば、各メモリ管理手段12)と、予め区分けされたデータの種類別に独立して動作し、解析対象とするデータが発生すると、メモリ領域に該データを格納する1つ以上のメモリ格納手段と、メモリ格納手段(例えば、各メモリ格納手段11)と、メモリ管理手段との対応づけを示す情報を記憶する対応関係記憶手段(例えば、対応関係記憶手段13)とを備え、複数のメモリ管理手段は、排他制御を行った上でメモリプールに対する手続きを行う共有メモリ管理手段と、排他制御を行わずにメモリプールに対する手続きを行う専用メモリ管理手段とに分けられ、メモリ格納手段が、解析対象とするデータが発生すると、当該メモリ格納手段に対応づけられているメモリ管理手段を用いて複数のメモリプールのいずれかから確保したメモリ領域に該データを格納するデータストリーム解析システムの構成が示されている。   In the above embodiment, a data storage means in which memory areas for storing data for analysis are allocated as a plurality of memory pools (for example, each memory pool 121), and any one of the plurality of memory pools. A plurality of memory management means (for example, each memory management means 12) that correspond to a memory pool on a one-to-one basis and perform a procedure for one associated memory pool, and are independent for each type of data that has been divided in advance. When the data to be analyzed is generated, the correspondence between the one or more memory storage means for storing the data in the memory area, the memory storage means (for example, each memory storage means 11), and the memory management means And a correspondence relationship storage means (for example, correspondence relationship storage means 13) for storing information indicating the attachment, and the plurality of memory management means include exclusive control. When the memory storage means generates data to be analyzed, it is divided into a shared memory management means that performs a procedure for the memory pool after being performed and a dedicated memory management means that performs a procedure for the memory pool without performing exclusive control. A configuration of a data stream analysis system that stores the data in a memory area secured from one of a plurality of memory pools using a memory management unit associated with the memory storage unit is shown.

また、上記実施形態には、データの種類として、解析対象とするデータの入力方法、発生源もしくは発生要因又はそれらの組み合わせに基づいて区分けされた種類を用いるデータストリーム解析システムの構成が示されている。   In the above embodiment, the configuration of the data stream analysis system using the type of data classified based on the input method of data to be analyzed, the generation source or the generation factor, or a combination thereof is shown as the type of data. Yes.

また、上記実施形態には、種類別のデータの発生頻度、共有メモリ管理手段として機能するメモリ管理手段の数および専用メモリ管理手段として機能するメモリ管理手段の数に基づいて、メモリ格納手段とメモリ管理手段との対応づけを最適化する最適化手段(例えば、対応関係最適化手段15)を備え、対応関係記憶手段が、最適化手段によって最適化されたデータの種類とメモリ管理手段との対応づけを示す情報を記憶するデータストリーム解析システムの構成が示されている。   In the above embodiment, the memory storage means and the memory are based on the frequency of occurrence of data by type, the number of memory management means functioning as shared memory management means, and the number of memory management means functioning as dedicated memory management means. An optimization unit (for example, a correspondence relationship optimization unit 15) that optimizes the correspondence with the management unit is provided, and the correspondence relationship storage unit associates the data type optimized by the optimization unit with the memory management unit. The configuration of a data stream analysis system that stores information indicating attachment is shown.

また、上記実施形態には、最適化手段が、データの発生頻度が所定の閾値よりも高い種類を処理対象としているメモリ格納手段に、専用メモリ管理手段として機能するメモリ管理手段を1対1に割り当てた後、残りのメモリ格納手段に、共有メモリ管理手段として機能するメモリ管理手段を均等に割り当てることによって、メモリ格納手段とメモリ管理手段との対応づけを最適化するデータストリーム解析システムの構成が示されている。   In the above-described embodiment, the optimization unit has a one-to-one correspondence between the memory management unit that functions as a dedicated memory management unit and the memory storage unit that has a data generation frequency higher than a predetermined threshold. After the allocation, the configuration of the data stream analysis system that optimizes the correspondence between the memory storage means and the memory management means by equally allocating the memory management means functioning as the shared memory management means to the remaining memory storage means. It is shown.

また、上記実施形態には、最適化手段が、専用メモリ管理手段として機能するメモリ管理手段の数に対し、データの発生頻度が所定の閾値よりも高い種類を処理対象としているメモリ格納手段の数が多い場合には、該メモリ格納手段のうちの一部または全部に対して共有メモリ管理手段として機能するメモリ管理手段を割り当てることによって、メモリ格納手段とメモリ管理手段との対応づけを最適化するデータストリーム解析システムの構成が示されている。   Further, in the above embodiment, the number of memory storage means whose processing means is a type whose data generation frequency is higher than a predetermined threshold with respect to the number of memory management means that the optimization means functions as the dedicated memory management means. If there is a large amount of memory, a memory management unit that functions as a shared memory management unit is assigned to a part or all of the memory storage unit to optimize the correspondence between the memory storage unit and the memory management unit. The configuration of the data stream analysis system is shown.

また、上記実施形態には、最適化手段が、専用メモリ管理手段として機能するメモリ管理手段の数に対し、データの発生頻度が所定の閾値よりも高い種類を処理対象としているメモリ格納手段の数が多い場合には、該メモリ格納手段のうちの一部または全部に対して共有メモリ管理手段として機能するメモリ管理手段を割り当てることによって、メモリ格納手段とメモリ管理手段との対応づけを最適化するデータストリーム解析システムの構成が示されている。   Further, in the above embodiment, the number of memory storage means whose processing means is a type whose data generation frequency is higher than a predetermined threshold with respect to the number of memory management means that the optimization means functions as the dedicated memory management means. If there is a large amount of memory, a memory management unit that functions as a shared memory management unit is assigned to a part or all of the memory storage unit to optimize the correspondence between the memory storage unit and the memory management unit. The configuration of the data stream analysis system is shown.

また、上記実施形態には、データの種類別に、メモリ領域の確保が行われる頻度であるメモリ確保頻度を計測する頻度計測手段(例えば、利用状況監視手段125)を備え、最適化手段は、頻度計測手段によって計測される種類別のメモリ確保頻度を種類別のデータの発生頻度とし、メモリ格納手段とメモリ管理手段との対応づけを最適化するデータストリーム解析システムの構成が示されている。   Further, the above embodiment includes a frequency measurement unit (for example, usage status monitoring unit 125) that measures a memory allocation frequency, which is a frequency at which a memory area is allocated, for each type of data. A configuration of a data stream analysis system is shown that optimizes the correspondence between the memory storage means and the memory management means, with the memory allocation frequency for each type measured by the measurement means as the occurrence frequency of data for each type.

また、上記実施形態には、頻度計測手段によって計測された種類別のメモリ確保頻度に基づいて、将来の種類別のデータ発生頻度を予測するデータ発生頻度予測手段(例えば、データ発生数予測手段19)を備え、最適化手段は、データ発生頻度予測手段によって予測される種類別のデータの発生頻度に基づいて、メモリ格納手段とメモリ管理手段との対応づけを更新するデータストリーム解析システムの構成が示されている。   In the above embodiment, the data generation frequency predicting unit (for example, the data generation number predicting unit 19) that predicts the data generation frequency for each future type based on the memory allocation frequency for each type measured by the frequency measuring unit. And the optimization unit has a configuration of a data stream analysis system that updates the correspondence between the memory storage unit and the memory management unit based on the generation frequency of data for each type predicted by the data generation frequency prediction unit. It is shown.

また、上記実施形態には、解析対象とするデータを格納するためのメモリ領域が、メモリ容量の異なる複数のメモリプールに分かれて割り当てられるデータ記憶手段を備えたデータストリーム解析システムであって、最適化手段が、種類別のデータの発生頻度、種類別の平均解析時間、共有メモリ管理手段として機能するメモリ管理手段の数および専用メモリ管理手段として機能するメモリ管理手段の数に基づいて、メモリ格納手段とメモリ管理手段とを対応づけるデータストリーム解析システムの構成が示されている(例えば、実施形態4参照。)。   Further, the above embodiment is a data stream analysis system including a data storage unit in which a memory area for storing data to be analyzed is divided and allocated to a plurality of memory pools having different memory capacities. Storage means based on the frequency of occurrence of data by type, average analysis time by type, number of memory management means functioning as shared memory management means, and number of memory management means functioning as dedicated memory management means A configuration of a data stream analysis system associating means with memory management means is shown (for example, see Embodiment 4).

また、上記実施形態には、最適化手段が、データの発生頻度に応じて専用メモリ管理手段として機能するメモリ管理手段または共有メモリ管理手段として機能するメモリ管理手段を割り当てる際に、平均解析時間が所定の基準時間よりも長い種類を処理対象としているメモリ格納手段に対し、可能な限りメモリ容量が大きく取られたメモリプールに対応づけられたメモリ管理手段を割り当てることによって、メモリ格納手段とメモリ管理手段とを対応づけを最適化するデータストリーム解析システムの構成が示されている。   In the above embodiment, when the optimization unit assigns the memory management unit functioning as the dedicated memory management unit or the memory management unit functioning as the shared memory management unit according to the frequency of occurrence of data, the average analysis time The memory storage means and the memory management are allocated by allocating a memory management means associated with a memory pool having a memory capacity as large as possible to a memory storage means whose processing target is longer than a predetermined reference time. A configuration of a data stream analysis system for optimizing the correspondence between means is shown.

また、上記実施形態には、データの種類別に、実際にメモリプールからメモリ領域が確保されてから該メモリ領域が解放されるまでの期間の平均値である平均メモリ確保期間を計測するメモリ確保期間計測手段(例えば、平均解析寿命監視手段126)を備え、最適化手段が、メモリ確保期間計測手段によって計測された種類別の平均メモリ確保期間を種類別の平均解析時間とし、メモリ格納手段とメモリ管理手段との対応づけを最適化するデータストリーム解析システムの構成が示されている。   In the above embodiment, the memory allocation period for measuring the average memory allocation period, which is an average value of the period from when the memory area is actually allocated from the memory pool until the memory area is released, for each data type. Measuring means (for example, average analysis life monitoring means 126), and the optimization means sets the average memory securing period for each type measured by the memory securing period measuring means as the average analysis time for each type, and the memory storing means and the memory The configuration of a data stream analysis system that optimizes the correspondence with the management means is shown.

本発明は、連続して発生するデータを解析するデータストリーム解析システムに限らず、連続して発生するデータをメモリに格納する必要があるシステムであれば、好適に適用可能である。   The present invention is not limited to a data stream analysis system that analyzes continuously generated data, and can be suitably applied to any system that needs to store continuously generated data in a memory.

第1の実施形態におけるデータストリーム解析システムの構成例を示す説明図である。It is explanatory drawing which shows the structural example of the data stream analysis system in 1st Embodiment. 第1の実施形態によるデータストリーム解析システムのより具体的な構成例を示すブロック図である。It is a block diagram which shows the more specific structural example of the data stream analysis system by 1st Embodiment. 利用可能メモリキューを用いた空き状態管理の一例を示す説明図である。It is explanatory drawing which shows an example of the free state management using an available memory queue. メモリブロックの獲得にかかる管理対象メモリプール121の空き状態の変化を示す説明図である。It is explanatory drawing which shows the change of the empty state of the management object memory pool 121 concerning acquisition of a memory block. メモリブロックの解放にかかる管理対象メモリプール121の空き状態の変化を示す説明図である。It is explanatory drawing which shows the change of the empty state of the management object memory pool 121 concerning release of a memory block. センサ−メモリ対応管理手段13の例を示す説明図である。It is explanatory drawing which shows the example of the sensor-memory correspondence management means. 第1の実施形態によるデータストリーム解析システムの動作例を示すフローチャートである。It is a flowchart which shows the operation example of the data stream analysis system by 1st Embodiment. 対応関係最適化手段15による最適化のアルゴリズムの例を示すフローチャートである。4 is a flowchart showing an example of an algorithm for optimization by the correspondence relationship optimization unit 15. 第2の実施形態によるデータストリーム解析システムの構成例を示すブロック図である。It is a block diagram which shows the structural example of the data stream analysis system by 2nd Embodiment. 利用状況監視手段125による監視結果の一例を示す説明図である。It is explanatory drawing which shows an example of the monitoring result by the usage condition monitoring means. センサの分類方法の一例を示す説明図である。It is explanatory drawing which shows an example of the classification method of a sensor. 第2の実施形態におけるデータストリーム解析システムの動作例を示すフローチャートである。It is a flowchart which shows the operation example of the data stream analysis system in 2nd Embodiment. 第3の実施形態によるデータストリーム解析システムの構成例を示すブロック図である。It is a block diagram which shows the structural example of the data stream analysis system by 3rd Embodiment. データ発生数予測手段19による予測結果の一例を示す説明図である。It is explanatory drawing which shows an example of the prediction result by the data generation number prediction means. 第3の実施形態におけるデータストリーム解析システムの動作例を示すフローチャートである。It is a flowchart which shows the operation example of the data stream analysis system in 3rd Embodiment. 第4の実施形態によるデータストリーム解析システムの構成例を示すブロック図である。It is a block diagram which shows the structural example of the data stream analysis system by 4th Embodiment. 第4の実施形態におけるメモリプール121の一例を示す説明図である。It is explanatory drawing which shows an example of the memory pool 121 in 4th Embodiment. 平均解析寿命監視手段126による観察結果の一例を示す説明図である。It is explanatory drawing which shows an example of the observation result by the average analysis lifetime monitoring means 126. FIG. 第4の実施形態における対応関係最適化手段15による最適化のアルゴリズムの例を示すフローチャートである。It is a flowchart which shows the example of the algorithm of the optimization by the corresponding relationship optimization means 15 in 4th Embodiment. 第4の実施形態におけるデータストリーム解析システムの動作例を示すフローチャートである。It is a flowchart which shows the operation example of the data stream analysis system in 4th Embodiment.

符号の説明Explanation of symbols

100 コンピュータ
11 メモリ格納手段,センサデータ受付手段
12 メモリ管理手段
121 メモリプール(管理対象メモリプール)
122 空きメモリ管理手段
123 メモリ獲得・解放手段
124 アクセスモード記憶手段
125 利用状況監視手段
126 平均解析寿命監視手段
13 対応関係記憶手段、センサ−メモリ対応管理手段
14 データ解析手段
15 対応関係最適化手段
16 センサ属性管理手段
17 排他制御手段
18 発生頻度分類手段
19 データ発生数予測手段
200 センサ
DESCRIPTION OF SYMBOLS 100 Computer 11 Memory storage means, sensor data reception means 12 Memory management means 121 Memory pool (managed memory pool)
122 free memory management means 123 memory acquisition / release means 124 access mode storage means 125 usage status monitoring means 126 average analysis life monitoring means 13 correspondence relation storage means, sensor-memory correspondence management means 14 data analysis means 15 correspondence relation optimization means 16 Sensor attribute management means 17 Exclusive control means 18 Occurrence frequency classification means 19 Data generation number prediction means 200 Sensor

Claims (12)

連続して発生するデータを解析するデータストリーム解析システムであって、
解析用に前記データを格納するためのメモリ領域が複数のメモリプールとして割り当てられるデータ記憶手段と、
前記複数のメモリプールのうちいずれか1つのメモリプールと1対1に対応し、対応づけられた一のメモリプールに対する手続きをとりまとめて行う複数のメモリ管理手段と、
予め区分けされたデータの種類別に独立して動作し、解析対象とするデータが発生すると、前記メモリ領域に該データを格納する1つ以上のメモリ格納手段と、
前記メモリ格納手段と前記メモリ管理手段との対応づけを示す情報を記憶する対応関係記憶手段と
前記メモリ格納手段と前記メモリ管理手段との対応づけを最適化する最適化手段とを備え、
前記複数のメモリ管理手段は、
排他制御を行った上でメモリプールに対する手続きを行う共有メモリ管理手段と、
排他制御を行わずにメモリプールに対する手続きを行う専用メモリ管理手段とに分けられ、
前記最適化手段は、種類別のデータの発生頻度、共有メモリ管理手段として機能するメモリ管理手段の数および専用メモリ管理手段として機能するメモリ管理手段の数に基づいて、前記メモリ格納手段と前記メモリ管理手段との対応づけを最適化し、
前記対応関係記憶手段は、前記最適化手段によって最適化された前記メモリ格納手段と前記メモリ管理手段との対応づけを示す情報を記憶し、
前記メモリ格納手段は、解析対象とするデータが発生すると、当該メモリ格納手段に対応づけられているメモリ管理手段を用いて前記複数のメモリプールのいずれかから確保したメモリ領域に該データを格納する
ことを特徴とするデータストリーム解析システム。
A data stream analysis system for analyzing continuously generated data,
Data storage means in which memory areas for storing the data for analysis are allocated as a plurality of memory pools;
A plurality of memory management means that correspond one-to-one with any one of the plurality of memory pools and collectively perform procedures for the associated one memory pool;
One or more memory storage means that operate independently for each type of pre-divided data and store the data in the memory area when data to be analyzed is generated;
Correspondence storage means for storing information indicating the correspondence between the memory storage means and the memory management means ;
Optimizing means for optimizing the correspondence between the memory storage means and the memory management means ,
The plurality of memory management means include
Shared memory management means for performing a procedure for the memory pool after performing exclusive control;
It is divided into dedicated memory management means that performs procedures for the memory pool without performing exclusive control,
The optimization means includes the memory storage means and the memory based on the occurrence frequency of data by type, the number of memory management means functioning as shared memory management means, and the number of memory management means functioning as dedicated memory management means. Optimize the correspondence with management means,
The correspondence storage means stores information indicating the correspondence between the memory storage means optimized by the optimization means and the memory management means,
When the data to be analyzed is generated, the memory storage unit stores the data in a memory area secured from one of the plurality of memory pools using a memory management unit associated with the memory storage unit. A data stream analysis system characterized by that.
データの種類として、解析対象とするデータの入力方法、発生源もしくは発生要因又はそれらの組み合わせに基づいて区分けされた種類を用いる
請求項1に記載のデータストリーム解析システム。
The data stream analysis system according to claim 1, wherein the data type is a type classified based on a method of inputting data to be analyzed, a generation source or a generation factor, or a combination thereof.
最適化手段は、データの発生頻度が所定の閾値よりも高い種類を処理対象としているメモリ格納手段に、専用メモリ管理手段として機能するメモリ管理手段を1対1に割り当てた後、残りのメモリ格納手段に、共有メモリ管理手段として機能するメモリ管理手段を均等に割り当てることによって、メモリ格納手段とメモリ管理手段との対応づけを最適化する
請求項1または請求項2に記載のデータストリーム解析システム。
The optimization means allocates one-to-one memory management means functioning as dedicated memory management means to the memory storage means for which the data generation frequency is higher than a predetermined threshold, and then stores the remaining memory. Optimize the correspondence between the memory storage means and the memory management means by equally allocating the memory management means functioning as the shared memory management means to the means
The data stream analysis system according to claim 1 or 2 .
最適化手段は、専用メモリ管理手段として機能するメモリ管理手段の数に対し、データの発生頻度が所定の閾値よりも高い種類を処理対象としているメモリ格納手段の数が多い場合には、該メモリ格納手段のうちの一部または全部に対して共有メモリ管理手段として機能するメモリ管理手段を割り当てることによって、メモリ格納手段とメモリ管理手段との対応づけを最適化する
請求項1から請求項3のうちのいずれか1項に記載のデータストリーム解析システム。
If the number of memory storage means that process data having a frequency higher than a predetermined threshold is larger than the number of memory management means that function as dedicated memory management means, the optimization means By allocating a memory management unit that functions as a shared memory management unit to a part or all of the storage unit, the correspondence between the memory storage unit and the memory management unit is optimized.
The data stream analysis system according to any one of claims 1 to 3 .
データの種類別に、メモリ領域の確保が行われる頻度であるメモリ確保頻度を計測する頻度計測手段を備え、
最適化手段は、前記頻度計測手段によって計測される種類別のメモリ確保頻度を種類別のデータの発生頻度とし、メモリ格納手段とメモリ管理手段との対応づけを最適化する
請求項から請求項のうちのいずれか1項に記載のデータストリーム解析システム。
For each type of data, it has a frequency measurement means for measuring the memory allocation frequency, which is the frequency with which the memory area is allocated,
Optimization means, claim from claim 1 for optimizing the correspondence between the frequency and the occurrence frequency of the data by type by type of memory allocation frequency measured by the measuring means, memory storage means and a memory management unit data stream analysis system according to any one of the four.
頻度計測手段によって計測された種類別のメモリ確保頻度に基づいて、将来の種類別のデータ発生頻度を予測するデータ発生頻度予測手段を備え、
最適化手段は、前記データ発生頻度予測手段によって予測される種類別のデータの発生頻度に基づいて、メモリ格納手段とメモリ管理手段との対応づけを更新する
請求項から請求項のうちのいずれか1項に記載のデータストリーム解析システム。
Based on the memory allocation frequency by type measured by the frequency measurement unit, the data generation frequency prediction unit for predicting the data generation frequency by type in the future,
Optimization means, the data occurrence frequency based on the occurrence frequency of the data by the type predicted by the prediction means, claim 1 for updating the correspondence between the memory storage means and memory management unit of claim 4 The data stream analysis system according to any one of the above.
解析対象とするデータを格納するためのメモリ領域が、メモリ容量の異なる複数のメモリプールに分かれて割り当てられるデータ記憶手段を備えたデータストリーム解析システムであって、
最適化手段は、さらに種類別の平均解析時間基づいて、メモリ格納手段とメモリ管理手段とを対応づける
請求項1から請求項のうちのいずれか1項に記載のデータストリーム解析システム。
A memory region for storing data to be analyzed is a data stream analysis system provided with data storage means that is divided and allocated to a plurality of memory pools having different memory capacities,
The data stream analysis system according to any one of claims 1 to 6 , wherein the optimization unit further associates the memory storage unit with the memory management unit based on an average analysis time for each type.
最適化手段は、データの発生頻度に応じて専用メモリ管理手段として機能するメモリ管理手段または共有メモリ管理手段として機能するメモリ管理手段を割り当てる際に、平均解析時間が所定の基準時間よりも長い種類を処理対象としているメモリ格納手段に対し、可能な限りメモリ容量が大きく取られたメモリプールに対応づけられたメモリ管理手段を割り当てることによって、メモリ格納手段とメモリ管理手段とを対応づけを最適化する
請求項に記載のデータストリーム解析システム。
The optimization unit is a type in which an average analysis time is longer than a predetermined reference time when allocating a memory management unit functioning as a dedicated memory management unit or a memory management unit functioning as a shared memory management unit according to the occurrence frequency of data. By optimizing the correspondence between the memory storage means and the memory management means by assigning the memory management means associated with the memory pool having the largest possible memory capacity to the memory storage means that are subject to processing The data stream analysis system according to claim 7 .
データの種類別に、実際にメモリプールからメモリ領域が確保されてから該メモリ領域が解放されるまでの期間の平均値である平均メモリ確保期間を計測するメモリ確保期間計測手段を備え、
最適化手段は、メモリ確保期間計測手段によって計測された種類別の平均メモリ確保期間を種類別の平均解析時間とし、メモリ格納手段とメモリ管理手段との対応づけを最適化する
請求項に記載のデータストリーム解析システム。
For each type of data, a memory securing period measuring means for measuring an average memory securing period, which is an average value of a period from when a memory area is actually secured from the memory pool to when the memory area is released,
Optimization means according to claim 8 in which the average memory allocation period different type measured by the memory allocation period measuring means as an average analysis time different kind, to optimize the correspondence between the memory storage means and memory management unit Data stream analysis system.
連続して発生するデータを解析するために用いる情報処理装置であって、
解析用に前記データを格納するためのメモリ領域が複数のメモリプールとして割り当てられるデータ記憶手段と、
前記複数のメモリプールのうちいずれか1つのメモリプールと1対1に対応し、対応づけられた一のメモリプールに対する手続きをとりまとめて行う複数のメモリ管理手段と、
予め区分けされたデータの種類別に独立して動作し、解析対象とするデータが発生すると、前記メモリ領域に該データを格納する1つ以上のメモリ格納手段と、
前記メモリ格納手段と前記メモリ管理手段との対応づけを示す情報を記憶する対応関係記憶手段と
前記メモリ格納手段と前記メモリ管理手段との対応づけを最適化する最適化手段とを備え、
前記複数のメモリ管理手段は、
排他制御を行った上でメモリプールに対する手続きを行う共有メモリ管理手段と、
排他制御を行わずにメモリプールに対する手続きを行う専用メモリ管理手段とに分けられ、
前記最適化手段は、種類別のデータの発生頻度、共有メモリ管理手段として機能するメモリ管理手段の数および専用メモリ管理手段として機能するメモリ管理手段の数に基づいて、前記メモリ格納手段と前記メモリ管理手段との対応づけを最適化し、
前記対応関係記憶手段は、前記最適化手段によって最適化された前記メモリ格納手段と前記メモリ管理手段との対応づけを示す情報を記憶し、
前記メモリ格納手段は、解析対象とするデータが発生すると、当該メモリ格納手段に対応づけられているメモリ管理手段を用いて前記複数のメモリプールのいずれかから確保したメモリ領域に該データを格納する
ことを特徴とする情報処理装置。
An information processing apparatus used for analyzing continuously generated data,
Data storage means in which memory areas for storing the data for analysis are allocated as a plurality of memory pools;
A plurality of memory management means that correspond one-to-one with any one of the plurality of memory pools and collectively perform procedures for the associated one memory pool;
One or more memory storage means that operate independently for each type of pre-divided data and store the data in the memory area when data to be analyzed is generated;
Correspondence storage means for storing information indicating the correspondence between the memory storage means and the memory management means ;
Optimizing means for optimizing the correspondence between the memory storage means and the memory management means ,
The plurality of memory management means include
Shared memory management means for performing a procedure for the memory pool after performing exclusive control;
It is divided into dedicated memory management means that performs procedures for the memory pool without performing exclusive control,
The optimization means includes the memory storage means and the memory based on the occurrence frequency of data by type, the number of memory management means functioning as shared memory management means, and the number of memory management means functioning as dedicated memory management means. Optimize the correspondence with management means,
The correspondence storage means stores information indicating the correspondence between the memory storage means optimized by the optimization means and the memory management means,
When the data to be analyzed is generated, the memory storage unit stores the data in a memory area secured from one of the plurality of memory pools using a memory management unit associated with the memory storage unit. An information processing apparatus characterized by that.
連続して発生するデータを格納するためのメモリ領域が、複数のメモリプールに分かれて割り当てられる記憶手段と、前記複数のメモリプールのうちいずれか1つのメモリプールと1対1に対応づけられ、対応づけられた1つのメモリプールに対する手続きをとりまとめて行う複数のメモリ管理手段とを備えた情報処理装置に適用されるメモリ格納方法であって、
前記複数のメモリ管理手段を、排他制御を行った上でメモリプールに対する手続きを行う共有メモリ管理手段と、排他制御を行わずにメモリプールに対する手続きを行う専用メモリ管理手段とに分けた上で、種類別のデータの発生頻度、共有メモリ管理手段として機能するメモリ管理手段の数および専用メモリ管理手段として機能するメモリ管理手段の数に基づいて、予め区分けされたデータの種類別に独立して動作するメモリ格納手段と前記メモリ管理手段との対応づけを最適化し、
最適化された前記メモリ格納手段と前記メモリ管理手段との対応づけを示す情報を記憶し、
前記メモリ格納手段が、該メモリ格納手段が処理対象としているデータを受け付けた際に、当該メモリ格納手段と対応づけられているメモリ管理手段を用いて確保したメモリ領域に該データを格納する
ことを特徴とするメモリ格納方法。
A memory area for storing continuously generated data is allocated to a plurality of memory pools in a one-to-one correspondence with one of the plurality of memory pools. A memory storage method applied to an information processing apparatus comprising a plurality of memory management means that collectively perform a procedure for one associated memory pool,
After dividing the plurality of memory management means into shared memory management means for performing a procedure for the memory pool after performing exclusive control and dedicated memory management means for performing a procedure for the memory pool without performing exclusive control, Based on the frequency of occurrence of data by type, the number of memory management means functioning as shared memory management means, and the number of memory management means functioning as dedicated memory management means, it operates independently for each type of data divided in advance. optimize correspondence between memory storage means and said memory management unit,
Storing information indicating the correspondence between the optimized memory storage means and the memory management means ;
It said memory storage means, upon receiving the data those said memory storage means is processed, storing the data in the memory area secured by using the memory management means are associated with the memory storage means A memory storage method characterized by the above.
連続して発生するデータを解析する情報処理装置に適用されるメモリ格納用プログラムであって、
連続して発生するデータを格納するためのメモリ領域が、複数のメモリプールに分かれて割り当てられる記憶手段を備えたコンピュータに、
予め区分けされたデータの種類別に独立して動作するメモリ格納処理
前記複数のメモリプールのいずれか1つと1対1に対応づけられ、対応づけられた1つのメモリプールに対する手続きをとりまとめて行う複数のメモリ管理処理
前記複数のメモリ管理処理を、排他制御を行った上でメモリプールに対する手続きを行う共有メモリ管理処理と、排他制御を行わずにメモリプールに対する手続きを行う専用メモリ管理処理とに分けた上で、種類別のデータの発生頻度、共有メモリ管理手段として機能するメモリ管理手段の数および専用メモリ管理手段として機能するメモリ管理手段の数に基づいて、予め区分けされたデータの種類別に独立して動作するメモリ格納処理と前記メモリ管理処理との対応づけを最適化する最適化処理、および
前記最適化された前記メモリ格納処理と前記メモリ管理処理との対応づけを示す情報を記憶する処理を実行させ、
前記メモリ格納処理で、当該メモリ格納処理が対象とする種類のデータを受け付けた際に、前記複数のメモリプールのいずれか1つと1対1に対応するメモリ管理処理のうち、当該メモリ格納処理と対応づけられているメモリ管理処理を用いて確保したメモリ領域に、該データを格納させ、
前記メモリ管理処理で、設定に応じて、排他制御を行った上で対応づけられている1のメモリプールに対する手続きを行わせるか、または排他制御を行わないで対応づけられている1のメモリプールに対する手続きを行わせる
ためのメモリ格納用プログラム。
A program for storing a memory applied to an information processing apparatus that analyzes continuously generated data,
A memory area for storing continuously generated data is divided into a plurality of memory pools, and a computer having storage means is allocated.
Memory storage processing that operates independently for each type of pre-divided data ,
A plurality of memory management processes which are associated with any one of the plurality of memory pools on a one-to-one basis and collectively perform a procedure for the associated memory pool ;
The plurality of memory management processes are divided into a shared memory management process for performing a procedure for a memory pool after performing exclusive control, and a dedicated memory management process for performing a procedure for a memory pool without performing exclusive control. Based on the frequency of occurrence of data by type, the number of memory management means functioning as shared memory management means, and the number of memory management means functioning as dedicated memory management means, it operates independently for each type of data divided in advance. An optimization process for optimizing the correspondence between the memory storage process and the memory management process, and
Executing a process of storing information indicating the correspondence between the optimized memory storage process and the memory management process ;
In the memory storage process, when the type of data targeted by the memory storage process is received, among the memory management processes corresponding to any one of the plurality of memory pools, the memory storage process Store the data in the memory area secured using the associated memory management process;
In the memory management process, according to the setting, one memory pool is made to perform a procedure for one memory pool associated with it after performing exclusive control or without performing exclusive control. A program for storing memory to perform procedures for.
JP2007258397A 2007-10-02 2007-10-02 Data stream analysis system and apparatus, method and program used therefor Expired - Fee Related JP5169117B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007258397A JP5169117B2 (en) 2007-10-02 2007-10-02 Data stream analysis system and apparatus, method and program used therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007258397A JP5169117B2 (en) 2007-10-02 2007-10-02 Data stream analysis system and apparatus, method and program used therefor

Publications (2)

Publication Number Publication Date
JP2009087189A JP2009087189A (en) 2009-04-23
JP5169117B2 true JP5169117B2 (en) 2013-03-27

Family

ID=40660506

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007258397A Expired - Fee Related JP5169117B2 (en) 2007-10-02 2007-10-02 Data stream analysis system and apparatus, method and program used therefor

Country Status (1)

Country Link
JP (1) JP5169117B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101799788B (en) 2010-03-23 2014-06-11 中兴通讯股份有限公司 Level-to-level administration method and system of storage resources
WO2015140997A1 (en) * 2014-03-20 2015-09-24 三菱電機株式会社 Program management device and program management method and program
JP6767269B2 (en) 2017-01-24 2020-10-14 Necプラットフォームズ株式会社 Information processing system, information processing device, peripheral device, data transfer method, and data transfer program
CN114898877B (en) * 2022-05-06 2023-07-04 上海铂桐医疗科技有限公司 Processing method and system suitable for multi-dimensional health data

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08339324A (en) * 1995-06-12 1996-12-24 Fuji Xerox Co Ltd Information processor
US5757386A (en) * 1995-08-11 1998-05-26 International Business Machines Corporation Method and apparatus for virtualizing off-screen memory of a graphics engine
JP2000347927A (en) * 1999-06-01 2000-12-15 Nec Software Kyushu Ltd System and method for memory management and recording medium
JP2003228514A (en) * 2002-02-04 2003-08-15 Nec Corp Management method for single buffer memory used by a plurality of data flows

Also Published As

Publication number Publication date
JP2009087189A (en) 2009-04-23

Similar Documents

Publication Publication Date Title
JP4523921B2 (en) Computer resource dynamic controller
JP5132735B2 (en) Server system and server arrangement method
CN112667376A (en) Task scheduling processing method and device, computer equipment and storage medium
CN102750130A (en) Allocation of counters from a pool of counters to track mappings of logical registers to physical registers for mapper based instruction executions
CN111464659A (en) Node scheduling method, node pre-selection processing method, device, equipment and medium
JP5169117B2 (en) Data stream analysis system and apparatus, method and program used therefor
CN110399272B (en) Log processing device, method, electronic device, and computer-readable storage medium
CN112148468B (en) Resource scheduling method and device, electronic equipment and storage medium
WO2020172852A1 (en) Computing resource scheduling method, scheduler, internet of things system, and computer readable medium
CN111190712A (en) Task scheduling method, device, equipment and medium
CN107430526B (en) Method and node for scheduling data processing
JP3782955B2 (en) System and method for estimating use of computer resources in multiple processing systems
US8296552B2 (en) Dynamically migrating channels
WO2023278324A1 (en) Optimized i/o performance regulation for non-volatile storage
CN112631731A (en) Data query method and device, electronic equipment and storage medium
CN105874426A (en) Batch processing method and device for system invocation commands
US8775767B2 (en) Method and system for allocating memory to a pipeline
US20170024245A1 (en) Workload-aware shared processing of map-reduce jobs
CN110706148A (en) Face image processing method, device, equipment and storage medium
CN114174974B (en) Storage allocation enhancement for microservices
CN101847128A (en) TLB management method and device
JP4608559B2 (en) Blade assignment method and blade assignment program
US20070043869A1 (en) Job management system, job management method and job management program
CN114090201A (en) Resource scheduling method, device, equipment and storage medium
CN114356571A (en) Processing method and device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120911

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121108

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121217

LAPS Cancellation because of no payment of annual fees