(57)【特許請求の範囲】
【請求項１】
複数の計算機をネットワークを介して互いに接続し、各計算機間で情報の授受を行う分散型計算機システムにおいて、
前記複数の計算機間で共通の外部識別子に外部識別子固有の連番とデータ値を付加した複製元データを生成して送信データとしてネットワークに送出する送信側計算機と、前記送信データを前記ネットワークを介して受信して複製データとして格納する受信側計算機とを備え、前記受信側計算機は、前記外部識別子固有の連番とこの連番に対応したデータの物理的格納位置を示す内部識別子を格納する連番並びの対応表と、前記送信データの受信時に、前記送信データに含まれる連番に対応した内部識別子を前記連番並びの対応表から抽出し、この内部識別子に対応したデータ格納エリアのデータ値を前記送信データに含まれるデータ値で更新することを特徴とする分散型計算機システムにおける重複配置複製データの複製方式。
【請求項２】
複数の計算機をネットワークを介して互いに接続し、各計算機間で情報の授受を行う分散型計算機システムにおいて、
前記複数の計算機間で共通の外部識別子に外部識別子固有の連番とデータ値を付加した複製元データを生成して送信データとしてネットワークに送出する送信側計算機と、前記送信データを前記ネットワークを介して受信して複製データとして格納する受信側計算機とを備え、前記受信側計算機は、前記外部識別子固有の連番とこの連番に対応したデータの物理的格納位置を示す内部識別子を格納する連番並びの対応表と、前記送信データの受信時に、前記送信データに含まれる連番に対応した内部識別子が前記連番並びの対応表に格納されていないことを条件に前記送信データに含まれる外部識別子を識別子変換処理機構を用いて内部識別子に変換し、この内部識別子を前記送信データに含まれる連番に対応づけて前記連番並びの対応表に格納するとともに、この内部識別子に対応したデータ格納エリアに前記送信データに含まれるデータ値を格納し、前記送信データに含まれる連番に対応した内部識別子が前記連番並びの対応表に格納されていることを条件に前記送信データに含まれる連番に対応した内部識別子を前記連番並びの対応表から抽出し、この内部識別子に対応したデータ格納エリアのデータ値を前記送信データに含まれるデータ値で更新することを特徴とする分散型計算機システムにおける重複配置複製データの複製方式。
【請求項３】
前記送信側計算機は、前記送信データにデータのバージョン情報を付加して送信してなり、前記受信側計算機は、前記送信側計算機からの送信データの受信時に前記送信データに含まれるデータのバージョン情報と前記送信データの受信より前に前記送信側計算機で生成された複製元データに関するバージョン情報とを比較して両者の内容が異なりバージョンが変更されたと判定したときに前記連番並びの対応表を初期化する初期化手段を備えてなることを特徴とする請求項１または２に記載の分散型計算機システムにおける重複配置複製データの複製方式。
【請求項４】
前記送信側計算機は、前記送信データにデータのバージョン情報を付加して送信してなり、前記受信側計算機は、前記送信側計算機からの送信データの受信時に前記送信データに含まれるデータのバージョン情報と前記送信データの受信より前に前記送信側計算機で生成された複製元データに関するバージョン情報とを比較して両者の内容が異なりバージョンが変更されたと判定したときに、バージョン変更時であっても、旧バージョンの内部識別子と新バージョンの内部識別子との対応関係が明示的である場合には、前記対応関係に従って新たに連番並びの対応表を作成する対応表作成手段を備えてなることを特徴とする請求項１または２に記載の分散型計算機システムにおける重複配置複製データの複製方式。
【請求項５】
分散型計算機システムに用いられる計算機共通の外部識別子に外部識別子固有の連番とデータ値を付加した複製元データを生成して送信データとして送信する送信側計算機と、前記送信データを受信して複製データとして格納するとともに前記外部識別子固有の連番とこの連番に対応したデータの物理的格納位置を示す内部識別子を格納する連番並びの対応表を有する受信側計算機とをネットワークを介して接続し、前記送信側計算機と前記受信側計算機との間で情報の授受を行うに際して、前記受信側計算機は、前記送信データの受信時に、前記送信データに含まれる連番に対応した内部識別子を前記連番並びの対応表から抽出し、この内部識別子に対応したデータ格納エリアのデータ値を前記送信データに含まれるデータ値で更新することを特徴とする分散型計算機システムにおける複製データ一致化方法。
【請求項６】
分散型計算機システムに用いられる計算機共通の外部識別子に外部識別子固有の連番とデータ値を付加した複製元データを生成して送信データとして送信する送信側計算機と、前記送信データを受信して複製データとして格納するとともに前記外部識別子固有の連番とこの連番に対応したデータの物理的格納位置を示す内部識別子を格納する連番並びの対応表を有する受信側計算機とをネットワークを介して接続し、前記送信側計算機と前記受信側計算機との間で情報の授受を行うに際して、前記受信側計算機は、前記送信データの受信時に、前記送信データに含まれる連番に対応した内部識別子が前記連番並びの対応表に格納されていないことを条件に前記送信データに含まれる外部識別子を識別子変換処理機構を用いて内部識別子に変換し、この内部識別子を前記送信データに含まれる連番に対応づけて前記連番並びの対応表に格納するとともに、この内部識別子に対応したデータ格納エリアに前記送信データに含まれるデータ値を格納し、前記送信データに含まれる連番に対応した内部識別子が前記連番並びの対応表に格納されていることを条件に前記送信データに含まれる連番に対応した内部識別子を前記連番並びの対応表から抽出し、この内部識別子に対応したデータ格納エリアのデータ値を前記送信データに含まれるデータ値で更新することを特徴とする分散型計算機システムにおける複製データ一致化方法。
【請求項７】
前記送信側計算機は、前記送信データにデータのバージョン情報を付加して送信し、前記受信側計算機は、前記送信側計算機からの送信データの受信時に前記送信データに含まれるデータのバージョン情報と前記送信データの受信より前に前記送信側計算機で生成された複製元データに関するバージョン情報とを比較して両者の内容が異なりバージョンが変更されたと判定したときに前記連番並びの対応表を初期化することを特徴とする請求項５または６に記載の分散型計算機システムにおける複製データ一致化方法。
【請求項８】
前記送信側計算機は、前記送信データにデータのバージョン情報を付加して送信し、前記受信側計算機は、前記送信側計算機からの送信データの受信時に前記送信データに含まれるデータのバージョン情報と前記送信データの受信より前に前記送信側計算機で生成された複製元データに関するバージョン情報とを比較して両者の内容が異なりバージョンが変更されたと判定したときに、バージョン変更時であっても、旧バージョンの内部識別子と新バージョンの内部識別子との対応関係が明示的である場合には、前記対応関係に従って新たに連番並びの対応表を作成することを特徴とする請求項５または６に記載の分散型計算機システムにおける複製データ一致化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、分散型計算機システムに係り、特に、分散して配置された複数の計算機をネットワークを介して互いに接続し、各計算機間で情報の授受を行なうに際して、各計算機に重複して配置された複製データを計算機間で一致させるに好適な分散型計算機システムに関する。
【０００２】
【従来の技術】
分散配置された複数の計算機がネットワークを介して互いに接続された分散型計算機システムにおいては、システムの特性に応じたプログラムを各計算機に分散して配置したり、あるいはプログラムが必要とするデータを各計算機に分散して配置する構成が採用されている。この場合、プログラムと、このプログラムが必要とするデータが配置される計算機が常に同じ計算機であるとは限らない。例えば、計算機として、情報入力を司る入力計算機と、入力計算機に関する情報を表示する表示計算機とからなる分散型計算機システムの場合、入力計算機に入力されたデータは、入力計算機に配置された入力処理プログラムにより、入力計算機上のデータとして更新されるが、このデータを表示する表示処理プログラムは表示計算機に配置されるといったケースが一般的である。このように、プログラムと、このプログラムが必要とすデータは、必ずしも同一の計算機に配置されるわけではなく、別の計算機に配置されることもある。このような場合、ある計算機に配置されたプログラムはネットワークを介したリモート処理によって、他の計算機に配置されているデータをアクセスすることができる。
【０００３】
一方、１つの入力計算機に複数の表示用計算機が接続され、入力計算機上でデータが頻繁に更新されるようなシステムにおいては、システムの処理性や応答性を向上させる目的で、入力計算機上のデータを必要とするプログラムが配置されている他の計算機上にもデータを重複させて配置し、入力計算機上のデータが更新されたときに、データが更新されるごとあるいは一定の周期で、更新されたデータの内容を、他の計算機上に重複して配置された複製データに一致化（レプリケーション）する方式が採用されている。複数の計算機間で複製データの一致化処理を行なうと、プログラムがデータをアクセスする都度発生したり、ネットワークを介したリモート処理によって発生したりするネットワーク上のデータ伝送時間やネットワーク通信手続きを低減できるというメリットがある。
【０００４】
計算機システムにおけるプログラムからのデータアクセスは、データを特定する識別子を用いて行なわれることが一般的である。
【０００５】
ここで、識別子とは、名称など、人間が認識し易く、分散型計算機システムの各計算機間で共通な識別子である外部識別子を指す。一方、データベースなどに格納されたデータを識別するためのもう１つの識別子として、ある計算機におけるデータの物理的格納位置情報を示す内部識別子（アドレス）がある。この内部識別子は、データ管理機能の中に隠蔽され、プログラムは直接使用しないことが一般的である。
【０００６】
プログラムからのデータアクセスは、プログラムから指定された外部識別子を内部識別子に変換する機能を有する識別子変換処理機構によって、プログラムで指定され外部識別子を内部識別子に変換し、変換された内部識別子にしたがってデータアクセスが実施される。このように、プログラムからのデータアクセスは、その過程において、識別子変換処理機構による外部識別子から内部識別子への変換にオーバーヘッドがかかる。このため、特に、高速なデータアクセスを必要とす場合は、予め、何らかの手段によって、外部識別子に対応する内部識別子を求めておき、プログラムからのデータアクセス時に、直接、内部識別子を用いてデータアクセスをすることも一般的である。
【０００７】
例えば、同一の外部識別子のデータに何度もアクセスする場合、最初のデータアクセスの際には、プログラムにしたがって外部識別子でアクセスするが、その際にデータ管理機構によって変換された内部識別子を得ることで、次のアクセスからは、内部識別子を用いてアクセスすることもできる。
【０００８】
このような、データアクセスの方法は、分散型計算機システムにおいて、重複して配置した複製データの一致化においても同様であり、データを一致化する頻度が低い場合には、外部識別子を用いてデータの一致化を行なっても時間的性能上の問題は生じない。しかし、データを一致化する頻度が高い場合は、内部識別子を用いてデータの一致化を行なわないと、性能的に問題となることがある。
【０００９】
特に、内部識別子のデータ形式や値は、データ管理機能によって決定されるため、データ管理機構の違いや、データの構造、データの配置方法によっては計算機間で内部識別子が異なっている可能性がある。
【００１０】
また、データのバージョンが変った際には、内部識別子の値も変更されることが一般的である。このため、計算機間に重複して配置された複製データを一致化するに際して、内部識別子を用いて行なわなければ性能的に問題となる場合には、分散型計算機システム内の各計算機における内部識別子の値や形が統一されていることが条件になり、分散型計算機システム内の各計算機のデータ管理機構が同一であることと、それぞれの計算機におけるデータのバージョンが統一されていることが必要になる。このことは、データバージョン変更も各計算機で一斉に実施しなくてはならないことを意味する。なお、この種の技術に関連するものとしては、例えば、特開平７−３３４２０９号公報が挙げられる。
【００１１】
【発明が解決しようとする課題】
従来の分散型計算機システムにおいては、処理時間の短縮を図るとともに、各計算機に重複して配置された複製データを一致化するために、複製元データを有する計算機（送信側計算機）から、複製データを有する計算機（受信側計算機）に対して、データの一致化を行なうために送信する送信データとして、内部識別子とデータ値とを組にしたものを用いる構成が採用されている。この場合、送信データを受信した計算機（受信側計算機）上のプログラムは送信データ内の内部識別子を用いてデータベースをアクセスし、データベースのデータを、送信されたデータ値で更新するようになっている。このような形態でデータの一致化処理が行なえるためには、送信側計算機と受信側計算機において、外部識別子と内部識別子との対応が同一であることが条件となる。
【００１２】
しかし、内部識別子の値やデータ型は、各計算機が有しているデータ管理機構に依存し、計算機ごとに異なっているのが一般的である。
【００１３】
したがって、データのバージョンやデータ管理機構が計算機ごとで異なる場合など、内部識別子の値やデータ型が異なる計算機間で、各計算機に重複して配置された複製データの一致化を内部識別子にしたがって行なおうとすると、送信側計算機において複製データを一致化するための送信データを作成する際に、受信側計算機のデータ構造やデータベースのバージョンに依存する内部識別子を知っておく必要がある。これを行なうためには、受信側計算機の外部識別子と内部識別子との対応表を送信側計算機に事前に送付することが余儀なくされる。
【００１４】
しかも、内部識別子はデータのバージョンが変更されるとその値も変るため、受信側計算機の外部識別子と内部識別子との対応表は、データのバージョンが変るたびに送信側計算機に送信しなくてはならず、そのデータ量は、データベースに保持するデータレコード数に依存するが、たいていの場合は、非常に大きなデータ量となる。そのため、このような送信は、データのバージョンを切替る際に実施することが一般的であり、このため、送信用計算機と受信側計算機のデータのバージョンは同時に切替る必要がある。しかし、送信用計算機と受信側計算機においてデータのバージョンを同時に切替ることは、分散型計算機システムの構成や運用上の非常に大きな制約となる。
【００１５】
なお、各計算機に重複して配置された複製データの一致化を行なうに際して、その送信データとして、内部識別子を用いずに外部識別子を用いる方法もある。しかし、この方法では、データ一致化処理を実行毎に、外部識別子を内部識別子に変換する処理を実施しなければならず、計算機システムの性能上の問題が生じる。
【００１６】
本発明の目的は、外部識別子と内部識別子との関係を送信側計算機と受信側計算機との間で送受信しなくても各計算機に配置された複製データを一致化させることができる分散型計算機システムにおける重複配置複製データの複製方式とこのシステムにおける複製データ一致化方法を提供することにある。
【００１７】
【課題を解決するための手段】
前記目的を達成するために、本発明は、複数の計算機をネットワークを介して互いに接続し、各計算機間で情報の授受を行う分散型計算機システムにおいて、前記複数の計算機間で共通の外部識別子に外部識別子固有の連番とデータ値を付加した複製元データを生成して送信データとしてネットワークに送出する送信側計算機と、前記送信データを前記ネットワークを介して受信して複製データとして格納する受信側計算機とを備え、前記受信側計算機は、前記外部識別子固有の連番とこの連番に対応したデータの物理的格納位置を示す内部識別子を格納する連番並びの対応表と、前記送信データの受信時に、前記送信データに含まれる連番に対応した内部識別子を前記連番並びの対応表から抽出し、この内部識別子に対応したデータ格納エリアのデータ値を前記送信データに含まれるデータ値で更新することを特徴とする分散型計算機システムにおける重複配置複製データの複製方式を構成したものである。
【００１８】
前記分散型計算機システムにおける重複配置複製データの複製方式を構成するに際しては、前記受信側計算機の識別子変換処理機構として、前記送信データの受信時に、前記送信データに含まれる連番に対応した内部識別子が前記連番並びの対応表に格納されていないことを条件に前記送信データに含まれる外部識別子を識別子変換処理機構を用いて内部識別子に変換し、この内部識別子を前記送信データに含まれる連番に対応づけて前記連番並びの対応表に格納するとともに、この内部識別子に対応したデータ格納エリアに前記送信データに含まれるデータ値を格納し、前記送信データに含まれる連番に対応した内部識別子が前記連番並びの対応表に格納されていることを条件に前記送信データに含まれる連番に対応した内部識別子を前記連番並びの対応表から抽出し、この内部識別子に対応したデータ格納エリアのデータ値を前記送信データに含まれるデータ値で更新する機能を有するものを用いることができる。
【００１９】
前記各分散型計算機システムにおける重複配置複製データの複製方式を構成するに際しては、以下の要素を付加することができる。
【００２０】
（１）前記送信側計算機は、前記送信データにデータのバージョン情報を付加して送信してなり、前記受信側計算機は、前記送信側計算機からの送信データの受信時に前記送信データに含まれるデータのバージョン情報と前記送信データの受信より前に前記送信側計算機で生成された複製元データに関するバージョン情報とを比較して両者の内容が異なりバージョンが変更されたと判定したときに前記連番並びの対応表を初期化する初期化手段を備えてなる。
【００２１】
（２）前記送信側計算機は、前記送信データにデータのバージョン情報を付加して送信してなり、前記受信側計算機は、前記送信側計算機からの送信データの受信時に前記送信データに含まれるデータのバージョン情報と前記送信データの受信より前に前記送信側計算機で生成された複製元データに関するバージョン情報とを比較して両者の内容が異なりバージョンが変更されたと判定したときに、バージョン変更時であっても、旧バージョンの内部識別子と新バージョンの内部識別子との対応関係が明示的である場合には、前記対応関係に従って新たに連番並びの対応表を作成する対応表作成手段を備えてなる。
【００２２】
また、本発明は、分散型計算機システムに用いられる計算機共通の外部識別子に外部識別子固有の連番とデータ値を付加した複製元データを生成して送信データとして送信する送信側計算機と、前記送信データを受信して複製データとして格納するとともに前記外部識別子固有の連番とこの連番に対応したデータの物理的格納位置を示す内部識別子を格納する連番並びの対応表を有する受信側計算機とをネットワークを介して接続し、前記送信側計算機と前記受信側計算機との間で情報の授受を行うに際して、前記受信側計算機は、前記送信データの受信時に、前記送信データに含まれる連番に対応した内部識別子を前記連番並びの対応表から抽出し、この内部識別子に対応したデータ格納エリアのデータ値を前記送信データに含まれるデータ値で更新することを特徴とする分散型計算機システムにおける複製データ一致化方法を採用したものである。
【００２３】
前記複製データ一致化方法を採用するに際しては、前記受信側計算機として、前記送信データの受信時に、前記送信データに含まれる連番に対応した内部識別子が前記連番並びの対応表に格納されていないことを条件に前記送信データに含まれる外部識別子を内部識別子に変換し、この内部識別子を前記送信データに含まれる連番に対応づけて前記連番並びの対応表に格納するとともに、この内部識別子に対応したデータ格納エリアに前記送信データに含まれるデータ値を格納し、前記送信データに含まれる連番に対応した内部識別子が前記連番並びの対応表に格納されていることを条件に前記送信データに含まれる連番に対応した内部識別子を前記連番並びの対応表から抽出し、この内部識別子に対応したデータ格納エリアのデータ値を前記送信データに含まれるデータ値で更新する機能を有するものを用いることができる。
【００２４】
前記複製データ一致化方法を採用するに際しては、以下の要素を付加することができる。
【００２５】
（１）前記送信側計算機は、前記送信データにデータのバージョン情報を付加して送信し、前記受信側計算機は、前記送信側計算機からの送信データの受信時に前記送信データに含まれるデータのバージョン情報と前記送信データの受信より前に前記送信側計算機で生成された複製元データに関するバージョン情報とを比較して両者の内容が異なりバージョンが変更されたと判定したときに前記連番並びの対応表を初期化する。
【００２６】
（２）前記送信側計算機は、前記送信データにデータのバージョン情報を付加して送信し、前記受信側計算機は、前記送信側計算機からの送信データの受信時に前記送信データに含まれるデータのバージョン情報と前記送信データの受信より前に前記送信側計算機で生成された複製元データに関するバージョン情報とを比較して両者の内容が異なりバージョンが変更されたと判定したときに、バージョン変更時であっても、旧バージョンの内部識別子と新バージョンの内部識別子との対応関係が明示的である場合には、前記対応関係に従って新たに連番並びの対応表を作成する。
【００２７】
前記した手段によれば、送信側計算機が付与する外部識別子固有の連番は、受信側計算機のデータ構造やデータ保存状態に依存せずに作成できるため、送信側計算機で受信側計算機とは独立に送信データを作成することは可能になる。すなわち、連番は、外部識別子ごとにユニークで、かつ外部識別子に対してデータのバージョンごとに一意となる。例えば、１から連続する自然数のような連続した番号で作成されるため、受信側計算機のデータ構造やデータ捕集状態に依存せずに作成することができる。また受信側計算機においては、データのバージョン情報が同一であるため、送信データに含まれる外部識別子を内部識別子に一度変換処理するだけで、二度目以降は、連番に対応した内部識別子を用いて受信側計算機のデータ値を更新することができ、各計算機に重複して配置され複製データの一致化を高速に行なうことが可能になる。
【００２８】
【発明の実施の形態】
以下、本発明の一実施形態を図面に基づいて説明する。図１は本発明の一実施形態を示す分散型計算機システムの全体構成図である。図１において、分散型計算機システムは、入力計算機のような複製元データを有する送信側計算機（以下、マスタ配置計算機と呼ぶ。）１０１と、表示計算機のような複製データを有する受信側計算機（以下、レプリカ配置計算機と呼ぶ。）１０３群を備え、マスタ配置計算機１０１と各レプリカ配置計算機１０３はネットワーク１０５を介して互いに接続され、各計算機間で情報の授受が行なわれるとともに、各計算機上に複製データが重複して配置されるようになっている。
【００２９】
マスタ配置計算機１０１は、複製元のデータである複製元データ（以下、マスタデータと呼ぶ。）１０２を生成し、生成したマスタデータ１０２を送信データ１０７としてネットワークを１０５に送出する送信側計算機として構成されている。
具体的には、マスタ配置計算機１０１は、マスタデータ１０２を格納するデータベース１０２ａを備えているとともに、マスタデータ１０２を基に送信データ１０７を生成する送信側一致化処理機構１０６を備えて構成されている。
【００３０】
レプリカ配置計算機１０３群は、＃１〜＃ｎのレプリカ配置計算機１０３から構成されており、各レプリカ配置計算機１０３は、送信データ１０７を処理する受信側一致化処理機構１０９、各レプリカ配置計算機１０３に重複して配置された複製データ（以下、レプリカデータと呼ぶ。）１０４を格納するデータベース１０４ａを備えて構成されている。なお、レプリカ配置計算機１０３は、１台であっても複数台であっても構わない。またマスタ配置計算機１０１も、元データが異なる場合には複数台となっても本発明に何ら影響を及ぼさない。ただし、本実施形態では、マスタ配置計算機１０１が１台であるものとして説明する。
【００３１】
マスタ配置計算機１０１は、マスタデータ１０２を基に送信データ１０７を送信するに際しては、マスタ配置計算機１０１・レプリカ配置計算機１０３間で共通の外部識別子に、外部識別子固有の連番とデータ値を付加したマスタデータ１０２を生成し、生成したマスタデータ１０２を送信データ１０７に変換するとともに、＃１〜＃ｎの送信データ１０７にデータのバージョン情報３０１を付加した送信パケット１０８を生成し、この送信パケット１０８を、ネットワーク１０５を介して各レプリカ配置計算機１０３に送信するようになっている。
【００３２】
このとき、送信側一致化処理機構１０６は、マスタデータ１０２上のデータの外部識別子ごとに、連番と呼ぶ外部識別子ごとにユニーク（１対１の関係）で、１から始まる自然数で、かつデータのバージョンごとに一意となる番号を作成する。この番号は、例えば、マスタ配置計算機１０１上のデータの格納アドレスなどから簡単に求めることができる。
【００３３】
さらに、送信側一致化処理機構１０６は、レプリカデータ１０４を一致化するタイミングにおいて、マスタデータ１０２上で更新が発生したデータの外部識別子ごとに、外部識別子と、この外部識別子に対応した連番、データ値をまとめ、送信データ１０７を作成する。さらに、前回、一致化タイミング以降に行なわれた複数のマスタデータ１０２の更新に対応する送信データ１０７を求め、これらまとめた送信データ１０７群にデータのバージョン情報３０１を付加した送信パケット１０８を作成し、この送信パケット１０８を、ネットワーク１０５を介して、レプリカ配置計算機１０３群に送信する。
【００３４】
なお、本発明は、このときの送信方式として、同報送信方式とするかあるいは個別送信方式とするかについては独立であり、また異常時の処理方法および回復方法とは独立であるため、ここではその詳細については言及しない。
【００３５】
また、本実施形態では、マスタ配置計算機１０１から送信された送信データ１０７が各レプリカ配置計算機１０３に確実に届くことを前提としている。
【００３６】
一方、各レプリカ配置計算機１０３の受信側一致化処理機構１０９は、送信データ１０７に含まれる外部識別子を内部識別子に変換する識別子変換処理機構１１１と、連番とともにこの連番に対応したデータの物理的格納位置を示す内部識別子（アドレス）を格納する連番並びの対応表１１０を備えて構成されている。
【００３７】
識別子変換処理機構１１１は、送信パケット１０８の受信時（送信データ１０７の受信時）に、送信データ１０７に含まれる連番に対応した内部識別子が連番並びの対応表１１０に格納されていないことを条件に、送信データ１０７に含まれる外部識別子を内部識別子に変換し、この内部識別子を送信データ１０７に含まれる連番に対応づけて連番並びの対応表１１０に格納し、それ以外のとき、すなわち送信データ１０７に含まれる連番に対応した内部識別子が連番並びの対応表１１０に格納されていることを条件に、送信データ１０７に含まれる連番に対応した内部識別子を連番並びの対応表１１０から抽出し、この内部識別子に対応したデータ格納エリア（データベース１０４ａのデータ格納エリア）に格納されているデータを、送信データ１０７に含まれるデータ値で更新するように構成されている。
【００３８】
さらに、受信側一致化処理機構１０９は、送信パケット１０８の受信時に、送信データ１０７に含まれるデータのバージョン情報３０１と送信データ１０７の受信より前にマスタ配置計算機１０１で生成された複製元データに関するバージョン情報とを比較し、両者の内容が異なりバージョンが変更されたと判定したときに、連番並びの対応表１０１の内容を初期化する初期化手段としての機能を備えて構成されている。さらに、受信側一致化処理機構１０９は、後述するように、送信パケット１０８の受信時に、送信データ１０７に含まれるデータのバージョン情報３０１と送信データ１０７の受信より前にマスタ配置計算機１０１で生成された複製元データに関するバージョン情報とを比較し、両者の内容が異なりバージョンが変更されたと判定したときに、バージョン変更時であっても、旧バージョンの内部識別子と新バージョンの内部識別子との対応関係が明示的である場合には、この対応関係にしたがって新たなに連番並びの対応表１１０を作成する対応表作成手段としての機能を備えて構成されている。
【００３９】
具体的には、受信側一致化処理機構１０９は、送信パケット１０８の受信時に、各送信データ１０７単位に、連番並びの対応表１１０を参照して、レプリカ配置計算機１０３上のレプリカデータ１０４を更新するようになっている。連番並びの対応表１１０は、マスタ配置計算機１０１で定めた連番の順番で並べられた連番と、この連番に対応し、レプリカ配置計算機１０３上のレプリカデータ１０４の内部識別子との対応関係と、マスタ計算機１０１上のマスタデータ１０２におけるデータのバージョン情報３０２を格納するためのテーブルとして構成されている。この連番並びの対応表１１０の内容は、一致化処理機構１０９によって、初期状態が作成されるとともに、データのバージョンが変更された場合にその内容がクリアされるようになっている。
【００４０】
また、識別子変換処理機構１１１は、全ての計算機において共通なデータ型と値を持つ外部識別子を各計算機内部のデータ構造やデータのバージョンに依存する内部識別子に変換するようになっている。これらは、所謂ファイル管理システムあるいはデータベース管理システムが有する外部識別子と内部識別子をハッシュ構造やＢ−Ｔｒｅｅ構造として格納したインデックステーブル（あるいはＩＳＡＭ構成ファイル）に該当する。
【００４１】
次に、マスタ配置計算機１０１上でマスタデータ１０２の更新があり、この更新により、全てのレプリカ配置計算機１０３のレプリカデータ１０４を一致化する際の処理手順を以下に説明する。
【００４２】
まず、図２を用いて、レプリカ配置計算機１０３上で、受信側一致化処理機構１０９がレプリカデータ１０４をマスタデータ１０２と一致化するための送信パケット１０８を受信した際の処理とデータの流れを説明する。
【００４３】
マスタ配置計算機１０１から送信された送信パケット１０８を受信側一致化処理機構１０９が受信すると、受信側一致化処理機構１０９は送信パケット１０８中の送信データ１０７を１つ取り出す。そして取り出したデータ中の連番２０３を用いて連番並びの対応表１１０を参照する。このとき、連番並びの対応表１１０上に連番２０３の値に対応する内部識別子が格納されていない場合、すなわち連番２０３を初めて受信したときには、送信データ１０７に含まれる外部識別子２０１を、識別子変換処理機構１１１を用いて内部識別子２０２に変換する。次に、連番並びの対応表１１０上の送信データ１０７中の連番２０３に対応する内部識別子の項目に、変換した内部識別子２０２の値を格納するとともに、格納した内部識別子を用いて、レプリカデータ１０４上の内部識別子２０２に対応するデータ値を、送信データ１０７中のデータ値２０５で更新する。すなわち、データベース１０４ａのうち内部識別子２０３に対応したデータ格納エリアにデータ値２０５を格納する。
【００４４】
一方、送信データ１０７を受信したときに、この送信データ１０７に含まれる連番２０３の値に対応する内部識別子が連番並びの対応表１１０に格納されていた場合、すなわち、一度受信した連番２０３を持つ送信データ１０７を２回目以降受信したときには、外部識別子２０１から内部識別子２０２への変換を行なわずに、連番２０３の値に対応する内部識別子を連番並びの対応表１１０から抽出し、その内部識別子２０４を用いてレプリカデータ１０４上の内部識別子に対応するデータ値を、送信データ中のデータ値２０５で更新する。
【００４５】
このように、本実施形態においては、データのバージョンが変更されていない期間中において、初めて連番２０３を受信したときに、識別子変換処理機構１１１によって求めた内部識別子２０２を連番並びの対応表１１０上に格納しておくことにより、一度受信した連番２０３を２回目以降、再度受信した際には、再び、識別子変換処理機構１１１による識別子変換処理を行なう必要がなくなるため、レプリカデータ１０４を高速に更新することができる。
【００４６】
次に、データのバージョンが変った際の処理とデータの流れについて説明する。まず、図３を用いて、マスタ配置計算機１０１側のデータのバージョン（バージョン情報３０１）が変ったときの処理とデータの流れについて説明する。
【００４７】
レプリカ配置計算機１０３は、送信パケット１０８を受信したときに、マスタ配置計算機１０１上のデータのバージョン変更を検出するために、受信側一致化処理機構１０９に対してマスタ配置計算機１０１のデータのバージョン情報３０１を保持させる。受信側一致化処理機構１０９は、送信パケット１０８のデータのバージョン情報３０１とレプリカ配置計算機１０３上にあるマスタ配置計算機のデータのバージョン情報（送信パケット１０８の受信より前にマスタ配置計算機１０１で生成されたマスタデータに関するバージョン情報）３０２との比較処理３０３によって、マスタ配置計算機１０１のデータのバージョンが変更されたか否かを判定する。このとき、両者のバージョン情報の内容が異なりバージョン情報が不一致であると判定したときには、マスタ配置計算機１０１のデータのバージョンが変更されたと判定する。マスタ配置計算機１０１のデータのバージョンが変更された場合には、受信した連番３０６と外部識別子３０８との対応関係がデータのバージョン変更前と変化している可能性があるため、一旦、連番並びの対応表１１０の内容を初期化３０４し、受信側一致化処理機構１０９のマスタ配置計算機１０１におけるデータのバージョン情報３０２を更新する。連番並びの対応表１１０を初期化した場合、送信パケット１０８に含まれる送信データ１０７の連番３０６を、初めて受信した連番とみなす処理を行なう。すなわち、外部識別子３０８を、識別子変換処理機構１１１を用いて内部識別子３０７に変換する。このとき、バージョン変更に伴う処理としては、マスタ配置計算機１０１のデータの識別子によって３つの場合がある。
【００４８】
１つ目は、マスタ配置計算機１０１およびレプリカ配置計算機１０３の両方に存在する外部識別子を有するデータのバージョンが変更された場合である。この場合、バージョンの変更に伴って外部識別子に関連するデータの追加・削除がないため、識別子変換処理機構１１１を用いて外部識別子３０８を内部識別子３０７に変換し、この内部識別子３０７を、クリアされた連番並びの対応表１１０の連番３０６に対応した項に格納するとともに、格納した内部識別子３０７を用いてレプリカデータ１０４上の内部識別子３０７に対応するデータ値を、送信データ１０７中のデータ値３０９で更新する。
【００４９】
２つ目は、マスタ配置計算機１０１のデータのバージョン変更で新たに追加されたデータ、つまり、マスタ配置計算機１０１にのみ存在するがレプリカ配置計算機１０３上に存在しないデータが存在する場合である。この場合、マスタ配置計算機１０１から送信されたデータはレプリカ配置計算機１０３上には存在しないデータであるため、このデータは破棄する。そして、連番並びの対応表１１０上に、レプリカデータ１０４の更新を行なわないことを示す情報として、例えば、０などの何らかの値を内部識別子３０７の値として格納する。
【００５０】
３つ目は、マスタ配置計算機１０１のデータのバージョン変更に伴って削除されたデータ（外部識別子に関連するデータ）の場合である。この場合、削除されたデータはマスタ配置計算機１０１から送信されることはない。このため、バージョン変更に伴う処理がレプリカ配置計算機１０３によって実行されることはない。
【００５１】
次に、図４を用いて、レプリカ配置計算機１０３側のデータのバージョンが変ったときの処理とデータの流れについて説明する。レプリカ配置計算機１０３のデータのバージョンが変更になった場合には、レプリカ配置計算機１０３は連番並びの対応表１１０を初期化する。連番並びの対応表１１０が初期化された場合、送信データ１０７に含まれる連番４０２を初めて受信したときの処理が行なわれる。このときの処理として、次の３つの場合が存在する。
【００５２】
１つ目は、バージョン変更に伴うデータがマスタ配置計算機１０１とレプリカ配置計算機１０３の両方に存在する場合である。この場合、バージョンの変更の前後でデータ（外部識別子）に変更がないため、識別子変換処理機構１１１を用いて外部識別子４０４を内部識別子４０３に変換し、変換して得られた内部識別子４０３を連番並びの対応表１１０の連番４０２に対応した内部識別子の項に格納する。
【００５３】
２つ目は、レプリカ配置計算機１０３におけるデータのバージョンの変更時に、レプリカ配置計算機１０３上でデータが削除されているが、マスタ配置計算機１０１ではまだデータが存在する場合である。この場合、マスタ配置計算機１０１からレプリカ配置計算機１０３に対してデータ更新に伴う送信データ１０７が送信されてきても、レプリカ配置計算機１０３ではもはや不要なデータであるため、このデータはレプリカ配置計算機１０３によって破棄される。そして、レプリカ配置計算機１０３は、マスタ配置計算機１０１のデータのバージョンが変更されたときと同様に、連番並びの対応表１１０上に、レプリカデータ１０４の更新を行なわないことを示す情報として、０などの何らかの値を内部識別子４０３の値として格納する。
【００５４】
３つ目は、レプリカ配置計算機１０３におけるデータのバージョンの変更時に、レプリカ配置計算機１０３上に新たに追加されたデータが存在する場合である。この場合、このデータはマスタ配置計算機１０１上には存在しないデータであるため、このデータがマスタ配置計算機１０１からレプリカ配置計算機１０３に送信されることはない。
【００５５】
また、レプリカ配置計算機１０３のデータのバージョンが変更になった場合、連番並びの対応表１１０を更新する方法としては、次のような方法も考えられる。
【００５６】
すなわち、レプリカ配置計算機１０３において、バージョン変更前の内部識別子とバージョン変更後の内部識別子との対応関係が明示的である場合には、連番並びの対応表１１０の中に、レプリカ配置計算機１０３におけるデータのバージョン変更前の内部識別子（以下、単に前バージョン内部識別子と呼ぶ。）がすでに格納されている項は、前バージョン内部識別子とレプリカ配置計算機１０３のデータのバージョン変更後の内部識別子（以下、単に後バージョン内部識別子と呼ぶ。）との対応関係がわかっていることから、後バージョン内部識別子で置き換えることができる。このことは、レプリカ配置計算機１０３の連番並びの対応表１１０を、すでに内部識別子が決まっている連番全てについて一気に更新することができる。
【００５７】
一般的に、データのバージョン変更時においては、データ値を引き継ぐことが多く、しかも前バージョン内部識別子と後バージョン内部識別子との対応関係が明示的である場合が多いので、レプリカ配置計算機１０３の連番並びの対応表１１０のうち、すでに内部識別子が決まっている連番全てのついて一気に更新する方法を採用することができる。この方法を用いれば、連番並びの対応表１１０のうち、すでに作成され部分については識別子変換機構１１１を用いて外部識別子を内部識別子に変換することなく、新たな連番並びの対応表１１０を更新することができることから、レプリカ配置計算機１０３におけるデータのバージョン変更後のデータ一致化作業をより高速に行なうことができる。
【００５８】
ここで、「どのような状況」にあるときに、「前バージョン内部識別子と後バージョン内部識別子との対応関係が明示的である場合」となる具体例について説明する。
【００５９】
一般的にデータベースの更新が生じた場合、データベースの全てのデータ構造を更新することは稀であり、通常、新規にデータレコードとそれに対応した外部識別子を追加したり、不要になったデータレコードとそれに対応した外部識別子を削除することが多い。この場合、特に、データレコードの追加、つまり外部識別子の追加の場合には、これまでデータレコードに新たにデータレコードが追加されたことになるので、今までのデータの内部識別子には変化はなく、新たに追加されデータに関連する内部識別子が追加されるだけである。このとき、連番並びの対応表１１０の内容を全て初期化することは得策ではない。そこで、連番並びの対応表１１０の内容はそのままにし、追加した外部識別子に対応する連番を連番並びの対応表１１０に追加することにより、新たに連番並びの対応表１１０を作成する手間を省くことができる。
【００６０】
このように、前バージョン内部識別子と後バージョン内部識別子との対応関係が明示的である場合として、
（１）データレコード追加に伴う外部識別子の追加
（ただしデータを格納する最大数以内の追加の場合）
（２）データレコードの削除に伴う外部識別子の削除
（ただし、削除した外部識別子と対応する連番は欠番とする場合）
などが考えられる。
【００６１】
しかし、データ構造の大きな変化、例えば欠番とした連番をつめるなどの変化が生じた場合は、上記の方法では対応することができない。このような場合には、データバージョンに枝番を付加し、この枝番の変化をデータベースの構造の変化が少ない場合、例えば新規外部識別子の追加などの場合に行ない、データバージョン番号は、データベースが大きく変化した場合、例えば欠番の連番をつめるような場合に行なうと決めておき、受信したデータバージョン番号の変化の場合は、連番並びの対応表１１０の初期化を実行し、枝番の変化の場合は、連番並びの対応表１１０を初期化することなく使用するようにするなどの方法が考えられる。そしてこれらの方法を採用することにより、より高速にデータの一致化作業を行なうことができる。
【００６２】
前記実施形態においては、マスタ配置計算機１０１を１台を設けた場合について述べたが、図５に示すように、それぞれ別々のデータを管理する複数のマスタ配置計算機として、＃１〜＃ｎのマスタ配置計算機１０１を用いることもできる。この場合、各レプリカ配置計算機１０３には、マスタ配置計算機１０１の数に対応した連番並びの対応表１１０を設け、＃１〜＃ｎのマスタ配置計算機１０１からのデータをそれぞれ＃１〜＃ｎの連番並びの対応表１１０に格納する。
【００６３】
本実施形態においては、データ管理機構が異なる計算機構においても、各計算機に重複して配置された複製データを高速に一致化することができる。
【００６４】
また、前記実施形態においては、マスタ配置計算機１０１とレプリカ配置計算機１０３のデータのバージョンが混在している場合においても適応可能であり、各計算機に重複して配置された複製データの一致化処理を高速に実現することができるため、データのバージョンアップをそれぞれの計算機で独立に行なうことができる。
【００６５】
【発明の効果】
以上説明したように、本発明によれば、受信側計算機のデータ構造やデータ保存状態に依存せずに、送信側計算機で受信側計算機とは独立に送信データを作成することができるため、外部識別子と内部識別子との関係を送信側計算機と受信側計算機との間で送受信しなくても各計算機に配置された複製データを一致化させることができる。さらに、データのバージョン情報が同一であるときには、送信データに含まれる外部識別子を内部識別子に一度変換処理するだけで、二度以降は、連番に対応した内部識別子を用いて受信側計算機のデータ値を更新することができ、各計算機に重複して配置され複製データの一致化を高速に行なうことが可能になる。
【図面の簡単な説明】
【図１】本発明の一実施形態を示す分散型計算機システムの全体構成および送信データの構造を説明するための図である。
【図２】レプリカ配置計算機におけるデータの処理とデータの流れを説明するための図である。
【図３】マスタ配置計算機のデータのバージョンを変更したときの処理とデータの流れを説明するための図である。
【図４】レプリカ配置計算機のデータのバージョンを変更したときの処理とデータの流れを説明するための図である。
【図５】本発明の他の実施形態を示す分散型計算機システムの全体構成図である。
【符号の説明】
１０１  マスタ配置計算機
１０２  マスタデータ
１０２ａ  データベース
１０３  レプリカ配置計算機
１０４  レプリカデータ
１０４ａ  データベース
１０５  ネットワーク
１０６  送信側一致化処理機構
１０７  送信データ
１０８  送信パケット
１０９  受信側一致化処理機構
１１０  連番並びの対応表
１１１  識別子変換処理機構
【図１】
0004096147.tif 000002
【図２】
0004096147.tif 000003
【図３】
0004096147.tif 000004
【図４】
0004096147.tif 000005
【図５】
0004096147.tif 000006