(57)【特許請求の範囲】
【請求項１】
複数の計算機、及びストレージシステムを備え、外部装置から送信されるデータを処理する計算機システムであって、
前記複数の計算機の各々は、プロセッサ、前記プロセッサに接続されるメモリ、前記プロセッサに接続されるネットワークインタフェースを有し、
前記ストレージシステムは、コントローラ、及び記憶媒体を有し、
前記外部装置から送信されるデータにはタイムスタンプが含まれ、
前記計算機システムは、
前記外部装置から送信されるデータを処理する第１データ処理部と、
一つ以上の前記計算機が有する前記メモリの記憶領域上に構築され、前記第１データ処理部によって処理された処理済みデータを一時的に格納するメモリストアと、
前記ストレージシステムが有する記憶媒体の記憶領域上に構築され、前記処理済みデータを格納するデータベースと、
前記メモリストアに格納される前記処理済みデータを管理し、前記メモリストアに対する読出処理及び書込処理を制御するメモリストア制御部と、
前記データベースを管理し、前記データベースに対する読出処理及び書込処理を制御するデータベース管理部と、
前記メモリストアに格納される前記処理済みデータのうち、第１データ範囲に含まれる前記処理済みデータを用いて所定の処理を実行する第２データ処理部と、
前記データベースに格納される前記処理済みデータのうち、前記第１データ範囲よりデータ範囲が大きい第２データ範囲に含まれる前記処理済みデータを用いて所定の処理を実行する第３データ処理部と、
を備え、
前記メモリストア制御部は、
前記データベースに書き込む前記処理済みデータの時間範囲である第３データ範囲を特定し、
前記メモリストアから前記特定された第３データ範囲に含まれる前記処理済みデータを取得し、
前記データベースへの前記取得された処理済みデータの書込要求を前記データベース管理部に送信し、
前記第１データ範囲及び前記第３データ範囲に基づいて、前記メモリストアに一時的に格納される前記処理済みデータのうち、削除可能な前記処理済みデータを特定することを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記第１データ範囲は、前記処理済みデータの最も新しい前記タイムスタンプから所定の時間過去にさかのぼった時間範囲であり、
前記第３データ範囲は、所定の起点となる時刻から所定時間進んだ時間範囲であり、
前記メモリストアは、複数の前記第３データ範囲毎に、前記データベースへの前記処理済みデータの書き込み状態を示す第１状態、及び前記第２データ処理部における前記処理済みデータの使用状態を示す第２状態を管理するための格納データ管理情報を含み、
前記メモリストア制御部は、
前記格納データ管理情報を参照し、
前記第１状態及び前記第２状態に基づいて、前記複数の第３データ範囲毎に、前記メモリストアに一時的に格納される前記処理済みデータのうち、削除可能な前記処理済みデータを特定することを特徴とする計算機システム。
【請求項３】
請求項２に記載の計算機システムであって、
前記メモリストアは、前記複数の第３データ範囲を管理するための第３データ範囲の管理情報を含み、
前記メモリストア制御部は、
前記データベースへの前記処理済みデータの書込タイミング、及び、書き込み対象となる前記第３データ範囲を特定するための第１パラメータの入力を受け付け、
前記書込タイミングが経過した後に、前記第１パラメータに基づいて前記第３データ範囲の管理情報を参照して、前記複数の第３データ範囲の中から書き込み対象となる前記第３データ範囲を特定し、
前記メモリストアから、前記特定された第３データ範囲に含まれる前記処理済みデータを取得し、
前記データベース管理部に、前記取得された処理済みデータを含む書込要求を送信し、
前記特定された第３データ範囲に対応する前記第１状態を、前記データベースへの前記処理済みデータの書き込みが完了した旨を示す状態に更新し、
前記格納データ管理情報を参照し、前記データベースへの前記処理済みデータの書き込みが完了し、かつ、前記第２データ処理部が使用していない前記第３データ範囲を検索し、
前記検索された第３データ範囲に含まれる前記処理済みデータを、前記メモリストアから削除することを特徴とする計算機システム。
【請求項４】
請求項３に記載の計算機システムであって、
前記メモリストアは、前記第１データ範囲の始点となる前記処理済みデータのタイムスタンプである始点タイムスタンプ、及び前記第１データ範囲の終点となる前記処理済みデータのタイムスタンプである終点タイムスタンプを管理する第１データ範囲の管理情報を含み、
前記メモリストア制御部は、
前記第１データ範囲を特定するための前記所定の時間を指定する第２パラメータの入力を受け付け、
前記第１データ処理部から前記処理済みデータの書込要求を受け付けた場合に、前記第１データ範囲の管理情報の始点タイムスタンプを、前記書込要求に含まれる前記処理済みデータのタイムスタンプに更新し、
前記第２データ処理部から前記処理済みデータの読出要求を受け付けた場合に、前記始点タイムスタンプ及び前記第２パラメータに基づいて、前記始点タイムスタンプから前記所定の時間過去にさかのぼった時間範囲に含まれる前記処理済みデータの中から最も古い前記タイムスタンプを特定し、
前記第１データ範囲の管理情報の前記終点タイムスタンプを、前記特定された最も古いタイムスタンプに更新し、
前記第１データ範囲の管理情報を参照して、前記更新前の終点タイムスタンプに対応する前記処理済みデータが含まれる前記第３データ範囲と、前記更新後の終点タイムスタンプに対応する前記処理済みデータが含まれる前記第３データ範囲とが一致するか否かを判定し、
前記更新前の終点タイムスタンプに対応する処理済みデータが含まれる第３データ範囲と、前記更新後の終点タイムスタンプに対応する処理済みデータが含まれる前記第３データ範囲とが一致しないと判定された場合、前記格納データ管理情報を参照し、
前記更新前の終点タイムスタンプに対応する処理済みデータが含まれる第３データ範囲の前記第２状態を、当該第３データ範囲に含まれる処理済みデータを使用していない旨を示す状態に更新し、
前記格納データ管理情報を参照し、前記データベースへの前記処理済みデータの書き込みが完了し、かつ、前記第２データ処理部が使用していない前記第３データ範囲を検索し、
前記検索された第３データ範囲に含まれる前記処理済みデータを、前記メモリストアから削除することを特徴とする計算機システム。
【請求項５】
請求項４に記載の計算機システムであって、
前記計算機システムは、前記外部装置から複数の種類のデータを受信し、
前記メモリストア制御部は、前記複数のデータの種類毎に、前記第１データ範囲の管理情報、前記第３データ範囲の管理情報、及び前記格納データ管理情報を保持することを特徴とする計算機システム。
【請求項６】
複数の計算機、及びストレージシステムを備え、外部装置から送信されるデータを処理する計算機システムにおけるデータ管理方法であって、
前記複数の計算機の各々は、プロセッサ、前記プロセッサに接続されるメモリ、前記プロセッサに接続されるネットワークインタフェースを有し、
前記ストレージシステムは、コントローラ、及び記憶媒体を有し、
前記外部装置から送信されるデータにはタイムスタンプが含まれ、
前記計算機システムは、
前記外部装置から送信されるデータを処理する第１データ処理部と、
一つ以上の前記計算機が有する前記メモリの記憶領域上に構築され、前記第１データ処理部によって処理された処理済みデータを一時的に格納するメモリストアと、
前記ストレージシステムが有する記憶媒体の記憶領域上に構築され、前記処理済みデータを格納するデータベースと、
前記メモリストアに格納される前記処理済みデータを管理し、前記メモリストアに対する読出処理及び書込処理を制御するメモリストア制御部と、
前記データベースを管理し、前記データベースに対する読出処理及び書込処理を制御するデータベース管理部と、
前記メモリストアに格納される前記処理済みデータのうち、第１データ範囲に含まれる前記処理済みデータを用いて所定の処理を実行する第２データ処理部と、
前記データベースに格納される前記処理済みデータのうち、前記第１データ範囲よりデータ範囲が大きい第２データ範囲に含まれる前記処理済みデータを用いて所定の処理を実行する第３データ処理部と、
を有し、
前記方法は、
前記メモリストア制御部が、前記データベースに書き込む前記処理済みデータの時間範囲である第３データ範囲を特定する第１のステップと、
前記メモリストア制御部が、前記メモリストアから前記特定された第３データ範囲に含まれる前記処理済みデータを取得する第２のステップと、
前記メモリストア制御部が、前記データベースへの前記取得された処理済みデータの書込要求を前記データベース管理部に送信する第３のステップと、
前記メモリストア制御部が、前記第１データ範囲及び前記第３データ範囲に基づいて、前記メモリストアに一時的に格納される前記処理済みデータのうち、削除可能な前記処理済みデータを特定する第４のステップと、を含むことを特徴とするデータ管理方法。
【請求項７】
請求項６に記載のデータ管理方法であって、
前記第１データ範囲は、前記処理済みデータの最も新しい前記タイムスタンプから所定の時間過去にさかのぼった時間範囲であり、
前記第３データ範囲は、所定の起点となる時刻から所定時間進んだ時間範囲であり、
前記メモリストアは、複数の前記第３データ範囲毎に、前記データベースへの前記処理済みデータの書き込み状態を示す第１状態、及び前記第２データ処理部における前記処理済みデータの使用状態を示す第２状態を管理するための格納データ管理情報を含み、
前記第４のステップは、
前記格納データ管理情報を参照するステップと、
前記第１状態及び前記第２状態に基づいて、前記複数の第３データ範囲毎に、前記メモリストアに一時的に格納される前記処理済みデータのうち、削除可能な前記処理済みデータを特定するステップと、を含むことを特徴とするデータ管理方法。
【請求項８】
請求項７に記載のデータ管理方法であって、
前記メモリストアは、前記複数の第３データ範囲を管理するための第３データ範囲の管理情報を含み、
前記方法は、
前記メモリストア制御部が、前記データベースへの前記処理済みデータの書込タイミング、及び、書き込み対象となる前記第３データ範囲を特定するための第１パラメータの入力を受け付けるステップと、
前記メモリストア制御部が、前記書込タイミングが経過した後に、前記第１パラメータに基づいて前記第３データ範囲の管理情報を参照して、前記複数の第３データ範囲の中から書き込み対象となる前記第３データ範囲を特定するステップと、
前記メモリストア制御部が、前記メモリストアから、前記特定された第３データ範囲に含まれる前記処理済みデータを取得するステップと、
前記メモリストア制御部が、前記データベース管理部に、前記取得された処理済みデータを含む書込要求を送信するステップと、
前記メモリストア制御部が、前記特定された第３データ範囲に対応する前記第１状態を、前記データベースへの前記処理済みデータの書き込みが完了した旨を示す状態に更新するステップと、
前記メモリストア制御部が、前記格納データ管理情報を参照し、前記データベースへの前記処理済みデータの書き込みが完了し、かつ、前記第２データ処理部が使用していない前記第３データ範囲を検索するステップと、
前記メモリストア制御部が、前記検索された第３データ範囲に含まれる前記処理済みデータを、前記メモリストアから削除するステップと、を含むことを特徴とするデータ管理方法。
【請求項９】
請求項８に記載のデータ管理方法であって、
前記メモリストアは、前記第１データ範囲の始点となる前記処理済みデータのタイムスタンプである始点タイムスタンプ、及び前記第１データ範囲の終点となる前記処理済みデータのタイムスタンプである終点タイムスタンプを管理する第１データ範囲の管理情報を含み、
前記方法は、
前記メモリストア制御部が、前記第１データ範囲を特定するための前記所定の時間を指定する第２パラメータの入力を受け付けるステップと、
前記メモリストア制御部が、前記第１データ処理部から前記処理済みデータの書込要求を受け付けた場合に、前記第１データ範囲の管理情報の始点タイムスタンプを、前記書込要求に含まれる前記処理済みデータのタイムスタンプに更新するステップと、
前記メモリストア制御部が、前記第２データ処理部から前記処理済みデータの読出要求を受け付けた場合に、前記始点タイムスタンプ及び前記第２パラメータに基づいて、前記始点タイムスタンプから前記所定の時間過去にさかのぼった時間範囲に含まれる前記処理済みデータの中から最も古い前記タイムスタンプを特定するステップと、
前記メモリストア制御部が、前記第１データ範囲の管理情報の前記終点タイムスタンプを、前記特定された最も古いタイムスタンプに更新するステップと、
前記メモリストア制御部が、前記第１データ範囲の管理情報を参照して、前記更新前の終点タイムスタンプに対応する前記処理済みデータが含まれる前記第３データ範囲と、前記更新後の終点タイムスタンプに対応する前記処理済みデータが含まれる前記第３データ範囲とが一致するか否かを判定するステップと、
前記メモリストア制御部が、前記更新前の終点タイムスタンプに対応する処理済みデータが含まれる第３データ範囲と、前記更新後の終点タイムスタンプに対応する処理済みデータが含まれる前記第３データ範囲とが一致しないと判定された場合、前記格納データ管理情報を参照するステップと、
前記メモリストア制御部が、前記更新前の終点タイムスタンプに対応する処理済みデータが含まれる第３データ範囲の前記第２状態を、当該第３データ範囲に含まれる処理済みデータを使用していない旨を示す状態に更新するステップと、
前記メモリストア制御部が、前記格納データ管理情報を参照し、前記データベースへの前記処理済みデータの書き込みが完了し、かつ、前記第２データ処理部が使用していない前記第３データ範囲を検索するステップと、
前記メモリストア制御部が、前記検索された第３データ範囲に含まれる前記処理済みデータを、前記メモリストアから削除するステップと、を含むことを特徴とするデータ管理方法。
【請求項１０】
請求項９に記載のデータ管理方法であって、
前記計算機システムは、前記外部装置から複数の種類のデータを受信し、
前記メモリストア制御部は、前記複数のデータの種類毎に、前記第１データ範囲の管理情報、前記第３データ範囲の管理情報、及び前記格納データ管理情報を保持することを特徴とするデータ管理方法。
【請求項１１】
プロセッサ、前記プロセッサに接続されるメモリ、前記プロセッサに接続されるネットワークインタフェースを備える計算機であって、
前記メモリの記憶領域上に構築され、タイムスタンプを含むデータを一時的に格納するメモリストアと、
前記メモリストアに格納されるデータを管理し、前記メモリストアに対する読出処理及び書込処理を制御するメモリストア制御部と、を備え、
前記メモリストア制御部は、
前記メモリストアに格納されるデータの中から、外部のデータベースに書き込むデータの時間範囲である第１データ範囲を特定し、
前記メモリストアから前記特定された第１データ範囲に含まれる前記データを取得し、
前記データベースを管理する他の計算機に、前記データベースに対する前記取得されたデータの書込要求を送信し、
前記第１データ範囲及び前記メモリストアにアクセスする他の計算機が扱うデータの時間範囲である第２データ範囲に基づいて、前記メモリストアに一時的に格納される前記データのうち、削除可能な前記データを特定することを特徴とする計算機。
【請求項１２】
請求項１１に記載の計算機であって、
前記第１データ範囲は、所定の起点となる時刻から所定時間進んだ時間範囲であり、
前記第２データ範囲は、前記データの最も新しいタイムスタンプから所定の時間過去にさかのぼった時間範囲であり、
前記メモリストアは、前記複数の第１データ範囲毎に、前記データベースへの前記データの書き込み状態を示す第１状態、及び前記メモリストアにアクセスする他の計算機の前記データの使用状態を示す第２状態を管理するための格納データ管理情報を含み、
前記メモリストア制御部は、
前記格納データ管理情報を参照し、
前記第１状態及び前記第２状態に基づいて、前記複数の第１データ範囲毎に、前記メモリストアに一時的に格納される前記データのうち、削除可能な前記データを特定することを特徴とする計算機。
【請求項１３】
請求項１２に記載の計算機であって、
前記メモリストアは、前記複数の第１データ範囲を管理するための第１データ範囲の管理情報を含み、
前記メモリストア制御部は、
前記データベースへの前記データの書込タイミング、及び、書き込み対象となる前記第１データ範囲を特定するための第１パラメータの入力を受け付け、
前記書込タイミングが経過した後に、前記第１パラメータに基づいて前記第１データ範囲の管理情報を参照して、複数の前記第１データ範囲の中から書き込み対象となる前記第１データ範囲を特定し、
前記メモリストアから、前記特定された第１データ範囲に含まれる前記データを取得し、
前記データベースを管理する他の計算機に、前記取得されたデータを含む書込要求を送信し、
前記特定された第１データ範囲に対応する前記第１状態を、前記データベースへの前記データの書き込みが完了した旨を示す状態に更新し、
前記格納データ管理情報を参照し、前記データベースへの前記データの書き込みが完了し、かつ、前記メモリストアにアクセスする他の計算機が使用していない前記第１データ範囲を検索し、
前記検索された第１データ範囲に含まれる前記データを、前記メモリストアから削除することを特徴とする計算機。
【請求項１４】
請求項１３に記載の計算機であって、
前記メモリストアは、前記第２データ範囲の始点となる前記データのタイムスタンプである始点タイムスタンプ、及び前記第１データ範囲の終点となる前記データのタイムスタンプである終点タイムスタンプを管理する第２データ範囲の管理情報を含み、
前記メモリストア制御部は、
前記第２データ範囲を特定するための前記所定の時間を指定する第２パラメータの入力を受け付け、
前記データの書込要求を受け付けた場合に、前記第２データ範囲の管理情報の始点タイムスタンプを、前記書込要求に含まれる前記データのタイムスタンプに更新し、
前記メモリストアに格納される前記データの読出要求を受け付けた場合に、前記始点タイムスタンプ及び前記第２パラメータに基づいて、前記始点タイムスタンプから前記所定の時間過去にさかのぼった時間範囲に含まれる前記データの中から最も古い前記タイムスタンプを特定し、
前記第２データ範囲の管理情報の前記終点タイムスタンプを、前記特定された最も古いタイムスタンプに更新し、
前記第２データ範囲の管理情報を参照して、前記更新前の終点タイムスタンプに対応する前記データが含まれる前記第１データ範囲と、前記更新後の終点タイムスタンプに対応する前記データが含まれる前記第１データ範囲とが一致するか否かを判定し、
前記更新前の終点タイムスタンプに対応するデータが含まれる前記第１データ範囲と、前記更新後の終点タイムスタンプに対応するデータが含まれる前記第１データ範囲とが一致しないと判定された場合、前記格納データ管理情報を参照し、
前記更新前の終点タイムスタンプに対応するデータが含まれる第１データ範囲の前記第２状態を、当該第１データ範囲に含まれるデータを使用していない旨を示す状態に更新し、
前記格納データ管理情報を参照し、前記データベースへの前記データの書き込みが完了し、かつ、前記メモリストアにアクセスする他の計算機が使用していない前記第１データ範囲を検索し、
前記検索された第１データ範囲に含まれる前記データを、前記メモリストアから削除することを特徴とする計算機。
【請求項１５】
請求項１４に記載の計算機であって、
前記メモリストア制御部は、データの種類毎に、前記第１データ範囲の管理情報、前記第２データ範囲の管理情報、及び前記格納データ管理情報を保持することを特徴とする計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビックデータを処理する計算機システム、データ管理方法、及び計算機に関する。
【背景技術】
【０００２】
現在、多種多様かつ大量のデータ、すなわち、ビックデータを処理するためのシステムが普及している。当該システムでは、端末等から送信されるリアルタイムなデータから必要なデータを取得する等の処理が実行される。本明細書では、前述した処理をリアルタイムデータ処理と記載する。【０００３】
また、当該システムでは、リアルタイムデータの処理結果をデータベースに格納し、過去のデータを分析される。本明細書では、前述した処理を履歴分析処理と記載する。【０００４】
従来、処理結果を格納するデータベースは、複数のディスク装置上に構築されているため、データベースへのデータの書込処理が遅い。したがって、データの書込処理の遅延に伴って、リアルタイムデータ処理の処理性能が低下する。したがって、リアルタイムデータ処理におけるリアルタイム性を保障できないという問題があった。【０００５】
前述の課題を解決する技術として、高速なアクセスが可能なメモリに全てのデータを格納するインメモリデータベースが知られている。しかし、メモリ上に全てのデータを格納する場合、多くのメモリが必要となるため設備コストが増大するという問題がある。【０００６】
そこで、リアルタイムデータ処理の処理性能を確保し、かつ、設備コストを抑えるシステムとして、特許文献１及び特許文献２等に記載された技術が知られている。【０００７】
特許文献１には、ディスク記録媒体に対し、動画像などのデータ記録をリアルタイム性を確保しつつ実現するために、「動画像入力部４からのデータを一時記憶手段に蓄積し、データ蓄積量検出手段によりデータが一定量蓄積されたことを検出して外部のシステム制御部６からの制御なしにディスク記録再生処理手段はディスク記録媒体へのデータ記録を実行する」ことが記載されている。【０００８】
特許文献２には、監視対象の状態を表すデータを解析し、診断・推論を行い、これを長時間にわたり連続的にリアルタイム性を損なうことなく実行し、ユーザに結果を知らせるために、「入力データを時系列に履歴データとして格納を行う共有メモリの要素バッファに格納する。要素バッファの格納上限数を越えて格納する場合、データの不確実性を取り除くノイズ除去処理と合わせて、ノイズ除去装置により当該要素バッファの代表値を求め、これを別の要素バッファに新しい代表値ほど上位に格納する」ことが記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０００−３３１４２３号公報
【特許文献２】特開平７−５６７４０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
システムでは、リアルタイムデータの処理、及び分析処理のほかに、現在のデータから短時間さかのぼった範囲に含まれるデータを用いた処理が求められている。本明細書では、前述した処理を状態監視処理と記載する。【００１１】
状態監視処理では、データベースに格納されるデータにアクセスする必要がある。また、状態監視処理の実行頻度は履歴分析処理より多い。このため、データベースに対するアクセス負荷が増大し、履歴分析処理の処理性能に影響を与える。また、状態監視処理では、データベースにアクセスする必要があるため、高速な処理が実現できないという問題もある。【００１２】
本発明は、前述したような課題に鑑みてなされた発明である。すなわち、リアルタイムイベント処理、状態監視処理、及び履歴分析処理を最適化したシステム、方法、及び装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、複数の計算機、及びストレージシステムを備え、外部装置から送信されるデータを処理する計算機システムであって、前記複数の計算機の各々は、プロセッサ、前記プロセッサに接続されるメモリ、前記プロセッサに接続されるネットワークインタフェースを有し、前記ストレージシステムは、コントローラ、及び記憶媒体を有し、前記外部装置から送信されるデータにはタイムスタンプが含まれ、前記計算機システムは、前記外部装置から送信されるデータを処理する第１データ処理部と、一つ以上の前記計算機が有する前記メモリの記憶領域上に構築され、前記第１データ処理部によって処理された処理済みデータを一時的に格納するメモリストアと、前記ストレージシステムが有する記憶媒体の記憶領域上に構築され、前記処理済みデータを格納するデータベースと、前記メモリストアに格納される前記処理済みデータを管理し、前記メモリストアに対する読出処理及び書込処理を制御するメモリストア制御部と、前記データベースを管理し、前記データベースに対する読出処理及び書込処理を制御するデータベース管理部と、前記メモリストアに格納される前記処理済みデータのうち、第１データ範囲に含まれる前記処理済みデータを用いて所定の処理を実行する第２データ処理部と、前記データベースに格納される前記処理済みデータのうち、前記第１データ範囲よりデータ範囲が大きい第２データ範囲に含まれる前記処理済みデータを用いて所定の処理を実行する第３データ処理部と、を備え、前記メモリストア制御部は、前記データベースに書き込む前記処理済みデータの時間範囲である第３データ範囲を特定し、前記メモリストアから前記特定された第３データ範囲に含まれる前記処理済みデータを取得し、前記データベースへの前記取得された処理済みデータの書込要求を前記データベース管理部に送信し、前記第１データ範囲及び前記第３データ範囲に基づいて、前記メモリストアに一時的に格納される前記処理済みデータのうち、削除可能な前記処理済みデータを特定することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、第１データ処理部が実行する処理、第２データ処理部が実行する処理、及び第３データ処理部が実行する処理の処理性能を最適化し、かつ、メモリストアの容量を確保することができる。【００１５】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施例における計算機システムの構成を示すブロック図である。
【図２】本発明の実施例１の計算機システムにおける処理の流れを示す説明図である。
【図３】本発明の実施例１におけるサーバの構成の一例を示すブロック図である。
【図４】本発明の実施例１のデータ格納部に格納されるデータの一例を示す説明図である。
【図５Ａ】本発明の実施例１におけるメモリストア制御部に対して設定されるパラメータの一例を示す説明図である。
【図５Ｂ】本発明の実施例１におけるメモリストア制御部に対して設定されるパラメータの一例を示す説明図である。
【図６】本発明の実施例１のアクセスインタフェースを介して発行されるコマンドの一例を示す説明図である。
【図７】本発明の実施例１のデータ管理情報に含まれる情報の一例を示す説明図である。
【図８】本発明の実施例１のメモリストア制御部が実行する履歴ＤＢへのデータ書込処理の一例を説明するフローチャートである。
【図９Ａ】本発明の実施例１のメモリストア制御部が実行するアクセス処理の一例を説明するフローチャートである。
【図９Ｂ】本発明の実施例１のメモリストア制御部が実行するアクセス処理の一例を説明するフローチャートである。
【図１０】本発明の実施例１のメモリストア制御部が実行するデータ管理情報の更新処理の一例を説明するフローチャートである。
【図１１】本発明の実施例２のサーバの構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施例を添付図面に基づいて説明する。
【００１８】
（実施例１）
図１は、本発明の実施例１における計算機システムの構成を示すブロック図である。
【００１９】
実施例１の計算機システム１００は、複数のサーバから構成される。計算機システム１００は、ネットワーク１０２を介してデータソース１０１と接続される。
【００２０】
データソース１０１には、計算機システムにおいて処理されるデータを送信する端末、無線基地局、及びネットワーク装置等が含まれる。本発明は、データソース１０１から送信されるデータの種別に限定されない。
【００２１】
計算機システム１００には、サーバ１１０、サーバ１２０、サーバ１３０、サーバ１４０、サーバ１５０、サーバ１６０、及びサーバ１７０が含まれる。
【００２２】
サーバ１１０は、リアルタイムデータ処理部１１１が稼働する計算機である。リアルタイムデータ処理部１１１は、データソース１０１から現在送信されているデータ、すなわち、リアルタイムなデータを用いて、所定の処理を実行する。また、リアルタイムデータ処理部１１１は、サーバ１２０及びサーバ１４０に処理結果を送信する。
【００２３】
例えば、リアルタイムデータ処理部１１１は、所定のクエリに基づいてデータソース１０１から送信されるデータを統合又は分類するためのストリームデータ処理を実行する。なお、本発明は、リアルタイムデータ処理部１１１が実行する処理に限定されない。
【００２４】
サーバ１４０は、イベント処理部１４１が稼働する計算機である。イベント処理部１４１は、リアルタイムイベント処理を実行する。具体的には、イベント処理部１４１は、リアルタイムデータ処理部１１１から送信されたデータに基づいて、所定のイベントを検出し、検出されたイベントに対応する処理を実行する。
【００２５】
例えば、イベント処理部１４１は、位置データに基づいて端末等に広告メール等を配信する。なお、本発明はイベント処理部１４１が実行する処理に限定されない。
【００２６】
サーバ１２０は、メモリストア制御部１２１が稼働する計算機である。メモリストア制御部１２１は、複数のサーバ１２０が備えるメモリ上に構成されるメモリストア１２２を管理する。
【００２７】
メモリストア１２２は、複数のサーバ１２０が備えるメモリが仮想的に統合された一つの記憶領域上に構築されるデータベースである。本実施例では、メモリストア１２２には、リアルタイムデータ処理部１１１から送信されたデータが一時的に格納される。
【００２８】
メモリストア制御部１２１は、後述する処理にしたがって、メモリストア１２２に格納されるデータを履歴ＤＢ１３６に書き込み、また、メモリストア１２２に格納されるデータを削除する。
【００２９】
サーバ１４０は、状態監視部１５１が稼働する計算機である。状態監視部１５１は、メモリストア１２２に格納されるデータを用いて状態分析処理を実行する。
【００３０】
例えば、状態監視部１５１は、一定時間内における各地域の人口の密集を示すヒートマップを生成するための状態監視処理を実行する。なお、本発明は状態監視部１５１が実行する処理に限定されない。
【００３１】
サーバ１３０は、履歴ＤＢ管理部１３１が稼働する計算機である。サーバ１３０には、複数のストレージ装置１３５が接続される。本実施例では、複数のストレージ装置１３５の記憶領域上に履歴ＤＢ１３６が構築される。ストレージ装置１３５としては、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）及びＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等が考えられる。
【００３２】
なお、ストレージ装置１３５の代わりに、複数のストレージ装置１３５を有するストレージシステムを用いてもよい。ストレージシステムは、プロセッサ（図示省略）及びメモリ（図示省略）を含むコントローラ（図示省略）、ディスクインタフェース（図示省略）、及び複数のストレージ装置１３５を備える。
【００３３】
履歴ＤＢ管理部１３１は、リアルタイムデータ処理部１１１から送信されたデータを履歴ＤＢ１３６に格納する。また、履歴ＤＢ管理部１３１は、他のサーバからの要求に応じて履歴ＤＢ１３６から所定のデータを読み出し、当該他のサーバに読み出されたデータを送信する。
【００３４】
サーバ１６０は、履歴分析部１６１が稼働する計算機である。履歴分析部１６１は、履歴ＤＢ１３６からデータを取得し、取得されたデータを用いて履歴分析処理を実行する。
【００３５】
例えば、履歴分析部１６１は、各地域の一週間分の人口の分布を算出するための履歴分析処理を実行する。なお、本発明は履歴分析部１６１が実行する処理に限定されない。
【００３６】
サーバ１７０は、運用管理部１７１が稼働する計算機である。運用管理部１７１は、計算機システム１００全体を管理する。例えば、サーバの配置、及びサーバの構成を管理し、また、サーバの負荷等を監視する。
【００３７】
なお、計算機システム１００は、管理者が操作するクライアント端末等を備えていてもよい。
【００３８】
本発明では、前述したように、状態監視部１５１はメモリストア１２２にアクセスすることによって状態監視処理を実行し、履歴分析部１６１は履歴ＤＢ１３６にアクセスすることによって履歴分析処理を実行する。これによって、履歴ＤＢ１３６に対するアクセス負荷の増大を抑制し、かつ、状態監視部１５１の処理性能を向上させることができる。
【００３９】
図２は、本発明の実施例１の計算機システム１００における処理の流れを示す説明図である。
【００４０】
リアルタイムデータ処理部１１１は、所定のクエリに基づいて、データソース１０１から入力されたデータの処理を実行する。リアルタイムデータ処理部１１１は、処理結果をイベント処理部１４１及びメモリストア１２２に送信する。
【００４１】
メモリストア制御部１２１は、リアルタイムデータ処理部１１１から受信したデータをメモリストア１２２に格納する。リアルタイムデータ処理部１１１は、所定のタイミングになった場合、メモリストア１２２に格納されるデータを履歴ＤＢ１３６に書き込む。また、メモリストア制御部１２１は、所定の条件を満たした場合に、メモリストア１２２に格納されるデータを削除する。
【００４２】
イベント処理部１４１はリアルタイムなデータを用いて処理を実行し、状態監視部１５１は現在から一定時間さかのぼった時間範囲に含まれるデータを用いて処理を実行し、履歴分析部１６１は所定の時間範囲の過去のデータを用いて処理を実行する。例えば、状態監視部１５１は現時刻から２時間さかのぼった時間内に含まれるデータを用いて所定の処理を実行し、履歴分析部１６１は、０時から１５時までの時間範囲に含まれるデータを用いて所定の処理を実行する。
【００４３】
イベント処理部１４１、状態監視部１５１、及び履歴分析部１６１が処理するデータの範囲が異なるため、メモリストア１２２から履歴ＤＢ１３６へのデータの書き込みタイミング、及びメモリストア１２２からのデータの削除タイミングを調整する必要がある。
【００４４】
例えば、メモリストア制御部１２１は、メモリストア１２２に格納されるデータを履歴ＤＢ１３６に書き込んだ後、すぐに、当該データを削除した場合、状態監視部１５１は、履歴ＤＢ１３６からデータを読み出す必要があるため、処理性能が低下する。
【００４５】
さらに、メモリストア１２２に格納されるデータの容量がしきい値以上になった場合に、所定のデータが履歴ＤＢ１３６に書き込まれる場合、前述と同様の問題が発生する。
【００４６】
また、メモリストア制御部１２１は、逐次、状態監視部１５１が処理を完了したデータを履歴ＤＢ１３６に書き込む場合、頻繁にサーバ１２０とサーバ１３０との間の通信が発生するため、計算機システム１００全体の処理性能が低下する。また、メモリストア１２２の容量を増加させるのはコストが増大するという問題もある。
【００４７】
したがって、メモリストア１２２から履歴ＤＢ１３６へのデータの書き込むタイミング、及びメモリストア１２２からのデータの削除タイミングを最適化にする必要がある。
【００４８】
図３は、本発明の実施例１におけるサーバの構成の一例を示すブロック図である。図３では、サーバ１２０の構成について説明する。
【００４９】
サーバ１２０は、プロセッサ３０１、メモリ３０２、及びネットワークインタフェース３０３を備える。
【００５０】
プロセッサ３０１は、メモリ３０２に格納されるプログラムを実行する。プロセッサ３０１がプログラムを実行することによって、サーバ１２０が有する機能を実現することができる。以下、プログラムを主体に説明を記載する場合には、プロセッサ３０１によって当該プログラムが実行されていることを示す。
【００５１】
メモリ３０２は、プロセッサ３０１によって実行されるプログラム、及び当該プログラムの実行に必要なデータを格納する。また、サーバ１２０のメモリ３０２は、メモリストア１２２を構成する記憶領域を含む。
【００５２】
なお、説明の簡単のために、一つのサーバ１２０のメモリ３０２にメモリストア１２２が構築されているものとする。
【００５３】
メモリ３０２には、メモリストア制御部１２１、及びアクセスインタフェース３１０を実現するプログラムが格納される。
【００５４】
アクセスインタフェース３１０は、他のサーバがメモリストア１２２にアクセスするためのインタフェースを提供する。メモリストア制御部１２１は、アクセスインタフェース３１０が受け付けたアクセス要求（コマンド）を監視する。
【００５５】
また、メモリ３０２は、メモリストア１２２を含む。メモリストア１２２は、データ格納部３２０及びデータ管理情報３３０を含む。
【００５６】
データ格納部３２０は、リアルタイムデータ処理部１１１から送信されたデータを格納する。データ管理情報３３０は、データ格納部３２０に格納されるデータのうち、状態監視部１５１が実行する処理に必要なデータの範囲、及び履歴分析部１６１に書き込むデータの範囲を管理するための情報である。
【００５７】
なお、サーバ１１０、サーバ１４０、サーバ１５０、サーバ１６０、及びサーバ１７０のハードウェア構成はサーバ１２０と同一構成である。また、サーバ１３０は、プロセッサ３０１、メモリ３０２、及びネットワークインタフェース３０３の以外に、ストレージ装置１３５に接続するためのディスクインタフェースを備える。
【００５８】
また、サーバ１１０のメモリにはリアルタイムデータ処理部１１１を実現するためのプログラムが格納され、サーバ１３０のメモリには履歴ＤＢ管理部１３１を実現するためのプログラムが格納される。サーバ１４０のメモリには、イベント処理部１４１を実現するためのプログラムが格納され、サーバ１５０のメモリには、状態監視部１５１を実現するためのプログラムが格納され、サーバ１６０のメモリには、履歴分析部１６１を実現するためのプログラムが格納される。サーバ１７０のメモリには、運用管理部１７１を実現するためのプログラムが格納される。
【００５９】
図４は、本発明の実施例１のデータ格納部３２０に格納されるデータの一例を示す説明図である。図５Ａ及び図５Ｂは、本発明の実施例１におけるメモリストア制御部１２１に対して設定されるパラメータの一例を示す説明図である。図６は、本発明の実施例１のアクセスインタフェース３１０を介して発行されるコマンドの一例を示す説明図である。
【００６０】
データ格納部３２０には、タイムスタンプ、及び各種属性カラムから構成されるデータ（レコード）が複数格納される。図４に示す例では、データ（レコード）は、タイムスタンプ、ユーザＩＤ、及び位置情報から構成される。
【００６１】
本実施例では、メモリストア制御部１２１は、履歴ＤＢ１３６への書き込み対象となるデータの範囲を書込データ範囲、状態監視部１５１の処理対象となるデータの範囲を処理データ範囲として管理する。
【００６２】
書込データ範囲は、複数のタイムゾーンから構成される。タイムゾーンは、予め設定された時間範囲である。例えば、０時から１時までの１時間がタイムゾーンとして設定される。
【００６３】
本実施例では、各タイムゾーンは、他のタイムゾーンと重なりがないように設定される。また、一つのタイムゾーンの始点（ＴＺ＿ｔａｉｌ）と、隣接する他のタイムゾーンの終点（ＴＺ＿ｈｅａｄ）とが連続するように設定される。また、本実施例では、タイムゾーン単位にデータが履歴ＤＢ１３６に書き込まれる。
【００６４】
メモリストア制御部１２１には、タイムゾーンを管理するための情報として、タイムゾーンの始点、及びタイムゾーンの時間範囲を含むパラメータが設定される。
【００６５】
例えば、図５Ａに示すようなパラメータが設定される。図５Ａに示すパラメータが設定されることによって、メモリストア制御部１２１は、指定されたタイムスタンプの範囲をタイムゾーンとして管理する。
【００６６】
以下の説明では、タイムゾーンを管理するためのパラメータを第１のパラメータとも記載する。
【００６７】
図４に示す例では、タイムスタンプが「９／２０  １２：００：００」から「９／２０  １２：５９：５９」までの範囲がタイムゾーンＴＺ０として管理され、タイムスタンプが「９／２０  １３：００：００」から「９／２０  １３：５９：５９」までの範囲がタイムゾーンＴＺ１として管理され、タイムスタンプが「９／２０  １４：００：００」から「９／２０  １４：５９：５９」までの範囲がタイムゾーンＴＺ２として管理される。
【００６８】
また、メモリストア制御部１２１には、履歴ＤＢ１３６へのデータの書込処理に必要な情報として、書込処理のタイミング、及び書込対象のタイムゾーンを含むパラメータが設定される。
【００６９】
例えば、図５Ｂに示すようなパラメータが設定される。図５Ｂに示すパラメータが設定されることによって、毎時１０分に、最新のタイムゾーンから二つ前のタイムゾーンに含まれるデータが履歴ＤＢ１３６に書き込まれる。
【００７０】
以下の説明では、書込処理に必要なパラメータを第２のパラメータとも記載する。
【００７１】
処理データ範囲は、状態監視部１５１から指定された時間範囲である。より具体的には、処理データ範囲は、図６に示すようなコマンドを用いて指定される。なお、当該コマンドは、状態監視部１５１がアクセスインタフェース３１０に対して発行するコマンドである。
【００７２】
一つのコマンドは、タイムスタンプが最も新しいイベントデータから順に所定数のイベントデータを取得するためのコマンドである。図６に示すコマンドＡは、タイムスタンプが最も新しいイベントデータをｋ個取得するコマンドである。
【００７３】
一つのコマンドは、所定時間又は所定時間範囲のイベントデータを取得するためのコマンドである。図６に示すコマンドＢは、１７：３５から１７：４２までのイベントデータをｋ個取得するためのコマンドである。なお、時間は相対的な時間又は絶対的な時間の何れを用いてもよい。
【００７４】
一つのコマンドは、所定時間又は所定時間範囲の状態データを取得するためのコマンドである。図６に示すコマンドＣは、現時刻から一分前の状態データをｋ個取得するためのコマンドである。
【００７５】
なお、前述したコマンドは一例であって、本発明はこれに限定されない。本実施例では、最も新しいタイムスタンプのデータを始点として過去にさかのぼった一時間分のデータを取得するためのコマンドが発行されるものとする。
【００７６】
図７は、本発明の実施例１のデータ管理情報３３０に含まれる情報の一例を示す説明図である。
【００７７】
データ管理情報３３０には、格納データ管理情報７００、書込データ範囲管理情報７１０、及び処理データ範囲管理情報７２０を含む。
【００７８】
格納データ管理情報７００は、メモリストア１２２に格納するデータを管理するための情報を格納する。具体的には、格納データ管理情報７００は、処理種別７０１、及びタイムゾーン７０２を含む。
【００７９】
処理種別７０１は、処理の識別名を格納する。本発明では書込処理及び状態監視処理の二つのエントリが存在する。書込処理は、メモリストア１２２から履歴ＤＢ１３６へのデータの書込処理を示す。状態監視処理は、状態監視部１５１が実行する処理を示す。
【００８０】
タイムゾーン７０２は、タイムゾーンに含まれるデータの処理状態を示す情報を格納する。
【００８１】
書込処理のエントリのタイムゾーンのカラムには、当該タイムゾーンに含まれるデータの書込処理が完了したか否かを示す情報が格納される。具体的には、タイムゾーンに含まれるデータの書込処理が完了している場合、当該タームゾーンのカラムには「処理済」が格納され、タイムゾーンに含まれるデータの書込処理が完了していない場合、当該タイムゾーンのカラムには「未処理」が格納される。
【００８２】
状態監視処理のエントリのタイムゾーンのカラムには、当該タイムゾーンに含まれるデータに対して状態監視処理において使用されているか否かを示す情報が格納される。具体的には、状態監視処理においてタイムゾーンに含まれるデータが使用されている場合、当該データが含まれるタイムゾーンのカラムには「使用」が格納され、状態監視処理においてタイムゾーンに含まれる全てのデータが使用されていない場合、当該タイムゾーンのカラムには「未使用」が格納される。
【００８３】
なお、前述した情報を用いる代わりに、書込処理が完了したことを示すフラグ、及び状態監視処理がデータを使用していることを示すフラグを用いてもよい。
【００８４】
書込データ範囲管理情報７１０は、書込データ範囲を管理するための情報を格納する。具体的には、書込データ範囲管理情報７１０は、タイムゾーン７１１、ＴＺ＿ｈｅａｄ７１２、及びＴＺ＿ｔａｉｌ７１３を含む。
【００８５】
タイムゾーン７１１は、タイムゾーンの識別名を格納する。ＴＺ＿ｈｅａｄ７１２は、タイムゾーンに含まれるデータのタイムスタンプのうち、最も新しいタイムスタンプを格納する。ＴＺ＿ｔａｉｌ７１３は、タイムゾーンに含まれるデータのタイムスタンプのうち、最も古いタイムスタンプを格納する。
【００８６】
処理データ範囲管理情報７２０は、処理データ範囲を特定するための情報を格納する。処理データ範囲管理情報７２０は、Ｒ＿ｈｅａｄ７２１及びＲ＿ｔａｉｌ７２２を含む。
【００８７】
Ｒ＿ｈｅａｄ７２１は、処理データ範囲の始点となるデータのタイムスタンプを格納する。Ｒ＿ｔａｉｌ７２２は、処理データ範囲の終点となるデータのタイムスタンプを格納する。
【００８８】
図８は、本発明の実施例１のメモリストア制御部１２１が実行する書込処理の一例を説明するフローチャートである。
【００８９】
メモリストア制御部１２１には、所定の書込タイミングになると、メモリストア１２２に格納されるデータのうち、対象タイムゾーンに含まれるデータを履歴ＤＢ１３６に書き込むために、以下で説明する書込処理を開始する。
【００９０】
メモリストア制御部１２１が稼働するサーバ１２０には、予め、図５Ａに示すような第１パラメータが入力される。これによって、タイムゾーンを管理するための情報が設定される。また、メモリストア制御部１２１が稼働するサーバ１２０には、予め、図５Ｂに示すような第２のパラメータが入力される。これによって、書込タイミング、及び、対象タイムゾーンが設定される。この場合、メモリストア制御部１２１は、毎時１０分に書込処理が開始し、最新のタイムゾーンから二つ前のタイムゾーンを対象タイムゾーンに決定する。
【００９１】
メモリストア制御部１２１は、処理を開始すると、メモリストア１２２から履歴ＤＢ１３６に書き込むデータを取得する（ステップＳ８０１）。具体的には、以下のような処理が実行される。
【００９２】
メモリストア制御部１２１は、第２のパラメータに含まれる対象タイムゾーンの値に基づいて書込データ範囲管理情報７１０を参照し、対象タイムゾーンに対応するエントリを検索する。
【００９３】
メモリストア制御部１２１は、対象タイムゾーンに対応するエントリのＴＺ＿ｈｅａｄ７１２及びＴＺ＿ｔａｉｌ７１３を取得し、ＴＺ＿ｈｅａｄ７１２からＴＺ＿ｔａｉｌ７１３までの時間範囲に含まれるデータをデータ格納部３２０から取得する。
【００９４】
図７に示す例では、メモリストア制御部１２１は、最新のタイムゾーンＴＺ２から二つ前のタイムゾーンＴＺ０のエントリを検索し、データ格納部３２０からタイムゾーンＴＺ０に含まれるデータを取得する。
【００９５】
以上がステップＳ８０１の処理である。
【００９６】
次に、メモリストア制御部１２１は、取得されたデータを履歴ＤＢ１３６に書き込む（ステップＳ８０２）。
【００９７】
具体的には、メモリストア制御部１２１は、サーバ１３０の履歴ＤＢ管理部１３１に対して、取得されたデータを含む書込要求を送信する。なお、メモリストア１２２から取得されたデータの容量が大きい場合、メモリストア制御部１２１は、取得されたデータを複数回に分けて送信してもよい。
【００９８】
なお、履歴ＤＢ管理部１３１は、書込要求を受信すると、書込要求に含まれるデータを履歴ＤＢ１３６に書き込む。
【００９９】
メモリストア制御部１２１は、履歴ＤＢ１３６へのデータの書き込みが完了したか否かを判定する（ステップＳ８０３）。
【０１００】
例えば、メモリストア制御部１２１は、履歴ＤＢ管理部１３１から、履歴ＤＢ１３６へのデータの書き込みが完了した旨の通知を受信したか否かを判定する。
【０１０１】
履歴ＤＢ１３６へのデータの書き込みが完了していないと判定された場合、メモリストア制御部１２１は、ステップＳ８０２に戻り同様の処理を実行する。
【０１０２】
履歴ＤＢ１３６へのデータの書き込みが完了したと判定された場合、メモリストア制御部１２１は、格納データ管理情報７００を更新する（ステップＳ８０４）。
【０１０３】
具体的には、メモリストア制御部１２１は、書込処理のエントリの対象タイムゾーンに対応するカラムに「処理済」を格納する。本実施例では、タイムゾーンＴＺ０のカラムに「処理済」が格納される。
【０１０４】
メモリストア制御部１２１は、削除可能なデータが存在するか否かを判定する（ステップＳ８０５）。
【０１０５】
具体的には、メモリストア制御部１２１は、格納データ管理情報７００を参照し、書込処理のエントリのタイムゾーンのカラムに「処理済」が格納され、かつ、状態監視処理のエントリのタイムゾーンのカラムに「未使用」が格納されるタイムゾーンを検索する。すなわち、タイムゾーンに含まれる全てのデータが履歴ＤＢ１３６に書き込まれ、かつ、タイムゾーンに含まれる全てのデータが状態監視部１５１によって使用されていないタイムゾーンが検索される。
【０１０６】
前述した条件を満たすタイムゾーンが存在する場合、メモリストア制御部１２１は、削除可能なデータが存在すると判定する。以下の説明では、前述した条件を満たすタイムゾーンを削除対象タイムゾーンとも記載する。
【０１０７】
削除可能なデータが存在しないと判定された場合、メモリストア制御部１２１は、処理を終了する。
【０１０８】
削除可能なデータが存在すると判定された場合、メモリストア制御部１２１は、データ格納部３２０から削除対象タイムゾーンに含まれるデータを削除する（ステップＳ８０６）。
【０１０９】
さらに、メモリストア制御部１２１は、格納データ管理情報７００及び書込データ範囲管理情報７１０を更新し（ステップＳ８０７）、処理を終了する。具体的には、以下のような処理が実行される。
【０１１０】
メモリストア制御部１２１は、格納データ管理情報７００のタイムゾーン７０２から、削除対象タイムゾーンのカラムを削除する。このとき、メモリストア制御部１２１は、他のタイムゾーンの識別名を更新してもよい。
【０１１１】
また、メモリストア制御部１２１は、書込データ範囲管理情報７１０から、削除対象タイムゾーンのエントリを削除する。このとき、メモリストア制御部１２１は、他のタイムゾーンの識別名を更新してもよい。
【０１１２】
例えば、データ格納部３２０からタイムゾーンＴＺ０に含まれるデータが削除された場合、メモリストア制御部１２１は、格納データ管理情報７００からタイムゾーンＴＺ０のカラムを削除し、書込データ範囲管理情報７１０からタイムゾーンＴＺ０のエントリを削除する。このとき、メモリストア制御部１２１は、タイムゾーンＴＺ１の識別名をＴＺ０、タイムゾーンＴＺ２の識別名をＴＺ１に更新する。
【０１１３】
図９Ａ及び図９Ｂは、本発明の実施例１のメモリストア制御部１２１が実行するアクセス処理の一例を説明するフローチャートである。
【０１１４】
メモリストア制御部１２１は、アクセスインタフェース３１０がアクセス要求を受け付けた場合に以下で説明するアクセス処理を開始する。なお、メモリストア制御部１２１が稼働するサーバ１２０には、予め、図５Ａに示すような第１のパラメータが入力される。
【０１１５】
メモリストア制御部１２１は、アクセス要求がリアルタイムデータ処理部１１１から送信されたメモリストア１２２へのデータの書込要求であるか否かを判定する（ステップＳ９０１）。
【０１１６】
具体的には、メモリストア制御部１２１は、アクセス要求に対応するコマンドを解析することによって判定することができる。
【０１１７】
本実施例では、メモリストア制御部１２１は、アクセス要求が書込要求である場合、リアルタイムデータ処理部１１１から送信されたメモリストア１２２へのデータの書込要求であると判定する。リアルタイムデータ処理部１１１のみがメモリストア１２２にデータを書き込むためである。
【０１１８】
また、本実施例では、メモリストア制御部１２１は、アクセス要求が読出要求に対応するコマンドである場合、状態監視部１５１から送信されたメモリストア１２２からのデータの読出要求であると判定する。状態監視部１５１のみがメモリストア１２２からデータを読み出すためである。
【０１１９】
メモリストア１２２へのデータの書込要求であると判定された場合、メモリストア制御部１２１は、処理データ範囲管理情報７２０を更新する（ステップＳ９０２）。
【０１２０】
具体的には、メモリストア制御部１２１は、書込要求に含まれるデータのタイムスタンプをＲ＿ｈｅａｄ７２１に格納する。このとき、Ｒ＿ｔａｉｌ７２２は更新されない。なお、書込要求に複数のデータが含まれる場合、当該複数のデータの各々のタイムスタンプのうち最も新しいタイムスタンプがＲ＿ｈｅａｄ７２１に格納される。
【０１２１】
メモリストア制御部１２１は、データ管理情報３３０の更新処理を実行し（ステップＳ９０３）、その後、処理を終了する。データ管理情報３３０の更新処理については、図１０を用いて後述する。
【０１２２】
ステップＳ９０１において、メモリストア１２２からのデータの読出要求であると判定された場合、メモリストア制御部１２１は、処理データ範囲管理情報７２０を更新する（ステップＳ９０４）。具体的には、以下のような処理が実行される。
【０１２３】
メモリストア制御部１２１は、処理データ範囲管理情報７２０のＲ＿ｈｅａｄ７２１、及び読み出し対象のデータを指定する情報に基づいて、処理データ範囲の終点となるタイムスタンプを特定する。なお、読み出し対象のデータを指定する情報は、読み出し要求に含まれる。
【０１２４】
例えば、Ｒ＿ｈｅａｄ７２１から１時間さかのぼった時間範囲に含まれるデータの読み出しを要求する読出要求である場合、メモリストア制御部１２１は、データ格納部３２０を参照して、Ｒ＿ｈｅａｄ７２１から１時間さかのぼった時間範囲に含まれるデータのタイムスタンプのうち、最も過去のタイムスタンプを特定する。
【０１２５】
メモリストア制御部１２１は、特定されたタイムスタンプをＲ＿ｔａｉｌ７２２に格納する。これによって、処理データ範囲が確定する。なお、メモリストア制御部１２１は、更新前のＲ＿ｔａｉｌ７２２の値を一時的に保持する。
【０１２６】
以上がステップＳ９０４の処理である。
【０１２７】
次に、メモリストア制御部１２１は、アクセスインタフェース３１０を介した処理データ範囲に含まれるデータの送信を検出する（ステップＳ９０５）。ステップＳ９０５の処理によって、メモリストア制御部１２１は、状態監視部１５１に処理に必要なデータが送信されたことを確認できる。
【０１２８】
メモリストア制御部１２１は、更新前のＲ＿ｔａｉｌ７２２が含まれるタイムゾーンと更新後のＲ＿ｔａｉｌが含まれるタイムゾーンとが同一であるか否かを判定する（ステップＳ９０６）。具体的には、以下のような処理が実行される。
【０１２９】
メモリストア制御部１２１は、格納データ管理情報７００を参照し、状態監視処理のエントリのタイムゾーンのカラムが「使用」であるタイムゾーンのうち、最も古いタイムゾーンの識別名を取得する。当該タイムゾーンは、更新前のＲ＿ｔａｉｌが含まれるタイムゾーンである。以下の説明では、更新前のＲ＿ｔａｉｌが含まれるタイムゾーンを比較対象タイムゾーンとも記載する。
【０１３０】
メモリストア制御部１２１は、取得された比較対象タイムゾーンの識別名に基づいて、書込データ範囲管理情報７１０を参照し、当該比較対象タイムゾーンに対応するエントリの情報を取得する。
【０１３１】
メモリストア制御部１２１は、取得された比較対象タイムゾーンの情報、及び図５Ａに示すような第１のパラメータに基づいて、比較対象タイムゾーンの時間範囲を算出する。
【０１３２】
例えば、比較対象タイムゾーンがタイムゾーンＴＺ１である場合、本実施例では図５Ａに示すような第１のパラメータが設定されているため、メモリストア制御部１２１は、タイムゾーンＴＺ１の時間範囲が「１３：００：００」から「１３：５９：５９」であると特定する。
【０１３３】
メモリストア制御部１２１は、算出された時間範囲に基づいて、更新後のＲ＿ｔａｉｌ７２２が比較対象タイムゾーンに含まれているか否かを判定する。更新後のＲ＿ｔａｉｌ７２２が、比較対象タイムゾーンに含まれていると判定された場合、メモリストア制御部１２１は、更新前のＲ＿ｔａｉｌ７２２が含まれるタイムゾーンと更新後のＲ＿ｔａｉｌ７２２が含まれるタイムゾーンとが同一であると判定する。
【０１３４】
以上が、ステップＳ９０６の処理である。
【０１３５】
更新前のＲ＿ｔａｉｌ７２２が含まれるタイムゾーンと更新後のＲ＿ｔａｉｌ７２２が含まれるタイムゾーンとが同一であると判定された場合、メモリストア制御部１２１は、処理を終了する。
【０１３６】
更新前のＲ＿ｔａｉｌ７２２が含まれるタイムゾーンと更新後のＲ＿ｔａｉｌ７２２が含まれるタイムゾーンとが同一でないと判定された場合、メモリストア制御部１２１は、格納データ管理情報７００を更新する（ステップＳ９０７）。
【０１３７】
具体的には、メモリストア制御部１２１は、状態監視処理のエントリの比較対象タイムゾーンのカラムに「未使用」を格納する。
【０１３８】
メモリストア制御部１２１は、削除可能なデータが存在するか否かを判定する（ステップＳ９０８）。ステップＳ９０８の処理は、ステップ８０５の処理と同一の処理である。
【０１３９】
削除可能なデータが存在しないと判定された場合、メモリストア制御部１２１は、処理を終了する。
【０１４０】
削除可能なデータが存在すると判定された場合、メモリストア制御部１２１は、データ格納部３２０からステップＳ９０８において検索されたタイムゾーンに含まれるデータを削除する（ステップＳ９０９）。
【０１４１】
メモリストア制御部１２１は、格納データ管理情報７００及び書込データ範囲管理情報７１０を更新し（ステップＳ９１０）、処理を終了する。ステップＳ９１０の処理はステップＳ８０７の処理と同一の処理である。
【０１４２】
図１０は、本発明の実施例１のメモリストア制御部１２１が実行するデータ管理情報３３０の更新処理の一例を説明するフローチャートである。
【０１４３】
メモリストア制御部１２１は、書込データ範囲管理情報７１０を参照して、最新のタイムゾーンの情報を取得する（ステップＳ１００１）。
【０１４４】
具体的には、メモリストア制御部１２１は、書込データ範囲管理情報７１０のＴＺ＿ｈｅａｄ７１２が最も新しいエントリを検索し、当該エントリの情報を取得する。
【０１４５】
メモリストア制御部１２１は、取得された最新のタイムゾーンの情報、及び第１のパラメータに基づいて、最新のタイムゾーンの時間範囲を算出する（ステップＳ１００２）。
【０１４６】
図７に示す例では、最新のタイムゾーンがタイムゾーンＴＺ２である場合、本実施例では図５Ａに示すような第１のパラメータが設定されているため、メモリストア制御部１２１は、タイムゾーンＴ２の時間範囲が「１４：００：００」から「１４：５９：５９」であると算出する。
【０１４７】
メモリストア制御部１２１は、算出された時間範囲に基づいて、書込要求に含まれるデータのタイムスタンプが、検索された最新のタイムゾーンに含まれているか否かを判定する（ステップＳ１００３）。
【０１４８】
書込要求に含まれるデータのタイムスタンプが、検索された最新のタイムゾーンに含まれていない場合、メモリストア制御部１２１は、書込データ範囲管理情報７１０を更新する（ステップＳ１００４）。
【０１４９】
具体的には、メモリストア制御部１２１は、書込データ範囲管理情報７１０に、新たなタイムゾーンのエントリを追加する。また、メモリストア制御部１２１は、追加されたエントリのタイムゾーン７１１に追加されたタイムゾーンの識別名を格納し、ＴＺ＿ｔａｉｌ７１３に書込要求に含まれるデータのタイムスタンプを格納する。なお、追加されたエントリのＴＺ＿ｈｅａｄ７１２は空欄のままである。
【０１５０】
メモリストア制御部１２１は、格納データ管理情報７００を更新し（ステップＳ１００５）、処理を終了する。
【０１５１】
具体的には、メモリストア制御部１２１は、格納データ管理情報７００のタイムゾーン７０２に、新たなタイムゾーンのカラムを追加する。さらに、メモリストア制御部１２１は、書込処理のエントリの追加されたタイムゾーンのカラムに「未処理」を格納し、状態監視処理のエントリの追加されたタイムゾーンのカラムに「使用」を格納する。
【０１５２】
ステップ１００３において、書込要求に含まれるデータのタイムスタンプが、検索された最新のタイムゾーンに含まれている場合、メモリストア制御部１２１は、書込データ範囲管理情報７１０を更新し（ステップＳ１００６）、処理を終了する。
【０１５３】
具体的には、メモリストア制御部１２１は、検索された最新のタイムゾーンのエントリのＴＺ＿ｈｅａｄ７１２に、書込要求に含まれるデータのタイムスタンプを格納する。
【０１５４】
以上で説明したように、リアルタイムデータ処理部１１１が送信するデータはメモリストア１２２に格納される。これによって、リアルタイムデータ処理部１１１が実行する処理のリアルタイム性を確保することができる。
【０１５５】
状態監視部１５１は、メモリストア１２２に格納されるデータを用いて処理を実行するため、状態監視処理の処理性能の向上、及び履歴ＤＢ１３６へのアクセス負荷を回避することができる。
【０１５６】
さらに、メモリストア制御部１２１は、履歴ＤＢ１３６に書き込まれ、かつ、状態監視部１５１によって使用されていないデータを削除することによって、メモリストアの使用可能な記憶領域を確保することができる。したがって、メモリの増設を抑制し、システムにおける設備コストの増大を回避できる。
【０１５７】
また、リアルタイムデータ処理部１１１が処理したデータは、メモリストア１２２に一時的に格納され、その後、履歴ＤＢ１３６に格納されるため、履歴分析処理に必要なデータを蓄積することができる。
【０１５８】
実施例１によれば、異なる三つの処理を最適に実行可能なシステムを実現することができる。
【０１５９】
（実施例２）
実施例２では、複数種類のデータがデータ格納部３２０に格納されている点が実施例１と異なる。以下、実施例１との差異を中心に説明する。実施例２の計算機システムの構成は実施例１と同一であるため説明を省略する。
【０１６０】
図１１は、本発明の実施例２のサーバの構成の一例を示すブロック図である。実施例２では、メモリストア１２２が、データの種類毎にデータ格納部３２０を含む点が実施例１と異なる。また、メモリストア１２２は、データの種類毎に図７に示すようなデータ管理情報３３０を含む点が実施例１と異なる。
【０１６１】
実施例２では、データの種類毎にタイムゾーンの始点、及びタイムゾーンの時間範囲を設定することができる。また、データの種類毎に書込処理のタイミング、及び書込対象のタイムゾーンを設定することができる。
【０１６２】
したがって、実施例２では、データの種類毎に図８に示す書込処理が実行される。
【０１６３】
実施例２のアクセス処理では、以下の点が異なる、メモリストア制御部１２１は、アクセス要求を受け付けた場合、当該アクセス要求を解析し、アクセス対象のデータの種類を特定する。その後、特定されたデータの種類に対応するデータ格納部３２０及びデータ管理情報３３０を用いて、ステップＳ９０１以下の処理を実行する。その他の処理は、実施例１と同一であるため説明を省略する。
【０１６４】
なお、本実施例では、ソフトウェアによる制御を用いた例について説明したが、その一部をハードウェアによって実現することも可能である。
【０１６５】
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
【図１】
0005956064.tif 000002
【図２】
0005956064.tif 000003
【図３】
0005956064.tif 000004
【図４】
0005956064.tif 000005
【図５Ａ】
0005956064.tif 000006
【図５Ｂ】
0005956064.tif 000007
【図６】
0005956064.tif 000008
【図７】
0005956064.tif 000009
【図８】
0005956064.tif 000010
【図９Ａ】
0005956064.tif 000011
【図９Ｂ】
0005956064.tif 000012
【図１０】
0005956064.tif 000013
【図１１】
0005956064.tif 000014