(57)【要約】【課題】  コンピューター・システムの性能向上と耐障害性の向上にある。【解決手段】  ロケーション・テーブルや代替キー・ロケーション・テーブルのコピーをアクセラレーター・システムにおいて保持し、所謂、インデックス処理をアクセラレーター・システムにおいて実行することにより、負荷の分散化を行う。このコピーを、同報通信を用いることにより低負荷で実現する。アクセラレーター・システム１〜９とプライマリー・システム０の間大量の通信は、送信督促による上り通信を行うことにより円滑に行う。コンピューター・システム全体の性能向上を図る。【選択図】        図８【特許請求の範囲】
【請求項１】
主キーを含むデータ項目を持つデータレコードと、データレコードを主キーの順に格納するプライマリー・ブロックと、各プライマリー・ブロックのアドレスが記載されたロケーション・テーブル・エントリーを連続領域に有するロケーション・テーブルとを保有するプライマリー・システムと、
各プライマリー・ブロックのアドレスが記載されたフランド・ロケーション・テーブル・エントリーを連続領域に有するフランド・ロケーション・テーブルを保有するアクセラレーター・システムと、
通信路とを備え、
プライマリー・システムから変更情報を同報で送信し、アクセラレーター・システムで変更情報を受信することを契機として、所定の待ち時間後に、アクセラレーター・システムからプライマリー・システムに対する変更完了通知を送信することを特徴とする、コンピューター・システム。
【請求項２】
主キーを含むデータ項目を持つデータレコードと、データレコードを主キーの順に格納するプライマリー・ブロックと、各プライマリー・ブロックのアドレスが記載されたロケーション・テーブル・エントリーを連続領域に有するロケーション・テーブルとを保有するプライマリー・システムと、
各プライマリー・ブロックのアドレスが記載されたフランド・ロケーション・テーブル・エントリーを連続領域に有するフランド・ロケーション・テーブルを保有するアクセラレーター・システムと、
通信路とを備え、
リズム・ノードが送信督促メッセージを同報で送信し、アクセラレーター・システムで送信督促メッセージを受信することを契機として、所定の待ち時間後に、アクセラレーター・システムからプライマリー・システムに対する送信を行うことを特徴とする、コンピューター・システム。
【請求項３】
主キーと代替キーを含むデータ項目を持つデータレコードと、代替キーと主キーからなる代替キー・エントリーと、代替キー・エントリーを含む代替キー・ブロックと、代替キー・ロケーション・テーブル・エントリーを連続領域に有する代替キー・ロケーション・テーブルを保有するプライマリー・システムと、
フランド代替キー・ロケーション・テーブル・エントリーを連続領域に有するフランド代替キー・ロケーション・テーブルを保有するアクセラレーター・システムと、
通信路とを備え、
プライマリー・システムが代替キー・ロケーション・テーブルの変更情報を送信し、各アクセラレータ・システムは、代替キー・ロケーション・テーブルの変更情報を受信し、代替キー・フランド・ロケーション・テーブルを変更し、代替キー・ロケーション・テーブルの変更情報を受信することを契機として、所定の待ち時間後に、アクセラレーター・システムからプライマリー・システムに対する変更完了通知を送信することを特徴とする、コンピューター・システム。
【請求項４】
主キーと代替キーを含むデータ項目を持つデータレコードと、代替キーと主キーからなる代替キー・エントリーと、代替キー・エントリーを含む代替キー・ブロックと、代替キー・ロケーション・テーブル・エントリーを連続領域に有する代替キー・ロケーション・テーブルを保有するプライマリー・システムと、
フランド代替キー・ロケーション・テーブル・エントリーを連続領域に有するフランド代替キー・ロケーション・テーブルを保有するアクセラレーター・システムと、
通信路とを備え、
リズム・ノードが送信督促メッセージを同報で送信し、アクセラレーター・システムで送信督促メッセージを受信することを契機として、所定の待ち時間後に、アクセラレーター・システムからプライマリー・システムに対する送信を行うことを特徴とする、コンピューター・システム。
【請求項５】
主キーを含むデータ項目を持つデータレコードと、データレコードを主キーの順に格納するプライマリー・ブロックと、各プライマリー・ブロックのアドレスが記載されたロケーション・テーブル・エントリーを連続領域に有するロケーション・テーブルとを保有するプライマリー・システムと、
各プライマリー・ブロックのアドレスが記載されたフランド・ロケーション・テーブル・エントリーを連続領域に有するフランド・ロケーション・テーブルを保有する複数のアクセラレーター・システムと、
通信路と、
送信督促メッセージを送信するリズム・ノードとを備え、
リズム・ノードは、各アクセラレーター・システムに送信督促メッセージを送信し、各アクセラレーター・システムは、送信督促メッセージを受信することを契機として、所定の待ち時間後に、プライマリー・システムに対する処理依頼を送信することを特徴とする、コンピューター・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピューター・システムに関り、コンピューターの性能を向上させるものである。
【背景技術】
【０００２】
従来のコンピューター・システムは、性能を向上させるため、単体のＣＰＵの性能を向上させ、主記憶メモリーを大きくし、更に複数のＣＰＵを搭載することにより、その処理能力を向上させてきた。しかしながら、単体ＣＰＵの性能向上は、処理量の増加に比べて緩やかで、どちらかといえば複数のＣＰＵを搭載することによる性能向上が主体であった。特にＵＮＩＸ（登録商標）系のサーバーでは、その傾向が顕著であった。ところが、主記憶やＣＰＵ、更には外部記憶装置の競合が発生して、リソースを増加させても、比例的には処理能力が増加しないものであった。特にコンピューターに搭載するＣＰＵの数は、１００個くらいになると、その制御に要する資源が増加してしまい、殆ど処理能力を向上させることができなくなっていた。また、コンピューターの能力を向上させる目的で、アプリケーション用のコンピューターとデータベース用のコンピューターに分離することも行われているが、データベースは一元化することが必要で、データベースがボトルネックになっていた。【０００３】
本発明者は、従来の階層型インデックスに代えてロケーション・テーブルと代替キー・テーブルという概念を導入し、インデックスの処理に伴う複雑な処理を簡素化し、テーブル自体の検索をバイナリー・サーチなどの手法を用いることにより、高速化と、メンテナンスの容易性を確保できるようにした「データ格納検索方式（特許文献１〜２）」を発明した。更に、「データベースの再編成システム、並びに、データベース（以下、「データベース再編成システム」と呼ぶ）（特許文献３）」では、「データ検索格納方式」で提案したデータベースに対して、データベースを稼動させながら再編成が行える仕組を提案し、更に、代替キー・テーブルに対して代替キー・ロケーション・テーブルを付加することにより、効率的な再編成が可能となることを発明している。また、「データベースのアクセラレーター機能（以下、「アクセラレーター」と呼ぶ。）（特許文献４）」では、ロケーション・テーブルや代替キー・ロケーション・テーブルのコピーをアクセラレーター・システムが保持し、レコードを検索する際に、アクセラレーター・システムのロケーション・テーブルや代替キー・ロケーション・テーブルを使用することで、アクセスが並行処理できることを発明している。「データ格納検索システム（特許文献５）」では、プライマリー・ブロックからオーバーフロー・ブロック、オーバーフロー・ブロックからオーバーフロー・ブロックへの連結を、オーバーフロー・ブロック管理テーブルを用いて行う方式を発明している。「データ格納検索システム」では、代替キー・ブロックと代替キー・オーバーフロー・ブロックの連結、代替キー・オーバーフロー・ブロックと代替キー・オーバーフロー・ブロックの連結も同様に、代替キー・オーバーフロー・ブロック管理テーブルを用いて行う方式である。更に、「通信システム（特許文献６）」では、現在、通信の主流となっている衝突検出型通信が、通信量が多くなると衝突が増加し、通信量が急激に低下する問題に対して、リズム・ノードから送信督促メッセージを送信することを契機として上り通信を行うようにし、衝突しない仕組を発明している。【０００４】
【特許文献１】日本国特許第３３４５６２８号
【特許文献２】米国特許第６４１５３７５号
【特許文献３】特許出願ＰＣＴ／ＪＰ０３／１１５９２
【特許文献４】特許出願ＰＣＴ／ＪＰ０３／１３４４３
【特許文献５】特願２００４−０２０００６
【特許文献６】特願２００４−０９４６２８
【発明の開示】
【発明が解決しようとする課題】
【０００５】
コンピューター・システムにおいて、その処理能力を向上する手段として、本発明者は、「アクセラレーター」を発明した。これは、従来ボトルネックとなっていたデータベース処理コンピューターの処理能力を向上させるものである。しかしながら、アクセラレーター・システムを実現するためには、ロケーション・テーブルと代替キー・ロケーション・テーブルのコピーを持つ必要があるが、「アクセラレーター」では、個別的にコピーする方法を示していたのみであった。その方法は、「本明細書では、変更情報送信機構、変更情報反映機構、通信路を通じて情報の送受信を行うような説明を行っているが、特別なハードウエアを作成することにより実現することも可能である。特定の番地の情報を変更する場合に、自動的に別の番地の情報を同じように書き換えるようにすることにより、プライマリー・システムのロケーション・テーブルと代替キー・ロケーション・テーブルが変更された場合に、アクセラレーター・システムのフランド・ロケーション・テーブルとフランド代替キー・ロケーション・テーブルを更新するような機構（同期更新機構）である。」という記述がされていた。【０００６】
ここで記述されているような、ロケーション・テーブルや代替キー・ロケーション・テーブルを、低負荷でコピーする仕組を実現することは、「アクセラレーター」の性能向上ばかりでなく、コンピューター・システムの性能向上に役立つものである。また、アクセラレーター・システムとプライマリー・システム（データ・レコードに対する処理を行うシステム）の間の通信が大量に発生するが、この通信を円滑に行わないと、全体的な処理能力の向上は望めなくなってしまう。また、バックアップを効率的に行う方法も、コンピューター・システムを運用する上で重要な課題であるが、効率的にバックアップを行うと共に、そのバックアップ・システムを単にバックアップ・システムとして使用するのではなく、参照用のシステムとして使用することにより、コンピューター・システム全体の性能向上を図る。
【課題を解決するための手段】
【０００７】
本発明は、主キーを含むデータ項目を持つデータレコードと、データレコードを主キーの順に格納するプライマリー・ブロックと、各プライマリー・ブロックのアドレスが記載されたロケーション・テーブル・エントリーを連続領域に有するロケーション・テーブルとを保有するプライマリー・システムと、各プライマリー・ブロックのアドレスが記載されたフランド・ロケーション・テーブル・エントリーを連続領域に有するフランド・ロケーション・テーブルを保有するアクセラレーター・システムと、通信路とを備え、プライマリー・システムから変更情報を同報で送信し、アクセラレーター・システムで変更情報を受信することを契機として、所定の待ち時間後に、アクセラレーター・システムからプライマリー・システムに対する変更完了通知を送信することを特徴とする、コンピューター・システムにある。【０００８】
本発明は、また、主キーを含むデータ項目を持つデータレコードと、データレコードを主キーの順に格納するプライマリー・ブロックと、各プライマリー・ブロックのアドレスが記載されたロケーション・テーブル・エントリーを連続領域に有するロケーション・テーブルとを保有するプライマリー・システムと、各プライマリー・ブロックのアドレスが記載されたフランド・ロケーション・テーブル・エントリーを連続領域に有するフランド・ロケーション・テーブルを保有するアクセラレーター・システムと、通信路とを備え、リズム・ノードが送信督促メッセージを同報で送信し、アクセラレーター・システムで送信督促メッセージを受信することを契機として、所定の待ち時間後に、アクセラレーター・システムからプライマリー・システムに対する送信を行うことを特徴とする、コンピューター・システムにある。【０００９】
本発明は、また、主キーと代替キーを含むデータ項目を持つデータレコードと、代替キーと主キーからなる代替キー・エントリーと、代替キー・エントリーを含む代替キー・ブロックと、代替キー・ロケーション・テーブル・エントリーを連続領域に有する代替キー・ロケーション・テーブルを保有するプライマリー・システムと、フランド代替キー・ロケーション・テーブル・エントリーを連続領域に有するフランド代替キー・ロケーション・テーブルを保有するアクセラレーター・システムと、通信路とを備え、プライマリー・システムが代替キー・ロケーション・テーブルの変更情報を送信し、各アクセラレータ・システムは、代替キー・ロケーション・テーブルの変更情報を受信し、代替キー・フランド・ロケーション・テーブルを変更し、代替キー・ロケーション・テーブルの変更情報を受信することを契機として、所定の待ち時間後に、アクセラレーター・システムからプライマリー・システムに対する変更完了通知を送信することを特徴とする、コンピューター・システムにある。【００１０】
本発明は、また、主キーと代替キーを含むデータ項目を持つデータレコードと、代替キーと主キーからなる代替キー・エントリーと、代替キー・エントリーを含む代替キー・ブロックと、代替キー・ロケーション・テーブル・エントリーを連続領域に有する代替キー・ロケーション・テーブルを保有するプライマリー・システムと、フランド代替キー・ロケーション・テーブル・エントリーを連続領域に有するフランド代替キー・ロケーション・テーブルを保有するアクセラレーター・システムと、通信路とを備え、リズム・ノードが送信督促メッセージを同報で送信し、アクセラレーター・システムで送信督促メッセージを受信することを契機として、所定の待ち時間後に、アクセラレーター・システムからプライマリー・システムに対する送信を行うことを特徴とする、コンピューター・システムにある。
本発明は、また、主キーを含むデータ項目を持つデータレコードと、データレコードを主キーの順に格納するプライマリー・ブロックと、各プライマリー・ブロックのアドレスが記載されたロケーション・テーブル・エントリーを連続領域に有するロケーション・テーブルとを保有するプライマリー・システムと、各プライマリー・ブロックのアドレスが記載されたフランド・ロケーション・テーブル・エントリーを連続領域に有するフランド・ロケーション・テーブルを保有する複数のアクセラレーター・システムと、通信路と、送信督促メッセージを送信するリズム・ノードとを備え、リズム・ノードは、各アクセラレーター・システムに送信督促メッセージを送信し、各アクセラレーター・システムは、送信督促メッセージを受信することを契機として、所定の待ち時間後に、プライマリー・システムに対する処理依頼を送信することを特徴とする、コンピューター・システムにある。
【図面の簡単な説明】
【００１１】
【図１】本発明の対象となるデータベースの例である。
【図２】本発明の対象となるデータベースでオーバーフロー・ブロック管理テーブルを使用した例である。
【図３】アクセラレーターの原理を説明した図である。
【図４】アクセラレーター・システムが１つの場合の図である。
【図５】アクセラレーター・システムが１つの場合で、オーバーフロー・ブロック管理テーブルを使用した場合の図である。
【図６】同報通信による送信督促メッセージを利用して、上り通信を行う場合のタイム・チャートである。
【図７】通信システムでの代表的な構成である。
【図８】通信システムを利用し、アクセラレーター・システムを複数使用したコンピューター・システムの構成である。
【図９】変更情報と送信督促メッセージの送信に対して、更新処理と変更完了通知を行うタイム・チャートである。
【図１０】変更通知の情報の形式の図である。
【図１１】グループの決め方で、１つのアクセラレーター・システムが１つのグループに属するようにした図である。
【図１２】グループの決め方で、１つのアクセラレーター・システムが複数のグループに属するようにした図である。
【図１３】変更完了通知をプライマリー・システムが、すべての該当するアクセラレーター・システムから受信したことを確認するためのテーブルの図である。
【図１４】アクセラレーター・システムにおけるプログラム・ロジックで、プライマリー・システムに対する処理依頼に関するものである。
【図１５】アクセラレーター・システムにおけるプログラム・ロジックで、プライマリー・システムからの変更情報を受信し変更処理を行うことに関するものである。
【図１６】プライマリー・システムにおけるプログラム・ロジックで、アクセラレーター・システムからの処理依頼に関するものである。
【図１７】プライマリー・システムにおけるプログラム・ロジックで、アクセラレーター・システムに対する変更情報送信に関するものである。
【図１８】コンピューター・システムの構成において、終段通信装置にトニック・ノードとドミナント・ノード、およびリズム・ノードの機能を搭載した図である。
【図１９】ＢＵＳ型の、アクセラレーター・システムを使用したコンピューター・システムの図である。
【図２０】ＢＵＳ型のコンピューター・システムで、同報通信による送信督促メッセージを用いて、上り通信を行う場合のタイム・チャートである。
【図２１】リング型の、アクセラレーター・システムを使用したコンピューター・システムの図である。
【符号の説明】
【００１２】
０・・・プライマリー・システム（トニック・ノード）
０１、０２・・・セカンダリー・システム
１、２、３、４、５・・・アクセラレーター・システム（ドミナント・ノード）
６、７、８、９・・・アクセラレーター・システム（ドミナント・ノード）
１０・・・ロケーション・テーブル
１０１・・・最終ポインター
１１・・・プライマリー・ブロック
１２・・・オーバーフロー・ブロック
１５・・・オーバーフロー・ブロック管理テーブル
１５１・・・オーバーフロー・ブロック管理テーブル・ポインター
１５Ａ、１５Ｂ、１５Ｃ・・・代替キー・オーバーフロー・ブロック管理テーブル
１５Ａ１、１５Ｂ１、１５Ｃ１・・・代替キー・オーバーフロー・ブロック管理テーブル・ポインター
１６・・・フランド・ロケーション・テーブル
１６１・・・フランド最終ポインター
１６Ａ１、１６Ｂ１、１６Ｃ１・・・フランド代替キー・テーブル最終ポインター
１９・・・フランド・オーバーフロー・ブロック管理テーブル
１９Ａ、１９Ｂ、１９Ｃ・・・フランド代替キー・オーバーフロー・ブロック管理テーブル
１９Ａ１、１９Ｂ１、１９Ｃ１・・・フランド代替キー・オーバーフロー・ブロック・ポインター
２０、２１、２２、２３・・・リズム・ノード
４１、４２・・・通信路
４３１、４３２、４３３・・・支線通信路
４４１、４４２、４４３・・・支線通信路
４９・・・スイッチ
５０・・・中間通信装置
５５、５６、５７・・・終段通信装置
６１、６４、６５、６６・・・通信路
６４１、６４２、６４３・・・通信路
７１、７４、７５、７６・・・通信路
７４１、７４２、７４３・・・通信路
１１０、１２０、１３０、１４０、１５０・・・ブロック・エレメント装置
１６０、１７０、１８０、１９０・・・ブロック・エレメント装置
１１１、１２１、１３１、１４１、１５１・・・プログラム
１６１、１７１、１８１、１９１・・・プログラム
１１２、１２２、１３２、１４２、１５２・・・ブロックまたは代替キー・ブロック
１６２、１７２、１８２、１９２・・・ブロックまたは代替キー・ブロック
２００、２１０、２２０・・・テーブル・エレメント装置
２０１、２１１、２２１・・・プログラム
２０２、２１２、２２２・・・ロケーション・テーブルまたは代替キー・ブロック
３００・・・通信処理装置
Ｓ１・・・送信督促
Ｓ２、Ｓ３、Ｓ４、Ｓ５・・・上り通信
Ｓ６、Ｓ７、Ｓ８、Ｓ９・・・下り通信
【発明を実施するための最良の形態】
【００１３】
［データ格納検索方式］
ここで、本発明者が発明したデータ格納検索方式の内容について簡単に説明しておくことにする。本発明のデータ格納検索方式は、ロケーション・テーブルと代替キー・テーブルを使用し、それらに対して、バイナリー・サーチを行うことにより、目的のレコードを検索するものである。データレコードはプライマリー・ブロックに、主キーの順に格納する。そのプライマリー・ブロックにデータレコードを追加する場合に、プライマリー・ブロックが満杯である場合に、オーバーフロー・ブロックを、そのプライマリー・ブロックに連結して、データレコードを格納する。オーバーフロー・ブロックに、更にオーバーフロー・ブロックを連結することが可能である。各プライマリー・ブロックのアドレスが記載されたロケーション・テーブル・レコード（または、ロケーション・テーブル・エントリー）を連続領域に有するロケーション・テーブルを有する。ロケーション・テーブルは連続した領域に予め確保する。ここで連続した領域とは、論理的な順序であり、物理的な領域では、離れていても良い。このような場合には、アドレス変換テーブルを用いて、論理的に連続していると扱うことができる。これは、以下の説明でも同様である。ロケーション・テーブルの使用領域の最後を示すために、最終ポインターを用いる。【００１４】
レコードはブロックと言う固定長の格納領域に格納する。ブロックは、プライマリー・ブロックとオーバーフロー・ブロックからなる。最後のプライマリー・ブロックにレコードが追加できない場合は、その後にプライマリー・ブロックを追加して、レコードの格納を行う。【００１５】
ここで、連結とは、物理的に連結されていることを意味するのではなく、プライマリー・ブロックが一番目のオーバーフロー・ブロックのアドレスを保持し、１番目のオーバーフロー・ブロックが２番目のオーバーフロー・ブロックのアドレスを保持している状態が、あたかも物理的にブロックが繋がれているように扱えることから、そのような表現を使用している（以下、同様である）。このように格納するので、ロケーション・テーブル・エントリーは、主キーの順番に並んでいる。主キーによる検索は、ロケーション・テーブルの最初のアドレスと最終ポインターが指しているロケーション・テーブル・エントリーの間に対して、バイナリー・サーチを行うことにより、ブロックを見つけ、そのブロック内で目的のレコードを見つける。当該ブロックにオーバーフロー・ブロックが連結されている場合は、オーバーフロー・ブロックも検索の対象となる。ここでは、検索に関して述べているが、レコードの更新、追加、削除も同様のロジックで実現できる。【００１６】
代替キー値と主キー値からなる代替キー・レコード（または代替キー・エントリー）は、代替キー・ブロックに代替キー値の順番に格納する。その代替キー・ブロックに代替キー・エントリーを追加する場合に、その代替キー・ブロックが満杯である場合に、代替キー・オーバーフロー・ブロックを代替キー・ブロックに連結して、代替キー・エントリーを格納する。代替キー・オーバーフロー・ブロックに、更に代替キー・オーバーフロー・ブロックを連結することが可能である。各代替キー・ブロックのアドレスが記載された代替キー・ロケーション・テーブル・レコード（または、代替キー・ロケーション・テーブル・エントリー）を連続領域に有する代替キー・ロケーション・テーブルを有する。代替キー・ロケーション・テーブルは連続した領域に予め確保する。代替キー・ロケーション・テーブルの使用領域の最後を示すために、代替キー最終ポインターを用いる。代替キー・エントリーの追加で、既存の代替キー・エントリーの代替キー値より大きい代替キー値を持つ代替キー・エントリーは、最後の代替キー・ブロックに格納し、その代替キー・ブロックに格納できない場合には新たに代替キー・ブロックを作成し、その代替キー・ブロックに当該レコードを格納する。代替キー・ロケーション・テーブルと代替キー・ブロックを組にして、代替キー・テーブルと呼ぶ。【００１７】
代替キーは、データベースにおけるノンユニークなキーのことで、例えば、従業員データベースにおける、氏名や生年月日などのことである。代替キーは、或る種類のデータベースに対して、無くても良いし、複数あっても構わない。或る代替キーを持ったレコードを検索する方法は、代替キー・ロケーション・テーブルの最初のエントリーと、代替キー最終ポインターが指している代替キー・ロケーション・テーブル・エントリーの間をバイナリー・サーチし、目的の代替キー・ブロックを見つけ、その代替キー・ブロックの中を検索して、目的の代替キーを持つ代替キー・エントリーを見つける。その代替キー・ブロックに代替キー・オーバーフロー・ブロックが連結されている場合には、代替キー・オーバーフロー・ブロックも検索の対象となる。次に、その代替キー・エントリーの主キーによって、ロケーション・テーブルをバイナリー・サーチし、目的のブロックを見つけ、そのブロック内から目的のレコードを見つけ出す。当該ブロックにオーバーフロー・ブロックが連結されている場合は、オーバーフロー・ブロックも検索の対象となる。尚、代替キーはノンユニークであるので、同一の代替キー値を持ったレコードが複数存在する可能性がある。この場合は、代替キー・ブロック中の次の代替キー・レコードが同一の代替キー値である場合には、上記と同様な動作を繰り返す。ここでは、検索に関して述べているが、レコードの更新、追加、削除も同様のロジックで実現できる。また、複数の代替キーが存在する場合には、代替キーの種類と同じ数の代替キー・テーブルを作成し、使用することになる。以上で、「データ格納検索方式」の説明を終わる。【００１８】
［レコード］
レコードとは、必ず１つのユニークな主キーとゼロ個若しくは１個以上のノンユニークなキー（代替キー。結果的にユニークであっても問題はない）を持つ。この他に、キーとはならない項目（列）を持つことができる。主キーは、例えば従業員データベースの場合、従業員コードなど従業員を識別できるコードであり、代替キーは、氏名や生年月日などであり、データベースによっては、無くても良いし、複数あっても構わない。また、意味を持った主キーとなるべき項目存在しないレコードに関しては、格納順の連番などを付与して、それを主キーとしても良い。項目（列）は、情報の単位であり、キーとなるものとキーとならないものがある。レコード中に１つ以上存在する。列は、固定長形式でも良いが、可変長形式とすることも可能である。可変長形式の場合は、列情報が存在しない列も、列として認識することが可能である。【００１９】
データベース・システムでは、一般的にサブスキーマとスキーマという表現が用いられるが、本明細書では、特に拘らずに説明を行う。本明細書の説明で「データベースに対する列追加」や「データベースに対するアクセス」というような表現は、特定の種類のデータベース・ファイル（例えば、従業員ファイル）に対する操作を表しており、データベース・システムに格納されているデータベース・ファイル全体に対するものでは無い。また、特定の種類のデータベース・ファイルが、複数のデータベース・ファイルから構成されている場合には、各々のデータベース・ファイルに対してもデータベースという表現を使用している。【００２０】
図１は、「データ格納検索方式」で、発明したデータベースの仕組である。ここでは、オーバーフロー・ブロックと代替キー・オーバーフロー・ブロックが省略されている。図２は、「データ格納検索システム」で、図１のデータベースに対して、オーバーフロー・ブロック管理テーブルを用いて、オーバーフロー・ブロックと代替キー・オーバーフロー・ブロックの管理を行う仕組を図示したものである。【００２１】
［アクセラレーター・システムの原理］
アクセラレーターとは、文字通り加速器のことである。従来のデータベース・システムでは、データベースの処理能力を向上させる方法が、極めて限定的であった。これに対して、事実上、無制限にデータベースの処理能力を向上させることが可能になる、というものである。アクセラレーター・システムの原理は次のようなものである。ロケーション・テーブルや代替キー・ロケーションテーブルに対して、バイナリー・サーチを行って目的のレコードを含むプライマリー・ブロックとそれに連結されているオーバーフロー・ブロックを見つける。更に、その中からレコードを見つける。ロケーション・テーブルに対してバイナリー・サーチを行う際には、二分割点を幾度も探すことになり、この回数は、ブロック内でレコードを探すための回数よりも多くなることが一般的である。また、同時に複数のプロセスから、同じブロック内のレコードを要求する可能性は相当に低いものである。よって、ロケーション・テーブルと代替キー・ロケーションテーブルのコピーを複数保有し、各々に対して並行してバイナリー・サーチが行えるようにすれば、レコードに対するアクセス要求を数多く実行することが可能となる。図３が、「アクセラレーター」の原理を図示したものである。図４は、アクセラレーター・システムの基本構成に関して、オーバーフロー・ブロック管理テーブルを用いない方法の場合を図示したものである。図５は、アクセラレーター・システムの基本構成に関して、オーバーフロー・ブロック管理テーブルを用いた方法の場合を図示したものである。【００２２】
プライマリー・システムとは、プライマリー・ブロックとオーバーフロー・ブロック、代替キー・ブロックと代替キー・オーバーフロー・ブロックを持ち、レコードの追加・更新・削除を行うシステムのことである。これに対してアクセラレーター・システムとは、フランド・ロケーション・テーブルとフランド代替キー・ロケーション・テーブルを保有し、それらに対してバイナリー・サーチを行う。目的のプライマリー・ブロックとそれに連結するオーバーフロー・ブロック、代替キー・ブロックとそれに連結する代替キー・オーバーフロー・ブロックを見つけた後は、プライマリー・システム上の、プライマリー・ブロックとそれに連結するオーバーフロー・ブロック、代替キー・ブロックとそれに連結する代替キー・オーバーフロー・ブロックに対して操作を行う。【００２３】
図４では、アクセラレーター・システムが１つの場合を示している。アクセラレーター・システムでは、ロケーション・テーブル（フランド・ロケーションテーブル）、代替キー・ロケーションテーブル（フランド・代替キー・ロケーションテーブル）を保有しているが、プライマリー・ブロック、オーバーフロー・ブロック、代替キー・ブロック、代替キー・オーバーフロー・ブロックは保有していない。アクセラレーター・システムのフランド・ロケーションテーブルは、プライマリー・システムのロケーション・テーブルと機能的に同等のものである。同様にアクセラレーター・システムのフランド・代替キー・ロケーションテーブルは、プライマリー・システムの代替キー・ロケーション・テーブルと機能的に同等なものである。アクセラレーター・システムのフランド・ロケーション・テーブルの各レコードは、プライマリー・システムの各ロケーション・テーブル・レコードと同じブロックを指している。【００２４】
［アクセラレーター・システムでのアクセス］
アクセラレーター・システムでは、アクセス要求があると、主キーの場合はフランド・ロケーションテーブルに対してバイナリー・サーチを行い、目的のブロックを探し、そのブロック内のレコード検索をプライマリー・システムに依頼する。代替キーの場合は、フランド・代替キー・ロケーションテーブルのバイナリー・サーチを行い、目的のブロックを見つけ、プライマリー・システムが保持している代替キー・ブロックから目的の代替キー・レコードを見つけ、その代替キー・レコードによって、フランド・ロケーションテーブルのバイナリー・サーチを行って目的のレコードを見つける。ここでは検索の方法を述べたが、この方法を適用することで、レコードの更新、追加、削除が行える。また、代替キーの場合に、代替キー・レコードに基づいてフランド・ロケーションテーブルのバイナリー・サーチを行う、としたが、代替キー・レコードに、ブロックのアドレスやブロック番号を保持している場合には不要である。このようにして、複数のアクセラレーター・システムで並行してレコードの検索や更新を行うことにより、処理量を増加させることが可能となる。【００２５】
図４では、アクセラレーター・システムはロケーション・テーブル１つと代替キー・ロケーション・テーブル３種を保持しており、プライマリー・システムと同じ数となっている。これを、「アクセラレーター」では対称システムと呼んでいる。これに対して、例えば、ロケーション・テーブルと代替キー・ロケーションテーブルを２種類のみ保持しているようなアクセラレーター・システムを想定しており、ロケーション・テーブルのみ、代替キー・ロケーションテーブルのみ、といったアクセラレーター・システムを作成することが可能である。これを非対称システムと呼んでいる。アクセラレーター・システムに関しても、プライマリー・ブロックとオーバーフロー・ブロック、代替キー・ブロックと代替キー・オーバーフロー・ブロックに関して、ほぼ同様に扱うことができる。【００２６】
図５は、上記の説明のアクセラレーター・システムに、オーバーフロー・ブロック管理テーブルを追加した場合の例である。【００２７】
［プライマリー・システムとアクセラレーター・システムの情報同期］
次に、「アクセラレーター」を用いたシステムで、プライマリー・システムとアクセラレーター・システムの情報を同期させる方法に関して図４と図５を用いて説明する。プライマリー・システムでは、ロケーション・テーブル１０、代替キー・ロケーションテーブル１０Ａ、１０Ｂ、１０Ｃを持っている。更に、最終ポインター（１０１、１０Ａ１、１０Ｂ１、１０Ｃ１）を持っている。データベースがオーバーフロー・ブロック管理テーブルを用いた形式である場合（図５の場合）には、オーバーフロー・ブロック管理テーブル１５、代替キー・オーバーフロー・ブロック管理テーブル１５Ａ、１５Ｂ、１５Ｃ、を持つ。また、オーバーフロー・ブロック管理テーブルには、オーバーフロー・ブロック管理テーブル・ポインター１５１を設け、代替キー・オーバーフロー・ブロック管理テーブル１５Ａに対して、代替キー・オーバーフロー・ブロック管理テーブル・ポインター１５Ａ１を設け、同様に、代替キー・オーバーフロー・ブロック管理テーブル・ポインター１５Ｂ１、１５Ｃ１を設けている。【００２８】
アクセラレーター・システム３では、フランド・ロケーションテーブル１６、フランド代替キー・ロケーションテーブル（１６Ａ、１６Ｂ、１６Ｃ）、更に、最終ポインター（１６１、１６Ａ１、１６Ｂ１、１６Ｃ１）を持っている。データベースが、オーバーフロー・ブロック管理テーブルを用いたデータベース形式である場合には、フランド・オーバーフロー・ブロック管理テーブル１９、フランド代替キー・オーバーフロー・ブロック管理テーブル１９Ａ、１９Ｂ、１９Ｃを設ける。１９Ａ、１９Ｂ、１９Ｃの各フランド代替キー・オーバーフロー・ブロック管理テーブルに対して、それぞれフランド代替キー・オーバーフロー・ブロック管理テーブル・ポインター１９Ａ１、１９Ｂ１、１９Ｃ１を設ける。【００２９】
アクセラレーター・システムでは、プライマリー・システムで、ロケーション・テーブルまたは代替キー・ロケーションテーブルに変更が発生した場合に、アクセラレーター・システムに対して、その変更を通知し、アクセラレーター・システムでは、当該フランド・ロケーションテーブルまたはフランド代替キー・ロケーションテーブルの変更を行う。プライマリー・システムで、ロケーション・テーブル１０、最終ポインター１０１、代替キー・ロケーションテーブル（１０Ａ、１０Ｂ、１０Ｃ）、代替キー・ロケーションテーブルの最終ポインター（１０Ａ１、１０Ｂ１、１０Ｃ１）、の何れかに変更が発生した場合に、その変更部分をアクセラレーター・システムに通知する。アクセラレーター・システムでは、その通知に基づいて、当該フランド・ロケーションテーブル１６、フランド代替キー・ロケーションテーブル（１６Ａ、１６Ｂ、１６Ｃ）、フランド代替キー・ロケーション・テーブルの最終ポインター（１６Ａ１、１６Ｂ１、１６Ｃ１）、の何れかに対して、当該変更部分の変更を行う。【００３０】
また、データベースがオーバーフロー・ブロック管理テーブルを用いている場合には、上記に加えて、プライマリー・システムで、オーバーフロー・ブロック管理テーブル１５、オーバーフロー・ブロック管理テーブル・ポインター１５１、代替キー・オーバーフロー・ブロック管理テーブル（１５Ａ、１５Ｂ、１５Ｃ）、代替キー・オーバーフロー・ブロック管理テーブル・最終ポインター（１５Ａ１、１５Ｂ１、１５Ｃ１）に変更が発生した場合には、アクセラレーター・システムにその変更を通知し、アクセラレーター・システムでは、当該フランド・オーバーフロー・ブロック管理テーブル１９、フランド最終ポインター１６１、フランド・オーバーフロー・ブロック管理テーブル・ポインター１９１、フランド代替キー・オーバーフロー・ブロック管理テーブル（１９Ａ、１９Ｂ、１９Ｃ）、フランド代替キー・オーバーフロー・ブロック管理テーブル・最終ポインター（１９Ａ１、１９Ｂ１、１９Ｃ１）の何れかに対して、当該部分の変更を行う。【００３１】
このように、プライマリー・システムから変更部分をアクセラレーター・システムに通知し、アクセラレーター・システムで直ちにその変更を適用することにより、アクセラレーター・システムの、フランド・ロケーションテーブル１６、フランド・オーバーフロー・ブロック管理テーブル１９、フランド最終ポインター１６１、フランド・オーバーフロー・ブロック管理テーブル・最終ポインター１９１、フランド代替キー・ロケーションテーブル（１６Ａ、１６Ｂ、１６Ｃ）、フランド代替キー・ロケーションテーブルの最終ポインター（１６Ａ１、１６Ｂ１、１６Ｃ１）、フランド代替キー・オーバーフロー・ブロック管理テーブル（１９Ａ、１９Ｂ、１９Ｃ）、フランド代替キー・オーバーフロー・ブロック管理テーブル・最終ポインター（１９Ａ１、１９Ｂ１、１９Ｃ１）は、プライマリー・システムと同等に保たれる。アクセラレーター・システムでは、当該個所の変更が完了すると、変更完了通知をプライマリー・システムに対して送信する。プライマリー・システムでは、すべてのアクセラレーター・システムからの変更完了通知が到着するまで、当該部分の排他待ちを行う。【００３２】
以上で、基本的な場合のアクセラレーター・システムへの適用に関して説明を行ったが、「データベース・システム」で直接列追加や直接列削除、直接列変更の場合には、更に、次の条件が加わる。プライマリー・システムでは、上記の条件の他に、現用ロケーション・テーブル用の列操作ポインター、列操作完了ポインターと、新規ロケーション・テーブル、新規列操作ポインターが増加する。これに対応するために、アクセラレーター・システムでは、フランド現用ロケーション・テーブル用の列操作ポインター（フランド列操作ポインター）、フランド列操作完了ポインター、フランド新規ロケーション・テーブル、フランド新規列操作ポインターを追加する。データベースが、オーバーフロー・ブロック管理テーブルを使用した形式である場合には、新規ロケーション・テーブルに新規オーバーフロー・ブロック管理テーブルと、新規オーバーフロー・ブロック管理テーブル・ポインターが追加される。プライマリー・システムで上記要素に変更があった場合には、アクセラレーター・システムにその変更を通知し、アクセラレーター・システムでは、当該個所の変更を行う。この他に、再編成を行う場合には、新規ロケーション・テーブルと新規代替キー・ロケーション・テーブル、各々の最終ポインターが更に加わる。【００３３】
アクセラレーター・システムでのアクセスは、ブロックへのアクセスがプライマリー・システムに変わるだけで、その他は、前述の列追加・削除・変更での説明と、アクセラレーター・システムで説明した方法を組み合わせることで実現できる。【００３４】
上記では、アクセラレーター・システムの対称システムを想定した説明を行ったが、非対称システムの場合には、プライマリー・システムで変更があった部分を保持するアクセラレーター・システムのみが、その変更を受け取り更新することになる。以上は、「本発明者による、「データベース・システム」からの引用を用いて説明を行った。【００３５】
［通信システム］
次に、「通信システム」に関して簡単に説明しておく。現在の通信の主流は衝突検出型である。これは、通信路に接続されたノード（一般的には通信装置も含むが、ここではパソコンやサーバーなどのコンピューターを対象とし、通信装置を除く）が、勝手なタイミングで情報の送信を行い、もし、２つ以上のノードがほぼ同時に送信を行った場合は、衝突を検出し、その情報はキャンセルして、再度、ノードからの送信を行う、という方式である。再送信は、衝突が発生しないように、お互いのタイミングをずらすようにしているが、通信路の通信量が増加すると、加速度的に衝突が発生する仕組となっていた。【００３６】
これに対して、「通信システム」では、ノードを、トニック・ノードとドミナント・ノードに分類し、ホスト・コンピューターやサーバーなどは基本的にトニック・ノードとする。また、通信の方向を、トニック・ノードからドミナント・ノード（下り通信）、ドミナント・ノードからトニック・ノード（上り通信）に分離する。更に、上り通信の衝突を避けるために、リズム・ノードから送信督促メッセージを、各ドミナント・ノードに対して同報で送信し、各ドミナント・ノードでは、送信督促を受診後、所定の待ち時間経過後に上り通信を行う。この所定の待ち時間は、各ドミナント・ノードが通信順序番号を持ち、その通信順序番号に従って、通信路の速度、通信路の距離、通信メッセージの長さに従って定量的に定められたものである。通信順序番号ｎのノードは、通信順序番号ｎ−１のノードの送信が終了すると同時に送信を行うことになる（厳密には通信路の長さによってタイミングが異なる）。所定の待ち時間の計算式は、「通信システム」に、詳細に記載されているが、次のようなものである。【００３７】
送信メッセージ長をＬ（バイト）、通信路の伝送速度をＳ（ビット／秒）とする。これに対し、待ち時間をＴ（ナノ秒）とする。通信路（６２、６３、６４、７２、７３、７４）の長さは、通信路の長さ（６２）＝通信路の長さ（７２）、通信路の長さ（６３）＝通信路の長さ（７３）、通信路の長さ（６４）＝通信路の長さ（７４）、であるとする。また、通信路の長さ（６２）＝通信路の長さ（６３）＝通信路の長さ（６４）であるとする。まず、通信路（６２１、６２２、６２３）の長さが同じである場合を考える。この各々の長さを、Ｄ（メートル）とする。また、通信路の長さ（６２）＝通信路の長さ（６３）＝通信路の長さ（６４）であるとする。アクセラレーター・システム１、２、３の順番で、上り通信を行うとする。すると、アクセラレーター・システム１が送信をし終わった瞬間（Ｔ１）には、送信情報の終端は、通信路６２１がアクセラレーター・システム１に接続している部分を通過している。Ｔ１の時点でアクセラレーター・システム２から送信メッセージを送信すれば、アクセラレーター・システム１からの送信メッセージと衝突することはなくなる。アクセラレーター・システムｎの待ち時間Ｔｎは、次の式１で表される。【００３８】
【数１】
2005103901.tif 000002
【００３９】
この他の、通信路の長さが異なる場合に関しては、「通信システム」に記載してある。【００４０】
下り通信は、リズム・ノードからトニック・ノードに通信権を割り当てて、通信権を持っているトニック・ノードから下り通信を行う。さらには、通信路を上り用と下り用に分離すると、更に効率的な通信が行える、というものである。【００４１】
通信路の長さが等しい場合の、送信督促と上り通信のタイム・チャートを表したのが図６である。この図では、トニック・ノード内にリズム・ノードが内蔵されている場合となっている。ドミナント・ノードの数は４つである。トニック・ノードと各ドミナント・ノードの距離は等しいものとする。リズム・ノード０（トニック・ノード）から送信督促を送信する（Ｓ１）。通信路の長さが等しいので、各ドミナント・ノード（１、２、３、４）には、送信督促が同時に届く。ドミナント・ノード１は、直ちに上り通信を行う。ドミナント・ノード２、３、４は所定の待ち時間後に上り通信を行う。上り通信の１サイクルが終了したら、トニック・ノードから下り通信を行う。この図では、ドミナント・ノード３に対するくだり通信までの図となっている。【００４２】
［高性能コンピューターの実現手段］
アクセラレーター・システムを使用することにより、高性能なコンピューター・システムを実現することが可能となる。従来のコンピューター・システムではＣＰＵや主記憶を大量に搭載することにより高性能化を図っていた。しかしながら、背景技術で説明したように、それらを大量に搭載しても、それをコントロールするための負荷が増大するため、処理能力を増大させることが困難になっていた。アクセラレーター・システムを搭載したコンピューター・システムとすることで、コンピューターの処理性能を飛躍的に増大させることが可能となる。プライマリー・システムとアクセラレーター・システムを１つの筐体に収めた形態でも良いし、各々は独立しており、それを接続する形態でも良い。しかしながら、高性能を発揮するためには、単に１つの筐体に収めるとか、接続するといった方法のみでは不十分である。【００４３】
「アクセラレーター」では、プライマリー・システムの変更情報を通知する方法として、プライマリー・システムから各アクセラレーター・システムに対して個別に情報を送信する方法を示していた他、「本明細書では、変更情報送信機構、変更情報反映機構、通信機構を通じて情報の送受信を行うような説明を行っているが、特別なハードウエアを作成することにより実現することも可能である。特定の番地の情報を変更する場合に、自動的に別の番地の情報を同じように書き換えるようにすることにより、プライマリー・システムのロケーション・テーブルと代替キー・ロケーション・テーブルが変更された場合に、アクセラレーター・システムのフランド・ロケーション・テーブルとフランド代替キー・ロケーション・テーブルを更新するような機構（同期更新機構）である。」という記述がされているのみで、具体的な実現手段は明確ではなかった。更に、各アクセラレーター・システムから、プライマリー・システムへの通信が大量に発生する仕組となっているが、この通信を円滑に行う実現手段も明確ではなかった。【００４４】
図７は、「通信システム」の代表的な構成である。ノード０（０）は、トニック・ノードであり、リズム・ノード２０を内蔵している。ノード１、２、３、・・・、９はドミナント・ノードである。両者は中間通信装置５０と終段通信装置５５、５６、５７を介して、通信路によって接続されている。通信路は、上り通信用と下り通信用に分離されている。この仕組を「アクセラレーター」に適用したのが、図８である。トニック・ノードがプライマリー・システム０となり、ドミナント・ノードがアクセラレーター・システム（１、２、３、・・・・、９）となる。【００４５】
［変更情報送信］
このような構成を採った場合に、「アクセラレーター」の実現手段がどのようになるかを図８を用いて説明する。この図で通信路（６１、６４、６５、６６、６４１等、７１、７４、７５、７６、７４１等）、および通信装置は、シリアル伝送でもパラレル伝送であってもよい。また、通信路は図８では、例えば６１と７１というように上り通信用と下り通信用に２つの通信路を用いるようになっているが、通信路６１と７１を１本の通信路にし、上り方向と下り方向の通信を、時分割によって実現する方法もある。このような時分割による通信を示したのが、図９のタイム・チャートである。通信路を上り用と下り用に２本使用する場合には、上りと下りの通信を同時に並行して行うことが可能である。以下の説明で、プライマリー・システムからアクセラレーター・システムへの通信を下り通信、アクセラレーター・システムからプライマリー・システムへの通信を上り通信と呼ぶことにする。まず、上り通信と下り通信の種類を説明する。プライマリー・システムで何らかの変更があり、その変更がアクセラレーター・システムに関係するものである場合、プライマリー・システムは下り通信として、アクセラレーター・システムにその情報を送信する（変更情報の送信）。この変更情報に対して、各アクセラレーター・システムでは、変更の適用を行い変更が完了したら変更完了通知をプライマリー・システムに対して上り通信として送信する（変更完了通知の送信）。この他に、アクセラレーター・システムでは、アプリケーション・コンピューターからの依頼に基づき、ロケーション・テーブルや代替キー・ロケーション・テーブルの検索を行い、その検索結果に基づきブロックや代替キー・ブロックの検索をプライマリー・システムに依頼する（処理依頼の送信）。プライマリー・システムでは、アクセラレーター・システムからの依頼に基づきブロックや代替キー・ブロックの内容や変更結果の通知を下り通信として送信する（処理結果の送信）。【００４６】
ここで、変更情報の送信を効率的に行う方法を説明する。アクセラレーター・システムが１つとか、数台の場合には、各アクセラレーター・システムに対して、個別に変更情報を送信しても特段の問題が発生するとは考えられないが、アクセラレーター・システムの数が増加すると、変更情報の送信に要する時間が増大し、他の下り通信が行えなくなってしまう可能性がある。このような事態を避けるためには、変更情報の送信を、アクセラレーター・システムに対して同報で送信する。プライマリー・システムでの変更は、対称システムの場合には、すべてのアクセラレーター・システムに送信する必要があるので、同報通信を用いるのは非常に効率的である。このように変更情報の送信に同報を用いた場合のタイム・チャートが図９である。ここでも、プライマリー・システムの中にリズム・ノードを内蔵している場合となっている。変更情報をプライマリー・システムから同報で送信した後に、リズム・ノードから送信督促メッセージを同報で、アクセラレーター・システム（１、２、３、４）へ送信している（Ｓ１）。また、変更情報は送信督促メッセージを兼用することも可能である。この場合、リズム・ノードとプライマリー・システムの関係は、リズム・ノードが、上り通信の１サイクルが終了した時点で、プライマリー・システムに対して、変更情報送信の通信権を与える、ということになり、通常の下り通信とは分離する必要がある。各アクセラレーター・システムでは、変更情報を受信後、直ちに更新処理を行う。その後、アクセラレーター・システム２、３、４は所定の待ち時間をとった後に更新完了通知をプライマリー・システムに対して送信する（Ｓ２、Ｓ３、Ｓ４、Ｓ５）。図９では、各アクセラレーター・システムが同等の性能を有している（更新処理に要する時間が等しい）場合に関してのタイミングを示している。【００４７】
［変更情報の内容］
変更情報の内容に関して、詳細な説明を行う。図１０は変更情報の一例である。変更情報の内容として、宛先アドレス８０、送信元アドレス８１、連番８２、変更対象８３、変更対象番地８４、変更する長さ８５、変更後内容８６、といった情報を含んでいる。宛先アドレス８０は、その情報を受信するべきノードのアドレスである。この場合は、変更情報で同報なので、アクセラレーター・システムのグループＩＤが宛先アドレスとなる。送信元アドレス８１は、プライマリー・システムのアドレスになる。連番８２というのは、複数の変更通知が送信され、また、変更完了通知をプライマリー・システムで受信する際に、異なった情報を区別するためのもので、変更情報で使用された連番を、変更完了通知の連番に入れてアクセラレーター・システムからプライマリー・システムに送信することにより、どの変更情報に対する変更完了通知であるかを識別するもので、情報通信で一般的に用いられている方法である。変更対象８３は、ロケーション・テーブルなのか、複数の代替キー・ロケーション・テーブルの何れなのか、最終ポインターやオーバーフロー・ブロック管理テーブル、複数の代替キー・オーバーフロー・ブロック・管理テーブルなど、前述したアクセラレーター・システムを構成する要素のうち、どの構成要素に対する変更であるかを示したものである。これは、プライマリー・システムとアクセラレーター・システムで、同じ対応表を保持して、間違いなく変更ができるようにする。変更対象番地８４は、物理的に指定する方法もあるし、論理的に指定する方法もある。【００４８】
物理的というのは、プライマリー・システムにおけるアクセラレーター・システムの構成要素と、アクセラレーター・システムにおける構成要素の物理的な構成が全く同一である場合に使用する。物理的な構成が全く同一である、とは、例えば、ロケーション・テーブルの構造が、プライマリー・システムとアクセラレーター・システムで全く同一であり、更に、プライマリー・システムでのロケーション・テーブルの記憶装置上の番地と、アクセラレーター・システムでのロケーション・テーブルの記憶装置上の番地が、全く同一であることを言う。具体的な例としては、プライマリー・システムのロケーション・テーブル・エントリー５が、例えば記憶装置の１０５０番地から５０バイトである場合に、すべてのアクセラレーター・システムで、フランド・ロケーション・テーブル・エントリー５が、記憶装置上の１０５０番地から５０バイトである、ということになる。この場合には、プライマリー・システムからは、記憶装置上の何番地からの情報が変更になっている、という変更通知ということになる。アクセラレーター・システムでは、その変更通知を受信すると、記憶装置の変更対象番地に対して変更を行う。この場合には、変更対象８３の情報は無くても正常に稼動する。【００４９】
論理的というのは、ロケーション・テーブル、代替キー・ロケーション・テーブル、オーバーフロー・ブロック管理テーブル、代替キー・オーバーフロー・ブロック管理テーブルのどのエントリーに対するものなのかを、エントリー番号で示す方法である。その他の構成要素は、複数のエントリーを持つような構造になっていないため、例えば最終ポインターであることを指定すれば、それで対象が定まる。
この論理的に同一である、ということを更に拡張すると、ロケーション・テーブルとフランド・ロケーション・テーブル、代替キー・ロケーション・テーブルとフランド・代替キー・ロケーション・テーブルの構造が異なっていても良い。構造が異なるということは、次のようなことである。ロケーション・テーブルに必要な情報はエントリーの番号とそのエントリーが指しているプライマリー・ブロックのアドレスである。この他に、プライマリー・システムのロケーション・テーブルでは、各ブロックの統計情報などを保持するように、エントリーの情報を拡張すると、有効である。これに対して、アクセラレーター・システムのフランド・ロケーション・テーブルでは、統計情報を持たずに単純に、エントリーの番号と、プライマリー・ブロックのアドレスのみを保持する。このようにすると、アクセラレーター・システムで持つ情報量が節約でき、変更が少なくなる。
更に、アクセラレーターを次のように拡張することも可能である。アクセラレーター・システムでは、ロケーション・テーブルと代替キー・ロケーション・テーブルを保持することになっている。しかしながら、一部の特定の代替キーの負荷が高い場合には、その代替キー・ブロックをアクセラレーターで保持する、というものである。代替キー・ブロックは、当然のことながらプライマリー・システムが保持しているものと同内容であり、「バックアップ・リカバリー・システム」で示した同期密結合方式により、プライマリー・システムと同期をとる。このようにすることにより、一部の代替キー・ロケーション・テーブルの負荷が高い場合に、プライマリー・システムの負荷を軽減することが可能となる。【００５０】
変更情報は、短いほど伝送や更新に必要な時間が短くなるため、短縮できる場合はその方が好ましい。例えば、ロケーション・テーブル・エントリーに対する更新である場合に、ブロック番号やアドレスは変更にならないので、主キー値の最小値または最大値が変更になった場合が対象となる。また、最小値、最大値の何れかが変更になる場合でも、主キー値全体が変更にならザ、下の数桁が変更になる場合もある。このような場合、変更対象番地と変更する長さ８５を用いて、差分のみを送信することにより、変更情報を短縮することが可能となる。この場合は、変更対象番地が論理的である場合、エントリー番号と、エントリー内の変位という形式にする必要がある。差分を用いない場合であっても、変更する長さは、変更対象番地８４は、物理的に指定する場合には必須となる。変更対象番地８４は、論理的に指定する場合で、差分のみの送信でない場合であっても、変更する長さを送信するのは、変更を確実にする上で有用である。【００５１】
変更後内容は、変更する内容そのものである。例えば、ロケーション・テーブル・エントリーの主キー値の最大値が、「５６７８９」から「５６７９０」に変更になった場合に、「５６７９０」が、変更後内容となる。また、前述したように、下２桁の「９０」のみを差分として送信することも可能である。【００５２】
［同報通信］
通信情報に関して、同報通信を用いて行う、としたが、これを更に詳しく説明する。同報通信の場合、一斉同報とグループ同報が存在する。アクセラレーター・システムには、対称システムと非対称システムが存在する。対称システムとは、プライマリー・システムが保有している、ロケーション・テーブル、代替キー・ロケーション・テーブルを、アクセラレーター・システムのすべてが保有している形態を言う。これに対して、非対称システムとは、特定のアクセラレーター・システムでは、プライマリー・システムが保有しているロケーション・テーブルや代替キー・ロケーション・テーブルの一部のみを保有する形態を言う。非対称システムは、キー種毎にアクセス頻度が異なる場合に、記憶領域を節約する際に有効である。【００５３】
アクセラレーター・システムがすべて対称システムである場合には、一斉同報で構わない。これに対して、非対称システムである場合には、グループ同報を用いる。このグループの定め方は、様々な方法があろうが、次に示す図１１の方法が代表的である。図１１は、アクセラレーター・システムがロケーション・テーブルと代替キー・ロケーション・テーブルの何れを保有しているかをパターン化し、１つのアクセラレーター・システムに対して１つのグループを割り当てる方法である。このようにグループを決定するのは、従来の通信で一般的に行われている方法である。この方法は、次のような特徴を持つ。アクセラレーター・システム毎にグループＩＤを持つので対応が分かりやすい。一方で、代替キーの種類が多くなり、組み合わせが複雑になると、グループの種類が幾何級数的に増加する可能性がある。プライマリー・システムでは、ロケーション・テーブルや代替キー・ロケーション・テーブルに対して変更が発生した場合に、どのグループに影響があるのかを解析する必要がある。また、図１１の場合に、ロケーション・テーブルに変更があった場合に、グループ１、グループ２、グループ３、グループ４の各々に対して同報を行わなければならず、下り通信の情報量が増大してしまう。【００５４】
これに対して、図１２は、アクセラレーター・システムが複数のグループに属することを許す場合の例である。各アクセラレーター・システムがロケーション・テーブル、代替キー・ロケーション・テーブルの何れを保有しているかを示したのが図１２の９７である。これに対して、ロケーション・テーブル、代替キー・ロケーション・テーブルの何れを保有しているかによってグループ名を決定する方法を示しているのが図１２の９８である。図１２の９９では、このようにして決定されたグループＩＤの一覧表を示している。アクセラレーター・システム１は、グループ１、２、３、４の何れにも属している。同様に、アクセラレーター・システム２、３、４も、グループ１、２、３、４に属している。アクセラレーター・システム５は、グループ１、２、３に属しているが、グループ４には属していない。アクセラレーター・システム６は、グループ１、２に属しているが、グループ３、４には属していない。アクセラレーター・システム７はグループ１のみに属している。図１２で示した方法を採った場合には、ロケーション・テーブルや代替キー・ロケーション・テーブルに対する変更は、そのロケーション・テーブルや代替キー・ロケーション・テーブルに対応したグループに同報すればよいので、下り情報通信は１回でよいことになる。また、プライマリー・システムからの下り情報通信の宛先も簡単に定まる。代替キー種が増加しても、グループの種類は比例的にしか増加しない。一方、アクセラレーター・システムでは、自分がどのグループに属しているのかを保有して、複数のグループＩＤに対する同報通信に対応できるようにする必要がある。【００５５】
図９では、変更完了通知を受信後、プライマリー・システムからの下り通信を行っている（Ｓ６、Ｓ７、Ｓ８、Ｓ９）が、実際には、上り通信用と下り通信用の通信路が別々に設けてあるので、変更情報の送信、送信督促の送信が終了した時点で、下り通信を行ってよいことになる。また、下り通信は、アクセラレーター・システム毎に均等に行う必要は無く、通信量に応じて行えばよい。【００５６】
［アクセラレーター・システムの性能が不均等な場合］
各アクセラレーター・システムの性能が同等でない場合には、変更情報と送信督促を受信してから待ち時間を計測する。更新処理の時間は、プライマリー・システムで要した時間を変更情報の中に含んで送信し、その更新処理時間を所定の待ち時間に足すことにより、待ち時間とすることができる。この場合、アクセラレーター・システム１（通信順序番号が最初のアクセラレーター・システム）の性能は、プライマリー・システムと同等にしておくこと、更に、通信順序番号が２以降のアクセラレーター・システムは、所定の待ち時間以内に更新処理を終えるだけの性能を有している必要がある。また、何らかの事情で所定の待ち時間以内に更新処理が終了しなかった場合には、変更完了通知を送信しない。勝手なタイミングで変更完了通知を送信すると、通信の衝突が発生するからである。【００５７】
［変更完了通知］
さて、このようにグループに対して同報通信を行い、アクセラレーター・システムで必要な変更を行い、変更完了通知をアクセラレーター・システムからプライマリー・システムに送信する。プライマリー・システムから見ると、多数の変更完了通知を漏れなく受け取り確認する必要がある。漏れなく確認する方法として、図１３に示す、変更完了確認テーブルを使用すると有効である。変更完了確認テーブルでノードとあるのは、アクセラレーター・システムの各々ことである。ステータスは、未了か完了である。図１３では、未了を空白で示している。一番上の行のカウントとは、最初にそのグループのノード数を入れておき、各ノードから変更完了通知をプライマリー・システムが受信する都度、当該ノードのステータスに完了を立て、カウントから１を減ずる。もし、既にステータスが完了になっているノードから再度、変更完了通知が来た場合には、そのノードに問い合わせをすることが好ましい。この場合には、カウントから１を減ずることは行わない。カウントが０になれば、そのグループの変更完了通知をすべて受信したことが確認できる。この変更完了確認テーブルは、グループ毎に原型を作成しておき、プライマリー・システムから変更通知を送信する際に、そのコピーを作成して使用すると便利である。【００５８】
プライマリー・システムから変更通知をアクセラレーター・システムに送信し、すべての対象アクセラレーター・システム（変更通知の対象グループに属するアクセラレーター・システム）からの変更完了通知をプライマリー・システムが受領するまで、プライマリー・システムでは、当該変更箇所の排他を行う。【００５９】
以上で、変更情報の送信と変更完了通知の送信に関する説明を行った。次に、アクセラレーター・システムからの処理依頼の送信方法であるが、これは、「通信システム」で示した送信督促を用いて、各アクセラレーター・システムから送信させる。この場合、先程の変更完了通知と処理依頼の情報の長さが異なる可能性が大きい。何故ならば、変更完了通知は、変更情報の連番と完了した旨の情報を含めばよいので、宛先アドレスや送信元アドレスを入れても、２０バイト程度の長さで十分である。一方、処理依頼は、検索の場合には、ブロックのアドレス、キーの種類、キー値などが必要になる。更新や書き込みでは、レコードの内容が必要になるため、更に長くなる可能性がある。【００６０】
このように、長さが異なる情報を単一の長さのパケットで扱おうとすると、パケット内の無駄なスペースが大きくなってしまう。このような状態を避けるためには、「通信システム」の中で触れられているように、送信督促を送信する場合に、アクセラレーター・システムからの送信情報の種類を指定するようにするとよい。変更完了通知の場合の送信督促では、例えば６４バイトのパケット長とし、通常の処理要求の場合には、例えば、２５６バイトのパケット長とするなどである。当然、パケット長が異なれば、必要になる所定の待ち時間は同じアクセラレーター・システムに対しても変わってくるので、複数のパケット長を使用する場合には、それらに対応できるように所定の待ち時間を計算しておく必要がある。【００６１】
このように、「通信システム」を「アクセラレーター」に応用し、変更情報を同報で送信することにより、効率的な下り通信が行える。【００６２】
［処理依頼の送信］
上り通信の処理依頼に関しては、既に簡単に説明してあるが、再度、説明する。各アクセラレーター・システムでは、アクセラレーター・システム内やアプリケーション処理コンピューター内での、アプリケーション・プログラムからデータベースに対するアクセス要求に基づき、データベースへのアクセスを行う。例えば、主キーによるアクセスであった場合、アクセラレーター・システムでは、自分のフランド・ロケーション・テーブルを検索し、対象となるブロックを見つける。ブロックとオーバーフロー・ブロックは、アクセラレーター・システムには存在せず、プライマリー・システムにのみ存在する。検索要求の場合には、検索ＤＢ種別、検索対象ブロック種別、対象となるブロックのブロック番号またはブロック・アドレス、主キー値を指定する。それを処理依頼レコードとして、プライマリー・システムに送信する。この処理依頼は、各アクセラレーター・システムが稼動している場合には、勝手なタイミングで発生するため、それらが勝手に送信されると衝突してしまう可能性がある。また、衝突は、通信が混んでくると発生しやすくなるため、多くの処理を行わなければならない状態で、性能が低下してしまう。【００６３】
このような衝突を避けるために、「通信システム」では、上り通信を、リズム・ノードから送信督促を送信し、その通信督促をドミナント・ノード（アクセラレーター・システム）が受信したら所定の待ち時間後に、上り通信を行うことになっている。このようにすることにより、上り通信に衝突が発生しないようになっている。この送信督促の送信と、送信督促受信後に所定の待ち時間を置いて上り通信を行う、という方法を、「アクセラレーター」にも適用する。この場合のタイミング・チャートは図６と同様である。【００６４】
［アクセラレーター・システムのロジック］
アクセラレーター・システムには、プログラムが必要となるが、そのプログラムのロジックに関して改めて説明する。図１４、図１５が、アクセラレーター・システムのプログラム（アクセラレーター・システム・プログラム）のフロー・チャートである。図１４では、まず、アプリケーション・プログラムからアクセスの受付を行う。アプリケーション・プログラムは、アクセラレーター・システムの中で稼動するようにしても良いし、外部のシステムで稼動するようにし、データベース・アクセスを受け付けるようにしてもよい。アクセラレーター・システム・プログラムは、次に、アクセスの種類を識別する。どのデータベース（スキー）を対象にしたものか、キー種別は何か、アクセスは検索、追加、更新、削除の何れであるか、キー値は何か、である。次に、キー種別とキー値により、ロケーション・テーブルまたは、代替キー・ロケーション・テーブルのバイナリー・サーチを行う。そこで、目的のブロックまたは代替キー・ブロックの番号またはアドレスを見つける。そこで、アクセラレーター・システム・プログラムは、送信メッセージを作成し、一旦、蓄積しておく。その後、送信督促メッセージを受信したら、所定の待ち時間を置いた後、プライマリー・システムに対して、上り通信により処理依頼を行う。プライマリー・システムで処理を行い、その結果をアクセラレーター・システムに返してくる。その結果をアプリケーション・プログラムに返す。図１５は、プライマリー・システムからの変更情報を受信する場合のフロー・チャートである。変更情報をプライマリー・システムから受信する。その変更対象により、必要な変更を行う。その後、所定の待ち時間を置いて、変更完了通知を送信する。【００６５】
［プライマリー・システムでのロジック］
次に、プライマリー・システムのプログラム（プライマリー・システム・プログラム）の処理内容を説明する。図１６、図１７が、そのフロー・チャートである。図１６では、アクセラレーター・システムからの処理依頼に関するものである。まず、アクセラレーター・システムからの処理受付を行う。次に、アクセスの種類を識別する。どのデータベース（スキー）を対象にしたものか、キー種別は何か、アクセスは検索、追加、更新、削除の何れであるか、キー値は何か、ブロックまたは代替キー・ブロックの番号である。次に、ブロックまたは代替キー・ブロックの番号により、ロケーション・テーブルまたは代替キー・ロケーション・テーブルのエントリーを見つける。処理依頼が更新系である場合には、そのエントリーの排他を行う。排他方法は後述する。処理依頼が主キーによるものであるときには、プライマリー・ブロックと、そのプライマリー・ブロックに接続されたオーバーフロー・ブロックの中から、目的のレコードを検出し、処理依頼が検索である場合には、そのレコードをセットする。処理依頼が更新である場合には、そのレコードに更新を行う。追加の場合には、その主キー値を持つレコードが存在しないことが前提であり、レコードの挿入場所を確定し、レコードの挿入を行う。処理依頼が削除の場合は、レコードの削除を行う。処理依頼が、検索、更新、削除の場合に、その主キー値を持つレコードが存在しない場合は、エラーとする。処理依頼が追加の場合で、その主キー値を持つレコードが既に存在する場合は、エラーとする。正常な場合は、リターン・コードの他、レコードなど必要な情報をセットする。その後、アクセラレーター・システムに情報を渡す。これは、下り通信として送信する。図１７は、アクセラレーター・システムに対する変更情報を送信するフロー・チャートである。【００６６】
［排他方法］
次に、排他方法に関して説明する。排他は、ロケーション・テーブルまたは代替キー・ロケーション・テーブルの目的のエントリーに対して、フラッグを立てることにより行うことが最もシンプルである。このようにすると、どのブロックまたは代替キー・ブロックが排他されているかを確実に検出することが可能となる。トランザクション終了、デッドロックやトランザクション・キャンセル、プログラムの異常終了により、あるトランザクションに関連する排他を解除する方法としては、トランザクション毎に、排他対象のロケーション・テーブル・エントリー、代替キー・ロケーション・テーブル・エントリーを別のテーブルに書き出しておき、それを参照するようにする。【００６７】
［特殊なアクセラレーター・システム］
以上で、アクセラレーター・システムの基本的な説明を行ったが、変形例に関して説明する。アクセラレーター・システムの数が、多い場合には、プライマリー・システムでは、アクセラレーター・システムからの処理依頼を受け付けて処理を行い、また、変更が発生すればアクセラレーター・システムに変更情報を送信する、という機能のみを行うことが全体的な効率向上に役立つ。しかしながら、アクセラレーター・システムの数があまり多くない場合には、プライマリー・システムにも、アクセラレーター・システムが行う機能を負担させることにより、全体的な処理効率を向上させることもできる。このような場合、例えば、図８におけるアクセラレーター・システム１をダミーとし、アクセラレーター・システム１が、アプリケーション・プログラムから受け付けた処理依頼に関して、アクセラレーター・システム１では何の処理も行わずに、プライマリー・システムにそのまま送信してしまう、という方法である。アクセラレーター・システム２、３、４、・・・９は、図１４に示したような処理を行う。このようにした場合、プライマリー・システム・プログラムは、図１４に示したロジックを保有し、アクセラレーター・システム１からの処理依頼である場合には、図１４のロジックと図１６のロジックを実行する。【００６８】
［アクセラレーター・システムが多い場合］
以上で、基本的な構成を採った場合の例の説明を行った。アクセラレーター・システムの数が比較的少ない場合には、全アクセラレーター・システムを対象として送信督促メッセージを送信することとしても、特段の問題は発生しないと考えられる。１０Ｇｂｐｓの速度を持つ通信路上では、８ビットを１バイととした場合、１ｎｓ（ナノ秒）当り１０ビットの通信が可能であり、１バイトの通信には０．８ｎｓが必要となる。アクセラレーター・システムからの上り通信メッセージはその長さを一定とし、例えば、２５６バイトとすると、その場合、２５６バイトを送信するための時間は、２０４．８ｎｓとなる。アクセラレーター・システムの数が１００台とした場合には、約２０μ秒毎に送信督促メッセージの送信が行われ、その間隔でアクセラレーター・システムからの処理依頼を送信できることになる。これは、１秒当りにすると、１台のアクセラレーター・システムが上り通信を行える回数が５万回となる。【００６９】
ところが、アクセラレーター・システムが１０００台になると、１秒当りの上り通信回数が５０００回となる。また、すべてのアクセラレーター・システムが上り通信の情報を保持していない可能性もある。このような場合に有効な方法が、「通信システム」で示された、多階層リズム・ノードである。図１８に例を示す。図１８は、基本的な構成は図８と同様であるが、終段通信装置の構成が異なっている。図１８の終段通信装置（５５、５６、５７）は、ドミナント・ノードとトニック・ノードの機能を有しており、更にリズム・ノード（２１、２２、２３）を有している。この終段通信装置の機能は次のようになる。終段通信装置５５を例にとって説明する。終段通信装置５５は、アクセラレーター・システム１、２、３に対して、トニック・ノードとして機能する。また、リズム・ノードを保有している。リズム・ノードから各アクセラレーター・システム１、２、３に対して、送信督促メッセージを送信する。アクセラレーター・システムでは、送信督促メッセージを受信後、所定の待ち時間を置いた後、上り通信を行う。この場合、上り情報が無ければ、例えば、ＮＡＣＫを送信する。終段通信装置５５は、このようにして、各アクセラレーター・システム１、２、３からの上り通信を集めて蓄積しておく。【００７０】
このような動作に対して、リズム・ノード２０は、終段通信装置５５、５６、５７をドミナント・ノードとして送信督促メッセージを送信する。この送信督促メッセージは、数段通信装置５５、５６、５７を対象とするグループに対して行う。また、終段通信装置５５、５６、５７では、その送信督促メッセージを、アクセラレーター・システムに送信しないことが好ましい。送信しても、アクセラレーター・システム宛てでは無いので無視されることになるが、不要なトラッフィックを軽減することになる。終段通信装置はドミナント・ノードとして、リズム・ノード２０からの送信督促メッセージ受信後、所定の待ち時間を置いて、上り通信を行う。上り通信は、各終段通信装置から１メッセージづつおこなってもよいが、例えば、１０メッセージを１回に送信するなどとしてもよい。当然、所定の待ち時間は、メッセージの全長が長くなるため、その分長くなる。【００７１】
このような方法を用いると、アクセラレーター・システムからの空の上り通信を削減することができる。更には、「通信システム」で示したように、ドミナント・ノード毎に上り通信の割り当て数を、送信督促メッセージ中に入れて、終段通信装置から可変数のメッセージの上り通信を行うようにすると、更に、通信の効率化行える。【００７２】
［アクセラレーター・システムの故障］
ところで、このように多数のアクセラレーター・システムを接続した場合に、一部のアクセラレーター・システムが何らかの理由で、稼動できなくなる可能性がある。何らかの理由としては、アクセラレーター・システムの故障によるもの、支線通信路の故障によるもの、アクセラレーター・システムのメンテナンスによるもの、などが考えられる。このように、或るアクセラレーター・システムが稼動しない場合の対処を以下に説明する。【００７３】
或るアクセラレーター・システムが稼動しなくなった場合の検知方法は、定期的にプライマリー・システムと信号をやり取りし、その信号が途絶えたら故障とみなす、という方法が一般的に用いられている。本発明では、送信督促に対する上り通信の有無を、信号に使用することができるし、それを利用することが合理的である。このような方法で、プライマリー・システムがアクセラレーター・システムの不稼動を検知すると、プライマリー・システムは、そのアクセラレーター・システムを切り離す。プライマリー・システムでは、不稼動となったアクセラレーター・システムが処理していたトランザクションでデータベースのデータが変更されている場合には、バックアウト処理（データの内容をトランザクションの開始時点の内容に戻す）を行う。また、そのバックアウトの内容が、アクセラレーター・システムや、後述するセカンダリー・システムに影響するものである場合には、その変更情報をアクセラレーター・システムやセカンダリー・システムに送信する。このようにバックアウトを行うためには、プライマリー・システムでデータの変更を行う際に、該当部分の変更前情報（Ｂログ）を取得しておく必要がある。このＢログは、プライマリー・システムでの当該変更が完了し、アクセラレーター・システムやセカンダリー・システムの当該変更が完了すれば不要となる。しかしながら、バックアップ用に保存しておくことで、有効に使用できる場合がある。これはセカンダリー・システムの部分で説明する。変更完了確認テーブルからは、不稼動となったアクセラレーター・システムを除外しておく。【００７４】
次に、プライマリー・システムは、そのアクセラレーター・システムから届いていない変更完了通知を含んでそれ以降の変更情報をすべて保存する。また、アプリケーション処理コンピューターからは、その不稼動のアクセラレーター・システムに対する処理要求を送信しないようにし、不稼動となった時点のトランザクションを別のアクセラレーター・システムに振り分ける。これで、不稼動となったアクセラレーター・システムの切り離しが完了する。これ以降は、人手で不稼動となった原因を探し、稼動するように復旧させることになる。【００７５】
不稼動であったアクセラレーター・システムが、稼動できるようになった場合には、次のような復旧措置をとる。プライマリー・システムから、それまで保存してあった変更情報の送信を、不稼動であったアクセラレーター・システム宛てに行う。この開始時点をｔ１とする。プライマリー・システムでは、ｔ１時点以降に、他のアクセラレーター・システム宛ての変更情報を送信するが、不稼動であったアクセラレーター・システムでは、受信のみを行い、変更の適用は行わない。不稼動であったアクセラレーター・システムでは、プライマリー・システムに保存してあった変更情報に基づき、当該変更を順次実行し、変更完了通知をプライマリー・システムに送信する。変更完了通知は、１つの変更情報の変更が完了する都度、行っても良いが、変更完了通知が多くなるため、まとめて行っても良い。保存してあった変更情報が無くなった時点をｔ２とする。ｔ２時点以降は、不稼動であったアクセラレーター・システムが保存した変更情報に基づき、当該変更を順次実行し、変更完了通知をプライマリー・システムに送信する。変更完了通知は、１つの変更情報の変更が完了する都度、行っても良いが、変更完了通知が多くなるため、まとめて行っても良い。不稼動であったアクセラレーター・システムが保存した変更情報の変更が終了した時点をｔ３とする。ｔ３の時点で、不稼動であったアクセラレーター・システムと、他のアクセラレーター・システムの同期が完了したことになる。よって、ｔ３以降は、不稼動であったアクセラレーター・システムは、稼動アクセラレーター・システムとして扱うことが可能となる。プライマリー・システムでは、変更完了確認テーブルから、不稼動となったアクセラレーター・システムを除外してあったのを、復活させる。【００７６】
次に、プライマリー・システムが不稼動となった場合に関する説明であるが、これは、セカンダリー・システムを使用する場合の説明で詳細に記述する。【００７７】
［ＢＵＳ型構成］
図８では、カスケード接続の場合に関して述べたが、ＢＵＳ型であっても構成は可能である。図１９はＢＵＳ型の構成を用いた場合の例である。プライマリー・システムとアクセラレーター・システムとは、ＢＵＳ型の通信路（４１、４２）で接続されている。通信路４１は下り通信用であり、通信路４２は上り通信用である。また、通信路４１、４２共に片分岐となっているが、通信路４１は両分岐であっても良い。通信路４２が片分岐になっている理由は、アクセラレーター・システムからの上り通信が、下り側に流れていかないためである。アクセラレーター・システムからの上り通信が、下り側に流れていくと、例えば、アクセラレーター・システム３からの上り通信が、アクセラレーター・システム４側にも流れるため、アクセラレーター・システム４、５、６、７からの上り通信が、通信路４２上で衝突する可能性があることになる。通信路４２を片分岐にしておき、各アクセラレーター・システムからの上り通信を、適度な間隔で送信することにより、このような衝突を避けることが可能となる。適度な間隔とは、所定の待ち時間を取ることに他ならない。【００７８】
この所定の待ち時間に関する図が、図２０である。ここでは、図面を簡潔にするために、アクセラレーター・システムが１から４までの、４つの場合を示している。リズム・ノード（＝プライマリー・システム０）から、送信督促メッセージを同報で送信する。すると、送信督促メッセージはカスケード型の場合と異なり、各々のアクセラレーター・システムは、プライマリー・システムからの距離が順次長くなっているので、その距離に応じて遅延して各アクセラレーター・システムに届くことになる（Ｓ１）。アクセラレーター・システムでは、送信督促メッセージを受信後、所定の待ち時間を取った後に上り通信を行う（Ｓ２、Ｓ３、Ｓ４、Ｓ５）。【００７９】
この場合の所定の待ち時間は、「通信システム」に詳しく示されているが、各アクセラレーター・システム間の距離が等しい場合の式は次のようになる。各アクセラレーター・システム間の距離をＤ（メートル）、メッセージ長をＬ（バイト）、通信路の伝送速度をＳ（ビット／秒）とする。これに対し、待ち時間をＴ（ナノ秒）とする。また、プライマリー・システムから最も近いアクセラレーター・システムの番号を１として、ｎ番目のドミナント・ノードをｎ番目とする。ｎ番目のドミナント・ノードの待ち時間をＴｎ（ナノ秒）とすると、その待ち時間Ｔｎを表す式２は次のようになる。【００８０】
【数２】
2005103901.tif 000003
【００８１】
各アクセラレーター・システム間の距離が異なる場合に関しては、「通信システム」に記載してある。【００８２】
［リング型］
図２１は、リング型にアクセラレーター・システムを構成した場合の図である。ここで、通信路４１は、例えば、支線通信路３３１と３１２の間が切れておらず、繋がっている。これにより、同報通信が可能になると共に、ノードの１つが故障しても、ネットワーク全体が停止してしまう、という問題がなくなっている。ここでは、プライマリー・システム０と、アクセラレーター・システム１、２、３、・・・、９からなっている。また通信路はリング型であるため、通信路４１の単線となっている。このため、通信路４１は、上り通信と下り通信が分離されていない。便宜上、プライマリー・システムからアクセラレーター・システム方向への通信を下り通信、アクセラレーター・システムからプライマリー・システム方向への通信を上り通信と呼ぶが、通信路４１を流れている通信が上り通信であるか、下り通信であるかは、その宛先による。各アクセラレーター・システムは支線通信路３１１、３１２等によって、通信路４１と接続されている。各支線通信路は片分岐となっており、支線通信路３１１、３２１等は、下り通信の受信用に使用され、支線通信路３１２、３２２等は、上り通信の送信用に用いられる。【００８３】
［上り通信］
ここでは、プライマリー・システム０にリズム・ノード２０が設けられているとする。まず、上り通信に関しては、リズム・ノード２０から送信督促メッセージを同報で送信する。アクセラレーター・システムは、送信督促メッセージを受信した後、各アクセラレーター・システム間の距離により、所定の待ち時間をおいて上りメッセージを送信する。この場合の所定の待ち時間とは、ＢＵＳ型通信ネットワークにおける式を使用する。また、リング型の場合は、上り通信に限定せずにプライマリー・システム宛てのメッセージであっても良い。プライマリー・システムでは自己宛てのメッセージを受信し、それ以外のメッセージは再度、通信路に下り通信として伝送するが、アクセラレーター・システムにおいては存在しない。プライマリー・システムでは、自分宛て以外の受信したメッセージを全て破棄する。【００８４】
［下り通信］
次に、リズム・ノードはプライマリー・システム０に対して下り通信を割り当てる。そこで、プライマリー・システム０は、下り通信を行う。下り通信を行って、プライマリー・システムに戻ってきた通信メッセージは全て破棄する。
【図１】
2005103901.tif 000004
【図２】
2005103901.tif 000005
【図３】
2005103901.tif 000006
【図４】
2005103901.tif 000007
【図５】
2005103901.tif 000008
【図６】
2005103901.tif 000009
【図７】
2005103901.tif 000010
【図８】
2005103901.tif 000011
【図９】
2005103901.tif 000012
【図１０】
2005103901.tif 000013
【図１１】
2005103901.tif 000014
【図１２】
2005103901.tif 000015
【図１３】
2005103901.tif 000016
【図１４】
2005103901.tif 000017
【図１５】
2005103901.tif 000018
【図１６】
2005103901.tif 000019
【図１７】
2005103901.tif 000020
【図１８】
2005103901.tif 000021
【図１９】
2005103901.tif 000022
【図２０】
2005103901.tif 000023
【図２１】
2005103901.tif 000024
【国際調査報告】
2005103901.tif 000025
2005103901.tif 000026