トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 分散型計算機システムにおける重複配置複製データの複製方式
【発明者】 【氏名】二瓶 展之

【氏名】中田 祐司

【氏名】廣田 敦彦

【氏名】古山 良一

【氏名】小笠原 史久

【氏名】久世 泰人

【氏名】鈴木 英之

【氏名】清島 義雄

【氏名】有本 雅昭

【氏名】鈴木 立夫

【要約】 【課題】外部識別子と内部識別子との関係を各計算機間で送受信しなくても各計算機に配置された複製データを一致化させること。

【解決手段】計算機間で共通の外部識別子に、外部識別子固有の連番とデータ値を付加したマスタデータ104を送信データ107としてマスタ配置計算機101からレプリカ配置計算機103に送信し、レプリカ配置計算機103が、送信データ107を1回目に受信したときには、送信データ107に含まれる外部識別子を識別子変換処理機構111を用いて内部識別子に変換し、この内部識別子を連番の値に対応づけて連番並びの対応表110に格納し、同じ連番を含む送信データ107を再度受信したときには、連番に対応した内部識別子を連番並びの対応表110から取り出し、この内部識別子に対応したデータ格納エリアのデータ値を送信データに含まれるデータ値で更新する。
【特許請求の範囲】
【請求項1】 複数の計算機をネットワークを介して互いに接続し、各計算機間で情報の授受を行う分散型計算機システムにおいて、前記複数の計算機間で共通の外部識別子に外部識別子固有の連番とデータ値を付加した複製元データを生成して送信データとしてネットワークに送出する送信側計算機と、前記送信データを前記ネットワークを介して受信して複製データとして格納する受信側計算機とを備え、前記受信側計算機は、前記外部識別子固有の連番とこの連番に対応したデータの物理的格納位置を示す内部識別子を格納する連番並びの対応表と、前記送信データの受信時に、前記送信データに含まれる連番に対応した内部識別子を前記連番並びの対応表から抽出し、この内部識別子に対応したデータ格納エリアのデータ値を前記送信データに含まれるデータ値で更新することを特徴とする分散型計算機システムにおける重複配置複製データの複製方式。
【請求項2】 複数の計算機をネットワークを介して互いに接続し、各計算機間で情報の授受を行う分散型計算機システムにおいて、前記複数の計算機間で共通の外部識別子に外部識別子固有の連番とデータ値を付加した複製元データを生成して送信データとしてネットワークに送出する送信側計算機と、前記送信データを前記ネットワークを介して受信して複製データとして格納する受信側計算機とを備え、前記受信側計算機は、前記外部識別子固有の連番とこの連番に対応したデータの物理的格納位置を示す内部識別子を格納する連番並びの対応表と、前記送信データの受信時に、前記送信データに含まれる連番に対応した内部識別子が前記連番並びの対応表に格納されていないことを条件に前記送信データに含まれる外部識別子を識別子変換処理機構を用いて内部識別子に変換し、この内部識別子を前記送信データに含まれる連番に対応づけて前記連番並びの対応表に格納するとともに、この内部識別子に対応したデータ格納エリアに前記送信データに含まれるデータ値を格納し、前記送信データに含まれる連番に対応した内部識別子が前記連番並びの対応表に格納されていることを条件に前記送信データに含まれる連番に対応した内部識別子を前記連番並びの対応表から抽出し、この内部識別子に対応したデータ格納エリアのデータ値を前記送信データに含まれるデータ値で更新することを特徴とする分散型計算機システムにおける重複配置複製データの複製方式。
【請求項3】 前記送信側計算機は、前記送信データにデータのバージョン情報を付加して送信してなり、前記受信側計算機は、前記送信側計算機からの送信データの受信時に前記送信データに含まれるデータのバージョン情報と前記送信データの受信より前に前記送信側計算機で生成された複製元データに関するバージョン情報とを比較して両者の内容が異なりバージョンが変更されたと判定したときに前記連番並びの対応表を初期化する初期化手段を備えてなることを特徴とする請求項1または2に記載の分散型計算機システムにおける重複配置複製データの複製方式。
【請求項4】 前記送信側計算機は、前記送信データにデータのバージョン情報を付加して送信してなり、前記受信側計算機は、前記送信側計算機からの送信データの受信時に前記送信データに含まれるデータのバージョン情報と前記送信データの受信より前に前記送信側計算機で生成された複製元データに関するバージョン情報とを比較して両者の内容が異なりバージョンが変更されたと判定したときに、バージョン変更時であっても、旧バージョンの内部識別子と新バージョンの内部識別子との対応関係が明示的である場合には、前記対応関係に従って新たに連番並びの対応表を作成する対応表作成手段を備えてなることを特徴とする請求項1または2に記載の分散型計算機システムにおける重複配置複製データの複製方式。
【請求項5】 分散型計算機システムに用いられる計算機共通の外部識別子に外部識別子固有の連番とデータ値を付加した複製元データを生成して送信データとして送信する送信側計算機と、前記送信データを受信して複製データとして格納するとともに前記外部識別子固有の連番とこの連番に対応したデータの物理的格納位置を示す内部識別子を格納する連番並びの対応表を有する受信側計算機とをネットワークを介して接続し、前記送信側計算機と前記受信側計算機との間で情報の授受を行うに際して、前記受信側計算機は、前記送信データの受信時に、前記送信データに含まれる連番に対応した内部識別子を前記連番並びの対応表から抽出し、この内部識別子に対応したデータ格納エリアのデータ値を前記送信データに含まれるデータ値で更新することを特徴とする分散型計算機システムにおける複製データ一致化方法。
【請求項6】 分散型計算機システムに用いられる計算機共通の外部識別子に外部識別子固有の連番とデータ値を付加した複製元データを生成して送信データとして送信する送信側計算機と、前記送信データを受信して複製データとして格納するとともに前記外部識別子固有の連番とこの連番に対応したデータの物理的格納位置を示す内部識別子を格納する連番並びの対応表を有する受信側計算機とをネットワークを介して接続し、前記送信側計算機と前記受信側計算機との間で情報の授受を行うに際して、前記受信側計算機は、前記送信データの受信時に、前記送信データに含まれる連番に対応した内部識別子が前記連番並びの対応表に格納されていないことを条件に前記送信データに含まれる外部識別子を識別子変換処理機構を用いて内部識別子に変換し、この内部識別子を前記送信データに含まれる連番に対応づけて前記連番並びの対応表に格納するとともに、この内部識別子に対応したデータ格納エリアに前記送信データに含まれるデータ値を格納し、前記送信データに含まれる連番に対応した内部識別子が前記連番並びの対応表に格納されていることを条件に前記送信データに含まれる連番に対応した内部識別子を前記連番並びの対応表から抽出し、この内部識別子に対応したデータ格納エリアのデータ値を前記送信データに含まれるデータ値で更新することを特徴とする分散型計算機システムにおける複製データ一致化方法。
【請求項7】 前記送信側計算機は、前記送信データにデータのバージョン情報を付加して送信し、前記受信側計算機は、前記送信側計算機からの送信データの受信時に前記送信データに含まれるデータのバージョン情報と前記送信データの受信より前に前記送信側計算機で生成された複製元データに関するバージョン情報とを比較して両者の内容が異なりバージョンが変更されたと判定したときに前記連番並びの対応表を初期化することを特徴とする請求項5または6に記載の分散型計算機システムにおける複製データ一致化方法。
【請求項8】 前記送信側計算機は、前記送信データにデータのバージョン情報を付加して送信し、前記受信側計算機は、前記送信側計算機からの送信データの受信時に前記送信データに含まれるデータのバージョン情報と前記送信データの受信より前に前記送信側計算機で生成された複製元データに関するバージョン情報とを比較して両者の内容が異なりバージョンが変更されたと判定したときに、バージョン変更時であっても、旧バージョンの内部識別子と新バージョンの内部識別子との対応関係が明示的である場合には、前記対応関係に従って新たに連番並びの対応表を作成することを特徴とする請求項5または6に記載の分散型計算機システムにおける複製データ一致化方法。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は、分散型計算機システムに係り、特に、分散して配置された複数の計算機をネットワークを介して互いに接続し、各計算機間で情報の授受を行なうに際して、各計算機に重複して配置された複製データを計算機間で一致させるに好適な分散型計算機システムに関する。
【0002】
【従来の技術】分散配置された複数の計算機がネットワークを介して互いに接続された分散型計算機システムにおいては、システムの特性に応じたプログラムを各計算機に分散して配置したり、あるいはプログラムが必要とするデータを各計算機に分散して配置する構成が採用されている。この場合、プログラムと、このプログラムが必要とするデータが配置される計算機が常に同じ計算機であるとは限らない。例えば、計算機として、情報入力を司る入力計算機と、入力計算機に関する情報を表示する表示計算機とからなる分散型計算機システムの場合、入力計算機に入力されたデータは、入力計算機に配置された入力処理プログラムにより、入力計算機上のデータとして更新されるが、このデータを表示する表示処理プログラムは表示計算機に配置されるといったケースが一般的である。このように、プログラムと、このプログラムが必要とすデータは、必ずしも同一の計算機に配置されるわけではなく、別の計算機に配置されることもある。このような場合、ある計算機に配置されたプログラムはネットワークを介したリモート処理によって、他の計算機に配置されているデータをアクセスすることができる。
【0003】一方、1つの入力計算機に複数の表示用計算機が接続され、入力計算機上でデータが頻繁に更新されるようなシステムにおいては、システムの処理性や応答性を向上させる目的で、入力計算機上のデータを必要とするプログラムが配置されている他の計算機上にもデータを重複させて配置し、入力計算機上のデータが更新されたときに、データが更新されるごとあるいは一定の周期で、更新されたデータの内容を、他の計算機上に重複して配置された複製データに一致化(レプリケーション)する方式が採用されている。複数の計算機間で複製データの一致化処理を行なうと、プログラムがデータをアクセスする都度発生したり、ネットワークを介したリモート処理によって発生したりするネットワーク上のデータ伝送時間やネットワーク通信手続きを低減できるというメリットがある。
【0004】計算機システムにおけるプログラムからのデータアクセスは、データを特定する識別子を用いて行なわれることが一般的である。
【0005】ここで、識別子とは、名称など、人間が認識し易く、分散型計算機システムの各計算機間で共通な識別子である外部識別子を指す。一方、データベースなどに格納されたデータを識別するためのもう1つの識別子として、ある計算機におけるデータの物理的格納位置情報を示す内部識別子(アドレス)がある。この内部識別子は、データ管理機能の中に隠蔽され、プログラムは直接使用しないことが一般的である。
【0006】プログラムからのデータアクセスは、プログラムから指定された外部識別子を内部識別子に変換する機能を有する識別子変換処理機構によって、プログラムで指定され外部識別子を内部識別子に変換し、変換された内部識別子にしたがってデータアクセスが実施される。このように、プログラムからのデータアクセスは、その過程において、識別子変換処理機構による外部識別子から内部識別子への変換にオーバーヘッドがかかる。このため、特に、高速なデータアクセスを必要とす場合は、予め、何らかの手段によって、外部識別子に対応する内部識別子を求めておき、プログラムからのデータアクセス時に、直接、内部識別子を用いてデータアクセスをすることも一般的である。
【0007】例えば、同一の外部識別子のデータに何度もアクセスする場合、最初のデータアクセスの際には、プログラムにしたがって外部識別子でアクセスするが、その際にデータ管理機構によって変換された内部識別子を得ることで、次のアクセスからは、内部識別子を用いてアクセスすることもできる。
【0008】このような、データアクセスの方法は、分散型計算機システムにおいて、重複して配置した複製データの一致化においても同様であり、データを一致化する頻度が低い場合には、外部識別子を用いてデータの一致化を行なっても時間的性能上の問題は生じない。しかし、データを一致化する頻度が高い場合は、内部識別子を用いてデータの一致化を行なわないと、性能的に問題となることがある。
【0009】特に、内部識別子のデータ形式や値は、データ管理機能によって決定されるため、データ管理機構の違いや、データの構造、データの配置方法によっては計算機間で内部識別子が異なっている可能性がある。
【0010】また、データのバージョンが変った際には、内部識別子の値も変更されることが一般的である。このため、計算機間に重複して配置された複製データを一致化するに際して、内部識別子を用いて行なわなければ性能的に問題となる場合には、分散型計算機システム内の各計算機における内部識別子の値や形が統一されていることが条件になり、分散型計算機システム内の各計算機のデータ管理機構が同一であることと、それぞれの計算機におけるデータのバージョンが統一されていることが必要になる。このことは、データバージョン変更も各計算機で一斉に実施しなくてはならないことを意味する。なお、この種の技術に関連するものとしては、例えば、特開平7−334209号公報が挙げられる。
【0011】
【発明が解決しようとする課題】従来の分散型計算機システムにおいては、処理時間の短縮を図るとともに、各計算機に重複して配置された複製データを一致化するために、複製元データを有する計算機(送信側計算機)から、複製データを有する計算機(受信側計算機)に対して、データの一致化を行なうために送信する送信データとして、内部識別子とデータ値とを組にしたものを用いる構成が採用されている。この場合、送信データを受信した計算機(受信側計算機)上のプログラムは送信データ内の内部識別子を用いてデータベースをアクセスし、データベースのデータを、送信されたデータ値で更新するようになっている。このような形態でデータの一致化処理が行なえるためには、送信側計算機と受信側計算機において、外部識別子と内部識別子との対応が同一であることが条件となる。
【0012】しかし、内部識別子の値やデータ型は、各計算機が有しているデータ管理機構に依存し、計算機ごとに異なっているのが一般的である。
【0013】したがって、データのバージョンやデータ管理機構が計算機ごとで異なる場合など、内部識別子の値やデータ型が異なる計算機間で、各計算機に重複して配置された複製データの一致化を内部識別子にしたがって行なおうとすると、送信側計算機において複製データを一致化するための送信データを作成する際に、受信側計算機のデータ構造やデータベースのバージョンに依存する内部識別子を知っておく必要がある。これを行なうためには、受信側計算機の外部識別子と内部識別子との対応表を送信側計算機に事前に送付することが余儀なくされる。
【0014】しかも、内部識別子はデータのバージョンが変更されるとその値も変るため、受信側計算機の外部識別子と内部識別子との対応表は、データのバージョンが変るたびに送信側計算機に送信しなくてはならず、そのデータ量は、データベースに保持するデータレコード数に依存するが、たいていの場合は、非常に大きなデータ量となる。そのため、このような送信は、データのバージョンを切替る際に実施することが一般的であり、このため、送信用計算機と受信側計算機のデータのバージョンは同時に切替る必要がある。しかし、送信用計算機と受信側計算機においてデータのバージョンを同時に切替ることは、分散型計算機システムの構成や運用上の非常に大きな制約となる。
【0015】なお、各計算機に重複して配置された複製データの一致化を行なうに際して、その送信データとして、内部識別子を用いずに外部識別子を用いる方法もある。しかし、この方法では、データ一致化処理を実行毎に、外部識別子を内部識別子に変換する処理を実施しなければならず、計算機システムの性能上の問題が生じる。
【0016】本発明の目的は、外部識別子と内部識別子との関係を送信側計算機と受信側計算機との間で送受信しなくても各計算機に配置された複製データを一致化させることができる分散型計算機システムにおける重複配置複製データの複製方式とこのシステムにおける複製データ一致化方法を提供することにある。
【0017】
【課題を解決するための手段】前記目的を達成するために、本発明は、複数の計算機をネットワークを介して互いに接続し、各計算機間で情報の授受を行う分散型計算機システムにおいて、前記複数の計算機間で共通の外部識別子に外部識別子固有の連番とデータ値を付加した複製元データを生成して送信データとしてネットワークに送出する送信側計算機と、前記送信データを前記ネットワークを介して受信して複製データとして格納する受信側計算機とを備え、前記受信側計算機は、前記外部識別子固有の連番とこの連番に対応したデータの物理的格納位置を示す内部識別子を格納する連番並びの対応表と、前記送信データの受信時に、前記送信データに含まれる連番に対応した内部識別子を前記連番並びの対応表から抽出し、この内部識別子に対応したデータ格納エリアのデータ値を前記送信データに含まれるデータ値で更新することを特徴とする分散型計算機システムにおける重複配置複製データの複製方式を構成したものである。
【0018】前記分散型計算機システムにおける重複配置複製データの複製方式を構成するに際しては、前記受信側計算機の識別子変換処理機構として、前記送信データの受信時に、前記送信データに含まれる連番に対応した内部識別子が前記連番並びの対応表に格納されていないことを条件に前記送信データに含まれる外部識別子を識別子変換処理機構を用いて内部識別子に変換し、この内部識別子を前記送信データに含まれる連番に対応づけて前記連番並びの対応表に格納するとともに、この内部識別子に対応したデータ格納エリアに前記送信データに含まれるデータ値を格納し、前記送信データに含まれる連番に対応した内部識別子が前記連番並びの対応表に格納されていることを条件に前記送信データに含まれる連番に対応した内部識別子を前記連番並びの対応表から抽出し、この内部識別子に対応したデータ格納エリアのデータ値を前記送信データに含まれるデータ値で更新する機能を有するものを用いることができる。
【0019】前記各分散型計算機システムにおける重複配置複製データの複製方式を構成するに際しては、以下の要素を付加することができる。
【0020】(1)前記送信側計算機は、前記送信データにデータのバージョン情報を付加して送信してなり、前記受信側計算機は、前記送信側計算機からの送信データの受信時に前記送信データに含まれるデータのバージョン情報と前記送信データの受信より前に前記送信側計算機で生成された複製元データに関するバージョン情報とを比較して両者の内容が異なりバージョンが変更されたと判定したときに前記連番並びの対応表を初期化する初期化手段を備えてなる。
【0021】(2)前記送信側計算機は、前記送信データにデータのバージョン情報を付加して送信してなり、前記受信側計算機は、前記送信側計算機からの送信データの受信時に前記送信データに含まれるデータのバージョン情報と前記送信データの受信より前に前記送信側計算機で生成された複製元データに関するバージョン情報とを比較して両者の内容が異なりバージョンが変更されたと判定したときに、バージョン変更時であっても、旧バージョンの内部識別子と新バージョンの内部識別子との対応関係が明示的である場合には、前記対応関係に従って新たに連番並びの対応表を作成する対応表作成手段を備えてなる。
【0022】また、本発明は、分散型計算機システムに用いられる計算機共通の外部識別子に外部識別子固有の連番とデータ値を付加した複製元データを生成して送信データとして送信する送信側計算機と、前記送信データを受信して複製データとして格納するとともに前記外部識別子固有の連番とこの連番に対応したデータの物理的格納位置を示す内部識別子を格納する連番並びの対応表を有する受信側計算機とをネットワークを介して接続し、前記送信側計算機と前記受信側計算機との間で情報の授受を行うに際して、前記受信側計算機は、前記送信データの受信時に、前記送信データに含まれる連番に対応した内部識別子を前記連番並びの対応表から抽出し、この内部識別子に対応したデータ格納エリアのデータ値を前記送信データに含まれるデータ値で更新することを特徴とする分散型計算機システムにおける複製データ一致化方法を採用したものである。
【0023】前記複製データ一致化方法を採用するに際しては、前記受信側計算機として、前記送信データの受信時に、前記送信データに含まれる連番に対応した内部識別子が前記連番並びの対応表に格納されていないことを条件に前記送信データに含まれる外部識別子を内部識別子に変換し、この内部識別子を前記送信データに含まれる連番に対応づけて前記連番並びの対応表に格納するとともに、この内部識別子に対応したデータ格納エリアに前記送信データに含まれるデータ値を格納し、前記送信データに含まれる連番に対応した内部識別子が前記連番並びの対応表に格納されていることを条件に前記送信データに含まれる連番に対応した内部識別子を前記連番並びの対応表から抽出し、この内部識別子に対応したデータ格納エリアのデータ値を前記送信データに含まれるデータ値で更新する機能を有するものを用いることができる。
【0024】前記複製データ一致化方法を採用するに際しては、以下の要素を付加することができる。
【0025】(1)前記送信側計算機は、前記送信データにデータのバージョン情報を付加して送信し、前記受信側計算機は、前記送信側計算機からの送信データの受信時に前記送信データに含まれるデータのバージョン情報と前記送信データの受信より前に前記送信側計算機で生成された複製元データに関するバージョン情報とを比較して両者の内容が異なりバージョンが変更されたと判定したときに前記連番並びの対応表を初期化する。
【0026】(2)前記送信側計算機は、前記送信データにデータのバージョン情報を付加して送信し、前記受信側計算機は、前記送信側計算機からの送信データの受信時に前記送信データに含まれるデータのバージョン情報と前記送信データの受信より前に前記送信側計算機で生成された複製元データに関するバージョン情報とを比較して両者の内容が異なりバージョンが変更されたと判定したときに、バージョン変更時であっても、旧バージョンの内部識別子と新バージョンの内部識別子との対応関係が明示的である場合には、前記対応関係に従って新たに連番並びの対応表を作成する。
【0027】前記した手段によれば、送信側計算機が付与する外部識別子固有の連番は、受信側計算機のデータ構造やデータ保存状態に依存せずに作成できるため、送信側計算機で受信側計算機とは独立に送信データを作成することは可能になる。すなわち、連番は、外部識別子ごとにユニークで、かつ外部識別子に対してデータのバージョンごとに一意となる。例えば、1から連続する自然数のような連続した番号で作成されるため、受信側計算機のデータ構造やデータ捕集状態に依存せずに作成することができる。また受信側計算機においては、データのバージョン情報が同一であるため、送信データに含まれる外部識別子を内部識別子に一度変換処理するだけで、二度目以降は、連番に対応した内部識別子を用いて受信側計算機のデータ値を更新することができ、各計算機に重複して配置され複製データの一致化を高速に行なうことが可能になる。
【0028】
【発明の実施の形態】以下、本発明の一実施形態を図面に基づいて説明する。図1は本発明の一実施形態を示す分散型計算機システムの全体構成図である。図1において、分散型計算機システムは、入力計算機のような複製元データを有する送信側計算機(以下、マスタ配置計算機と呼ぶ。)101と、表示計算機のような複製データを有する受信側計算機(以下、レプリカ配置計算機と呼ぶ。)103群を備え、マスタ配置計算機101と各レプリカ配置計算機103はネットワーク105を介して互いに接続され、各計算機間で情報の授受が行なわれるとともに、各計算機上に複製データが重複して配置されるようになっている。
【0029】マスタ配置計算機101は、複製元のデータである複製元データ(以下、マスタデータと呼ぶ。)102を生成し、生成したマスタデータ102を送信データ107としてネットワークを105に送出する送信側計算機として構成されている。具体的には、マスタ配置計算機101は、マスタデータ102を格納するデータベース102aを備えているとともに、マスタデータ102を基に送信データ107を生成する送信側一致化処理機構106を備えて構成されている。
【0030】レプリカ配置計算機103群は、#1〜#nのレプリカ配置計算機103から構成されており、各レプリカ配置計算機103は、送信データ107を処理する受信側一致化処理機構109、各レプリカ配置計算機103に重複して配置された複製データ(以下、レプリカデータと呼ぶ。)104を格納するデータベース104aを備えて構成されている。なお、レプリカ配置計算機103は、1台であっても複数台であっても構わない。またマスタ配置計算機101も、元データが異なる場合には複数台となっても本発明に何ら影響を及ぼさない。ただし、本実施形態では、マスタ配置計算機101が1台であるものとして説明する。
【0031】マスタ配置計算機101は、マスタデータ102を基に送信データ107を送信するに際しては、マスタ配置計算機101・レプリカ配置計算機103間で共通の外部識別子に、外部識別子固有の連番とデータ値を付加したマスタデータ102を生成し、生成したマスタデータ102を送信データ107に変換するとともに、#1〜#nの送信データ107にデータのバージョン情報301を付加した送信パケット108を生成し、この送信パケット108を、ネットワーク105を介して各レプリカ配置計算機103に送信するようになっている。
【0032】このとき、送信側一致化処理機構106は、マスタデータ102上のデータの外部識別子ごとに、連番と呼ぶ外部識別子ごとにユニーク(1対1の関係)で、1から始まる自然数で、かつデータのバージョンごとに一意となる番号を作成する。この番号は、例えば、マスタ配置計算機101上のデータの格納アドレスなどから簡単に求めることができる。
【0033】さらに、送信側一致化処理機構106は、レプリカデータ104を一致化するタイミングにおいて、マスタデータ102上で更新が発生したデータの外部識別子ごとに、外部識別子と、この外部識別子に対応した連番、データ値をまとめ、送信データ107を作成する。さらに、前回、一致化タイミング以降に行なわれた複数のマスタデータ102の更新に対応する送信データ107を求め、これらまとめた送信データ107群にデータのバージョン情報301を付加した送信パケット108を作成し、この送信パケット108を、ネットワーク105を介して、レプリカ配置計算機103群に送信する。
【0034】なお、本発明は、このときの送信方式として、同報送信方式とするかあるいは個別送信方式とするかについては独立であり、また異常時の処理方法および回復方法とは独立であるため、ここではその詳細については言及しない。
【0035】また、本実施形態では、マスタ配置計算機101から送信された送信データ107が各レプリカ配置計算機103に確実に届くことを前提としている。
【0036】一方、各レプリカ配置計算機103の受信側一致化処理機構109は、送信データ107に含まれる外部識別子を内部識別子に変換する識別子変換処理機構111と、連番とともにこの連番に対応したデータの物理的格納位置を示す内部識別子(アドレス)を格納する連番並びの対応表110を備えて構成されている。
【0037】識別子変換処理機構111は、送信パケット108の受信時(送信データ107の受信時)に、送信データ107に含まれる連番に対応した内部識別子が連番並びの対応表110に格納されていないことを条件に、送信データ107に含まれる外部識別子を内部識別子に変換し、この内部識別子を送信データ107に含まれる連番に対応づけて連番並びの対応表110に格納し、それ以外のとき、すなわち送信データ107に含まれる連番に対応した内部識別子が連番並びの対応表110に格納されていることを条件に、送信データ107に含まれる連番に対応した内部識別子を連番並びの対応表110から抽出し、この内部識別子に対応したデータ格納エリア(データベース104aのデータ格納エリア)に格納されているデータを、送信データ107に含まれるデータ値で更新するように構成されている。
【0038】さらに、受信側一致化処理機構109は、送信パケット108の受信時に、送信データ107に含まれるデータのバージョン情報301と送信データ107の受信より前にマスタ配置計算機101で生成された複製元データに関するバージョン情報とを比較し、両者の内容が異なりバージョンが変更されたと判定したときに、連番並びの対応表101の内容を初期化する初期化手段としての機能を備えて構成されている。さらに、受信側一致化処理機構109は、後述するように、送信パケット108の受信時に、送信データ107に含まれるデータのバージョン情報301と送信データ107の受信より前にマスタ配置計算機101で生成された複製元データに関するバージョン情報とを比較し、両者の内容が異なりバージョンが変更されたと判定したときに、バージョン変更時であっても、旧バージョンの内部識別子と新バージョンの内部識別子との対応関係が明示的である場合には、この対応関係にしたがって新たなに連番並びの対応表110を作成する対応表作成手段としての機能を備えて構成されている。
【0039】具体的には、受信側一致化処理機構109は、送信パケット108の受信時に、各送信データ107単位に、連番並びの対応表110を参照して、レプリカ配置計算機103上のレプリカデータ104を更新するようになっている。連番並びの対応表110は、マスタ配置計算機101で定めた連番の順番で並べられた連番と、この連番に対応し、レプリカ配置計算機103上のレプリカデータ104の内部識別子との対応関係と、マスタ計算機101上のマスタデータ102におけるデータのバージョン情報302を格納するためのテーブルとして構成されている。この連番並びの対応表110の内容は、一致化処理機構109によって、初期状態が作成されるとともに、データのバージョンが変更された場合にその内容がクリアされるようになっている。
【0040】また、識別子変換処理機構111は、全ての計算機において共通なデータ型と値を持つ外部識別子を各計算機内部のデータ構造やデータのバージョンに依存する内部識別子に変換するようになっている。これらは、所謂ファイル管理システムあるいはデータベース管理システムが有する外部識別子と内部識別子をハッシュ構造やB−Tree構造として格納したインデックステーブル(あるいはISAM構成ファイル)に該当する。
【0041】次に、マスタ配置計算機101上でマスタデータ102の更新があり、この更新により、全てのレプリカ配置計算機103のレプリカデータ104を一致化する際の処理手順を以下に説明する。
【0042】まず、図2を用いて、レプリカ配置計算機103上で、受信側一致化処理機構109がレプリカデータ104をマスタデータ102と一致化するための送信パケット108を受信した際の処理とデータの流れを説明する。
【0043】マスタ配置計算機101から送信された送信パケット108を受信側一致化処理機構109が受信すると、受信側一致化処理機構109は送信パケット108中の送信データ107を1つ取り出す。そして取り出したデータ中の連番203を用いて連番並びの対応表110を参照する。このとき、連番並びの対応表110上に連番203の値に対応する内部識別子が格納されていない場合、すなわち連番203を初めて受信したときには、送信データ107に含まれる外部識別子201を、識別子変換処理機構111を用いて内部識別子202に変換する。次に、連番並びの対応表110上の送信データ107中の連番203に対応する内部識別子の項目に、変換した内部識別子202の値を格納するとともに、格納した内部識別子を用いて、レプリカデータ104上の内部識別子202に対応するデータ値を、送信データ107中のデータ値205で更新する。すなわち、データベース104aのうち内部識別子203に対応したデータ格納エリアにデータ値205を格納する。
【0044】一方、送信データ107を受信したときに、この送信データ107に含まれる連番203の値に対応する内部識別子が連番並びの対応表110に格納されていた場合、すなわち、一度受信した連番203を持つ送信データ107を2回目以降受信したときには、外部識別子201から内部識別子202への変換を行なわずに、連番203の値に対応する内部識別子を連番並びの対応表110から抽出し、その内部識別子204を用いてレプリカデータ104上の内部識別子に対応するデータ値を、送信データ中のデータ値205で更新する。
【0045】このように、本実施形態においては、データのバージョンが変更されていない期間中において、初めて連番203を受信したときに、識別子変換処理機構111によって求めた内部識別子202を連番並びの対応表110上に格納しておくことにより、一度受信した連番203を2回目以降、再度受信した際には、再び、識別子変換処理機構111による識別子変換処理を行なう必要がなくなるため、レプリカデータ104を高速に更新することができる。
【0046】次に、データのバージョンが変った際の処理とデータの流れについて説明する。まず、図3を用いて、マスタ配置計算機101側のデータのバージョン(バージョン情報301)が変ったときの処理とデータの流れについて説明する。
【0047】レプリカ配置計算機103は、送信パケット108を受信したときに、マスタ配置計算機101上のデータのバージョン変更を検出するために、受信側一致化処理機構109に対してマスタ配置計算機101のデータのバージョン情報301を保持させる。受信側一致化処理機構109は、送信パケット108のデータのバージョン情報301とレプリカ配置計算機103上にあるマスタ配置計算機のデータのバージョン情報(送信パケット108の受信より前にマスタ配置計算機101で生成されたマスタデータに関するバージョン情報)302との比較処理303によって、マスタ配置計算機101のデータのバージョンが変更されたか否かを判定する。このとき、両者のバージョン情報の内容が異なりバージョン情報が不一致であると判定したときには、マスタ配置計算機101のデータのバージョンが変更されたと判定する。マスタ配置計算機101のデータのバージョンが変更された場合には、受信した連番306と外部識別子308との対応関係がデータのバージョン変更前と変化している可能性があるため、一旦、連番並びの対応表110の内容を初期化304し、受信側一致化処理機構109のマスタ配置計算機101におけるデータのバージョン情報302を更新する。連番並びの対応表110を初期化した場合、送信パケット108に含まれる送信データ107の連番306を、初めて受信した連番とみなす処理を行なう。すなわち、外部識別子308を、識別子変換処理機構111を用いて内部識別子307に変換する。このとき、バージョン変更に伴う処理としては、マスタ配置計算機101のデータの識別子によって3つの場合がある。
【0048】1つ目は、マスタ配置計算機101およびレプリカ配置計算機103の両方に存在する外部識別子を有するデータのバージョンが変更された場合である。この場合、バージョンの変更に伴って外部識別子に関連するデータの追加・削除がないため、識別子変換処理機構111を用いて外部識別子308を内部識別子307に変換し、この内部識別子307を、クリアされた連番並びの対応表110の連番306に対応した項に格納するとともに、格納した内部識別子307を用いてレプリカデータ104上の内部識別子307に対応するデータ値を、送信データ107中のデータ値309で更新する。
【0049】2つ目は、マスタ配置計算機101のデータのバージョン変更で新たに追加されたデータ、つまり、マスタ配置計算機101にのみ存在するがレプリカ配置計算機103上に存在しないデータが存在する場合である。この場合、マスタ配置計算機101から送信されたデータはレプリカ配置計算機103上には存在しないデータであるため、このデータは破棄する。そして、連番並びの対応表110上に、レプリカデータ104の更新を行なわないことを示す情報として、例えば、0などの何らかの値を内部識別子307の値として格納する。
【0050】3つ目は、マスタ配置計算機101のデータのバージョン変更に伴って削除されたデータ(外部識別子に関連するデータ)の場合である。この場合、削除されたデータはマスタ配置計算機101から送信されることはない。このため、バージョン変更に伴う処理がレプリカ配置計算機103によって実行されることはない。
【0051】次に、図4を用いて、レプリカ配置計算機103側のデータのバージョンが変ったときの処理とデータの流れについて説明する。レプリカ配置計算機103のデータのバージョンが変更になった場合には、レプリカ配置計算機103は連番並びの対応表110を初期化する。連番並びの対応表110が初期化された場合、送信データ107に含まれる連番402を初めて受信したときの処理が行なわれる。このときの処理として、次の3つの場合が存在する。
【0052】1つ目は、バージョン変更に伴うデータがマスタ配置計算機101とレプリカ配置計算機103の両方に存在する場合である。この場合、バージョンの変更の前後でデータ(外部識別子)に変更がないため、識別子変換処理機構111を用いて外部識別子404を内部識別子403に変換し、変換して得られた内部識別子403を連番並びの対応表110の連番402に対応した内部識別子の項に格納する。
【0053】2つ目は、レプリカ配置計算機103におけるデータのバージョンの変更時に、レプリカ配置計算機103上でデータが削除されているが、マスタ配置計算機101ではまだデータが存在する場合である。この場合、マスタ配置計算機101からレプリカ配置計算機103に対してデータ更新に伴う送信データ107が送信されてきても、レプリカ配置計算機103ではもはや不要なデータであるため、このデータはレプリカ配置計算機103によって破棄される。そして、レプリカ配置計算機103は、マスタ配置計算機101のデータのバージョンが変更されたときと同様に、連番並びの対応表110上に、レプリカデータ104の更新を行なわないことを示す情報として、0などの何らかの値を内部識別子403の値として格納する。
【0054】3つ目は、レプリカ配置計算機103におけるデータのバージョンの変更時に、レプリカ配置計算機103上に新たに追加されたデータが存在する場合である。この場合、このデータはマスタ配置計算機101上には存在しないデータであるため、このデータがマスタ配置計算機101からレプリカ配置計算機103に送信されることはない。
【0055】また、レプリカ配置計算機103のデータのバージョンが変更になった場合、連番並びの対応表110を更新する方法としては、次のような方法も考えられる。
【0056】すなわち、レプリカ配置計算機103において、バージョン変更前の内部識別子とバージョン変更後の内部識別子との対応関係が明示的である場合には、連番並びの対応表110の中に、レプリカ配置計算機103におけるデータのバージョン変更前の内部識別子(以下、単に前バージョン内部識別子と呼ぶ。)がすでに格納されている項は、前バージョン内部識別子とレプリカ配置計算機103のデータのバージョン変更後の内部識別子(以下、単に後バージョン内部識別子と呼ぶ。)との対応関係がわかっていることから、後バージョン内部識別子で置き換えることができる。このことは、レプリカ配置計算機103の連番並びの対応表110を、すでに内部識別子が決まっている連番全てについて一気に更新することができる。
【0057】一般的に、データのバージョン変更時においては、データ値を引き継ぐことが多く、しかも前バージョン内部識別子と後バージョン内部識別子との対応関係が明示的である場合が多いので、レプリカ配置計算機103の連番並びの対応表110のうち、すでに内部識別子が決まっている連番全てのついて一気に更新する方法を採用することができる。この方法を用いれば、連番並びの対応表110のうち、すでに作成され部分については識別子変換機構111を用いて外部識別子を内部識別子に変換することなく、新たな連番並びの対応表110を更新することができることから、レプリカ配置計算機103におけるデータのバージョン変更後のデータ一致化作業をより高速に行なうことができる。
【0058】ここで、「どのような状況」にあるときに、「前バージョン内部識別子と後バージョン内部識別子との対応関係が明示的である場合」となる具体例について説明する。
【0059】一般的にデータベースの更新が生じた場合、データベースの全てのデータ構造を更新することは稀であり、通常、新規にデータレコードとそれに対応した外部識別子を追加したり、不要になったデータレコードとそれに対応した外部識別子を削除することが多い。この場合、特に、データレコードの追加、つまり外部識別子の追加の場合には、これまでデータレコードに新たにデータレコードが追加されたことになるので、今までのデータの内部識別子には変化はなく、新たに追加されデータに関連する内部識別子が追加されるだけである。このとき、連番並びの対応表110の内容を全て初期化することは得策ではない。そこで、連番並びの対応表110の内容はそのままにし、追加した外部識別子に対応する連番を連番並びの対応表110に追加することにより、新たに連番並びの対応表110を作成する手間を省くことができる。
【0060】このように、前バージョン内部識別子と後バージョン内部識別子との対応関係が明示的である場合として、(1)データレコード追加に伴う外部識別子の追加(ただしデータを格納する最大数以内の追加の場合)
(2)データレコードの削除に伴う外部識別子の削除(ただし、削除した外部識別子と対応する連番は欠番とする場合)などが考えられる。
【0061】しかし、データ構造の大きな変化、例えば欠番とした連番をつめるなどの変化が生じた場合は、上記の方法では対応することができない。このような場合には、データバージョンに枝番を付加し、この枝番の変化をデータベースの構造の変化が少ない場合、例えば新規外部識別子の追加などの場合に行ない、データバージョン番号は、データベースが大きく変化した場合、例えば欠番の連番をつめるような場合に行なうと決めておき、受信したデータバージョン番号の変化の場合は、連番並びの対応表110の初期化を実行し、枝番の変化の場合は、連番並びの対応表110を初期化することなく使用するようにするなどの方法が考えられる。そしてこれらの方法を採用することにより、より高速にデータの一致化作業を行なうことができる。
【0062】前記実施形態においては、マスタ配置計算機101を1台を設けた場合について述べたが、図5に示すように、それぞれ別々のデータを管理する複数のマスタ配置計算機として、#1〜#nのマスタ配置計算機101を用いることもできる。この場合、各レプリカ配置計算機103には、マスタ配置計算機101の数に対応した連番並びの対応表110を設け、#1〜#nのマスタ配置計算機101からのデータをそれぞれ#1〜#nの連番並びの対応表110に格納する。
【0063】本実施形態においては、データ管理機構が異なる計算機構においても、各計算機に重複して配置された複製データを高速に一致化することができる。
【0064】また、前記実施形態においては、マスタ配置計算機101とレプリカ配置計算機103のデータのバージョンが混在している場合においても適応可能であり、各計算機に重複して配置された複製データの一致化処理を高速に実現することができるため、データのバージョンアップをそれぞれの計算機で独立に行なうことができる。
【0065】
【発明の効果】以上説明したように、本発明によれば、受信側計算機のデータ構造やデータ保存状態に依存せずに、送信側計算機で受信側計算機とは独立に送信データを作成することができるため、外部識別子と内部識別子との関係を送信側計算機と受信側計算機との間で送受信しなくても各計算機に配置された複製データを一致化させることができる。さらに、データのバージョン情報が同一であるときには、送信データに含まれる外部識別子を内部識別子に一度変換処理するだけで、二度以降は、連番に対応した内部識別子を用いて受信側計算機のデータ値を更新することができ、各計算機に重複して配置され複製データの一致化を高速に行なうことが可能になる。
【出願人】 【識別番号】000005108
【氏名又は名称】株式会社日立製作所
【識別番号】000213297
【氏名又は名称】中部電力株式会社
【識別番号】000003078
【氏名又は名称】株式会社東芝
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
【識別番号】000005234
【氏名又は名称】富士電機株式会社
【出願日】 平成12年10月25日(2000.10.25)
【代理人】 【識別番号】100066979
【弁理士】
【氏名又は名称】鵜沼 辰之
【公開番号】 特開2002−132563(P2002−132563A)
【公開日】 平成14年5月10日(2002.5.10)
【出願番号】 特願2000−326087(P2000−326087)