JPWO2005103901A1 - コンピューター・システム - Google Patents
コンピューター・システム Download PDFInfo
- Publication number
- JPWO2005103901A1 JPWO2005103901A1 JP2006512502A JP2006512502A JPWO2005103901A1 JP WO2005103901 A1 JPWO2005103901 A1 JP WO2005103901A1 JP 2006512502 A JP2006512502 A JP 2006512502A JP 2006512502 A JP2006512502 A JP 2006512502A JP WO2005103901 A1 JPWO2005103901 A1 JP WO2005103901A1
- Authority
- JP
- Japan
- Prior art keywords
- primary
- location table
- key
- accelerator
- block
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】 コンピューター・システムの性能向上と耐障害性の向上にある。【解決手段】 ロケーション・テーブルや代替キー・ロケーション・テーブルのコピーをアクセラレーター・システムにおいて保持し、所謂、インデックス処理をアクセラレーター・システムにおいて実行することにより、負荷の分散化を行う。このコピーを、同報通信を用いることにより低負荷で実現する。アクセラレーター・システム1〜9とプライマリー・システム0の間大量の通信は、送信督促による上り通信を行うことにより円滑に行う。コンピューター・システム全体の性能向上を図る。【選択図】 図8
Description
本発明は、コンピューター・システムに関り、コンピューターの性能を向上させるものである。
従来のコンピューター・システムは、性能を向上させるため、単体のCPUの性能を向上させ、主記憶メモリーを大きくし、更に複数のCPUを搭載することにより、その処理能力を向上させてきた。しかしながら、単体CPUの性能向上は、処理量の増加に比べて緩やかで、どちらかといえば複数のCPUを搭載することによる性能向上が主体であった。特にUNIX(登録商標)系のサーバーでは、その傾向が顕著であった。ところが、主記憶やCPU、更には外部記憶装置の競合が発生して、リソースを増加させても、比例的には処理能力が増加しないものであった。特にコンピューターに搭載するCPUの数は、100個くらいになると、その制御に要する資源が増加してしまい、殆ど処理能力を向上させることができなくなっていた。また、コンピューターの能力を向上させる目的で、アプリケーション用のコンピューターとデータベース用のコンピューターに分離することも行われているが、データベースは一元化することが必要で、データベースがボトルネックになっていた。
本発明者は、従来の階層型インデックスに代えてロケーション・テーブルと代替キー・テーブルという概念を導入し、インデックスの処理に伴う複雑な処理を簡素化し、テーブル自体の検索をバイナリー・サーチなどの手法を用いることにより、高速化と、メンテナンスの容易性を確保できるようにした「データ格納検索方式(特許文献1〜2)」を発明した。更に、「データベースの再編成システム、並びに、データベース(以下、「データベース再編成システム」と呼ぶ)(特許文献3)」では、「データ検索格納方式」で提案したデータベースに対して、データベースを稼動させながら再編成が行える仕組を提案し、更に、代替キー・テーブルに対して代替キー・ロケーション・テーブルを付加することにより、効率的な再編成が可能となることを発明している。また、「データベースのアクセラレーター機能(以下、「アクセラレーター」と呼ぶ。)(特許文献4)」では、ロケーション・テーブルや代替キー・ロケーション・テーブルのコピーをアクセラレーター・システムが保持し、レコードを検索する際に、アクセラレーター・システムのロケーション・テーブルや代替キー・ロケーション・テーブルを使用することで、アクセスが並行処理できることを発明している。「データ格納検索システム(特許文献5)」では、プライマリー・ブロックからオーバーフロー・ブロック、オーバーフロー・ブロックからオーバーフロー・ブロックへの連結を、オーバーフロー・ブロック管理テーブルを用いて行う方式を発明している。「データ格納検索システム」では、代替キー・ブロックと代替キー・オーバーフロー・ブロックの連結、代替キー・オーバーフロー・ブロックと代替キー・オーバーフロー・ブロックの連結も同様に、代替キー・オーバーフロー・ブロック管理テーブルを用いて行う方式である。更に、「通信システム(特許文献6)」では、現在、通信の主流となっている衝突検出型通信が、通信量が多くなると衝突が増加し、通信量が急激に低下する問題に対して、リズム・ノードから送信督促メッセージを送信することを契機として上り通信を行うようにし、衝突しない仕組を発明している。
コンピューター・システムにおいて、その処理能力を向上する手段として、本発明者は、「アクセラレーター」を発明した。これは、従来ボトルネックとなっていたデータベース処理コンピューターの処理能力を向上させるものである。しかしながら、アクセラレーター・システムを実現するためには、ロケーション・テーブルと代替キー・ロケーション・テーブルのコピーを持つ必要があるが、「アクセラレーター」では、個別的にコピーする方法を示していたのみであった。その方法は、「本明細書では、変更情報送信機構、変更情報反映機構、通信路を通じて情報の送受信を行うような説明を行っているが、特別なハードウエアを作成することにより実現することも可能である。特定の番地の情報を変更する場合に、自動的に別の番地の情報を同じように書き換えるようにすることにより、プライマリー・システムのロケーション・テーブルと代替キー・ロケーション・テーブルが変更された場合に、アクセラレーター・システムのフランド・ロケーション・テーブルとフランド代替キー・ロケーション・テーブルを更新するような機構(同期更新機構)である。」という記述がされていた。
ここで記述されているような、ロケーション・テーブルや代替キー・ロケーション・テーブルを、低負荷でコピーする仕組を実現することは、「アクセラレーター」の性能向上ばかりでなく、コンピューター・システムの性能向上に役立つものである。また、アクセラレーター・システムとプライマリー・システム(データ・レコードに対する処理を行うシステム)の間の通信が大量に発生するが、この通信を円滑に行わないと、全体的な処理能力の向上は望めなくなってしまう。また、バックアップを効率的に行う方法も、コンピューター・システムを運用する上で重要な課題であるが、効率的にバックアップを行うと共に、そのバックアップ・システムを単にバックアップ・システムとして使用するのではなく、参照用のシステムとして使用することにより、コンピューター・システム全体の性能向上を図る。
本発明は、主キーを含むデータ項目を持つデータレコードと、データレコードを主キーの順に格納するプライマリー・ブロックと、各プライマリー・ブロックのアドレスが記載されたロケーション・テーブル・エントリーを連続領域に有するロケーション・テーブルとを保有するプライマリー・システムと、各プライマリー・ブロックのアドレスが記載されたフランド・ロケーション・テーブル・エントリーを連続領域に有するフランド・ロケーション・テーブルを保有するアクセラレーター・システムと、通信路とを備え、プライマリー・システムから変更情報を同報で送信し、アクセラレーター・システムで変更情報を受信することを契機として、所定の待ち時間後に、アクセラレーター・システムからプライマリー・システムに対する変更完了通知を送信することを特徴とする、コンピューター・システムにある。
本発明は、また、主キーを含むデータ項目を持つデータレコードと、データレコードを主キーの順に格納するプライマリー・ブロックと、各プライマリー・ブロックのアドレスが記載されたロケーション・テーブル・エントリーを連続領域に有するロケーション・テーブルとを保有するプライマリー・システムと、各プライマリー・ブロックのアドレスが記載されたフランド・ロケーション・テーブル・エントリーを連続領域に有するフランド・ロケーション・テーブルを保有するアクセラレーター・システムと、通信路とを備え、リズム・ノードが送信督促メッセージを同報で送信し、アクセラレーター・システムで送信督促メッセージを受信することを契機として、所定の待ち時間後に、アクセラレーター・システムからプライマリー・システムに対する送信を行うことを特徴とする、コンピューター・システムにある。
本発明は、また、主キーと代替キーを含むデータ項目を持つデータレコードと、代替キーと主キーからなる代替キー・エントリーと、代替キー・エントリーを含む代替キー・ブロックと、代替キー・ロケーション・テーブル・エントリーを連続領域に有する代替キー・ロケーション・テーブルを保有するプライマリー・システムと、フランド代替キー・ロケーション・テーブル・エントリーを連続領域に有するフランド代替キー・ロケーション・テーブルを保有するアクセラレーター・システムと、通信路とを備え、プライマリー・システムが代替キー・ロケーション・テーブルの変更情報を送信し、各アクセラレータ・システムは、代替キー・ロケーション・テーブルの変更情報を受信し、代替キー・フランド・ロケーション・テーブルを変更し、代替キー・ロケーション・テーブルの変更情報を受信することを契機として、所定の待ち時間後に、アクセラレーター・システムからプライマリー・システムに対する変更完了通知を送信することを特徴とする、コンピューター・システムにある。
本発明は、また、主キーと代替キーを含むデータ項目を持つデータレコードと、代替キーと主キーからなる代替キー・エントリーと、代替キー・エントリーを含む代替キー・ブロックと、代替キー・ロケーション・テーブル・エントリーを連続領域に有する代替キー・ロケーション・テーブルを保有するプライマリー・システムと、フランド代替キー・ロケーション・テーブル・エントリーを連続領域に有するフランド代替キー・ロケーション・テーブルを保有するアクセラレーター・システムと、通信路とを備え、リズム・ノードが送信督促メッセージを同報で送信し、アクセラレーター・システムで送信督促メッセージを受信することを契機として、所定の待ち時間後に、アクセラレーター・システムからプライマリー・システムに対する送信を行うことを特徴とする、コンピューター・システムにある。
本発明は、また、主キーを含むデータ項目を持つデータレコードと、データレコードを主キーの順に格納するプライマリー・ブロックと、各プライマリー・ブロックのアドレスが記載されたロケーション・テーブル・エントリーを連続領域に有するロケーション・テーブルとを保有するプライマリー・システムと、各プライマリー・ブロックのアドレスが記載されたフランド・ロケーション・テーブル・エントリーを連続領域に有するフランド・ロケーション・テーブルを保有する複数のアクセラレーター・システムと、通信路と、送信督促メッセージを送信するリズム・ノードとを備え、リズム・ノードは、各アクセラレーター・システムに送信督促メッセージを送信し、各アクセラレーター・システムは、送信督促メッセージを受信することを契機として、所定の待ち時間後に、プライマリー・システムに対する処理依頼を送信することを特徴とする、コンピューター・システムにある。
本発明は、また、主キーを含むデータ項目を持つデータレコードと、データレコードを主キーの順に格納するプライマリー・ブロックと、各プライマリー・ブロックのアドレスが記載されたロケーション・テーブル・エントリーを連続領域に有するロケーション・テーブルとを保有するプライマリー・システムと、各プライマリー・ブロックのアドレスが記載されたフランド・ロケーション・テーブル・エントリーを連続領域に有するフランド・ロケーション・テーブルを保有する複数のアクセラレーター・システムと、通信路と、送信督促メッセージを送信するリズム・ノードとを備え、リズム・ノードは、各アクセラレーター・システムに送信督促メッセージを送信し、各アクセラレーター・システムは、送信督促メッセージを受信することを契機として、所定の待ち時間後に、プライマリー・システムに対する処理依頼を送信することを特徴とする、コンピューター・システムにある。
0・・・プライマリー・システム(トニック・ノード)
01、02・・・セカンダリー・システム
1、2、3、4、5・・・アクセラレーター・システム(ドミナント・ノード)
6、7、8、9・・・アクセラレーター・システム(ドミナント・ノード)
10・・・ロケーション・テーブル
101・・・最終ポインター
11・・・プライマリー・ブロック
12・・・オーバーフロー・ブロック
15・・・オーバーフロー・ブロック管理テーブル
151・・・オーバーフロー・ブロック管理テーブル・ポインター
15A、15B、15C・・・代替キー・オーバーフロー・ブロック管理テーブル
15A1、15B1、15C1・・・代替キー・オーバーフロー・ブロック管理テーブル・ポインター
16・・・フランド・ロケーション・テーブル
161・・・フランド最終ポインター
16A1、16B1、16C1・・・フランド代替キー・テーブル最終ポインター
19・・・フランド・オーバーフロー・ブロック管理テーブル
19A、19B、19C・・・フランド代替キー・オーバーフロー・ブロック管理テーブル
19A1、19B1、19C1・・・フランド代替キー・オーバーフロー・ブロック・ポインター
20、21、22、23・・・リズム・ノード
41、42・・・通信路
431、432、433・・・支線通信路
441、442、443・・・支線通信路
49・・・スイッチ
50・・・中間通信装置
55、56、57・・・終段通信装置
61、64、65、66・・・通信路
641、642、643・・・通信路
71、74、75、76・・・通信路
741、742、743・・・通信路
110、120、130、140、150・・・ブロック・エレメント装置
160、170、180、190・・・ブロック・エレメント装置
111、121、131、141、151・・・プログラム
161、171、181、191・・・プログラム
112、122、132、142、152・・・ブロックまたは代替キー・ブロック
162、172、182、192・・・ブロックまたは代替キー・ブロック
200、210、220・・・テーブル・エレメント装置
201、211、221・・・プログラム
202、212、222・・・ロケーション・テーブルまたは代替キー・ブロック
300・・・通信処理装置
S1・・・送信督促
S2、S3、S4、S5・・・上り通信
S6、S7、S8、S9・・・下り通信
01、02・・・セカンダリー・システム
1、2、3、4、5・・・アクセラレーター・システム(ドミナント・ノード)
6、7、8、9・・・アクセラレーター・システム(ドミナント・ノード)
10・・・ロケーション・テーブル
101・・・最終ポインター
11・・・プライマリー・ブロック
12・・・オーバーフロー・ブロック
15・・・オーバーフロー・ブロック管理テーブル
151・・・オーバーフロー・ブロック管理テーブル・ポインター
15A、15B、15C・・・代替キー・オーバーフロー・ブロック管理テーブル
15A1、15B1、15C1・・・代替キー・オーバーフロー・ブロック管理テーブル・ポインター
16・・・フランド・ロケーション・テーブル
161・・・フランド最終ポインター
16A1、16B1、16C1・・・フランド代替キー・テーブル最終ポインター
19・・・フランド・オーバーフロー・ブロック管理テーブル
19A、19B、19C・・・フランド代替キー・オーバーフロー・ブロック管理テーブル
19A1、19B1、19C1・・・フランド代替キー・オーバーフロー・ブロック・ポインター
20、21、22、23・・・リズム・ノード
41、42・・・通信路
431、432、433・・・支線通信路
441、442、443・・・支線通信路
49・・・スイッチ
50・・・中間通信装置
55、56、57・・・終段通信装置
61、64、65、66・・・通信路
641、642、643・・・通信路
71、74、75、76・・・通信路
741、742、743・・・通信路
110、120、130、140、150・・・ブロック・エレメント装置
160、170、180、190・・・ブロック・エレメント装置
111、121、131、141、151・・・プログラム
161、171、181、191・・・プログラム
112、122、132、142、152・・・ブロックまたは代替キー・ブロック
162、172、182、192・・・ブロックまたは代替キー・ブロック
200、210、220・・・テーブル・エレメント装置
201、211、221・・・プログラム
202、212、222・・・ロケーション・テーブルまたは代替キー・ブロック
300・・・通信処理装置
S1・・・送信督促
S2、S3、S4、S5・・・上り通信
S6、S7、S8、S9・・・下り通信
[データ格納検索方式]
ここで、本発明者が発明したデータ格納検索方式の内容について簡単に説明しておくことにする。本発明のデータ格納検索方式は、ロケーション・テーブルと代替キー・テーブルを使用し、それらに対して、バイナリー・サーチを行うことにより、目的のレコードを検索するものである。データレコードはプライマリー・ブロックに、主キーの順に格納する。そのプライマリー・ブロックにデータレコードを追加する場合に、プライマリー・ブロックが満杯である場合に、オーバーフロー・ブロックを、そのプライマリー・ブロックに連結して、データレコードを格納する。オーバーフロー・ブロックに、更にオーバーフロー・ブロックを連結することが可能である。各プライマリー・ブロックのアドレスが記載されたロケーション・テーブル・レコード(または、ロケーション・テーブル・エントリー)を連続領域に有するロケーション・テーブルを有する。ロケーション・テーブルは連続した領域に予め確保する。ここで連続した領域とは、論理的な順序であり、物理的な領域では、離れていても良い。このような場合には、アドレス変換テーブルを用いて、論理的に連続していると扱うことができる。これは、以下の説明でも同様である。ロケーション・テーブルの使用領域の最後を示すために、最終ポインターを用いる。
ここで、本発明者が発明したデータ格納検索方式の内容について簡単に説明しておくことにする。本発明のデータ格納検索方式は、ロケーション・テーブルと代替キー・テーブルを使用し、それらに対して、バイナリー・サーチを行うことにより、目的のレコードを検索するものである。データレコードはプライマリー・ブロックに、主キーの順に格納する。そのプライマリー・ブロックにデータレコードを追加する場合に、プライマリー・ブロックが満杯である場合に、オーバーフロー・ブロックを、そのプライマリー・ブロックに連結して、データレコードを格納する。オーバーフロー・ブロックに、更にオーバーフロー・ブロックを連結することが可能である。各プライマリー・ブロックのアドレスが記載されたロケーション・テーブル・レコード(または、ロケーション・テーブル・エントリー)を連続領域に有するロケーション・テーブルを有する。ロケーション・テーブルは連続した領域に予め確保する。ここで連続した領域とは、論理的な順序であり、物理的な領域では、離れていても良い。このような場合には、アドレス変換テーブルを用いて、論理的に連続していると扱うことができる。これは、以下の説明でも同様である。ロケーション・テーブルの使用領域の最後を示すために、最終ポインターを用いる。
レコードはブロックと言う固定長の格納領域に格納する。ブロックは、プライマリー・ブロックとオーバーフロー・ブロックからなる。最後のプライマリー・ブロックにレコードが追加できない場合は、その後にプライマリー・ブロックを追加して、レコードの格納を行う。
ここで、連結とは、物理的に連結されていることを意味するのではなく、プライマリー・ブロックが一番目のオーバーフロー・ブロックのアドレスを保持し、1番目のオーバーフロー・ブロックが2番目のオーバーフロー・ブロックのアドレスを保持している状態が、あたかも物理的にブロックが繋がれているように扱えることから、そのような表現を使用している(以下、同様である)。このように格納するので、ロケーション・テーブル・エントリーは、主キーの順番に並んでいる。主キーによる検索は、ロケーション・テーブルの最初のアドレスと最終ポインターが指しているロケーション・テーブル・エントリーの間に対して、バイナリー・サーチを行うことにより、ブロックを見つけ、そのブロック内で目的のレコードを見つける。当該ブロックにオーバーフロー・ブロックが連結されている場合は、オーバーフロー・ブロックも検索の対象となる。ここでは、検索に関して述べているが、レコードの更新、追加、削除も同様のロジックで実現できる。
代替キー値と主キー値からなる代替キー・レコード(または代替キー・エントリー)は、代替キー・ブロックに代替キー値の順番に格納する。その代替キー・ブロックに代替キー・エントリーを追加する場合に、その代替キー・ブロックが満杯である場合に、代替キー・オーバーフロー・ブロックを代替キー・ブロックに連結して、代替キー・エントリーを格納する。代替キー・オーバーフロー・ブロックに、更に代替キー・オーバーフロー・ブロックを連結することが可能である。各代替キー・ブロックのアドレスが記載された代替キー・ロケーション・テーブル・レコード(または、代替キー・ロケーション・テーブル・エントリー)を連続領域に有する代替キー・ロケーション・テーブルを有する。代替キー・ロケーション・テーブルは連続した領域に予め確保する。代替キー・ロケーション・テーブルの使用領域の最後を示すために、代替キー最終ポインターを用いる。代替キー・エントリーの追加で、既存の代替キー・エントリーの代替キー値より大きい代替キー値を持つ代替キー・エントリーは、最後の代替キー・ブロックに格納し、その代替キー・ブロックに格納できない場合には新たに代替キー・ブロックを作成し、その代替キー・ブロックに当該レコードを格納する。代替キー・ロケーション・テーブルと代替キー・ブロックを組にして、代替キー・テーブルと呼ぶ。
代替キーは、データベースにおけるノンユニークなキーのことで、例えば、従業員データベースにおける、氏名や生年月日などのことである。代替キーは、或る種類のデータベースに対して、無くても良いし、複数あっても構わない。或る代替キーを持ったレコードを検索する方法は、代替キー・ロケーション・テーブルの最初のエントリーと、代替キー最終ポインターが指している代替キー・ロケーション・テーブル・エントリーの間をバイナリー・サーチし、目的の代替キー・ブロックを見つけ、その代替キー・ブロックの中を検索して、目的の代替キーを持つ代替キー・エントリーを見つける。その代替キー・ブロックに代替キー・オーバーフロー・ブロックが連結されている場合には、代替キー・オーバーフロー・ブロックも検索の対象となる。次に、その代替キー・エントリーの主キーによって、ロケーション・テーブルをバイナリー・サーチし、目的のブロックを見つけ、そのブロック内から目的のレコードを見つけ出す。当該ブロックにオーバーフロー・ブロックが連結されている場合は、オーバーフロー・ブロックも検索の対象となる。尚、代替キーはノンユニークであるので、同一の代替キー値を持ったレコードが複数存在する可能性がある。この場合は、代替キー・ブロック中の次の代替キー・レコードが同一の代替キー値である場合には、上記と同様な動作を繰り返す。ここでは、検索に関して述べているが、レコードの更新、追加、削除も同様のロジックで実現できる。また、複数の代替キーが存在する場合には、代替キーの種類と同じ数の代替キー・テーブルを作成し、使用することになる。以上で、「データ格納検索方式」の説明を終わる。
[レコード]
レコードとは、必ず1つのユニークな主キーとゼロ個若しくは1個以上のノンユニークなキー(代替キー。結果的にユニークであっても問題はない)を持つ。この他に、キーとはならない項目(列)を持つことができる。主キーは、例えば従業員データベースの場合、従業員コードなど従業員を識別できるコードであり、代替キーは、氏名や生年月日などであり、データベースによっては、無くても良いし、複数あっても構わない。また、意味を持った主キーとなるべき項目存在しないレコードに関しては、格納順の連番などを付与して、それを主キーとしても良い。項目(列)は、情報の単位であり、キーとなるものとキーとならないものがある。レコード中に1つ以上存在する。列は、固定長形式でも良いが、可変長形式とすることも可能である。可変長形式の場合は、列情報が存在しない列も、列として認識することが可能である。
レコードとは、必ず1つのユニークな主キーとゼロ個若しくは1個以上のノンユニークなキー(代替キー。結果的にユニークであっても問題はない)を持つ。この他に、キーとはならない項目(列)を持つことができる。主キーは、例えば従業員データベースの場合、従業員コードなど従業員を識別できるコードであり、代替キーは、氏名や生年月日などであり、データベースによっては、無くても良いし、複数あっても構わない。また、意味を持った主キーとなるべき項目存在しないレコードに関しては、格納順の連番などを付与して、それを主キーとしても良い。項目(列)は、情報の単位であり、キーとなるものとキーとならないものがある。レコード中に1つ以上存在する。列は、固定長形式でも良いが、可変長形式とすることも可能である。可変長形式の場合は、列情報が存在しない列も、列として認識することが可能である。
データベース・システムでは、一般的にサブスキーマとスキーマという表現が用いられるが、本明細書では、特に拘らずに説明を行う。本明細書の説明で「データベースに対する列追加」や「データベースに対するアクセス」というような表現は、特定の種類のデータベース・ファイル(例えば、従業員ファイル)に対する操作を表しており、データベース・システムに格納されているデータベース・ファイル全体に対するものでは無い。また、特定の種類のデータベース・ファイルが、複数のデータベース・ファイルから構成されている場合には、各々のデータベース・ファイルに対してもデータベースという表現を使用している。
図1は、「データ格納検索方式」で、発明したデータベースの仕組である。ここでは、オーバーフロー・ブロックと代替キー・オーバーフロー・ブロックが省略されている。図2は、「データ格納検索システム」で、図1のデータベースに対して、オーバーフロー・ブロック管理テーブルを用いて、オーバーフロー・ブロックと代替キー・オーバーフロー・ブロックの管理を行う仕組を図示したものである。
[アクセラレーター・システムの原理]
アクセラレーターとは、文字通り加速器のことである。従来のデータベース・システムでは、データベースの処理能力を向上させる方法が、極めて限定的であった。これに対して、事実上、無制限にデータベースの処理能力を向上させることが可能になる、というものである。アクセラレーター・システムの原理は次のようなものである。ロケーション・テーブルや代替キー・ロケーションテーブルに対して、バイナリー・サーチを行って目的のレコードを含むプライマリー・ブロックとそれに連結されているオーバーフロー・ブロックを見つける。更に、その中からレコードを見つける。ロケーション・テーブルに対してバイナリー・サーチを行う際には、二分割点を幾度も探すことになり、この回数は、ブロック内でレコードを探すための回数よりも多くなることが一般的である。また、同時に複数のプロセスから、同じブロック内のレコードを要求する可能性は相当に低いものである。よって、ロケーション・テーブルと代替キー・ロケーションテーブルのコピーを複数保有し、各々に対して並行してバイナリー・サーチが行えるようにすれば、レコードに対するアクセス要求を数多く実行することが可能となる。図3が、「アクセラレーター」の原理を図示したものである。図4は、アクセラレーター・システムの基本構成に関して、オーバーフロー・ブロック管理テーブルを用いない方法の場合を図示したものである。図5は、アクセラレーター・システムの基本構成に関して、オーバーフロー・ブロック管理テーブルを用いた方法の場合を図示したものである。
アクセラレーターとは、文字通り加速器のことである。従来のデータベース・システムでは、データベースの処理能力を向上させる方法が、極めて限定的であった。これに対して、事実上、無制限にデータベースの処理能力を向上させることが可能になる、というものである。アクセラレーター・システムの原理は次のようなものである。ロケーション・テーブルや代替キー・ロケーションテーブルに対して、バイナリー・サーチを行って目的のレコードを含むプライマリー・ブロックとそれに連結されているオーバーフロー・ブロックを見つける。更に、その中からレコードを見つける。ロケーション・テーブルに対してバイナリー・サーチを行う際には、二分割点を幾度も探すことになり、この回数は、ブロック内でレコードを探すための回数よりも多くなることが一般的である。また、同時に複数のプロセスから、同じブロック内のレコードを要求する可能性は相当に低いものである。よって、ロケーション・テーブルと代替キー・ロケーションテーブルのコピーを複数保有し、各々に対して並行してバイナリー・サーチが行えるようにすれば、レコードに対するアクセス要求を数多く実行することが可能となる。図3が、「アクセラレーター」の原理を図示したものである。図4は、アクセラレーター・システムの基本構成に関して、オーバーフロー・ブロック管理テーブルを用いない方法の場合を図示したものである。図5は、アクセラレーター・システムの基本構成に関して、オーバーフロー・ブロック管理テーブルを用いた方法の場合を図示したものである。
プライマリー・システムとは、プライマリー・ブロックとオーバーフロー・ブロック、代替キー・ブロックと代替キー・オーバーフロー・ブロックを持ち、レコードの追加・更新・削除を行うシステムのことである。これに対してアクセラレーター・システムとは、フランド・ロケーション・テーブルとフランド代替キー・ロケーション・テーブルを保有し、それらに対してバイナリー・サーチを行う。目的のプライマリー・ブロックとそれに連結するオーバーフロー・ブロック、代替キー・ブロックとそれに連結する代替キー・オーバーフロー・ブロックを見つけた後は、プライマリー・システム上の、プライマリー・ブロックとそれに連結するオーバーフロー・ブロック、代替キー・ブロックとそれに連結する代替キー・オーバーフロー・ブロックに対して操作を行う。
図4では、アクセラレーター・システムが1つの場合を示している。アクセラレーター・システムでは、ロケーション・テーブル(フランド・ロケーションテーブル)、代替キー・ロケーションテーブル(フランド・代替キー・ロケーションテーブル)を保有しているが、プライマリー・ブロック、オーバーフロー・ブロック、代替キー・ブロック、代替キー・オーバーフロー・ブロックは保有していない。アクセラレーター・システムのフランド・ロケーションテーブルは、プライマリー・システムのロケーション・テーブルと機能的に同等のものである。同様にアクセラレーター・システムのフランド・代替キー・ロケーションテーブルは、プライマリー・システムの代替キー・ロケーション・テーブルと機能的に同等なものである。アクセラレーター・システムのフランド・ロケーション・テーブルの各レコードは、プライマリー・システムの各ロケーション・テーブル・レコードと同じブロックを指している。
[アクセラレーター・システムでのアクセス]
アクセラレーター・システムでは、アクセス要求があると、主キーの場合はフランド・ロケーションテーブルに対してバイナリー・サーチを行い、目的のブロックを探し、そのブロック内のレコード検索をプライマリー・システムに依頼する。代替キーの場合は、フランド・代替キー・ロケーションテーブルのバイナリー・サーチを行い、目的のブロックを見つけ、プライマリー・システムが保持している代替キー・ブロックから目的の代替キー・レコードを見つけ、その代替キー・レコードによって、フランド・ロケーションテーブルのバイナリー・サーチを行って目的のレコードを見つける。ここでは検索の方法を述べたが、この方法を適用することで、レコードの更新、追加、削除が行える。また、代替キーの場合に、代替キー・レコードに基づいてフランド・ロケーションテーブルのバイナリー・サーチを行う、としたが、代替キー・レコードに、ブロックのアドレスやブロック番号を保持している場合には不要である。このようにして、複数のアクセラレーター・システムで並行してレコードの検索や更新を行うことにより、処理量を増加させることが可能となる。
アクセラレーター・システムでは、アクセス要求があると、主キーの場合はフランド・ロケーションテーブルに対してバイナリー・サーチを行い、目的のブロックを探し、そのブロック内のレコード検索をプライマリー・システムに依頼する。代替キーの場合は、フランド・代替キー・ロケーションテーブルのバイナリー・サーチを行い、目的のブロックを見つけ、プライマリー・システムが保持している代替キー・ブロックから目的の代替キー・レコードを見つけ、その代替キー・レコードによって、フランド・ロケーションテーブルのバイナリー・サーチを行って目的のレコードを見つける。ここでは検索の方法を述べたが、この方法を適用することで、レコードの更新、追加、削除が行える。また、代替キーの場合に、代替キー・レコードに基づいてフランド・ロケーションテーブルのバイナリー・サーチを行う、としたが、代替キー・レコードに、ブロックのアドレスやブロック番号を保持している場合には不要である。このようにして、複数のアクセラレーター・システムで並行してレコードの検索や更新を行うことにより、処理量を増加させることが可能となる。
図4では、アクセラレーター・システムはロケーション・テーブル1つと代替キー・ロケーション・テーブル3種を保持しており、プライマリー・システムと同じ数となっている。これを、「アクセラレーター」では対称システムと呼んでいる。これに対して、例えば、ロケーション・テーブルと代替キー・ロケーションテーブルを2種類のみ保持しているようなアクセラレーター・システムを想定しており、ロケーション・テーブルのみ、代替キー・ロケーションテーブルのみ、といったアクセラレーター・システムを作成することが可能である。これを非対称システムと呼んでいる。アクセラレーター・システムに関しても、プライマリー・ブロックとオーバーフロー・ブロック、代替キー・ブロックと代替キー・オーバーフロー・ブロックに関して、ほぼ同様に扱うことができる。
図5は、上記の説明のアクセラレーター・システムに、オーバーフロー・ブロック管理テーブルを追加した場合の例である。
[プライマリー・システムとアクセラレーター・システムの情報同期]
次に、「アクセラレーター」を用いたシステムで、プライマリー・システムとアクセラレーター・システムの情報を同期させる方法に関して図4と図5を用いて説明する。プライマリー・システムでは、ロケーション・テーブル10、代替キー・ロケーションテーブル10A、10B、10Cを持っている。更に、最終ポインター(101、10A1、10B1、10C1)を持っている。データベースがオーバーフロー・ブロック管理テーブルを用いた形式である場合(図5の場合)には、オーバーフロー・ブロック管理テーブル15、代替キー・オーバーフロー・ブロック管理テーブル15A、15B、15C、を持つ。また、オーバーフロー・ブロック管理テーブルには、オーバーフロー・ブロック管理テーブル・ポインター151を設け、代替キー・オーバーフロー・ブロック管理テーブル15Aに対して、代替キー・オーバーフロー・ブロック管理テーブル・ポインター15A1を設け、同様に、代替キー・オーバーフロー・ブロック管理テーブル・ポインター15B1、15C1を設けている。
次に、「アクセラレーター」を用いたシステムで、プライマリー・システムとアクセラレーター・システムの情報を同期させる方法に関して図4と図5を用いて説明する。プライマリー・システムでは、ロケーション・テーブル10、代替キー・ロケーションテーブル10A、10B、10Cを持っている。更に、最終ポインター(101、10A1、10B1、10C1)を持っている。データベースがオーバーフロー・ブロック管理テーブルを用いた形式である場合(図5の場合)には、オーバーフロー・ブロック管理テーブル15、代替キー・オーバーフロー・ブロック管理テーブル15A、15B、15C、を持つ。また、オーバーフロー・ブロック管理テーブルには、オーバーフロー・ブロック管理テーブル・ポインター151を設け、代替キー・オーバーフロー・ブロック管理テーブル15Aに対して、代替キー・オーバーフロー・ブロック管理テーブル・ポインター15A1を設け、同様に、代替キー・オーバーフロー・ブロック管理テーブル・ポインター15B1、15C1を設けている。
アクセラレーター・システム3では、フランド・ロケーションテーブル16、フランド代替キー・ロケーションテーブル(16A、16B、16C)、更に、最終ポインター(161、16A1、16B1、16C1)を持っている。データベースが、オーバーフロー・ブロック管理テーブルを用いたデータベース形式である場合には、フランド・オーバーフロー・ブロック管理テーブル19、フランド代替キー・オーバーフロー・ブロック管理テーブル19A、19B、19Cを設ける。19A、19B、19Cの各フランド代替キー・オーバーフロー・ブロック管理テーブルに対して、それぞれフランド代替キー・オーバーフロー・ブロック管理テーブル・ポインター19A1、19B1、19C1を設ける。
アクセラレーター・システムでは、プライマリー・システムで、ロケーション・テーブルまたは代替キー・ロケーションテーブルに変更が発生した場合に、アクセラレーター・システムに対して、その変更を通知し、アクセラレーター・システムでは、当該フランド・ロケーションテーブルまたはフランド代替キー・ロケーションテーブルの変更を行う。プライマリー・システムで、ロケーション・テーブル10、最終ポインター101、代替キー・ロケーションテーブル(10A、10B、10C)、代替キー・ロケーションテーブルの最終ポインター(10A1、10B1、10C1)、の何れかに変更が発生した場合に、その変更部分をアクセラレーター・システムに通知する。アクセラレーター・システムでは、その通知に基づいて、当該フランド・ロケーションテーブル16、フランド代替キー・ロケーションテーブル(16A、16B、16C)、フランド代替キー・ロケーション・テーブルの最終ポインター(16A1、16B1、16C1)、の何れかに対して、当該変更部分の変更を行う。
また、データベースがオーバーフロー・ブロック管理テーブルを用いている場合には、上記に加えて、プライマリー・システムで、オーバーフロー・ブロック管理テーブル15、オーバーフロー・ブロック管理テーブル・ポインター151、代替キー・オーバーフロー・ブロック管理テーブル(15A、15B、15C)、代替キー・オーバーフロー・ブロック管理テーブル・最終ポインター(15A1、15B1、15C1)に変更が発生した場合には、アクセラレーター・システムにその変更を通知し、アクセラレーター・システムでは、当該フランド・オーバーフロー・ブロック管理テーブル19、フランド最終ポインター161、フランド・オーバーフロー・ブロック管理テーブル・ポインター191、フランド代替キー・オーバーフロー・ブロック管理テーブル(19A、19B、19C)、フランド代替キー・オーバーフロー・ブロック管理テーブル・最終ポインター(19A1、19B1、19C1)の何れかに対して、当該部分の変更を行う。
このように、プライマリー・システムから変更部分をアクセラレーター・システムに通知し、アクセラレーター・システムで直ちにその変更を適用することにより、アクセラレーター・システムの、フランド・ロケーションテーブル16、フランド・オーバーフロー・ブロック管理テーブル19、フランド最終ポインター161、フランド・オーバーフロー・ブロック管理テーブル・最終ポインター191、フランド代替キー・ロケーションテーブル(16A、16B、16C)、フランド代替キー・ロケーションテーブルの最終ポインター(16A1、16B1、16C1)、フランド代替キー・オーバーフロー・ブロック管理テーブル(19A、19B、19C)、フランド代替キー・オーバーフロー・ブロック管理テーブル・最終ポインター(19A1、19B1、19C1)は、プライマリー・システムと同等に保たれる。アクセラレーター・システムでは、当該個所の変更が完了すると、変更完了通知をプライマリー・システムに対して送信する。プライマリー・システムでは、すべてのアクセラレーター・システムからの変更完了通知が到着するまで、当該部分の排他待ちを行う。
以上で、基本的な場合のアクセラレーター・システムへの適用に関して説明を行ったが、「データベース・システム」で直接列追加や直接列削除、直接列変更の場合には、更に、次の条件が加わる。プライマリー・システムでは、上記の条件の他に、現用ロケーション・テーブル用の列操作ポインター、列操作完了ポインターと、新規ロケーション・テーブル、新規列操作ポインターが増加する。これに対応するために、アクセラレーター・システムでは、フランド現用ロケーション・テーブル用の列操作ポインター(フランド列操作ポインター)、フランド列操作完了ポインター、フランド新規ロケーション・テーブル、フランド新規列操作ポインターを追加する。データベースが、オーバーフロー・ブロック管理テーブルを使用した形式である場合には、新規ロケーション・テーブルに新規オーバーフロー・ブロック管理テーブルと、新規オーバーフロー・ブロック管理テーブル・ポインターが追加される。プライマリー・システムで上記要素に変更があった場合には、アクセラレーター・システムにその変更を通知し、アクセラレーター・システムでは、当該個所の変更を行う。この他に、再編成を行う場合には、新規ロケーション・テーブルと新規代替キー・ロケーション・テーブル、各々の最終ポインターが更に加わる。
アクセラレーター・システムでのアクセスは、ブロックへのアクセスがプライマリー・システムに変わるだけで、その他は、前述の列追加・削除・変更での説明と、アクセラレーター・システムで説明した方法を組み合わせることで実現できる。
上記では、アクセラレーター・システムの対称システムを想定した説明を行ったが、非対称システムの場合には、プライマリー・システムで変更があった部分を保持するアクセラレーター・システムのみが、その変更を受け取り更新することになる。以上は、「本発明者による、「データベース・システム」からの引用を用いて説明を行った。
[通信システム]
次に、「通信システム」に関して簡単に説明しておく。現在の通信の主流は衝突検出型である。これは、通信路に接続されたノード(一般的には通信装置も含むが、ここではパソコンやサーバーなどのコンピューターを対象とし、通信装置を除く)が、勝手なタイミングで情報の送信を行い、もし、2つ以上のノードがほぼ同時に送信を行った場合は、衝突を検出し、その情報はキャンセルして、再度、ノードからの送信を行う、という方式である。再送信は、衝突が発生しないように、お互いのタイミングをずらすようにしているが、通信路の通信量が増加すると、加速度的に衝突が発生する仕組となっていた。
次に、「通信システム」に関して簡単に説明しておく。現在の通信の主流は衝突検出型である。これは、通信路に接続されたノード(一般的には通信装置も含むが、ここではパソコンやサーバーなどのコンピューターを対象とし、通信装置を除く)が、勝手なタイミングで情報の送信を行い、もし、2つ以上のノードがほぼ同時に送信を行った場合は、衝突を検出し、その情報はキャンセルして、再度、ノードからの送信を行う、という方式である。再送信は、衝突が発生しないように、お互いのタイミングをずらすようにしているが、通信路の通信量が増加すると、加速度的に衝突が発生する仕組となっていた。
これに対して、「通信システム」では、ノードを、トニック・ノードとドミナント・ノードに分類し、ホスト・コンピューターやサーバーなどは基本的にトニック・ノードとする。また、通信の方向を、トニック・ノードからドミナント・ノード(下り通信)、ドミナント・ノードからトニック・ノード(上り通信)に分離する。更に、上り通信の衝突を避けるために、リズム・ノードから送信督促メッセージを、各ドミナント・ノードに対して同報で送信し、各ドミナント・ノードでは、送信督促を受診後、所定の待ち時間経過後に上り通信を行う。この所定の待ち時間は、各ドミナント・ノードが通信順序番号を持ち、その通信順序番号に従って、通信路の速度、通信路の距離、通信メッセージの長さに従って定量的に定められたものである。通信順序番号nのノードは、通信順序番号n−1のノードの送信が終了すると同時に送信を行うことになる(厳密には通信路の長さによってタイミングが異なる)。所定の待ち時間の計算式は、「通信システム」に、詳細に記載されているが、次のようなものである。
送信メッセージ長をL(バイト)、通信路の伝送速度をS(ビット/秒)とする。これに対し、待ち時間をT(ナノ秒)とする。通信路(62、63、64、72、73、74)の長さは、通信路の長さ(62)=通信路の長さ(72)、通信路の長さ(63)=通信路の長さ(73)、通信路の長さ(64)=通信路の長さ(74)、であるとする。また、通信路の長さ(62)=通信路の長さ(63)=通信路の長さ(64)であるとする。まず、通信路(621、622、623)の長さが同じである場合を考える。この各々の長さを、D(メートル)とする。また、通信路の長さ(62)=通信路の長さ(63)=通信路の長さ(64)であるとする。アクセラレーター・システム1、2、3の順番で、上り通信を行うとする。すると、アクセラレーター・システム1が送信をし終わった瞬間(T1)には、送信情報の終端は、通信路621がアクセラレーター・システム1に接続している部分を通過している。T1の時点でアクセラレーター・システム2から送信メッセージを送信すれば、アクセラレーター・システム1からの送信メッセージと衝突することはなくなる。アクセラレーター・システムnの待ち時間Tnは、次の式1で表される。
この他の、通信路の長さが異なる場合に関しては、「通信システム」に記載してある。
下り通信は、リズム・ノードからトニック・ノードに通信権を割り当てて、通信権を持っているトニック・ノードから下り通信を行う。さらには、通信路を上り用と下り用に分離すると、更に効率的な通信が行える、というものである。
通信路の長さが等しい場合の、送信督促と上り通信のタイム・チャートを表したのが図6である。この図では、トニック・ノード内にリズム・ノードが内蔵されている場合となっている。ドミナント・ノードの数は4つである。トニック・ノードと各ドミナント・ノードの距離は等しいものとする。リズム・ノード0(トニック・ノード)から送信督促を送信する(S1)。通信路の長さが等しいので、各ドミナント・ノード(1、2、3、4)には、送信督促が同時に届く。ドミナント・ノード1は、直ちに上り通信を行う。ドミナント・ノード2、3、4は所定の待ち時間後に上り通信を行う。上り通信の1サイクルが終了したら、トニック・ノードから下り通信を行う。この図では、ドミナント・ノード3に対するくだり通信までの図となっている。
[高性能コンピューターの実現手段]
アクセラレーター・システムを使用することにより、高性能なコンピューター・システムを実現することが可能となる。従来のコンピューター・システムではCPUや主記憶を大量に搭載することにより高性能化を図っていた。しかしながら、背景技術で説明したように、それらを大量に搭載しても、それをコントロールするための負荷が増大するため、処理能力を増大させることが困難になっていた。アクセラレーター・システムを搭載したコンピューター・システムとすることで、コンピューターの処理性能を飛躍的に増大させることが可能となる。プライマリー・システムとアクセラレーター・システムを1つの筐体に収めた形態でも良いし、各々は独立しており、それを接続する形態でも良い。しかしながら、高性能を発揮するためには、単に1つの筐体に収めるとか、接続するといった方法のみでは不十分である。
アクセラレーター・システムを使用することにより、高性能なコンピューター・システムを実現することが可能となる。従来のコンピューター・システムではCPUや主記憶を大量に搭載することにより高性能化を図っていた。しかしながら、背景技術で説明したように、それらを大量に搭載しても、それをコントロールするための負荷が増大するため、処理能力を増大させることが困難になっていた。アクセラレーター・システムを搭載したコンピューター・システムとすることで、コンピューターの処理性能を飛躍的に増大させることが可能となる。プライマリー・システムとアクセラレーター・システムを1つの筐体に収めた形態でも良いし、各々は独立しており、それを接続する形態でも良い。しかしながら、高性能を発揮するためには、単に1つの筐体に収めるとか、接続するといった方法のみでは不十分である。
「アクセラレーター」では、プライマリー・システムの変更情報を通知する方法として、プライマリー・システムから各アクセラレーター・システムに対して個別に情報を送信する方法を示していた他、「本明細書では、変更情報送信機構、変更情報反映機構、通信機構を通じて情報の送受信を行うような説明を行っているが、特別なハードウエアを作成することにより実現することも可能である。特定の番地の情報を変更する場合に、自動的に別の番地の情報を同じように書き換えるようにすることにより、プライマリー・システムのロケーション・テーブルと代替キー・ロケーション・テーブルが変更された場合に、アクセラレーター・システムのフランド・ロケーション・テーブルとフランド代替キー・ロケーション・テーブルを更新するような機構(同期更新機構)である。」という記述がされているのみで、具体的な実現手段は明確ではなかった。更に、各アクセラレーター・システムから、プライマリー・システムへの通信が大量に発生する仕組となっているが、この通信を円滑に行う実現手段も明確ではなかった。
図7は、「通信システム」の代表的な構成である。ノード0(0)は、トニック・ノードであり、リズム・ノード20を内蔵している。ノード1、2、3、・・・、9はドミナント・ノードである。両者は中間通信装置50と終段通信装置55、56、57を介して、通信路によって接続されている。通信路は、上り通信用と下り通信用に分離されている。この仕組を「アクセラレーター」に適用したのが、図8である。トニック・ノードがプライマリー・システム0となり、ドミナント・ノードがアクセラレーター・システム(1、2、3、・・・・、9)となる。
[変更情報送信]
このような構成を採った場合に、「アクセラレーター」の実現手段がどのようになるかを図8を用いて説明する。この図で通信路(61、64、65、66、641等、71、74、75、76、741等)、および通信装置は、シリアル伝送でもパラレル伝送であってもよい。また、通信路は図8では、例えば61と71というように上り通信用と下り通信用に2つの通信路を用いるようになっているが、通信路61と71を1本の通信路にし、上り方向と下り方向の通信を、時分割によって実現する方法もある。このような時分割による通信を示したのが、図9のタイム・チャートである。通信路を上り用と下り用に2本使用する場合には、上りと下りの通信を同時に並行して行うことが可能である。以下の説明で、プライマリー・システムからアクセラレーター・システムへの通信を下り通信、アクセラレーター・システムからプライマリー・システムへの通信を上り通信と呼ぶことにする。まず、上り通信と下り通信の種類を説明する。プライマリー・システムで何らかの変更があり、その変更がアクセラレーター・システムに関係するものである場合、プライマリー・システムは下り通信として、アクセラレーター・システムにその情報を送信する(変更情報の送信)。この変更情報に対して、各アクセラレーター・システムでは、変更の適用を行い変更が完了したら変更完了通知をプライマリー・システムに対して上り通信として送信する(変更完了通知の送信)。この他に、アクセラレーター・システムでは、アプリケーション・コンピューターからの依頼に基づき、ロケーション・テーブルや代替キー・ロケーション・テーブルの検索を行い、その検索結果に基づきブロックや代替キー・ブロックの検索をプライマリー・システムに依頼する(処理依頼の送信)。プライマリー・システムでは、アクセラレーター・システムからの依頼に基づきブロックや代替キー・ブロックの内容や変更結果の通知を下り通信として送信する(処理結果の送信)。
このような構成を採った場合に、「アクセラレーター」の実現手段がどのようになるかを図8を用いて説明する。この図で通信路(61、64、65、66、641等、71、74、75、76、741等)、および通信装置は、シリアル伝送でもパラレル伝送であってもよい。また、通信路は図8では、例えば61と71というように上り通信用と下り通信用に2つの通信路を用いるようになっているが、通信路61と71を1本の通信路にし、上り方向と下り方向の通信を、時分割によって実現する方法もある。このような時分割による通信を示したのが、図9のタイム・チャートである。通信路を上り用と下り用に2本使用する場合には、上りと下りの通信を同時に並行して行うことが可能である。以下の説明で、プライマリー・システムからアクセラレーター・システムへの通信を下り通信、アクセラレーター・システムからプライマリー・システムへの通信を上り通信と呼ぶことにする。まず、上り通信と下り通信の種類を説明する。プライマリー・システムで何らかの変更があり、その変更がアクセラレーター・システムに関係するものである場合、プライマリー・システムは下り通信として、アクセラレーター・システムにその情報を送信する(変更情報の送信)。この変更情報に対して、各アクセラレーター・システムでは、変更の適用を行い変更が完了したら変更完了通知をプライマリー・システムに対して上り通信として送信する(変更完了通知の送信)。この他に、アクセラレーター・システムでは、アプリケーション・コンピューターからの依頼に基づき、ロケーション・テーブルや代替キー・ロケーション・テーブルの検索を行い、その検索結果に基づきブロックや代替キー・ブロックの検索をプライマリー・システムに依頼する(処理依頼の送信)。プライマリー・システムでは、アクセラレーター・システムからの依頼に基づきブロックや代替キー・ブロックの内容や変更結果の通知を下り通信として送信する(処理結果の送信)。
ここで、変更情報の送信を効率的に行う方法を説明する。アクセラレーター・システムが1つとか、数台の場合には、各アクセラレーター・システムに対して、個別に変更情報を送信しても特段の問題が発生するとは考えられないが、アクセラレーター・システムの数が増加すると、変更情報の送信に要する時間が増大し、他の下り通信が行えなくなってしまう可能性がある。このような事態を避けるためには、変更情報の送信を、アクセラレーター・システムに対して同報で送信する。プライマリー・システムでの変更は、対称システムの場合には、すべてのアクセラレーター・システムに送信する必要があるので、同報通信を用いるのは非常に効率的である。このように変更情報の送信に同報を用いた場合のタイム・チャートが図9である。ここでも、プライマリー・システムの中にリズム・ノードを内蔵している場合となっている。変更情報をプライマリー・システムから同報で送信した後に、リズム・ノードから送信督促メッセージを同報で、アクセラレーター・システム(1、2、3、4)へ送信している(S1)。また、変更情報は送信督促メッセージを兼用することも可能である。この場合、リズム・ノードとプライマリー・システムの関係は、リズム・ノードが、上り通信の1サイクルが終了した時点で、プライマリー・システムに対して、変更情報送信の通信権を与える、ということになり、通常の下り通信とは分離する必要がある。各アクセラレーター・システムでは、変更情報を受信後、直ちに更新処理を行う。その後、アクセラレーター・システム2、3、4は所定の待ち時間をとった後に更新完了通知をプライマリー・システムに対して送信する(S2、S3、S4、S5)。図9では、各アクセラレーター・システムが同等の性能を有している(更新処理に要する時間が等しい)場合に関してのタイミングを示している。
[変更情報の内容]
変更情報の内容に関して、詳細な説明を行う。図10は変更情報の一例である。変更情報の内容として、宛先アドレス80、送信元アドレス81、連番82、変更対象83、変更対象番地84、変更する長さ85、変更後内容86、といった情報を含んでいる。宛先アドレス80は、その情報を受信するべきノードのアドレスである。この場合は、変更情報で同報なので、アクセラレーター・システムのグループIDが宛先アドレスとなる。送信元アドレス81は、プライマリー・システムのアドレスになる。連番82というのは、複数の変更通知が送信され、また、変更完了通知をプライマリー・システムで受信する際に、異なった情報を区別するためのもので、変更情報で使用された連番を、変更完了通知の連番に入れてアクセラレーター・システムからプライマリー・システムに送信することにより、どの変更情報に対する変更完了通知であるかを識別するもので、情報通信で一般的に用いられている方法である。変更対象83は、ロケーション・テーブルなのか、複数の代替キー・ロケーション・テーブルの何れなのか、最終ポインターやオーバーフロー・ブロック管理テーブル、複数の代替キー・オーバーフロー・ブロック・管理テーブルなど、前述したアクセラレーター・システムを構成する要素のうち、どの構成要素に対する変更であるかを示したものである。これは、プライマリー・システムとアクセラレーター・システムで、同じ対応表を保持して、間違いなく変更ができるようにする。変更対象番地84は、物理的に指定する方法もあるし、論理的に指定する方法もある。
変更情報の内容に関して、詳細な説明を行う。図10は変更情報の一例である。変更情報の内容として、宛先アドレス80、送信元アドレス81、連番82、変更対象83、変更対象番地84、変更する長さ85、変更後内容86、といった情報を含んでいる。宛先アドレス80は、その情報を受信するべきノードのアドレスである。この場合は、変更情報で同報なので、アクセラレーター・システムのグループIDが宛先アドレスとなる。送信元アドレス81は、プライマリー・システムのアドレスになる。連番82というのは、複数の変更通知が送信され、また、変更完了通知をプライマリー・システムで受信する際に、異なった情報を区別するためのもので、変更情報で使用された連番を、変更完了通知の連番に入れてアクセラレーター・システムからプライマリー・システムに送信することにより、どの変更情報に対する変更完了通知であるかを識別するもので、情報通信で一般的に用いられている方法である。変更対象83は、ロケーション・テーブルなのか、複数の代替キー・ロケーション・テーブルの何れなのか、最終ポインターやオーバーフロー・ブロック管理テーブル、複数の代替キー・オーバーフロー・ブロック・管理テーブルなど、前述したアクセラレーター・システムを構成する要素のうち、どの構成要素に対する変更であるかを示したものである。これは、プライマリー・システムとアクセラレーター・システムで、同じ対応表を保持して、間違いなく変更ができるようにする。変更対象番地84は、物理的に指定する方法もあるし、論理的に指定する方法もある。
物理的というのは、プライマリー・システムにおけるアクセラレーター・システムの構成要素と、アクセラレーター・システムにおける構成要素の物理的な構成が全く同一である場合に使用する。物理的な構成が全く同一である、とは、例えば、ロケーション・テーブルの構造が、プライマリー・システムとアクセラレーター・システムで全く同一であり、更に、プライマリー・システムでのロケーション・テーブルの記憶装置上の番地と、アクセラレーター・システムでのロケーション・テーブルの記憶装置上の番地が、全く同一であることを言う。具体的な例としては、プライマリー・システムのロケーション・テーブル・エントリー5が、例えば記憶装置の1050番地から50バイトである場合に、すべてのアクセラレーター・システムで、フランド・ロケーション・テーブル・エントリー5が、記憶装置上の1050番地から50バイトである、ということになる。この場合には、プライマリー・システムからは、記憶装置上の何番地からの情報が変更になっている、という変更通知ということになる。アクセラレーター・システムでは、その変更通知を受信すると、記憶装置の変更対象番地に対して変更を行う。この場合には、変更対象83の情報は無くても正常に稼動する。
論理的というのは、ロケーション・テーブル、代替キー・ロケーション・テーブル、オーバーフロー・ブロック管理テーブル、代替キー・オーバーフロー・ブロック管理テーブルのどのエントリーに対するものなのかを、エントリー番号で示す方法である。その他の構成要素は、複数のエントリーを持つような構造になっていないため、例えば最終ポインターであることを指定すれば、それで対象が定まる。
この論理的に同一である、ということを更に拡張すると、ロケーション・テーブルとフランド・ロケーション・テーブル、代替キー・ロケーション・テーブルとフランド・代替キー・ロケーション・テーブルの構造が異なっていても良い。構造が異なるということは、次のようなことである。ロケーション・テーブルに必要な情報はエントリーの番号とそのエントリーが指しているプライマリー・ブロックのアドレスである。この他に、プライマリー・システムのロケーション・テーブルでは、各ブロックの統計情報などを保持するように、エントリーの情報を拡張すると、有効である。これに対して、アクセラレーター・システムのフランド・ロケーション・テーブルでは、統計情報を持たずに単純に、エントリーの番号と、プライマリー・ブロックのアドレスのみを保持する。このようにすると、アクセラレーター・システムで持つ情報量が節約でき、変更が少なくなる。
更に、アクセラレーターを次のように拡張することも可能である。アクセラレーター・システムでは、ロケーション・テーブルと代替キー・ロケーション・テーブルを保持することになっている。しかしながら、一部の特定の代替キーの負荷が高い場合には、その代替キー・ブロックをアクセラレーターで保持する、というものである。代替キー・ブロックは、当然のことながらプライマリー・システムが保持しているものと同内容であり、「バックアップ・リカバリー・システム」で示した同期密結合方式により、プライマリー・システムと同期をとる。このようにすることにより、一部の代替キー・ロケーション・テーブルの負荷が高い場合に、プライマリー・システムの負荷を軽減することが可能となる。
この論理的に同一である、ということを更に拡張すると、ロケーション・テーブルとフランド・ロケーション・テーブル、代替キー・ロケーション・テーブルとフランド・代替キー・ロケーション・テーブルの構造が異なっていても良い。構造が異なるということは、次のようなことである。ロケーション・テーブルに必要な情報はエントリーの番号とそのエントリーが指しているプライマリー・ブロックのアドレスである。この他に、プライマリー・システムのロケーション・テーブルでは、各ブロックの統計情報などを保持するように、エントリーの情報を拡張すると、有効である。これに対して、アクセラレーター・システムのフランド・ロケーション・テーブルでは、統計情報を持たずに単純に、エントリーの番号と、プライマリー・ブロックのアドレスのみを保持する。このようにすると、アクセラレーター・システムで持つ情報量が節約でき、変更が少なくなる。
更に、アクセラレーターを次のように拡張することも可能である。アクセラレーター・システムでは、ロケーション・テーブルと代替キー・ロケーション・テーブルを保持することになっている。しかしながら、一部の特定の代替キーの負荷が高い場合には、その代替キー・ブロックをアクセラレーターで保持する、というものである。代替キー・ブロックは、当然のことながらプライマリー・システムが保持しているものと同内容であり、「バックアップ・リカバリー・システム」で示した同期密結合方式により、プライマリー・システムと同期をとる。このようにすることにより、一部の代替キー・ロケーション・テーブルの負荷が高い場合に、プライマリー・システムの負荷を軽減することが可能となる。
変更情報は、短いほど伝送や更新に必要な時間が短くなるため、短縮できる場合はその方が好ましい。例えば、ロケーション・テーブル・エントリーに対する更新である場合に、ブロック番号やアドレスは変更にならないので、主キー値の最小値または最大値が変更になった場合が対象となる。また、最小値、最大値の何れかが変更になる場合でも、主キー値全体が変更にならザ、下の数桁が変更になる場合もある。このような場合、変更対象番地と変更する長さ85を用いて、差分のみを送信することにより、変更情報を短縮することが可能となる。この場合は、変更対象番地が論理的である場合、エントリー番号と、エントリー内の変位という形式にする必要がある。差分を用いない場合であっても、変更する長さは、変更対象番地84は、物理的に指定する場合には必須となる。変更対象番地84は、論理的に指定する場合で、差分のみの送信でない場合であっても、変更する長さを送信するのは、変更を確実にする上で有用である。
変更後内容は、変更する内容そのものである。例えば、ロケーション・テーブル・エントリーの主キー値の最大値が、「56789」から「56790」に変更になった場合に、「56790」が、変更後内容となる。また、前述したように、下2桁の「90」のみを差分として送信することも可能である。
[同報通信]
通信情報に関して、同報通信を用いて行う、としたが、これを更に詳しく説明する。同報通信の場合、一斉同報とグループ同報が存在する。アクセラレーター・システムには、対称システムと非対称システムが存在する。対称システムとは、プライマリー・システムが保有している、ロケーション・テーブル、代替キー・ロケーション・テーブルを、アクセラレーター・システムのすべてが保有している形態を言う。これに対して、非対称システムとは、特定のアクセラレーター・システムでは、プライマリー・システムが保有しているロケーション・テーブルや代替キー・ロケーション・テーブルの一部のみを保有する形態を言う。非対称システムは、キー種毎にアクセス頻度が異なる場合に、記憶領域を節約する際に有効である。
通信情報に関して、同報通信を用いて行う、としたが、これを更に詳しく説明する。同報通信の場合、一斉同報とグループ同報が存在する。アクセラレーター・システムには、対称システムと非対称システムが存在する。対称システムとは、プライマリー・システムが保有している、ロケーション・テーブル、代替キー・ロケーション・テーブルを、アクセラレーター・システムのすべてが保有している形態を言う。これに対して、非対称システムとは、特定のアクセラレーター・システムでは、プライマリー・システムが保有しているロケーション・テーブルや代替キー・ロケーション・テーブルの一部のみを保有する形態を言う。非対称システムは、キー種毎にアクセス頻度が異なる場合に、記憶領域を節約する際に有効である。
アクセラレーター・システムがすべて対称システムである場合には、一斉同報で構わない。これに対して、非対称システムである場合には、グループ同報を用いる。このグループの定め方は、様々な方法があろうが、次に示す図11の方法が代表的である。図11は、アクセラレーター・システムがロケーション・テーブルと代替キー・ロケーション・テーブルの何れを保有しているかをパターン化し、1つのアクセラレーター・システムに対して1つのグループを割り当てる方法である。このようにグループを決定するのは、従来の通信で一般的に行われている方法である。この方法は、次のような特徴を持つ。アクセラレーター・システム毎にグループIDを持つので対応が分かりやすい。一方で、代替キーの種類が多くなり、組み合わせが複雑になると、グループの種類が幾何級数的に増加する可能性がある。プライマリー・システムでは、ロケーション・テーブルや代替キー・ロケーション・テーブルに対して変更が発生した場合に、どのグループに影響があるのかを解析する必要がある。また、図11の場合に、ロケーション・テーブルに変更があった場合に、グループ1、グループ2、グループ3、グループ4の各々に対して同報を行わなければならず、下り通信の情報量が増大してしまう。
これに対して、図12は、アクセラレーター・システムが複数のグループに属することを許す場合の例である。各アクセラレーター・システムがロケーション・テーブル、代替キー・ロケーション・テーブルの何れを保有しているかを示したのが図12の97である。これに対して、ロケーション・テーブル、代替キー・ロケーション・テーブルの何れを保有しているかによってグループ名を決定する方法を示しているのが図12の98である。図12の99では、このようにして決定されたグループIDの一覧表を示している。アクセラレーター・システム1は、グループ1、2、3、4の何れにも属している。同様に、アクセラレーター・システム2、3、4も、グループ1、2、3、4に属している。アクセラレーター・システム5は、グループ1、2、3に属しているが、グループ4には属していない。アクセラレーター・システム6は、グループ1、2に属しているが、グループ3、4には属していない。アクセラレーター・システム7はグループ1のみに属している。図12で示した方法を採った場合には、ロケーション・テーブルや代替キー・ロケーション・テーブルに対する変更は、そのロケーション・テーブルや代替キー・ロケーション・テーブルに対応したグループに同報すればよいので、下り情報通信は1回でよいことになる。また、プライマリー・システムからの下り情報通信の宛先も簡単に定まる。代替キー種が増加しても、グループの種類は比例的にしか増加しない。一方、アクセラレーター・システムでは、自分がどのグループに属しているのかを保有して、複数のグループIDに対する同報通信に対応できるようにする必要がある。
図9では、変更完了通知を受信後、プライマリー・システムからの下り通信を行っている(S6、S7、S8、S9)が、実際には、上り通信用と下り通信用の通信路が別々に設けてあるので、変更情報の送信、送信督促の送信が終了した時点で、下り通信を行ってよいことになる。また、下り通信は、アクセラレーター・システム毎に均等に行う必要は無く、通信量に応じて行えばよい。
[アクセラレーター・システムの性能が不均等な場合]
各アクセラレーター・システムの性能が同等でない場合には、変更情報と送信督促を受信してから待ち時間を計測する。更新処理の時間は、プライマリー・システムで要した時間を変更情報の中に含んで送信し、その更新処理時間を所定の待ち時間に足すことにより、待ち時間とすることができる。この場合、アクセラレーター・システム1(通信順序番号が最初のアクセラレーター・システム)の性能は、プライマリー・システムと同等にしておくこと、更に、通信順序番号が2以降のアクセラレーター・システムは、所定の待ち時間以内に更新処理を終えるだけの性能を有している必要がある。また、何らかの事情で所定の待ち時間以内に更新処理が終了しなかった場合には、変更完了通知を送信しない。勝手なタイミングで変更完了通知を送信すると、通信の衝突が発生するからである。
各アクセラレーター・システムの性能が同等でない場合には、変更情報と送信督促を受信してから待ち時間を計測する。更新処理の時間は、プライマリー・システムで要した時間を変更情報の中に含んで送信し、その更新処理時間を所定の待ち時間に足すことにより、待ち時間とすることができる。この場合、アクセラレーター・システム1(通信順序番号が最初のアクセラレーター・システム)の性能は、プライマリー・システムと同等にしておくこと、更に、通信順序番号が2以降のアクセラレーター・システムは、所定の待ち時間以内に更新処理を終えるだけの性能を有している必要がある。また、何らかの事情で所定の待ち時間以内に更新処理が終了しなかった場合には、変更完了通知を送信しない。勝手なタイミングで変更完了通知を送信すると、通信の衝突が発生するからである。
[変更完了通知]
さて、このようにグループに対して同報通信を行い、アクセラレーター・システムで必要な変更を行い、変更完了通知をアクセラレーター・システムからプライマリー・システムに送信する。プライマリー・システムから見ると、多数の変更完了通知を漏れなく受け取り確認する必要がある。漏れなく確認する方法として、図13に示す、変更完了確認テーブルを使用すると有効である。変更完了確認テーブルでノードとあるのは、アクセラレーター・システムの各々ことである。ステータスは、未了か完了である。図13では、未了を空白で示している。一番上の行のカウントとは、最初にそのグループのノード数を入れておき、各ノードから変更完了通知をプライマリー・システムが受信する都度、当該ノードのステータスに完了を立て、カウントから1を減ずる。もし、既にステータスが完了になっているノードから再度、変更完了通知が来た場合には、そのノードに問い合わせをすることが好ましい。この場合には、カウントから1を減ずることは行わない。カウントが0になれば、そのグループの変更完了通知をすべて受信したことが確認できる。この変更完了確認テーブルは、グループ毎に原型を作成しておき、プライマリー・システムから変更通知を送信する際に、そのコピーを作成して使用すると便利である。
さて、このようにグループに対して同報通信を行い、アクセラレーター・システムで必要な変更を行い、変更完了通知をアクセラレーター・システムからプライマリー・システムに送信する。プライマリー・システムから見ると、多数の変更完了通知を漏れなく受け取り確認する必要がある。漏れなく確認する方法として、図13に示す、変更完了確認テーブルを使用すると有効である。変更完了確認テーブルでノードとあるのは、アクセラレーター・システムの各々ことである。ステータスは、未了か完了である。図13では、未了を空白で示している。一番上の行のカウントとは、最初にそのグループのノード数を入れておき、各ノードから変更完了通知をプライマリー・システムが受信する都度、当該ノードのステータスに完了を立て、カウントから1を減ずる。もし、既にステータスが完了になっているノードから再度、変更完了通知が来た場合には、そのノードに問い合わせをすることが好ましい。この場合には、カウントから1を減ずることは行わない。カウントが0になれば、そのグループの変更完了通知をすべて受信したことが確認できる。この変更完了確認テーブルは、グループ毎に原型を作成しておき、プライマリー・システムから変更通知を送信する際に、そのコピーを作成して使用すると便利である。
プライマリー・システムから変更通知をアクセラレーター・システムに送信し、すべての対象アクセラレーター・システム(変更通知の対象グループに属するアクセラレーター・システム)からの変更完了通知をプライマリー・システムが受領するまで、プライマリー・システムでは、当該変更箇所の排他を行う。
以上で、変更情報の送信と変更完了通知の送信に関する説明を行った。次に、アクセラレーター・システムからの処理依頼の送信方法であるが、これは、「通信システム」で示した送信督促を用いて、各アクセラレーター・システムから送信させる。この場合、先程の変更完了通知と処理依頼の情報の長さが異なる可能性が大きい。何故ならば、変更完了通知は、変更情報の連番と完了した旨の情報を含めばよいので、宛先アドレスや送信元アドレスを入れても、20バイト程度の長さで十分である。一方、処理依頼は、検索の場合には、ブロックのアドレス、キーの種類、キー値などが必要になる。更新や書き込みでは、レコードの内容が必要になるため、更に長くなる可能性がある。
このように、長さが異なる情報を単一の長さのパケットで扱おうとすると、パケット内の無駄なスペースが大きくなってしまう。このような状態を避けるためには、「通信システム」の中で触れられているように、送信督促を送信する場合に、アクセラレーター・システムからの送信情報の種類を指定するようにするとよい。変更完了通知の場合の送信督促では、例えば64バイトのパケット長とし、通常の処理要求の場合には、例えば、256バイトのパケット長とするなどである。当然、パケット長が異なれば、必要になる所定の待ち時間は同じアクセラレーター・システムに対しても変わってくるので、複数のパケット長を使用する場合には、それらに対応できるように所定の待ち時間を計算しておく必要がある。
このように、「通信システム」を「アクセラレーター」に応用し、変更情報を同報で送信することにより、効率的な下り通信が行える。
[処理依頼の送信]
上り通信の処理依頼に関しては、既に簡単に説明してあるが、再度、説明する。各アクセラレーター・システムでは、アクセラレーター・システム内やアプリケーション処理コンピューター内での、アプリケーション・プログラムからデータベースに対するアクセス要求に基づき、データベースへのアクセスを行う。例えば、主キーによるアクセスであった場合、アクセラレーター・システムでは、自分のフランド・ロケーション・テーブルを検索し、対象となるブロックを見つける。ブロックとオーバーフロー・ブロックは、アクセラレーター・システムには存在せず、プライマリー・システムにのみ存在する。検索要求の場合には、検索DB種別、検索対象ブロック種別、対象となるブロックのブロック番号またはブロック・アドレス、主キー値を指定する。それを処理依頼レコードとして、プライマリー・システムに送信する。この処理依頼は、各アクセラレーター・システムが稼動している場合には、勝手なタイミングで発生するため、それらが勝手に送信されると衝突してしまう可能性がある。また、衝突は、通信が混んでくると発生しやすくなるため、多くの処理を行わなければならない状態で、性能が低下してしまう。
上り通信の処理依頼に関しては、既に簡単に説明してあるが、再度、説明する。各アクセラレーター・システムでは、アクセラレーター・システム内やアプリケーション処理コンピューター内での、アプリケーション・プログラムからデータベースに対するアクセス要求に基づき、データベースへのアクセスを行う。例えば、主キーによるアクセスであった場合、アクセラレーター・システムでは、自分のフランド・ロケーション・テーブルを検索し、対象となるブロックを見つける。ブロックとオーバーフロー・ブロックは、アクセラレーター・システムには存在せず、プライマリー・システムにのみ存在する。検索要求の場合には、検索DB種別、検索対象ブロック種別、対象となるブロックのブロック番号またはブロック・アドレス、主キー値を指定する。それを処理依頼レコードとして、プライマリー・システムに送信する。この処理依頼は、各アクセラレーター・システムが稼動している場合には、勝手なタイミングで発生するため、それらが勝手に送信されると衝突してしまう可能性がある。また、衝突は、通信が混んでくると発生しやすくなるため、多くの処理を行わなければならない状態で、性能が低下してしまう。
このような衝突を避けるために、「通信システム」では、上り通信を、リズム・ノードから送信督促を送信し、その通信督促をドミナント・ノード(アクセラレーター・システム)が受信したら所定の待ち時間後に、上り通信を行うことになっている。このようにすることにより、上り通信に衝突が発生しないようになっている。この送信督促の送信と、送信督促受信後に所定の待ち時間を置いて上り通信を行う、という方法を、「アクセラレーター」にも適用する。この場合のタイミング・チャートは図6と同様である。
[アクセラレーター・システムのロジック]
アクセラレーター・システムには、プログラムが必要となるが、そのプログラムのロジックに関して改めて説明する。図14、図15が、アクセラレーター・システムのプログラム(アクセラレーター・システム・プログラム)のフロー・チャートである。図14では、まず、アプリケーション・プログラムからアクセスの受付を行う。アプリケーション・プログラムは、アクセラレーター・システムの中で稼動するようにしても良いし、外部のシステムで稼動するようにし、データベース・アクセスを受け付けるようにしてもよい。アクセラレーター・システム・プログラムは、次に、アクセスの種類を識別する。どのデータベース(スキー)を対象にしたものか、キー種別は何か、アクセスは検索、追加、更新、削除の何れであるか、キー値は何か、である。次に、キー種別とキー値により、ロケーション・テーブルまたは、代替キー・ロケーション・テーブルのバイナリー・サーチを行う。そこで、目的のブロックまたは代替キー・ブロックの番号またはアドレスを見つける。そこで、アクセラレーター・システム・プログラムは、送信メッセージを作成し、一旦、蓄積しておく。その後、送信督促メッセージを受信したら、所定の待ち時間を置いた後、プライマリー・システムに対して、上り通信により処理依頼を行う。プライマリー・システムで処理を行い、その結果をアクセラレーター・システムに返してくる。その結果をアプリケーション・プログラムに返す。図15は、プライマリー・システムからの変更情報を受信する場合のフロー・チャートである。変更情報をプライマリー・システムから受信する。その変更対象により、必要な変更を行う。その後、所定の待ち時間を置いて、変更完了通知を送信する。
アクセラレーター・システムには、プログラムが必要となるが、そのプログラムのロジックに関して改めて説明する。図14、図15が、アクセラレーター・システムのプログラム(アクセラレーター・システム・プログラム)のフロー・チャートである。図14では、まず、アプリケーション・プログラムからアクセスの受付を行う。アプリケーション・プログラムは、アクセラレーター・システムの中で稼動するようにしても良いし、外部のシステムで稼動するようにし、データベース・アクセスを受け付けるようにしてもよい。アクセラレーター・システム・プログラムは、次に、アクセスの種類を識別する。どのデータベース(スキー)を対象にしたものか、キー種別は何か、アクセスは検索、追加、更新、削除の何れであるか、キー値は何か、である。次に、キー種別とキー値により、ロケーション・テーブルまたは、代替キー・ロケーション・テーブルのバイナリー・サーチを行う。そこで、目的のブロックまたは代替キー・ブロックの番号またはアドレスを見つける。そこで、アクセラレーター・システム・プログラムは、送信メッセージを作成し、一旦、蓄積しておく。その後、送信督促メッセージを受信したら、所定の待ち時間を置いた後、プライマリー・システムに対して、上り通信により処理依頼を行う。プライマリー・システムで処理を行い、その結果をアクセラレーター・システムに返してくる。その結果をアプリケーション・プログラムに返す。図15は、プライマリー・システムからの変更情報を受信する場合のフロー・チャートである。変更情報をプライマリー・システムから受信する。その変更対象により、必要な変更を行う。その後、所定の待ち時間を置いて、変更完了通知を送信する。
[プライマリー・システムでのロジック]
次に、プライマリー・システムのプログラム(プライマリー・システム・プログラム)の処理内容を説明する。図16、図17が、そのフロー・チャートである。図16では、アクセラレーター・システムからの処理依頼に関するものである。まず、アクセラレーター・システムからの処理受付を行う。次に、アクセスの種類を識別する。どのデータベース(スキー)を対象にしたものか、キー種別は何か、アクセスは検索、追加、更新、削除の何れであるか、キー値は何か、ブロックまたは代替キー・ブロックの番号である。次に、ブロックまたは代替キー・ブロックの番号により、ロケーション・テーブルまたは代替キー・ロケーション・テーブルのエントリーを見つける。処理依頼が更新系である場合には、そのエントリーの排他を行う。排他方法は後述する。処理依頼が主キーによるものであるときには、プライマリー・ブロックと、そのプライマリー・ブロックに接続されたオーバーフロー・ブロックの中から、目的のレコードを検出し、処理依頼が検索である場合には、そのレコードをセットする。処理依頼が更新である場合には、そのレコードに更新を行う。追加の場合には、その主キー値を持つレコードが存在しないことが前提であり、レコードの挿入場所を確定し、レコードの挿入を行う。処理依頼が削除の場合は、レコードの削除を行う。処理依頼が、検索、更新、削除の場合に、その主キー値を持つレコードが存在しない場合は、エラーとする。処理依頼が追加の場合で、その主キー値を持つレコードが既に存在する場合は、エラーとする。正常な場合は、リターン・コードの他、レコードなど必要な情報をセットする。その後、アクセラレーター・システムに情報を渡す。これは、下り通信として送信する。図17は、アクセラレーター・システムに対する変更情報を送信するフロー・チャートである。
次に、プライマリー・システムのプログラム(プライマリー・システム・プログラム)の処理内容を説明する。図16、図17が、そのフロー・チャートである。図16では、アクセラレーター・システムからの処理依頼に関するものである。まず、アクセラレーター・システムからの処理受付を行う。次に、アクセスの種類を識別する。どのデータベース(スキー)を対象にしたものか、キー種別は何か、アクセスは検索、追加、更新、削除の何れであるか、キー値は何か、ブロックまたは代替キー・ブロックの番号である。次に、ブロックまたは代替キー・ブロックの番号により、ロケーション・テーブルまたは代替キー・ロケーション・テーブルのエントリーを見つける。処理依頼が更新系である場合には、そのエントリーの排他を行う。排他方法は後述する。処理依頼が主キーによるものであるときには、プライマリー・ブロックと、そのプライマリー・ブロックに接続されたオーバーフロー・ブロックの中から、目的のレコードを検出し、処理依頼が検索である場合には、そのレコードをセットする。処理依頼が更新である場合には、そのレコードに更新を行う。追加の場合には、その主キー値を持つレコードが存在しないことが前提であり、レコードの挿入場所を確定し、レコードの挿入を行う。処理依頼が削除の場合は、レコードの削除を行う。処理依頼が、検索、更新、削除の場合に、その主キー値を持つレコードが存在しない場合は、エラーとする。処理依頼が追加の場合で、その主キー値を持つレコードが既に存在する場合は、エラーとする。正常な場合は、リターン・コードの他、レコードなど必要な情報をセットする。その後、アクセラレーター・システムに情報を渡す。これは、下り通信として送信する。図17は、アクセラレーター・システムに対する変更情報を送信するフロー・チャートである。
[排他方法]
次に、排他方法に関して説明する。排他は、ロケーション・テーブルまたは代替キー・ロケーション・テーブルの目的のエントリーに対して、フラッグを立てることにより行うことが最もシンプルである。このようにすると、どのブロックまたは代替キー・ブロックが排他されているかを確実に検出することが可能となる。トランザクション終了、デッドロックやトランザクション・キャンセル、プログラムの異常終了により、あるトランザクションに関連する排他を解除する方法としては、トランザクション毎に、排他対象のロケーション・テーブル・エントリー、代替キー・ロケーション・テーブル・エントリーを別のテーブルに書き出しておき、それを参照するようにする。
次に、排他方法に関して説明する。排他は、ロケーション・テーブルまたは代替キー・ロケーション・テーブルの目的のエントリーに対して、フラッグを立てることにより行うことが最もシンプルである。このようにすると、どのブロックまたは代替キー・ブロックが排他されているかを確実に検出することが可能となる。トランザクション終了、デッドロックやトランザクション・キャンセル、プログラムの異常終了により、あるトランザクションに関連する排他を解除する方法としては、トランザクション毎に、排他対象のロケーション・テーブル・エントリー、代替キー・ロケーション・テーブル・エントリーを別のテーブルに書き出しておき、それを参照するようにする。
[特殊なアクセラレーター・システム]
以上で、アクセラレーター・システムの基本的な説明を行ったが、変形例に関して説明する。アクセラレーター・システムの数が、多い場合には、プライマリー・システムでは、アクセラレーター・システムからの処理依頼を受け付けて処理を行い、また、変更が発生すればアクセラレーター・システムに変更情報を送信する、という機能のみを行うことが全体的な効率向上に役立つ。しかしながら、アクセラレーター・システムの数があまり多くない場合には、プライマリー・システムにも、アクセラレーター・システムが行う機能を負担させることにより、全体的な処理効率を向上させることもできる。このような場合、例えば、図8におけるアクセラレーター・システム1をダミーとし、アクセラレーター・システム1が、アプリケーション・プログラムから受け付けた処理依頼に関して、アクセラレーター・システム1では何の処理も行わずに、プライマリー・システムにそのまま送信してしまう、という方法である。アクセラレーター・システム2、3、4、・・・9は、図14に示したような処理を行う。このようにした場合、プライマリー・システム・プログラムは、図14に示したロジックを保有し、アクセラレーター・システム1からの処理依頼である場合には、図14のロジックと図16のロジックを実行する。
以上で、アクセラレーター・システムの基本的な説明を行ったが、変形例に関して説明する。アクセラレーター・システムの数が、多い場合には、プライマリー・システムでは、アクセラレーター・システムからの処理依頼を受け付けて処理を行い、また、変更が発生すればアクセラレーター・システムに変更情報を送信する、という機能のみを行うことが全体的な効率向上に役立つ。しかしながら、アクセラレーター・システムの数があまり多くない場合には、プライマリー・システムにも、アクセラレーター・システムが行う機能を負担させることにより、全体的な処理効率を向上させることもできる。このような場合、例えば、図8におけるアクセラレーター・システム1をダミーとし、アクセラレーター・システム1が、アプリケーション・プログラムから受け付けた処理依頼に関して、アクセラレーター・システム1では何の処理も行わずに、プライマリー・システムにそのまま送信してしまう、という方法である。アクセラレーター・システム2、3、4、・・・9は、図14に示したような処理を行う。このようにした場合、プライマリー・システム・プログラムは、図14に示したロジックを保有し、アクセラレーター・システム1からの処理依頼である場合には、図14のロジックと図16のロジックを実行する。
[アクセラレーター・システムが多い場合]
以上で、基本的な構成を採った場合の例の説明を行った。アクセラレーター・システムの数が比較的少ない場合には、全アクセラレーター・システムを対象として送信督促メッセージを送信することとしても、特段の問題は発生しないと考えられる。10Gbpsの速度を持つ通信路上では、8ビットを1バイととした場合、1ns(ナノ秒)当り10ビットの通信が可能であり、1バイトの通信には0.8nsが必要となる。アクセラレーター・システムからの上り通信メッセージはその長さを一定とし、例えば、256バイトとすると、その場合、256バイトを送信するための時間は、204.8nsとなる。アクセラレーター・システムの数が100台とした場合には、約20μ秒毎に送信督促メッセージの送信が行われ、その間隔でアクセラレーター・システムからの処理依頼を送信できることになる。これは、1秒当りにすると、1台のアクセラレーター・システムが上り通信を行える回数が5万回となる。
以上で、基本的な構成を採った場合の例の説明を行った。アクセラレーター・システムの数が比較的少ない場合には、全アクセラレーター・システムを対象として送信督促メッセージを送信することとしても、特段の問題は発生しないと考えられる。10Gbpsの速度を持つ通信路上では、8ビットを1バイととした場合、1ns(ナノ秒)当り10ビットの通信が可能であり、1バイトの通信には0.8nsが必要となる。アクセラレーター・システムからの上り通信メッセージはその長さを一定とし、例えば、256バイトとすると、その場合、256バイトを送信するための時間は、204.8nsとなる。アクセラレーター・システムの数が100台とした場合には、約20μ秒毎に送信督促メッセージの送信が行われ、その間隔でアクセラレーター・システムからの処理依頼を送信できることになる。これは、1秒当りにすると、1台のアクセラレーター・システムが上り通信を行える回数が5万回となる。
ところが、アクセラレーター・システムが1000台になると、1秒当りの上り通信回数が5000回となる。また、すべてのアクセラレーター・システムが上り通信の情報を保持していない可能性もある。このような場合に有効な方法が、「通信システム」で示された、多階層リズム・ノードである。図18に例を示す。図18は、基本的な構成は図8と同様であるが、終段通信装置の構成が異なっている。図18の終段通信装置(55、56、57)は、ドミナント・ノードとトニック・ノードの機能を有しており、更にリズム・ノード(21、22、23)を有している。この終段通信装置の機能は次のようになる。終段通信装置55を例にとって説明する。終段通信装置55は、アクセラレーター・システム1、2、3に対して、トニック・ノードとして機能する。また、リズム・ノードを保有している。リズム・ノードから各アクセラレーター・システム1、2、3に対して、送信督促メッセージを送信する。アクセラレーター・システムでは、送信督促メッセージを受信後、所定の待ち時間を置いた後、上り通信を行う。この場合、上り情報が無ければ、例えば、NACKを送信する。終段通信装置55は、このようにして、各アクセラレーター・システム1、2、3からの上り通信を集めて蓄積しておく。
このような動作に対して、リズム・ノード20は、終段通信装置55、56、57をドミナント・ノードとして送信督促メッセージを送信する。この送信督促メッセージは、数段通信装置55、56、57を対象とするグループに対して行う。また、終段通信装置55、56、57では、その送信督促メッセージを、アクセラレーター・システムに送信しないことが好ましい。送信しても、アクセラレーター・システム宛てでは無いので無視されることになるが、不要なトラッフィックを軽減することになる。終段通信装置はドミナント・ノードとして、リズム・ノード20からの送信督促メッセージ受信後、所定の待ち時間を置いて、上り通信を行う。上り通信は、各終段通信装置から1メッセージづつおこなってもよいが、例えば、10メッセージを1回に送信するなどとしてもよい。当然、所定の待ち時間は、メッセージの全長が長くなるため、その分長くなる。
このような方法を用いると、アクセラレーター・システムからの空の上り通信を削減することができる。更には、「通信システム」で示したように、ドミナント・ノード毎に上り通信の割り当て数を、送信督促メッセージ中に入れて、終段通信装置から可変数のメッセージの上り通信を行うようにすると、更に、通信の効率化行える。
[アクセラレーター・システムの故障]
ところで、このように多数のアクセラレーター・システムを接続した場合に、一部のアクセラレーター・システムが何らかの理由で、稼動できなくなる可能性がある。何らかの理由としては、アクセラレーター・システムの故障によるもの、支線通信路の故障によるもの、アクセラレーター・システムのメンテナンスによるもの、などが考えられる。このように、或るアクセラレーター・システムが稼動しない場合の対処を以下に説明する。
ところで、このように多数のアクセラレーター・システムを接続した場合に、一部のアクセラレーター・システムが何らかの理由で、稼動できなくなる可能性がある。何らかの理由としては、アクセラレーター・システムの故障によるもの、支線通信路の故障によるもの、アクセラレーター・システムのメンテナンスによるもの、などが考えられる。このように、或るアクセラレーター・システムが稼動しない場合の対処を以下に説明する。
或るアクセラレーター・システムが稼動しなくなった場合の検知方法は、定期的にプライマリー・システムと信号をやり取りし、その信号が途絶えたら故障とみなす、という方法が一般的に用いられている。本発明では、送信督促に対する上り通信の有無を、信号に使用することができるし、それを利用することが合理的である。このような方法で、プライマリー・システムがアクセラレーター・システムの不稼動を検知すると、プライマリー・システムは、そのアクセラレーター・システムを切り離す。プライマリー・システムでは、不稼動となったアクセラレーター・システムが処理していたトランザクションでデータベースのデータが変更されている場合には、バックアウト処理(データの内容をトランザクションの開始時点の内容に戻す)を行う。また、そのバックアウトの内容が、アクセラレーター・システムや、後述するセカンダリー・システムに影響するものである場合には、その変更情報をアクセラレーター・システムやセカンダリー・システムに送信する。このようにバックアウトを行うためには、プライマリー・システムでデータの変更を行う際に、該当部分の変更前情報(Bログ)を取得しておく必要がある。このBログは、プライマリー・システムでの当該変更が完了し、アクセラレーター・システムやセカンダリー・システムの当該変更が完了すれば不要となる。しかしながら、バックアップ用に保存しておくことで、有効に使用できる場合がある。これはセカンダリー・システムの部分で説明する。変更完了確認テーブルからは、不稼動となったアクセラレーター・システムを除外しておく。
次に、プライマリー・システムは、そのアクセラレーター・システムから届いていない変更完了通知を含んでそれ以降の変更情報をすべて保存する。また、アプリケーション処理コンピューターからは、その不稼動のアクセラレーター・システムに対する処理要求を送信しないようにし、不稼動となった時点のトランザクションを別のアクセラレーター・システムに振り分ける。これで、不稼動となったアクセラレーター・システムの切り離しが完了する。これ以降は、人手で不稼動となった原因を探し、稼動するように復旧させることになる。
不稼動であったアクセラレーター・システムが、稼動できるようになった場合には、次のような復旧措置をとる。プライマリー・システムから、それまで保存してあった変更情報の送信を、不稼動であったアクセラレーター・システム宛てに行う。この開始時点をt1とする。プライマリー・システムでは、t1時点以降に、他のアクセラレーター・システム宛ての変更情報を送信するが、不稼動であったアクセラレーター・システムでは、受信のみを行い、変更の適用は行わない。不稼動であったアクセラレーター・システムでは、プライマリー・システムに保存してあった変更情報に基づき、当該変更を順次実行し、変更完了通知をプライマリー・システムに送信する。変更完了通知は、1つの変更情報の変更が完了する都度、行っても良いが、変更完了通知が多くなるため、まとめて行っても良い。保存してあった変更情報が無くなった時点をt2とする。t2時点以降は、不稼動であったアクセラレーター・システムが保存した変更情報に基づき、当該変更を順次実行し、変更完了通知をプライマリー・システムに送信する。変更完了通知は、1つの変更情報の変更が完了する都度、行っても良いが、変更完了通知が多くなるため、まとめて行っても良い。不稼動であったアクセラレーター・システムが保存した変更情報の変更が終了した時点をt3とする。t3の時点で、不稼動であったアクセラレーター・システムと、他のアクセラレーター・システムの同期が完了したことになる。よって、t3以降は、不稼動であったアクセラレーター・システムは、稼動アクセラレーター・システムとして扱うことが可能となる。プライマリー・システムでは、変更完了確認テーブルから、不稼動となったアクセラレーター・システムを除外してあったのを、復活させる。
次に、プライマリー・システムが不稼動となった場合に関する説明であるが、これは、セカンダリー・システムを使用する場合の説明で詳細に記述する。
[BUS型構成]
図8では、カスケード接続の場合に関して述べたが、BUS型であっても構成は可能である。図19はBUS型の構成を用いた場合の例である。プライマリー・システムとアクセラレーター・システムとは、BUS型の通信路(41、42)で接続されている。通信路41は下り通信用であり、通信路42は上り通信用である。また、通信路41、42共に片分岐となっているが、通信路41は両分岐であっても良い。通信路42が片分岐になっている理由は、アクセラレーター・システムからの上り通信が、下り側に流れていかないためである。アクセラレーター・システムからの上り通信が、下り側に流れていくと、例えば、アクセラレーター・システム3からの上り通信が、アクセラレーター・システム4側にも流れるため、アクセラレーター・システム4、5、6、7からの上り通信が、通信路42上で衝突する可能性があることになる。通信路42を片分岐にしておき、各アクセラレーター・システムからの上り通信を、適度な間隔で送信することにより、このような衝突を避けることが可能となる。適度な間隔とは、所定の待ち時間を取ることに他ならない。
図8では、カスケード接続の場合に関して述べたが、BUS型であっても構成は可能である。図19はBUS型の構成を用いた場合の例である。プライマリー・システムとアクセラレーター・システムとは、BUS型の通信路(41、42)で接続されている。通信路41は下り通信用であり、通信路42は上り通信用である。また、通信路41、42共に片分岐となっているが、通信路41は両分岐であっても良い。通信路42が片分岐になっている理由は、アクセラレーター・システムからの上り通信が、下り側に流れていかないためである。アクセラレーター・システムからの上り通信が、下り側に流れていくと、例えば、アクセラレーター・システム3からの上り通信が、アクセラレーター・システム4側にも流れるため、アクセラレーター・システム4、5、6、7からの上り通信が、通信路42上で衝突する可能性があることになる。通信路42を片分岐にしておき、各アクセラレーター・システムからの上り通信を、適度な間隔で送信することにより、このような衝突を避けることが可能となる。適度な間隔とは、所定の待ち時間を取ることに他ならない。
この所定の待ち時間に関する図が、図20である。ここでは、図面を簡潔にするために、アクセラレーター・システムが1から4までの、4つの場合を示している。リズム・ノード(=プライマリー・システム0)から、送信督促メッセージを同報で送信する。すると、送信督促メッセージはカスケード型の場合と異なり、各々のアクセラレーター・システムは、プライマリー・システムからの距離が順次長くなっているので、その距離に応じて遅延して各アクセラレーター・システムに届くことになる(S1)。アクセラレーター・システムでは、送信督促メッセージを受信後、所定の待ち時間を取った後に上り通信を行う(S2、S3、S4、S5)。
この場合の所定の待ち時間は、「通信システム」に詳しく示されているが、各アクセラレーター・システム間の距離が等しい場合の式は次のようになる。各アクセラレーター・システム間の距離をD(メートル)、メッセージ長をL(バイト)、通信路の伝送速度をS(ビット/秒)とする。これに対し、待ち時間をT(ナノ秒)とする。また、プライマリー・システムから最も近いアクセラレーター・システムの番号を1として、n番目のドミナント・ノードをn番目とする。n番目のドミナント・ノードの待ち時間をTn(ナノ秒)とすると、その待ち時間Tnを表す式2は次のようになる。
各アクセラレーター・システム間の距離が異なる場合に関しては、「通信システム」に記載してある。
[リング型]
図21は、リング型にアクセラレーター・システムを構成した場合の図である。ここで、通信路41は、例えば、支線通信路331と312の間が切れておらず、繋がっている。これにより、同報通信が可能になると共に、ノードの1つが故障しても、ネットワーク全体が停止してしまう、という問題がなくなっている。ここでは、プライマリー・システム0と、アクセラレーター・システム1、2、3、・・・、9からなっている。また通信路はリング型であるため、通信路41の単線となっている。このため、通信路41は、上り通信と下り通信が分離されていない。便宜上、プライマリー・システムからアクセラレーター・システム方向への通信を下り通信、アクセラレーター・システムからプライマリー・システム方向への通信を上り通信と呼ぶが、通信路41を流れている通信が上り通信であるか、下り通信であるかは、その宛先による。各アクセラレーター・システムは支線通信路311、312等によって、通信路41と接続されている。各支線通信路は片分岐となっており、支線通信路311、321等は、下り通信の受信用に使用され、支線通信路312、322等は、上り通信の送信用に用いられる。
図21は、リング型にアクセラレーター・システムを構成した場合の図である。ここで、通信路41は、例えば、支線通信路331と312の間が切れておらず、繋がっている。これにより、同報通信が可能になると共に、ノードの1つが故障しても、ネットワーク全体が停止してしまう、という問題がなくなっている。ここでは、プライマリー・システム0と、アクセラレーター・システム1、2、3、・・・、9からなっている。また通信路はリング型であるため、通信路41の単線となっている。このため、通信路41は、上り通信と下り通信が分離されていない。便宜上、プライマリー・システムからアクセラレーター・システム方向への通信を下り通信、アクセラレーター・システムからプライマリー・システム方向への通信を上り通信と呼ぶが、通信路41を流れている通信が上り通信であるか、下り通信であるかは、その宛先による。各アクセラレーター・システムは支線通信路311、312等によって、通信路41と接続されている。各支線通信路は片分岐となっており、支線通信路311、321等は、下り通信の受信用に使用され、支線通信路312、322等は、上り通信の送信用に用いられる。
[上り通信]
ここでは、プライマリー・システム0にリズム・ノード20が設けられているとする。まず、上り通信に関しては、リズム・ノード20から送信督促メッセージを同報で送信する。アクセラレーター・システムは、送信督促メッセージを受信した後、各アクセラレーター・システム間の距離により、所定の待ち時間をおいて上りメッセージを送信する。この場合の所定の待ち時間とは、BUS型通信ネットワークにおける式を使用する。また、リング型の場合は、上り通信に限定せずにプライマリー・システム宛てのメッセージであっても良い。プライマリー・システムでは自己宛てのメッセージを受信し、それ以外のメッセージは再度、通信路に下り通信として伝送するが、アクセラレーター・システムにおいては存在しない。プライマリー・システムでは、自分宛て以外の受信したメッセージを全て破棄する。
ここでは、プライマリー・システム0にリズム・ノード20が設けられているとする。まず、上り通信に関しては、リズム・ノード20から送信督促メッセージを同報で送信する。アクセラレーター・システムは、送信督促メッセージを受信した後、各アクセラレーター・システム間の距離により、所定の待ち時間をおいて上りメッセージを送信する。この場合の所定の待ち時間とは、BUS型通信ネットワークにおける式を使用する。また、リング型の場合は、上り通信に限定せずにプライマリー・システム宛てのメッセージであっても良い。プライマリー・システムでは自己宛てのメッセージを受信し、それ以外のメッセージは再度、通信路に下り通信として伝送するが、アクセラレーター・システムにおいては存在しない。プライマリー・システムでは、自分宛て以外の受信したメッセージを全て破棄する。
[下り通信]
次に、リズム・ノードはプライマリー・システム0に対して下り通信を割り当てる。そこで、プライマリー・システム0は、下り通信を行う。下り通信を行って、プライマリー・システムに戻ってきた通信メッセージは全て破棄する。
次に、リズム・ノードはプライマリー・システム0に対して下り通信を割り当てる。そこで、プライマリー・システム0は、下り通信を行う。下り通信を行って、プライマリー・システムに戻ってきた通信メッセージは全て破棄する。
Claims (5)
- 主キーを含むデータ項目を持つデータレコードと、データレコードを主キーの順に格納するプライマリー・ブロックと、各プライマリー・ブロックのアドレスが記載されたロケーション・テーブル・エントリーを連続領域に有するロケーション・テーブルとを保有するプライマリー・システムと、
各プライマリー・ブロックのアドレスが記載されたフランド・ロケーション・テーブル・エントリーを連続領域に有するフランド・ロケーション・テーブルを保有するアクセラレーター・システムと、
通信路とを備え、
プライマリー・システムから変更情報を同報で送信し、アクセラレーター・システムで変更情報を受信することを契機として、所定の待ち時間後に、アクセラレーター・システムからプライマリー・システムに対する変更完了通知を送信することを特徴とする、コンピューター・システム。 - 主キーを含むデータ項目を持つデータレコードと、データレコードを主キーの順に格納するプライマリー・ブロックと、各プライマリー・ブロックのアドレスが記載されたロケーション・テーブル・エントリーを連続領域に有するロケーション・テーブルとを保有するプライマリー・システムと、
各プライマリー・ブロックのアドレスが記載されたフランド・ロケーション・テーブル・エントリーを連続領域に有するフランド・ロケーション・テーブルを保有するアクセラレーター・システムと、
通信路とを備え、
リズム・ノードが送信督促メッセージを同報で送信し、アクセラレーター・システムで送信督促メッセージを受信することを契機として、所定の待ち時間後に、アクセラレーター・システムからプライマリー・システムに対する送信を行うことを特徴とする、コンピューター・システム。 - 主キーと代替キーを含むデータ項目を持つデータレコードと、代替キーと主キーからなる代替キー・エントリーと、代替キー・エントリーを含む代替キー・ブロックと、代替キー・ロケーション・テーブル・エントリーを連続領域に有する代替キー・ロケーション・テーブルを保有するプライマリー・システムと、
フランド代替キー・ロケーション・テーブル・エントリーを連続領域に有するフランド代替キー・ロケーション・テーブルを保有するアクセラレーター・システムと、
通信路とを備え、
プライマリー・システムが代替キー・ロケーション・テーブルの変更情報を送信し、各アクセラレータ・システムは、代替キー・ロケーション・テーブルの変更情報を受信し、代替キー・フランド・ロケーション・テーブルを変更し、代替キー・ロケーション・テーブルの変更情報を受信することを契機として、所定の待ち時間後に、アクセラレーター・システムからプライマリー・システムに対する変更完了通知を送信することを特徴とする、コンピューター・システム。 - 主キーと代替キーを含むデータ項目を持つデータレコードと、代替キーと主キーからなる代替キー・エントリーと、代替キー・エントリーを含む代替キー・ブロックと、代替キー・ロケーション・テーブル・エントリーを連続領域に有する代替キー・ロケーション・テーブルを保有するプライマリー・システムと、
フランド代替キー・ロケーション・テーブル・エントリーを連続領域に有するフランド代替キー・ロケーション・テーブルを保有するアクセラレーター・システムと、
通信路とを備え、
リズム・ノードが送信督促メッセージを同報で送信し、アクセラレーター・システムで送信督促メッセージを受信することを契機として、所定の待ち時間後に、アクセラレーター・システムからプライマリー・システムに対する送信を行うことを特徴とする、コンピューター・システム。 - 主キーを含むデータ項目を持つデータレコードと、データレコードを主キーの順に格納するプライマリー・ブロックと、各プライマリー・ブロックのアドレスが記載されたロケーション・テーブル・エントリーを連続領域に有するロケーション・テーブルとを保有するプライマリー・システムと、
各プライマリー・ブロックのアドレスが記載されたフランド・ロケーション・テーブル・エントリーを連続領域に有するフランド・ロケーション・テーブルを保有する複数のアクセラレーター・システムと、
通信路と、
送信督促メッセージを送信するリズム・ノードとを備え、
リズム・ノードは、各アクセラレーター・システムに送信督促メッセージを送信し、各アクセラレーター・システムは、送信督促メッセージを受信することを契機として、所定の待ち時間後に、プライマリー・システムに対する処理依頼を送信することを特徴とする、コンピューター・システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004122450 | 2004-04-19 | ||
JP2004122450 | 2004-04-19 | ||
PCT/JP2005/007019 WO2005103901A1 (ja) | 2004-04-19 | 2005-04-11 | コンピューター・システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2005103901A1 true JPWO2005103901A1 (ja) | 2008-03-13 |
Family
ID=35197155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006512502A Pending JPWO2005103901A1 (ja) | 2004-04-19 | 2005-04-11 | コンピューター・システム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2005103901A1 (ja) |
WO (1) | WO2005103901A1 (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06326717A (ja) * | 1993-05-12 | 1994-11-25 | Nec Corp | バス型通信装置 |
JPH1131096A (ja) * | 1997-07-11 | 1999-02-02 | Anetsukusu Syst Kk | データ格納検索方式 |
JP2001356945A (ja) * | 2000-04-12 | 2001-12-26 | Anetsukusu Syst Kk | データバックアップ・リカバリー方式 |
JP2002297428A (ja) * | 2001-03-29 | 2002-10-11 | Toshiba Corp | 分散データ管理システム、分散データ管理方法及び分散データ管理プログラム |
JP2002318720A (ja) * | 2001-04-19 | 2002-10-31 | Oki Electric Ind Co Ltd | コンテンツ配信管理システム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1564640A1 (en) * | 2002-10-21 | 2005-08-17 | Annex Systems Incorporated | Database accelerator |
-
2005
- 2005-04-11 JP JP2006512502A patent/JPWO2005103901A1/ja active Pending
- 2005-04-11 WO PCT/JP2005/007019 patent/WO2005103901A1/ja active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06326717A (ja) * | 1993-05-12 | 1994-11-25 | Nec Corp | バス型通信装置 |
JPH1131096A (ja) * | 1997-07-11 | 1999-02-02 | Anetsukusu Syst Kk | データ格納検索方式 |
JP2001356945A (ja) * | 2000-04-12 | 2001-12-26 | Anetsukusu Syst Kk | データバックアップ・リカバリー方式 |
JP2002297428A (ja) * | 2001-03-29 | 2002-10-11 | Toshiba Corp | 分散データ管理システム、分散データ管理方法及び分散データ管理プログラム |
JP2002318720A (ja) * | 2001-04-19 | 2002-10-31 | Oki Electric Ind Co Ltd | コンテンツ配信管理システム |
Non-Patent Citations (2)
Title |
---|
CSND200302387006, チェン ハーツ, "大規模データのレプリケーションを高速化する スナップショットレプリケーションの最適化技法を伝授", SQL SERVER magazine, 20021101, 第5号, p. 45〜61, JP, 株式会社翔泳社 * |
JPN6009056871, チェン ハーツ, "大規模データのレプリケーションを高速化する スナップショットレプリケーションの最適化技法を伝授", SQL SERVER magazine, 20021101, 第5号, p. 45〜61, JP, 株式会社翔泳社 * |
Also Published As
Publication number | Publication date |
---|---|
WO2005103901A1 (ja) | 2005-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7647595B2 (en) | Efficient event notification in clustered computing environments | |
JP6749926B2 (ja) | データを同期する方法、機器、及びシステム | |
Cao et al. | On coordinated checkpointing in distributed systems | |
US8560511B1 (en) | Fine-grain locking | |
US9411869B2 (en) | Replication between sites using keys associated with modified data | |
CN106981024B (zh) | 一种交易限额计算处理***及其处理方法 | |
EP2335153B1 (en) | Queue manager and method of managing queues in an asynchronous messaging system | |
WO2014141343A1 (ja) | データ多重化システム | |
CN101102577A (zh) | 无线通信基站***前后台数据库表数据增量同步方法 | |
JP6217644B2 (ja) | ルール分配サーバ、イベント処理システム、方法及びプログラム | |
US8250313B1 (en) | Conflict avoidance in data store replication | |
CN109544344B (zh) | 基于dag的区块链的交易处理方法及设备 | |
JP2012234333A (ja) | クラスタシステム、同期制御方法、サーバ装置および同期制御プログラム | |
CN113392132A (zh) | Iot场景的分布式缓存方法及*** | |
US8170041B1 (en) | Message passing with parallel queue traversal | |
CN115599807A (zh) | 一种数据存取方法、装置、应用服务器及存储介质 | |
CN110413689B (zh) | 一种内存数据库的多节点数据同步方法与装置 | |
JPWO2005103901A1 (ja) | コンピューター・システム | |
CN113791740B (zh) | 一种记录对象存储桶统计计数的方法 | |
JP3572928B2 (ja) | バックアップ機能付オンラインデータベース情報処理システム | |
US10896103B2 (en) | Information processing system | |
CN110019259B (zh) | 分布式索引服务引擎的数据更新方法、装置及存储介质 | |
EP4174676A1 (en) | Data redistribution method and apparatus | |
CN112578996B (zh) | 一种存储***的元数据的发送方法及存储*** | |
JP2008146420A (ja) | I/o要求の処理順序を最適化するためのコンピュータプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AA64 | Notification of invalidation of claim of internal priority (with term) |
Free format text: JAPANESE INTERMEDIATE CODE: A241764 Effective date: 20070313 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091104 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100413 |