JP5530878B2 - 分散システムにおけるデータレプリケーション管理方法 - Google Patents

分散システムにおけるデータレプリケーション管理方法 Download PDF

Info

Publication number
JP5530878B2
JP5530878B2 JP2010209653A JP2010209653A JP5530878B2 JP 5530878 B2 JP5530878 B2 JP 5530878B2 JP 2010209653 A JP2010209653 A JP 2010209653A JP 2010209653 A JP2010209653 A JP 2010209653A JP 5530878 B2 JP5530878 B2 JP 5530878B2
Authority
JP
Japan
Prior art keywords
data
application
node
replica
driven
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.)
Active
Application number
JP2010209653A
Other languages
English (en)
Other versions
JP2012064130A (ja
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2010209653A priority Critical patent/JP5530878B2/ja
Publication of JP2012064130A publication Critical patent/JP2012064130A/ja
Application granted granted Critical
Publication of JP5530878B2 publication Critical patent/JP5530878B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ネットワークを介して相互接続した、複数の独立したノードにより構成され、個々にデータを管理し発信するデータソースとなる少なくとも1つのノードと、前記データソースからのデータを収集、管理する少なくとも1つのデータサーバと、前記データを活用するアプリケーションが稼動する少なくとも1つのノードを含める、分散システムを対象として、特にシステム内でのデータアクセスの応答性能保証のために実施するデータのレプリケーションの方法に関する。
マスターデータベースをアクセスするマスターサイトと、上記マスターサイトとネットワークを介して接続され、レプリケーションデータベースをアクセスするレプリケーションサイトとを備えた分散型データベースシステムにおいて、上記レプリケーションサイトがクライアントから上記レプリケーションデータベースの更新要求を受けると、その更新要求を上記マスターサイトに送信する一方、上記マスターサイトが当該更新要求にしたがって上記マスターデータベースを更新し、上記レプリケーションサイトが上記マスターサイトから上記マスターデータベースの更新結果を受信すると、その更新結果にしたがって上記レプリケーションデータベースを更新することを特徴とする分散型データベースシステム(特許文献1参照)等が提案されている。
また、プロセス側の機器・設備の監視制御用の多数台のPLC(Programmable Logic Controller)と、複数の監視拠点にそれぞれ複数台設けられたMMI(Man-Machine Interface)と、これらPLCとMMI間を任意にネットワーク接続して制御指令およびプロセス情報を送信する分散制御システムにおいて、前記監視拠点別にロケーション番号を割り付け、このロケーション番号の設定で前記MMIとPLC間の制御指令およびプロセス情報の送信先の監視拠点を1つまたは複数に特定し、かつロケーション番号またはMMIの番号、PLCの番号の省略で送信先をマルチキャストに特定する制御LANプロトコルを備えたことを特徴とする分散制御システム(特許文献2参照)等が提案されている。
特開2002−116939号公報 特開2003−018215号公報
本発明が対象とするのは、鉄道、電力等の分野における分散システムであり、これらの分野におけるアプリケーションは、一定の実行周期にて所定の処理を実行する周期駆動型アプリケーションと、イベント発生をトリガーとして所定の処理を実行するイベント駆動型アプリケーションとの2種類ある。また特に周期駆動型アプリケーションの実行周期を維持して正常に稼動することを優先する必要がある。
しかしながら、上記特許文献1に開示された技術では、周期駆動型アプリケーションの実行周期による実行開始タイミングに対してデータレプリケーションの同期タイミングがずれるまたは遅れる場合、アプリケーションにおけるデータアクセスの応答の性能、またはアクセス時のデータの整合性を保証できない。また特許文献1もしくは特許文献2に開示された技術では、データレプリケーションにおいてレプリカの分散配置を行う場合、レプリケーションの対象となるデータの数、サイズの増加に伴いレプリカデータ同期のための通信トラフィックやノード内のデータ占有領域が増大し、システムへ高負荷を与え得る。特にイベント駆動型アプリケーションがアクセスするデータである場合、アプリケーションによる該データへの参照頻度が低ければ、不要な負荷となり得て、周期駆動型アプリケーションの正常動作にも影響を及ぼし得る。
本発明は、上述した課題を考慮したものであって、動作形態、性能要件等が異なる複数のアプリケーションプログラムが混在して実行する環境にて、競合を回避し、データアクセスの応答性能を保証するために、アプリケーションプログラムの動作と連動したデータレプリケーションを実施するための、分散システムにおけるデータレプリケーション管理方法を提供することを目的とする。
上記課題を解決するため、本発明は以下の構成を備える。即ち、本発明の分散システムは、ネットワークを介して相互接続した、複数の独立したノードにより構成され、個々にデータを管理し発信するデータソースとなる少なくとも1つのノードと、前記データソースからのデータを収集、管理する少なくとも1つのデータサーバと、前記データソースからのデータを活用する少なくとも1つのアプリケーションが稼動する少なくとも1つのノードとを含む。
前記データサーバと、前記データソースからのデータを活用する少なくとも1つのアプリケーションが稼動する少なくとも1つのノードとの間にて、前記データソースから収集したデータのレプリケーションを実施する場合、前記データサーバは、前記データソースとなる少なくとも1つのノードが発信するデータを収集して蓄積する。
各ノードでは、少なくとも1つのアプリケーションに対して、各アプリケーションにて使用する少なくとも1つのデータに関するレプリカを配置し該データのレプリケーションを実施する。
周期駆動するアプリケーションが稼動する少なくとも1つのノードは、周期駆動するアプリケーションの実行周期を取得し、該実行周期に合わせて事前に該周期駆動するアプリケーションが使用する少なくとも1つのデータの更新の有無を判定し、該データの更新が有る場合は、次実行周期の開始までに該データのレプリカの更新を実施し完了させておく。
イベント駆動するアプリケーションが稼動する少なくとも1つのノードは、イベント駆動するアプリケーションが使用する少なくとも1つのデータに関して、該データのアプリケーションによる参照頻度を監視し、前記参照頻度の監視結果と、該データの種別による重要度により優先順位を決定し、前記決定した優先順位に従って前記イベント駆動によるアプリケーションが使用するレプリカのデータの配置を変更する。
本発明によれば、アプリケーション開発者はデータアクセスに関連する煩雑な処理を作りこむ必要がなく、アプリケーションロジックの開発に専念でき、開発工数の削減、エラー低減等に寄与する。
本発明による分散システムにおけるデータレプリケーション管理方法の概要を示す図である。 本発明の適用先である分散システムの概要を示す図である。 本発明によるデータレプリケーション管理方法を実施する上での、分散システムを構成する複数のノード間での全体処理シーケンスを示す図である。 本発明における分散システムを構成し、データソースからのデータを収集、管理し、アプリケーションが稼動する少なくとも1つのノードに対してデータレプリケーションを実施する、データサーバのモジュール構成を示す図である。 本発明による分散システムを構成し、データソースからのデータを活用するアプリケーションが稼動するノードのモジュール構成を示す図である。 本発明におけるデータサーバにて管理されるレプリカデータ管理テーブルの構成を示す図である。 本発明におけるデータサーバでの、周期駆動によるアプリケーションが使用するデータの更新監視及びレプリカの更新処理の流れを示すフローチャートである。 本発明における少なくとも1つのアプリケーションが稼動するノードでの、周期駆動によるアプリケーションが使用するデータのレプリカの更新処理の流れを示すフローチャートである。 本発明によるイベント駆動によるアプリケーションが使用するデータの重要度について説明する図である。 本発明によるイベント駆動によるアプリケーションが使用するデータの優先順位を決定し、該優先順位に基づきデータを配置する処理の流れを示すフローチャートである。
図1は、本発明による分散システムにおけるデータレプリケーション管理方法の概要を示す図である。
主な構成要素は、個々にデータを管理し発信するデータソースとなるデータソースノード0203、前記データソースノード0203からのデータを収集、管理するデータサーバ0201、前記データソースノード0203からのデータを活用する少なくとも1つのアプリケーションが稼動するアプリケーションノード0202、等である。データソースノード0203から発信されるデータはデータサーバ0201で受信し、該データサーバ0201上のDB0101に格納される。アプリケーションノード0202では、少なくとも1つの周期駆動によるアプリケーション0104と少なくとも1つのイベント駆動によるアプリケーション0105が稼動しており、少なくとも1つのレプリカ(0102、0103)をそれぞれ処理中で使用している。アプリケーションノード0202では、周期駆動によるアプリケーション0104、あるいはイベント駆動によるアプリケーション0105の一方が稼動していてもよい。
データサーバ0201はデータソース0203から発信されるデータを受信する度にDB0101に格納される該当データの上書き更新を実施する。また前記更新データに関するアプリケーションノード0202上の該当レプリカに対しても、前記更新データをアプリケーションノード0202に送信し、前記該当レプリカの更新を実施する。ここで周期駆動によるアプリケーション0104が使用するレプリカ0102に関しては、該アプリケーションの実行周期に合わせて事前に該アプリケーションが使用する少なくとも1つのレプリカ0102の元となるDB0101内のデータに対する更新の有無を判定し、更新を検出した場合、次実行周期の開始時点までに該データのレプリカ0102の更新を実施し完了させておく(0111)。上記により周期駆動によるアプリケーション0104が各周期にて処理を開始する時点では必要なデータが整合性をとれて用意されており、周期駆動によるアプリケーション0104の実行周期の維持と処理実行の確実さを保証する。
またアプリケーションノード0202では、イベント駆動によるアプリケーション0105が使用するレプリカ0103よりも周期駆動によるアプリケーション0104が使用するレプリカ0102に対して優先的にデータ領域を割当てることで、周期駆動によるアプリケーション0104の実行周期の維持と処理実行の確実さを保証する。つまり周期駆動によるアプリケーション0104が使用するレプリカ0102に対しては常にメモリを割当てるが、イベント駆動によるアプリケーション0105が使用するレプリカ0103に対しては、該データの参照頻度と該データの種別による重要度から優先順位を決定し、前記優先順位に従って、イベント駆動によるアプリケーション0105が使用するレプリカ0103のデータ配置を優先順位の高い順に、メモリ、ファイル、該データを保有する他ノードへのポインタ、削除、へと遷移させる。
上記の各処理の詳細は以降の図にて述べる。
図2は、本発明の適用先である分散システムの概要を示す図である。
分散システムの主な構成要素は、個々に設備0204に関するデータを管理し発信するデータソースとなるデータソースノード0203、前記データソースノード0203からのデータを収集、管理するデータサーバ0201、前記データソースノード0203からのデータを活用する少なくとも1つのアプリケーションが稼動するアプリケーションノード0202、等である。データソースノード0203とデータサーバ0201とはネットワーク0206を介して接続しているが、アプリケーションノード0202とデータサーバ0201とはネットワーク0205を介して接続している。このようにデータソースノード0203とアプリケーションノード0202とは別のネットワークに接続しているが、適用先のシステム要件に基づいて、同一ネットワークに接続していてもよい。
データソースノード0203の主なハードウェア構成は、処理装置(CPU)0231、記憶装置(メモリ、ハードディスク)0232、通信装置0233からなる。記憶装置0232には、設備0204の管理及び制御を行うためのソフトウェアプログラム、設備0204から取得したデータを蓄積またはデータサーバ0201に送信するためのソフトウェアプログラム等が格納され、処理装置0231により処理される。また通信装置0233は、ネットワーク0206を介してデータサーバ0201との間での通信処理を行う。
データサーバ0201の主なハードウェア構成は、処理装置(CPU)0211、記憶装置(メモリ、ハードディスク)0212、通信装置0213からなる。記憶装置0212には、データソースノード0203からデータを収集しDBへと格納する処理を行うためのソフトウェアプログラム、アプリケーションノード0202に配置するレプリカの管理及び更新監視、データ同期等を行うためのソフトウェアプログラム、データソースノード0203からのデータを受信し、アプリケーションノード0202にデータ送信するためのソフトウェアプログラム、等が格納され、処理装置0211により処理される。また記憶装置0212には、データソースノード0203から収集したデータを格納、管理するためのDBも格納される。また通信装置0213は、ネットワーク0205を介してアプリケーションノード0202との間での通信処理、またネットワーク0206を介してデータソースノード0203との間での通信処理を行う。
アプリケーションノード0202の主なハードウェア構成は、処理装置(CPU)0221、記憶装置(メモリ、ハードディスク)0222、通信装置0223からなる。記憶装置0222には、該ノードにて稼動するアプリケーションプログラム、レプリカデータの管理及び更新を行うためのソフトウェアプログラム、データサーバ0201から送信されるデータを受信するためのソフトウェアプログラム等が格納され、処理装置0221により処理される。また記憶装置0222には、アプリケーションが使用するレプリカデータが格納される。また通信装置0223は、ネットワーク0205を介してデータサーバ0201との間での通信処理を行う。
図3は、本発明によるデータレプリケーション管理方法を実施する上での、分散システムを構成する複数のノード間での全体処理シーケンスを示す図である。
主な構成要素は、分散システムを構成するデータサーバ0201、少なくとも1つのアプリケーションが稼動するアプリケーションノード0202、ノード0202にてアプリケーションが使用するデータの発生元であるデータソースノード0203である。本図ではアプリケーション0202にて周期駆動するアプリケーションが実行周期(0301、0302、0303)で稼動している場合について図示する。
アプリケーションノード0202にて、ステップ0311において、データサーバ0201に対して、アプリケーションが使用するレプリカデータに関する登録を行う。
データサーバ0201にて、ステップ0321において、ステップ0311でのアプリケーションノード0202からのレプリカ登録に対して、データソースノード0203に対して、レプリカのオリジナルとなるデータの配信を要求し、アプリケーション及びレプリカに関する情報を格納するレプリカデータ管理テーブルを更新する。本テーブルの詳細は図6にて述べる。
ステップ0322において、アプリケーションの実行周期に応じて、ステップ0311にて登録されたレプリカのオリジナルとなる、データサーバ0201にて管理するDB上のデータの更新有無の監視を開始する。実行周期0301において、データソースノードA及びデータソースノードB(0203)が、ステップ0321のデータ配信要求に従って、データサーバ0201に対して、レプリカのオリジナルとなる各々のデータが配信されると(0341、0331)、ステップ0323及びステップ0324において、これらのデータを受信し、データサーバ0201にて管理するDBに格納し該当データを更新する。このDBはアプリケーションノード0202に配置するレプリカの同期元となるデータを格納するものである。
ステップ0325において、データ更新監視により、前記データの更新を検出する。ステップ0326において、ステップ0325にて更新検出したデータを、レプリカを配置するアプリケーションノード0202へと送信する。アプリケーションノード0202にて、ステップ0312において、前記更新検出したデータを受信し、該当レプリカの更新を実施する。
実行周期0302において、ステップ0327において、データ更新監視を実施するが、更新は検出されなかったため、該周期ではレプリカ更新処理は実施しない。
実行周期0303において、データソースノードB0203にて、ステップ0332において、データサーバ0201に対して、レプリカのオリジナルとなるデータが配信されると、ステップ0328において、これらのデータを受信し、データサーバ0201にて管理するDBに格納し該当データを更新する。
ステップ0329において、データ更新監視により、前記データの更新を検出する。ステップ0320において、ステップ0329にて更新検出したデータを、レプリカを配置するアプリケーションノード0202へと送信する。アプリケーションノード0202にて、ステップ0313において、前記更新検出したデータを受信し、該当レプリカの更新を実施する。以上の処理を周期毎に繰り返す。
図4は、本発明における分散システムを構成し、データソースノード0203からのデータを収集、管理し、アプリケーションが稼動する少なくとも1つのノード0202に対してデータレプリケーションを実施する、データサーバ0201のモジュール構成を示す図である。
データサーバ0201には、データソースノード0203からのデータ収集、蓄積及び管理を行い、アプリケーションが稼動する少なくとも1つのノード0202に対するデータレプリケーションの制御や管理を行うミドルウェア0401、及びデータソースノード0203から収集したデータを蓄積しておくDB0402が設けられる。
ミドルウェア0401の主な構成要素は、レプリケーション管理部0411、レプリカデータ同期部0412、データ格納部0413、データ更新監視部0414及びデータ通信部0415である。
レプリケーション管理部0411は、データ通信部0415を介してアプリケーションノード0202からのレプリカ登録及びデータレプリケーション実施要求を受付け、データ格納部0413へのデータソースノード0203からのデータ収集の指示、データ更新監視部へのレプリカ対象データの更新有無監視の指示、及び、データ更新有無の監視結果に基づいた、レプリカデータ同期部0412への、アプリケーションが稼動する少なくとも1つのノード0202との間でのレプリカデータ同期実行の指示、等を行う。
レプリカデータ同期部0412は、データ通信部0415を介してアプリケーションが稼動する少なくとも1つのノード0202との間での、少なくとも1つのアプリケーションが使用する少なくとも1つのレプリカデータに関する同期処理を実施する。
データ格納部0413は、データ通信部0415を介して少なくとも1つのデータソースノード0203からのデータを収集し、DB0402に格納する。
データ更新監視部0414は、DB0402に格納される各々のデータに関して、データソースからのデータの受信及び上書き格納によるデータ更新発生の有無を監視する。
データ通信部0415は、通信媒体0205または通信媒体0206を介して分散システムを構成する他のノードとの間の通信を行う。
レプリカデータ管理テーブル0416はレプリケーション管理部0411により管理、更新されるが、詳細は図6にて述べる。
図5は、本発明による分散システムを構成し、データソースからのデータを活用するアプリケーションが稼動するノード0202のモジュール構成を示す図である。
アプリケーションが稼動するノード0202には、データサーバ0201との間でのデータレプリケーションの制御、管理を行うミドルウェア0501、システムにおける各種の処理を実施するアプリケーション0502、前記アプリケーション0502が使用するデータに関するレプリカ0503が設けられる。
ミドルウェア0501の主な構成要素は、レプリカデータ同期部0511、レプリカデータ配置制御部0512、レプリカデータ監視部0513、及びデータ通信部0514である。
レプリカデータ同期部0511は、データ通信部0514を介してデータサーバ0201からデータを取得し、データサーバ0201との間でレプリカデータの同期を行う。
レプリカデータ配置制御部0512は、イベント駆動するアプリケーションが使用するデータに関して、レプリカデータ監視部0513からの監視結果に基づき、前記データのレプリカのためのデータ配置の決定及び配置変更を行う。
レプリカデータ監視部0513は、イベント駆動するアプリケーションが使用するデータに関してアプリケーションによる参照頻度を監視する。
データ通信部0514は、通信媒体0205を介して分散システムを構成する他のノードとの間の通信を行う。
図6は、本発明におけるデータサーバ0201にて管理されるレプリカデータ管理テーブル0416の構成を示す図である。
レプリカデータ管理テーブル0416は、レプリカ0503を使用するアプリケーションに関する情報を格納するアプリケーション情報テーブル0601と各アプリケーションがレプリカとして使用するデータに関する情報を格納するデータ情報テーブル0602とからなる。データ情報テーブル0602は、アプリケーション情報テーブル0601に格納される各アプリケーションに関する情報に対応して1つずつ用意される。
アプリケーション情報テーブル0601の主な構成要素は、アプリ識別情報0611、アプリ実行周期0612、アプリ開始時刻0613、稼動ノード識別情報0614、使用データ個数0615、レプリカ情報格納ポインタ0616、及び最新更新時刻0617である。
アプリ識別情報0611には、少なくとも1つのアプリケーションが稼動するノード0202にて稼動するそれぞれのアプリケーションを識別する情報が格納される。アプリ実行周期0612には、アプリ識別情報0611に該当するアプリケーションが周期駆動するアプリケーションである場合、該アプリケーションの実行周期が格納される。アプリ識別情報0611に該当するアプリケーションがイベント駆動するアプリケーションである場合、本項目0612に値は格納されない。アプリ開始時刻0613には、アプリ識別情報0611に該当するアプリケーションがシステム内で動作を開始する時刻が格納される。
稼動ノード識別情報0614には、アプリ識別情報0611に該当するアプリケーションが稼動するノード0202を識別する情報が格納される。ここではノード番号、IPアドレス等のシステム内でノードを特定する情報が格納される。使用データ個数0615には、アプリ識別情報0611に該当するアプリケーションがレプリカとして使用するデータの個数が格納される。
レプリカ情報格納ポインタ0616には、アプリ識別情報0611に該当するアプリケーションがレプリカとして使用するデータに関する情報が格納されるデータ情報テーブル0602のポインタ情報が格納される。最新更新時刻0617には、項目0611〜0616のデータが最後に更新された時刻が格納される。これらのアプリケーションに関する情報は、アプリケーションがシステム内に登録される度に前記アプリケーション情報テーブル0601に情報が追加される。
データ情報テーブル0602の主な構成要素は、レプリカ識別情報0621、データ識別情報0622、データポインタ0623、データサイズ0624、データソース情報0625、更新フラグ0626、及び最新更新時刻0627である。これらの構成要素の組(レコード)は、各アプリケーションが使用するレプリカの個数だけ存在する。
レプリカ識別情報0621には、前記アプリケーションが使用するレプリカを識別する情報が格納される。データ識別情報0622には、レプリカ識別情報0621に該当するレプリカのオリジナルとなるデータを識別する情報が格納される。データポインタ0623には、データ識別情報0622に該当するデータのデータサーバ0201上での格納先を示すポインタ情報が格納される。データサイズ0624には、データ識別情報0622に該当するデータのサイズが格納される。データソース情報0625には、データ識別情報0622に該当するデータの発生元であるデータソースノード0203を識別する情報が格納される。ここではノード番号、IPアドレス等のシステム内でノードを特定する情報が格納される。
更新フラグ0626には、データ識別情報0622に該当するデータの更新の有無を示すフラグ情報が格納される。最新更新時刻0627には、項目0621〜0626のデータが最後に更新された時刻が格納される。データ情報テーブル0602の各項目の情報はデータソースノード0203からデータが送信され、データサーバ0201上に格納される度に更新される。
図7は、本発明におけるデータサーバ0201での、周期駆動によるアプリケーションが使用するデータの更新監視及びレプリカの更新処理の流れを示すフローチャートである。
ステップ0701において、少なくとも1つのアプリケーションが稼動するノード0202から、周期駆動によるアプリケーションが使用するデータに関するレプリカ登録を受付け、該アプリケーションの実行周期、実行開始時刻等の情報を取得する。ステップ0702において、該アプリケーションが使用する少なくとも1つのデータのデータソースノード0203に対して、データサーバ0201への配信を要求する。ステップ0703において、レプリカデータ管理テーブル0416における該アプリケーションに関する項目を更新する。ステップ0704において、ステップ0701にて取得した該アプリケーションの実行周期0612、実行開始時刻0613等の情報に従って、該アプリケーションの動作と連動した、データ更新の監視としてステップ0705以降の処理を開始する。
ステップ0705において、レプリカデータ管理テーブル0416における該アプリケーションが使用するデータに関する、データ情報テーブル0602のデータ毎の項目として更新フラグ0626を参照する。前記テーブルの詳細は図6にて述べている。ステップ0706において、ステップ0705の更新フラグ0626の値から、該データが更新有りである場合、ステップ0707において、データソースからのデータを格納している、データサーバ0201上のDB0402から該当データを取得し、一時格納領域に格納する。ステップ0708において、ステップ0705におけるデータ情報テーブル0602における該データの項目に対する更新フラグ0626の値をリセットする。
ステップ0709において、該アプリケーションが使用する全てデータのデータにして終了していない場合、ステップ0705からステップ0708の処理を繰り返す。ステップ0709において、該アプリケーションが使用する全てデータのデータに対して終了した場合であって、かつ、ステップ0710において、ステップ0709までの処理にて検出した少なくとも1つの更新データが有る場合、ステップ0711において、ステップ0707にて一時格納領域に格納していた少なくとも1つの更新データを、該アプリケーションが稼動するノード0202に送信する。ステップ0710において、ステップ0709までの処理にて検出した少なくとも1つの更新データが無い場合、ステップ0711の処理は省略する。ステップ0712において、該アプリケーションの実行周期に従って次周期まで待機して、ステップ0705の処理に戻る。
図8は、本発明における少なくとも1つのアプリケーションが稼動するノード0202での、周期駆動によるアプリケーションが使用するデータのレプリカ0503に対する更新処理の流れを示すフローチャートである。
ステップ0801において、周期駆動によるアプリケーションが使用するデータに関するレプリカ、該アプリケーションの実行周期、及び実行開始時刻等の情報をデータサーバ0201に登録する。ステップ0802において、該アプリケーションの各周期の処理時間に対して、レプリカ更新の処理に要する時間が所定の値よりも大きいと判定した場合、ステップ0803において、該アプリケーションが使用するデータのレプリカの複製データを作成する。ステップ0802において、該アプリケーションの各周期の処理時間に対して、レプリカ更新の処理に要する時間が所定の値よりも小さいと判定した場合、ステップ0803の処理は省略する。
ステップ0804において、データサーバ0201より、該アプリケーションが使用するレプリカ0503の更新データを受信する。ステップ0805において、ステップ0803にて該アプリケーションが使用するレプリカ0503の複製データを作成していない場合、ステップ0806において、ステップ0804にて受信したデータを該当データのレプリカ0503に上書きして更新する。その後、ステップ0804の処理に戻る。
ステップ0805において、ステップ0803にて該アプリケーションが使用するレプリカ0503の複製データを作成している場合、ステップ0807において、ステップ0804にて受信したデータを該当データのレプリカ0503の複製データに対して上書きする。ステップ0808において、該アプリケーションが処理待機中ではない場合、処理待機中となるまで待機する。ステップ0808において、該アプリケーションが処理待機中である場合、ステップ0809において、ステップ0807にて更新したレプリカ複製データをレプリカデータ本体に対して上書きして更新する。その後、ステップ0804の処理に戻る。
図9は、本発明によるイベント駆動によるアプリケーションが使用するデータの重要度について説明する図である。本図ではいくつかの事例を挙げている。
主な構成要素は、データ種別の分類0901、種別による重要度0902、参照頻度に対する優先順位0903である。
データ種別の分類0901は、イベント駆動によるアプリケーションが使用するデータの重要度を決定するために用いる、データ種別の分類である。本図では4つの事例を挙げているが、これらの分類のうちの少なくとも1つを用いるものとする。具体的な事例は適用先システムにより異なり得る。種別による重要度0902は、データ種別の分類0901毎に重要度の高いデータ、重要度の低いデータの事例を挙げている。参照頻度に対する優先順位0903は、種別による重要度0902における各々の重要度の高いデータ、又は重要度の低いデータに対して、データの参照頻度に基づいて決定する優先順位の範囲を示す。これらの範囲はデータ毎に予め定義するものである。図9に示すデータの重要度の定義はデータサーバ0201に保持されている。
図10は、データサーバ0201が、本発明によるイベント駆動によるアプリケーションが使用するデータの優先順位を決定し、該優先順位に基づきデータを配置する処理の流れを示すフローチャートである。
ステップ1001において、イベント駆動によるアプリケーションが使用するデータに関して、データ毎の参照頻度を監視する。ステップ1002において、ステップ1001の参照頻度監視の結果と図9にて述べたデータの重要度0902から該データの優先順位0903を算出する。
ステップ1003において、該データの優先順位がこれまでの値から変更されている場合、ステップ1004において、図9及びステップ1002で算出した該データの優先順位0903に基づいて、該データの配置の変更を実施する。ここでは優先順位の高い順に、メモリ、ファイル、該データを保有する他ノードへのポインタ、さらにデータ削除、へと該データの配置の仕方が変更されていく。ステップ1003において、該データの優先順位がこれまでの値から変更されていない場合、ステップ1004の処理は実施しない。
ステップ1005において、イベント駆動によるアプリケーションが使用する全てのデータに対して終了した場合、ステップ1006において、所定の時間だけ待機した後、ステップ1001の処理に戻る。ステップ1005において、イベント駆動によるアプリケーションが使用する全てのデータに対して終了していない場合、ステップ1001からステップ1004までの処理を繰り返す。
0201 データサーバ
0202 アプリケーションノード
0203 データソースノード
0205 通信媒体
0401 データサーバのミドルウェア
0402 DB
0501 アプリケーションノードのミドルウェア
0502 アプリケーション
0503 レプリカ

Claims (8)

  1. ネットワークを介して相互接続した、複数の独立したノードにより構成され、個々にデータを管理し発信するデータソースとなる少なくとも1つのノードと、前記データソースからのデータを収集、管理する少なくとも1つのデータサーバと、前記データソースからのデータを活用する少なくとも1つのアプリケーションが稼動する少なくとも1つのノードとを含める、分散システムにおいて、
    前記データサーバと前記データソースからのデータを活用する少なくとも1つのアプリケーションが稼動する少なくとも1つのノードの間にて、前記データソースから収集したデータのレプリケーションを実施する場合、前記データソースとなる少なくとも1つのノードが発信するデータを、前記データサーバが収集し蓄積するステップと、
    各ノードでは少なくとも1つのアプリケーションに対して、各アプリケーションにて使用する少なくとも1つのデータに関するレプリカを配置し該データのレプリケーションを実施するステップと、
    前記アプリケーションが稼動する少なくとも1つのノードにおいて、周期駆動するアプリケーションの実行周期を取得するステップと、該実行周期に合わせて事前に該周期駆動するアプリケーションが使用する少なくとも1つのデータの更新の有無を判定し、次実行周期の開始までに該データのレプリカの更新を実施し完了させておくステップと、
    前記アプリケーションが稼動する少なくとも1つのノードにおいて、イベント駆動するアプリケーションが使用する少なくとも1つのデータに関して、該データのアプリケーションによる参照頻度を監視するステップと、前記参照頻度の監視結果と、該データの種別による重要度により優先順位を決定するステップと、前記決定した優先順位に従って前記イベント駆動によるアプリケーションが使用するレプリカのデータの配置を変更するステップと、を含み、
    少なくとも1つのアプリケーションが稼動するノードにおいて、少なくとも1つのアプリケーションに対して使用するデータのレプリカ用のデータ格納領域を個別に割当てる際に、
    少なくとも1つの周期駆動型アプリケーションが各々使用するデータのレプリカ用のデータ格納領域を優先的に割当て、
    少なくとも1つのイベント駆動型アプリケーションが各々使用するデータのレプリカ用のデータ格納領域は、前記周期駆動型アプリケーションが使用するデータのレプリカ用のデータ格納領域を割当て後の残りの領域を使用する
    ことを特徴とする、分散システムにおけるデータレプリケーション管理方法。
  2. 請求項1において、少なくとも1つのデータソースからのデータを収集し管理するデータサーバと、前記データソースからのデータを活用する少なくとも1つのアプリケーションが稼動する少なくとも1つのノードとの間で実施する前記データのレプリケーションは、前記データソースからのデータを前記データサーバが受信したタイミングで実行される、もしくは規定の周期で実行されることを特徴とする、分散システムにおけるデータレプリケーション管理方法。
  3. 請求項1において、少なくとも1つのアプリケーションが稼動するノードにおいて、周期駆動するアプリケーションの実行周期を取得する際に、
    ユーザによる事前登録情報を参照する、もしくは前記周期駆動するアプリケーションの動作を監視し算出することを特徴とする、分散システムにおけるデータレプリケーション管理方法。
  4. 請求項1または請求項3において、少なくとも1つのアプリケーションが稼動するノードで周期駆動するアプリケーションが使用するデータに関して、
    該周期駆動するアプリケーションの実行周期と連動して、データソースからのデータを収集して管理するデータサーバが、データソースとなるノードからのデータ受信等による該データの更新の有無を監視し、該データの更新を検出した場合は、
    該アプリケーションの現周期における処理終了の時点から次周期における処理が開始する時点までの期間に、該更新後のデータを前記アプリケーションが稼動するノードに送信してレプリカの更新を行って完了させておくことを特徴とする、分散システムにおけるデータレプリケーション管理方法。
  5. ネットワークを介して相互接続した、複数の独立したノードにより構成され、個々にデータを管理し発信するデータソースとなる少なくとも1つのノードと、前記データソースからのデータを収集、管理する少なくとも1つのデータサーバと、前記データソースからのデータを活用する少なくとも1つのアプリケーションが稼動する少なくとも1つのノードとを含める、分散システムにおいて、
    前記データサーバと前記データソースからのデータを活用する少なくとも1つのアプリケーションが稼動する少なくとも1つのノードの間にて、前記データソースから収集したデータのレプリケーションを実施する場合、前記データソースとなる少なくとも1つのノードが発信するデータを、前記データサーバが収集し蓄積するステップと、
    各ノードでは少なくとも1つのアプリケーションに対して、各アプリケーションにて使用する少なくとも1つのデータに関するレプリカを配置し該データのレプリケーションを実施するステップと、
    前記アプリケーションが稼動する少なくとも1つのノードにおいて、周期駆動するアプリケーションの実行周期を取得するステップと、該実行周期に合わせて事前に該周期駆動するアプリケーションが使用する少なくとも1つのデータの更新の有無を判定し、次実行周期の開始までに該データのレプリカの更新を実施し完了させておくステップと、
    前記アプリケーションが稼動する少なくとも1つのノードにおいて、イベント駆動するアプリケーションが使用する少なくとも1つのデータに関して、該データのアプリケーションによる参照頻度を監視するステップと、前記参照頻度の監視結果と、該データの種別による重要度により優先順位を決定するステップと、前記決定した優先順位に従って前記イベント駆動によるアプリケーションが使用するレプリカのデータの配置を変更するステップと、を含み、
    少なくとも1つのアプリケーションが稼動するノードで周期駆動するアプリケーションが使用するデータに関して、
    該周期駆動するアプリケーションの実行周期と連動して、データソースからのデータを収集して管理するデータサーバが、データソースとなるノードからのデータ受信等による該データの更新の有無を監視し、該データの更新を検出した場合は、
    該アプリケーションの現周期における処理終了の時点から次周期における処理が開始する時点までの期間に、該更新後のデータを前記アプリケーションが稼動するノードに送信してレプリカの更新を行って完了させておき、
    周期駆動するアプリケーションにおける各周期での処理終了の時点から次周期における処理開始の時点までの期間よりも、該周期駆動するアプリケーションが使用するデータに対する、データサーバにおける更新監視、アプリケーションが稼動するノードへの送信及びレプリカ更新の処理に要する時間が長い場合、
    該アプリケーションが稼動するノードは、該周期駆動するアプリケーションが使用するデータのレプリカの複製データを用意し、
    データサーバによってデータ更新が検出された該アプリケーションが稼動するノードへの該当データの送信及び更新処理を、該アプリケーションの各周期での処理と並行して、前記複製データに対して実行し、
    前記複製データへの更新処理完了後に、該アプリケーションが使用するレプリカに対する該アプリケーションの処理が実施されていない間に、前記複製データの内容との差替えを実施することを特徴とする、分散システムにおけるデータレプリケーション管理方法。
  6. 請求項1において、少なくとも1つのアプリケーションが稼動するノードでイベント駆動するアプリケーションが使用するデータに関して、
    該データの優先順位を決定するために重要度を参照する該データの種別として、データの用途、データ発生時のシステム状態、データを使用するアプリケーションの優先度、及びデータの鮮度、の少なくとも1つを用いることを特徴とする、分散システムにおけるデータレプリケーション管理方法。
  7. 請求項1において、少なくとも1つのアプリケーションが稼動するノードでイベント駆動するアプリケーションが使用するデータに関して、
    該データの種別による重要度の高いデータは、優先順位のより高い範囲内で、監視結果による該データの参照頻度の高さに応じて優先順位を決定し、
    該データの種別による重要度の低いデータは、優先順位のより低い範囲内で、監視結果による該データの参照頻度の高さに応じて優先順位を決定することを特徴とする、データ分散システムにおけるデータレプリケーション管理方法。
  8. 請求項1において、少なくとも1つのアプリケーションが稼動するノードでイベント駆動するアプリケーションが使用するデータに関して、
    該データの参照頻度の監視結果と、該データの種別による重要度により決定する優先順位とに従って、該データのレプリカの配置場所を、前記優先順位が高い順に、前記ノード内のメモリ、ファイル、該データを格納する他ノードを示すポインタ情報、さらに該データの削除、へと変更することを特徴とする、分散システムにおけるデータレプリケーション管理方法。
JP2010209653A 2010-09-17 2010-09-17 分散システムにおけるデータレプリケーション管理方法 Active JP5530878B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010209653A JP5530878B2 (ja) 2010-09-17 2010-09-17 分散システムにおけるデータレプリケーション管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010209653A JP5530878B2 (ja) 2010-09-17 2010-09-17 分散システムにおけるデータレプリケーション管理方法

Publications (2)

Publication Number Publication Date
JP2012064130A JP2012064130A (ja) 2012-03-29
JP5530878B2 true JP5530878B2 (ja) 2014-06-25

Family

ID=46059746

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010209653A Active JP5530878B2 (ja) 2010-09-17 2010-09-17 分散システムにおけるデータレプリケーション管理方法

Country Status (1)

Country Link
JP (1) JP5530878B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109189664B (zh) * 2018-07-24 2022-08-02 网宿科技股份有限公司 应用程序的信息采集方法及终端
CN114629806B (zh) * 2022-04-13 2023-12-12 腾讯科技(成都)有限公司 数据处理方法、装置、电子设备、存储介质及程序产品

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0944381A (ja) * 1995-07-31 1997-02-14 Toshiba Corp データ格納方法およびデータ格納装置
JPH1185604A (ja) * 1997-09-12 1999-03-30 Nippon Telegr & Teleph Corp <Ntt> コンテンツ配置変更方法及びシステム及びコンテンツ配置変更プログラムを格納した記憶媒体
JP2001069169A (ja) * 1999-08-27 2001-03-16 Nippon Telegr & Teleph Corp <Ntt> サーバ配置制御装置
US20050289152A1 (en) * 2004-06-10 2005-12-29 Earl William J Method and apparatus for implementing a file system
US7165158B1 (en) * 2005-08-17 2007-01-16 Hitachi, Ltd. System and method for migrating a replication system
JP4498262B2 (ja) * 2005-11-08 2010-07-07 株式会社日立製作所 分散システムにおける情報共有方法
JP2009209653A (ja) * 2008-03-06 2009-09-17 Aisin Seiki Co Ltd 車両用中折れ式ドアのロック装置
JP5079561B2 (ja) * 2008-03-21 2012-11-21 株式会社野村総合研究所 データベースシステム及びデータベースシステムにおけるレプリカデータの更新方法

Also Published As

Publication number Publication date
JP2012064130A (ja) 2012-03-29

Similar Documents

Publication Publication Date Title
US20160275123A1 (en) Pipeline execution of multiple map-reduce jobs
US20190116110A1 (en) Location Based Test Agent Deployment In Virtual Processing Environments
US8739169B2 (en) Method for monitoring operating experiences of images to improve workload optimization in cloud computing environments
CN109936473B (zh) 基于深度学习预测的分布计算***及其运行方法
CN109150987B (zh) 基于主机层和容器层的两层式容器集群弹性扩容方法
CN109992373B (zh) 资源调度方法、信息管理方法和装置及任务部署***
CN111177160B (zh) 服务更新方法、装置、服务器及介质
CN108304296A (zh) 一种服务器监控方法、***、设备及计算机可读存储介质
CN114531373A (zh) 节点状态检测方法、节点状态检测装置、设备及介质
CN106462459A (zh) 为分布式处理***管理元数据
CN109302324A (zh) 一种私有云监控预警方法及***
CN115617527A (zh) 线程池的管理方法、配置方法、管理装置和配置装置
CN103186536A (zh) 一种调度数据共享装置的方法及***
CN109614241B (zh) 基于Yarn队列实现多集群多租户资源隔离的方法及***
CN202872848U (zh) 一种基于云信息云计算服务的云存储终端设备
JP5530878B2 (ja) 分散システムにおけるデータレプリケーション管理方法
CN104951855A (zh) 用于促进对资源的管理的装置和方法
US8788601B2 (en) Rapid notification system
JP6279816B2 (ja) ストレージ監視システムおよびその監視方法
CN110247937B (zh) 弹性存储***共享文件管理、访问方法及相关设备
CN104468674B (zh) 数据迁移方法及装置
JP5632403B2 (ja) タスク管理システム、タスク管理サーバ、タスク管理方法、及びタスク管理プログラム
US20120173733A1 (en) Flexible Delegation of Management Function For Self-Managing Resources
CN111045778B (zh) 一种虚拟机的创建方法、装置、服务器及存储介质
CN114090201A (zh) 资源调度方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140121

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140317

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140408

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140421

R150 Certificate of patent or registration of utility model

Ref document number: 5530878

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150