JP4131781B2 - 分散処理型データベース管理システム - Google Patents

分散処理型データベース管理システム Download PDF

Info

Publication number
JP4131781B2
JP4131781B2 JP2001101738A JP2001101738A JP4131781B2 JP 4131781 B2 JP4131781 B2 JP 4131781B2 JP 2001101738 A JP2001101738 A JP 2001101738A JP 2001101738 A JP2001101738 A JP 2001101738A JP 4131781 B2 JP4131781 B2 JP 4131781B2
Authority
JP
Japan
Prior art keywords
host
data
lexicon
resident
lexicon set
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.)
Expired - Fee Related
Application number
JP2001101738A
Other languages
English (en)
Other versions
JP2002297432A (ja
Inventor
秀一 上村
睦 藤原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2001101738A priority Critical patent/JP4131781B2/ja
Priority to EP02252292A priority patent/EP1246064A3/en
Priority to US10/109,640 priority patent/US7143082B2/en
Publication of JP2002297432A publication Critical patent/JP2002297432A/ja
Application granted granted Critical
Publication of JP4131781B2 publication Critical patent/JP4131781B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータの主記憶上に実現されたデータベースシステムに関するものであって、特に、データベースの管理に加えて、トランザクション管理とバックアップ、障害回復、負荷分散などの分散システム管理などの諸機能を持ち、インターネット/イントラネット上に構築されるアプリケーションシステムをサポートするのに適したデータ分散処理型データベース管理システムに係る。
【0002】
【従来の技術】
ネットワークに分散したマシン間における共有データをリアルタイムに監視・制御するデータベースシステムでは、大量のデータを高速に処理(検索・更新)する必要があるので、それらのデータへのアクセス手段を提供するデータ管理システムの性能がデータベースシステムの性能を決定する。このようなデータ管理システムの性能向上を図るためには、通常ハードディスク等の外部記憶装置に格納されているデータのすべてを主記憶上に配置して管理することが考えられる。特に、昨今の主記憶容量の増加により、現在のハードウェア環境でも全データを主記憶上に常駐させることは可能となってきている。
【0003】
【発明が解決しようとする課題】
しかしながら、従来の外部記憶装置を前提にしたデータ管理システムを単に主記憶でキャッシングするだけでは、リアルタイムアプリケーションが必要とする性能を達成することはできない。その理由としては、(a) アプリケーションとデータ管理システムとの間で大量のデータ転送操作が必須となる、(b) 外部記憶装置を前提として設計されたアルゴリズムを各マシンの主記憶上で実行してもそれほど性能が向上しないという2点が挙げられる。さらに、外部記憶装置を前提として設計されたアルゴリズムでは、データ管理システムが提供できる機能が限られているため、多少高速化されてもアプリケーションの開発負荷は軽減されない。
【0004】
また、近年、24時間・365日稼動のシステム等、高い信頼性を要求するものが多くなっている。このようなシステムにおいては、システムダウンはいかなることがあっても許されない。そのために多重系のシステム構成を取ることが多い。また、このような機能をサポートするためのミドルウェア(MW)やハードウェア(HW)はアプリケーション・ソフトウェアでコントロールしなくてはならない。その結果、上記のような機能とデータ構造のアクセスを同時に実現しなくてはならず、多重系でシステムの信頼性を高めても、アプリケーションが複雑になるだけでなく、バグが残りやすくなり、アプリケーションの品質が低下する要因となっている。そのため、データベース管理システムの設定とデータの高信頼化機能を簡単に実装できる手段の開発が切望されていた。
【0005】
【発明が解決しようとする課題】
以上述べたように、従来のデータベースシステムは、高速性、信頼性および高機能性について不十分なものであって、より具体的には、次のような問題点があった。
【0006】
(1)機能変更によるシステム停止
システムの開発途中に機能の改造、拡張が発生した場合、当初のデータ構造では対応できない状況が起こりうる。もしそのような状況になった場合はデータベースを変更して対応するが、データベースを変更する際にはシステムを停止しないといけない。しかし、システムが稼動し始めてから機能の変更が起きた場合、システムを停止すると莫大なコストがかかってしまう。また、システムを止めないと機能変更ができないのは保守性の低下を意味する。
【0007】
(2)構造変更の困難性
システムのライフサイクル中に機能の改造や拡張が発生することはよくある。システム設計時には予想もつかなかったような機能の追加が発生し、当初のデータ構造では対応できない状況が起きてしまうことがある。このような場合、データベースを変更して対応することにより、つぎはぎのデータ構造になりがちであり、このようなデータ構造になると保守性が著しく下がってしまい、生産性や性能が劣化してしまう。
【0008】
(3)大規模システム開発時における生産性の低下
大規模システムの開発では、同時期に多くの開発者がアプリケーションの開発に携わることになる。データ構造は多くのアプリケーション共通に設計され、個々のアプリケーション固有の特性を配慮されないことが多い。そのためアプリケーション開発者にとってはとても使いにくいデータ構造になることが多い。大規模開発のためのデータ構造開発方法を含む開発スタイルがないため、後戻りや無駄な処理が発生し生産性が悪くなってしまう。
【0009】
(4)ローカル/リモート処理の困難性
リモートのマシンに対して処理(トランザクション)を行う際、従来のデータベース管理システムではRPC(Remote Procedure Call)を使う必要がある。しかし、このような手法によると、リモートのマシンに対してトランザクションを実行する時は、アプリケーションでの処理手順が変わり、通常の実行より手間がかかる。
【0010】
本発明は、上記のような従来技術の問題点を解決するために提案されたものであり、その目的は、システム構築が容易で、機能変更等にも柔軟に対応することができる分散処理型データベース管理システムを提供することにある。
本発明の他の目的は、ネットワークで結合された複数のマシンの主記憶上で保有する共有データを、高精度に管理することができるデータベース管理システム及びこの管理システムにおける各種の設定を容易に実行することのできる分散処理型データベース管理システムを提供することにある。
【0011】
すなわち、複数のサイトに同一内容のデータベースが存在するという状況は分散処理型のデータベースが基本的な機能を発揮する前提である。この前提を構成する方法として、本発明においては、「リトリーブ」という手段を使用して既にデータベースを保有しているサイトからデータの一部または全部を新たな(例えばそれまで停止していて起動した)サイトにコピーして本システムに参加させるという方法を採用する。この方法はシステム全体を停止させることなくシステムに参加するサイト(データベース)を追加できるという効果があり、さらにリトリーブ要求先を複数指定しておいてそれらのうちの可能なサイトからデータを得るので、新たなサイトがシステムに参加する(最新のデータ内容を得ることができる)可能性をシステム管理者(ユーザー)の裁量で高めることができる。
【0012】
しかも、リトリーブ要求先の指定情報も対象(リトリーブ元)サイトがシステムに参加しているか否かにかかわらず、システムを停止させることなく、設定/変更することができる。したがってシステムを停止させることなく、それまで全く本システムの構成対象になっていなかったサイトを本システムに参加させると同時に、実際に初期データをロードする際の確実性を制御することができるので、システムのオンライン(随時)拡張性が高められる。
【0013】
【課題を解決するための手段】
上記目的を達成するため、請求項1記載の発明は、ネットワークを介して接続された複数のコンピュータの主記憶領域上にそれぞれデータベースを配置し、ある特定のコンピュータに格納されたデータをオリジナルデータとし、このオリジナルデータを有するコンピュータをベースホストとすると共に、ある特定のコンピュータとは異なる他のコンピュータには、前記ベースホストに格納されているオリジナルデータと同一のレプリカデータを格納し、このレプリカデータを格納したコンピュータをレプリカホストとした分散処理型データベース管理システムにおいて、
あるホストの起動時において、そのホストが必要とするデータを、そのデータのオリジナルデータが格納されたベースホスト、またはオリジナルデータと同一のレプリカデータが格納されたレプリカホストから取得し、その取得したデータを主記憶領域に常駐させることを特徴とする。
このような構成を有する請求項1の発明によれば、システムの起動時において、常にオリジナルデータと同一のデータを、そのデータを利用するホストに常駐させることが可能になり、ネットワーク上に配置された各ホスト間で利用するデータの整合性が確保される。
【0014】
請求項2の発明は、自ホストに前記データのオリジナルが配置され、システムの起動時において、このオリジナルデータを自ホストの主記憶領域に常駐させることを特徴とする。
このような構成を有する請求項2の発明によれば、自己がデータのオリジナルを有する場合には、そのデータをそのまま自己の主記憶領域に常駐させることで、自ホストに配置されたオリジナルデータに直接アクセスすることが可能になる。
【0015】
請求項3の発明は、自ホストとは異なる他のホストであるベースホストに前記データのオリジナルが配置され、オリジナルデータと同一のレプリカデータが自ホストとは異なるレプリカホストに配置され、システムの起動時において、前記ベースホストまたはレプリカホストから、そのレプリカデータを自ホストに対してリトリーブ送信し、このリトリーブされたデータを自ホストの主記憶領域に常駐させることを特徴とする。
このような構成を有する請求項3の発明によれば、自ホストの他からリトリーブされたレプリカデータを自ホストに常駐させることにより、常にベースホスト上のオリジナルデータと同一内容のデータを自己の主記憶領域に常駐させて利用することが可能になり、ネットワーク上の各ホストが、オリジナルデータの所在を意識することなく、自ホストのデータとして利用できる。
【0016】
また、前記請求項1の発明は、前記データベースが、データの処理単位であるレキシコンと、このレキシコンを1つあるいは複数有するレキシコンセットによって構成され、前記オリジナルデータのリトリーブ処理がレキシコンセットを単位として行われることを特徴とする。
このような構成によれば、各ホスト毎に使用するデータが異なる場合であっても、各ホストに対するデータのリトリーブ処理をレキシコンセットを単位として行うため、個々のデータ(レキシコン)毎にリトリーブ処理を行う場合に比較して、その処理単位がまとまり、リトリーブ処理が容易に実行できる。
【0017】
請求項4の発明は、前記リトリーブ処理が、ベースホストからレプリカホストに対してレキシコンセットを単位として実行され、レプリカホストにおいては、リトリーブされたレキシコンセット中の予め定められたレキシコンに対して常駐処理がなされることを特徴とする。このような構成を有する請求項4の発明によれば、リトリーブ処理はデータをグループ化した処理単位であるレキシコンセットを対象として行い、データの常駐そのものは、各ホストで必要とするレキシコンのみを対象とするので、データ常駐に必要な主記憶領域の効率的な使用が可能となる。
【0018】
また、前記請求項1の発明は、前記ネットワークを介して接続された複数のコンピュータの1つにおいて、各ホストに常駐させるべきレキシコンセットとレキシコンと、このレキシコンセットのオリジナルが格納されたベースホストと、レキシコンセットを常駐させるべき各ホストからリトリーブ要求を送り付ける要求送信先ホストのリストを各ホスト毎に設定し、これらの設定されたデータをシステム管理レキシコンセットのオリジナルとしてシステム管理レキシコンセットのベースホストに配置し、各ホストの起動時には、このシステム管理レキシコンセットを、そのベースホストまたはシステム管理レキシコンセットのオリジナルと同一のレプリカデータを格納するレプリカホストから他のホストに対してリトリーブ送信することを特徴とする。なお、請求項13及び請求項14の発明は、このような構成に対応するデータベース管理プログラムに関するものである。
このような構成によれば、データ常駐およびリトリーブに必要なデータをシステム管理レキシコンセットとして、予めそのベースホストに配置し、これを他のホストにリトリーブ送信することにより、各ホストを起動した場合に、共通のシステム管理レキシコンセットが配置されることになり、各ホストにおけるデータ常駐処理が均等に実施されることになり、どのホストでも他のシステムの状況が把握できて、システムの整合性が確保される。
【0019】
また、前記請求項1の発明は、システム管理レキシコンセットに登録されているリトリーブ要求先ホストに従って要求先ホストを決定し、その要求先ホストに対してリトリーブ要求を発信し、このリトリーブ要求に対して、リトリーブ要求先ホストからリトリーブ応答があるか否かを検証し、どこからも応答のない場合は、リトリーブ要求の発信元ホストがシステム管理レキシコンセットのベースホストであるか否かを検証し、リトリーブ要求の発信元ホストがシステム管理レキシコンセットのベースホストである場合には、自ホストにデータがあれば自ホストの有するデータをその主記憶領域に常駐させ、自ホストにデータがなければ空のレキシコンセットを作成することを特徴とする。
【0020】
このような構成によれば、どのホストを立ち上げた場合であっても、リトリーブ要求にどこからも応答がなかった場合、ベースホストかどうか判断し、ベースホストの場合、自ホスト内でデータの常駐をさせて解決するようになるので、データベース管理システムでの重要なベースホストの起動を確実にできる。
【0021】
請求項5の発明は、各ホスト上にすべてのデータが常駐された後、常駐状態にあるデータの改変がなされた場合に、前記ベースホストのオリジナルデータと、レプリカホストのレプリカデータとの同一性を確保するためのレプリケーション処理部を設けたことを特徴とする。このような構成を有する請求項5の発明によれば、各ホスト上にデータが常駐された後でも、各ホスト上で常駐させたデータの同一性を確保することが可能である。
【0022】
請求項6の発明は、予め設定されたデータが各ホストに常駐されて各ホストが稼働状態にある場合に、前記システム管理レキシコンセットのベースホストにおいて、このシステム管理レキシコンセットのデータを更新し、この更新されたシステム管理レキシコンセットのデータを各ホストにレプリケーション送信することにより、各ホストにおける常駐対象データを追加することを特徴とする。このような構成を有する請求項6の発明によれば、各ホストの稼働後に常駐対象となるデータの追加・削除・変更があった場合に、これをシステム管理レキシコンセットのベースホストから各ホストに反映させることが可能になる。
【0023】
請求項7の発明は、予め設定されたデータが各ホストに常駐されて各ホストが稼働状態にある場合に、前記システム管理レキシコンセットのベースホストと異なるホストにおいて、このホストからシステム管理レキシコンセットのデータをリモート実行で更新し、このシステム管理レキシコンセットのベースホストから他のホストに対してレプリケーション送信して、各ホストにおける常駐対象レキシコンセット及びレキシコンに関する情報を一元化することを特徴とする。このような構成を有する請求項7の発明によれば、各ホストの稼働後に常駐対象となるデータの追加・削除・変更があった場合に、これをシステム管理レキシコンセットのベースホストから各ホストに反映させることが可能になる。
【0024】
請求項8の発明は、前記ネットワークを介して接続された複数のコンピュータが、予め、レキシコンセットを常駐させるべきホストと、このレキシコンセットのオリジナルが格納されたベースホストと、常駐させるべきホストからのリトリーブ要求を発信する要求先ホストリストとを設定するデータ常駐状態設定部を備え、このデータ常駐状態設定部の設定に従い、リトリーブ要求先ホストリストに従ってリトリーブ要求を発信し、応答したホスト(ベースまたはレプリカ)から要求元ホストに対してデータを送信するリトリーブデータ管理部を備えたことを特徴とする。
【0026】
このような構成を有する請求項8の発明によれば、データ常駐状態設定部とリトリーブデータ管理部とによって、予めデータの常駐先や常駐すべきデータの内容、更には各ホストに対する常駐常駐データのオリジナルの所在を設定しておくことができ、これらの設定内容に従って、システム起動時に各ホストに対するデータの常駐を円滑に実施できる。
【0027】
請求項9の発明は、前記データ常駐状態設定部には、アクセス対象とするレキシコンセット名、そのレキシコンセットを配置させる常駐ホスト名、およびそのレキシコンセットを常駐させるときに使用するリトリーブホスト名を設定するレキシコンセット常駐設定部と、各ホストに配置するレキシコンをそのレキシコンセットと共に設定するレキシコンセット常駐計画設定部と、前記レキシコンセット常駐計画設定部による設定内容に従って、各ホストにおいて、あるレキシコンが現在常駐しているか否かの状況を確認するレキシコンセット常駐状況設定部が設けられていることを特徴とする。
【0029】
このような構成を有する請求項9の発明によれば、各設定部により、常駐すべきデータやそのリトリーブ先、更には各ホストにおけるデータの常駐状況などを、そのレキシコンセットおよびレキシコンを対象として詳細に設定・確認することが可能である。
【0030】
請求項10の発明は、各ホスト上にすべてのデータが常駐された後、常駐状態にあるデータの改変がなされた場合に、前記ベースホストのオリジナルデータと、レプリカホストのレプリカデータとの同一性を確保するためのレプリケーション処理部を設けたことを特徴とする。このような構成を有する請求項10の発明によれば、各ホスト上にデータが常駐された後でも、各ホスト上で常駐させたデータの同一性を確保することが可能である。
【0031】
請求項11の発明は、前記データ常駐状態設定部が、予め設定されたデータが各ホストに常駐されて各ホストが稼働状態にある場合に、前記システム管理レキシコンセットのベースホストにおいて、このシステム管理レキシコンセットのデータを更新し、この更新されたシステム管理レキシコンセットのデータを前記レプリケーション処理部より各ホストにレプリケーション送信することを特徴とする。このような構成を有する請求項11の発明によれば、各ホストの稼働後に常駐対象となるデータの追加・削除・変更があった場合に、これをシステム管理レキシコンセットのベースホストから各ホストに反映させることが可能になる。
【0032】
請求項12の発明は、前記データ常駐状態設定部が、予め設定されたデータが各ホストに常駐されて各ホストが稼働状態にある場合に、前記システム管理レキシコンセットのベースホストと異なるホストにおいて、このホストが所有するシステム管理レキシコンセットのデータを更新し、この更新されたシステム管理レキシコンセットのデータを前記レプリケーション処理部よりシステム管理レキシコンセットのベースホストにレプリケーション送信し、前記レプリケーション処理部が、このシステム管理レキシコンセットのベースホストから他のホストに対してレプリケーション送信して、各ホストにおける常駐対象レキシコンセット及びレキシコンに関する情報を一元化することを特徴とする。このような構成を有する請求項12の発明によれば、各ホストの稼働後に常駐対象となるデータの追加・削除・変更があった場合に、これをシステム管理レキシコンセットのベースホストから各ホストに反映させることが可能になる。
【0033】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して具体的に説明する。なお、本実施の形態のうち情報処理に関する部分は、典型的には、コンピュータをソフトウェアで制御することで実現される。この場合のソフトウェアは、コンピュータのハードウェアを物理的に活用することで本発明の作用効果を実現するもので、また、従来技術との共通部分には従来技術も適用される。但し、この場合のハードウェアやソフトウェアの種類や構成、ソフトウェアで処理する範囲などは各種変更可能であるため、以下の説明では、本発明及び実施形態の各機能を実現する仮想的回路ブロックを用いる。
【0034】
[1.分散データ管理システムの全体像]
本発明は、ネットワークで接続された複数のマシンに備えられたデータベースを、適切且つ効率良く管理するための分散データ管理システムに関するものである。
【0035】
本発明の詳細については後述するが、ここでは本発明の分散データ管理システム(以下、本システムという)について概説する。すなわち、本システムは、データベース(レキシコンセット)とトランザクションを扱うものであって、アプリケーション(=ユーザ)からデータベースの内容の参照・検索・更新の一群の操作依頼をトランザクションとして受け付け、そのトランザクションを適切に実行し、必要(要求)に応じて実行完了通知および実行結果をアプリケーションに通知するものである。
【0036】
図1は、本発明に係る分散データ管理システムの構成を示す図である。すなわち、本システムは、図1に示すように、複数のコンピュータA,B,C……(各ホストと呼ぶ)を通信ネットワークで接続することによって構成されている。また、各ホストA,B,Cの主記憶領域には、それぞれデータベース1a、1b、1cとこのデータベースにアクセスするためのトランザクション関数2a、2b、2cが配置されている。
【0037】
各ホストでは1または複数個のアプリケーションが実行されるが、本システムが複数のホストから構成される場合、異なるホストでは異なるアプリケーションが実行されることが多い。すなわち、アプリケーションX,Y,Zは本システムの外部にあって、各ホストごとにそのデータベースにアクセスして必要な処理を行う。この場合、各アプリケーションX,Y,Zは、各ホストに設けられた処理部3a、3b、3cを介して、本システムに予め登録されているトランザクション関数2a、2b、2cに参照・更新などの処理を依頼し、その結果を受けてデータベースへのアクセス以外にプログラムの実行に必要となる処理を行う。通常、アプリケーションでは画面への表示や印刷などのフロントエンド処理を行う。
【0038】
(データベース)
また、本システムのデータベース1a、1b、1cは、1つ以上の部分(レキシコン)から構成されている。このレキシコンは、レキシコンセットのデータの部分に選択的にアクセスしたり、属性を付与するための単位であって、名称(レキシコン名)等でユニークに識別される。本システムの実行環境においては、図2に示すように、ユニスペースが複数のレキシコンセットを含むことができるので、レキシコンセットもまた名称(レキシコンセット名)等で識別する。さらに、同一の物理的マシン上に共通のネットワークを使用して複数のユニスペース、すなわち異なるレキシコンセットの組を管理する複数のシステムとして本システムを実施することもあり得るので、ユニスペースもまた名称(ユニスペース名)等で区別する。
【0039】
そして、各ホストのデータベースに格納されているレキシコンセットは、いずれかのホスト上にそのオリジナルデータが保有され、他のホストにはそのコピーであるレプリカデータが保有されている。例えば、図1においては、ホストA(コンピュータA)には、データBのオリジナルデータが保有され、ホストC(コンピュータC)には、データAのオリジナルデータが保有されている。また、ホストB(コンピュータB)には、データA及びデータBのレプリカデータが保有されている。また、本システムにおいては、データの更新処理は、オリジナルデータに対してのみ実行でき、レプリカデータでは、データの更新処理を行うことはできない。
【0040】
(トランザクション)
トランザクションが行うべき操作を抽象化/一般化した手続を「トランザクション関数」と呼ぶ。すなわち、図1に示したトランザクション関数(TR関数)A,Bは、各マシンのデータベースにアクセスして、アプリケーション共通で必要となる処理を実現する関数である。すなわち、本システムにおいては、各アプリケーションX,Y,Zは、直接データベースにアクセスして処理を行うわけではなく、トランザクション関数を介してデータベースにアクセスするように構成されている。
【0041】
トランザクションには、各種の属性を付与するため識別子(トランザクション名等)が含まれている。この識別子に対して、例えば実行すべきトランザクション関数を対応付けたりする。この識別子は、付与すべき属性の種類に応じて必要な数を設定すればよい。
【0042】
トランザクションが操作の対象とするのは、1つのレキシコンセットとする。本システムでは、ユニスペースが複数のレキシコンセットを含むことができるので、トランザクションには、操作対象のレキシコンセットを明記する。このレキシコンセット名を上記識別子の1つと考えても良い。もちろん、他の識別子から操作対象レキシコンセットを判別する手段を設けることもでき、レキシコンセット名の明記は必須ではない。
【0043】
そして、本システムにおいては、アプリケーションからのデータ操作の依頼をトランザクションを単位として処理する。従って、オリジナルデータに対する更新処理も更新TRを単位として実行され、レプリカサイトにおける更新内容(レプリケーションデータ)のレプリカデータに対する反映処理も、原因となった更新TRを単位として行われる。
【0044】
(本システムの主たる目的)
本システムの主たる目的は、データベース(レキシコンセット)を複数のマシン上で同一内容に保つことを意図している。すなわち、各マシンは同一内容のデータベースのコピーを保持しており、1つのマシンでそのデータベースに対して更新が加えられた場合には、通信ネットワークを経由して各マシンに更新情報(内容)を伝達し、各マシンのデータベースに更新内容を速やかに反映させることによってこの目的を達成しようとするものである。本明細書においては、この機能を「レプリケーション」と称する。
【0045】
なお、本明細書においては、データベースを更新する権利を持つマシンをそのデータベースのオリジナルサイト、そのデータをオリジナルデータと呼ぶ。また、それ以外のマシンでそのデータベースのコピーを保有するものをレプリカサイト、そのデータをレプリカデータと呼ぶ。
【0046】
また、本システムは、データベースを更新するトランザクション(更新TR)を上記オリジナルサイトで実行する機能を備え、前記レプリケーションと併せて、複数のコピーからなるデータベースを、各マシンのアプリケーションからは論理的に1つのデータベースに見えるように運用する。すなわち、各マシンのアプリケーションはオリジナルサイトがどのマシンかを気にする必要がない。本明細書においては、このようなシステム構成を「リモート/ローカル構造」と呼ぶ。
【0047】
さらに、本システムにおいては、トランザクションの実行及びレプリケーションデータの反映が一単位完了するまでは、そのデータベース(レキンコンセット)を操作対象とする他のトランザクションの処理を行わない(もちろん他のレプリケーションデータの反映も行なわない)。それらの実行及び反映、また、そのデータベース(レキンコンセット)を操作対象とする他のトランザクションの実行またはレプリケーションデータの反映が進行中の場合は、それらの完了を待って開始される。すなわち、(1つのマシンの)1つのデータベース(レキンコンセント)に関するトランザクションの実行及びレプリケーションデータの反映は、トランザクション単位でシリアルに処理される。それゆえ、トランザクション及びその実行を依頼したアプリケーションが他のトランザクションの実行途中のデータベースの内容にアクセスすることはない。
【0048】
なお、更新操作を行なわず、データの検索・参照のみを行なうトランザクションを、更新トランザクションに対して参照トランザクションと呼ぶ。本システムでは、レプリケーション機能によって、オリジナルデータとレプリカデータの一致がトランザクション単位で速やかに図られるので、参照トランザクションは、そのトランザクションを依頼されたマシン(ローカルマシン)のレプリカデータを操作対象としても何ら不都合を生じない。
【0049】
また、通信ネットワークはオリジナルサイトがレプリケーションをレプリカサイトに伝達してレプリケーション機能を実現するための手段であると同時に、レプリカサイトで発行(依頼)された更新トランザクションをオリジナルサイトに転送するための手段でもある。この更新トランザクションをオリジナルサイトのみで実行する機能は、具体的には通信ネットワークを経由してレプリカサイトで発行された更新トランザクションをオリジナルサイトに転送することによって実現される。
[2.用語の説明]
各実施形態について説明する前に、本明細書中で用いられる種々の用語について説明する。
【0050】
(1)ユニスペース(共有単位領域/データベース実行単位領域)
本システムは、ネットワークで結合された複数のマシン(ホスト)上で協調動作することで、主記憶上の共有データを一貫して維持・更新するためのものであり、本システムにおいて、ユニスペースとは、このシステムを構成する複数のマシン(ホスト)間で共有されるデータおよびデータアクセス(参照・更新)のサービスを区別するための識別子である。この識別子は、サーバ同士が通信する際のグループを識別する際に使用する。また、アプリケーションが各サーバに対して共有データへのアクセスのサービスを要求する際にも利用する。なお、ユニスペースの識別子は、ユニスペースの名前をあらわすアスキー文字列とグループ間通信に利用するIPマルチキャストアドレスの組で構成されている。
【0051】
(2)レキシコンセット
ユニスペースを構成する共有データに部分集合を定めてレキシコンセットと呼ぶ。主記憶領域を構成する各マシンに対して、レキシコンセット毎にデータを配置するか否かの指定が可能である。本システムでは、主記憶データをファイルにバックアップ保存することが可能であるが、この際もレキシコンセット単位となる。
【0052】
レキシコンセット内には、データベースとして共有データへの高速アクセスを可能にするインデックス機能がある。以下に基本となるデータ構造を記する。
(a) レキシコン(LEXICON):レキシコンセットの部分集合。レキシコンセットに属する。
(b) セル(CELL):データを格納する配列。タイプ(データ型)、キャパシティ(配列の長さ)、カウント(ソート時のキーとしての有効長)属性を持つ。レキシコンに属する。
(c) コンテキスト(CONTEXT):セルに直線的な関係を与えるデータ(セルの配列)。キャパシティ属性を持つ。レキシコンに属する。
(d) ロー(ROW):コンテキストの一部に対してソートキーを指定するデータ。ローレングス、キーレングスの属性を持つ。コンテキストに属する。
(e) ファサード(FACADE):ローをソートして検索を可能にするデータ。インデックス機能の中心となるもの。レキシコンに属する。
【0053】
(3)トランザクション
トランザクションとは、ユニスペース・サービスに参加しているアプリケーションの要求に応じて共有データを一貫して参照および更新する操作を意味する。トランザクションが一度に操作対象とすることが出来るデータの集合は、ひとつのレキシコンセットのみである。
本システムでは、トランザクションを用いて共有データを更新する際は、オリジナルデータが存在する特定のサイト(以下、ベースホスト又はオリジナルサイトと呼ぶ)で更新後、同じユニスペースを構成する他サイトに更新結果(以下、レプリケーションと呼ぶ)をマルチキャストすることでデータの一貫性を保持している。なお、このベースホストはレキシコンセット毎に指定することができる。
アプリケーションの発行するトランザクションを、本システムでは、(a) ローカル参照、(b) ローカル更新、(c) リモート更新の3つに区別する。
【0054】
(a)ローカル参照
トランザクション操作が共有データの参照だけの場合で、完全にローカルな主記憶データへのアクセスとして処理され、ネットワークのトラフィックは一切発生しない。言い換えれば、トランザクションの実行によりデータが参照されるだけで、なんら変更されないので、自サイトがオリジナルサイトであるかレプリカサイトであるかを問わず、常に自サイトの主記憶データにアクセスすることにより、トランザクションの実行処理がなされる。
【0055】
(b) ローカル更新
トランザクションを発行したアプリケーションが存在するサイトがオリジナルサイトの場合。つまり、自サイトでデータ更新をすることができ、更新後、他のサイトにその更新データをマルチキャスト送信することにより、常に各ホストで同一のデータを利用できるようにする機能をいう。
【0056】
(c) リモート更新
トランザクションを発行したアプリケーションが存在するサイトがレプリカサイトの場合。つまり、自サイトのデータはレプリカデータなので、データ更新をすることができず、そのトランザクションをオリジナルサイトに転送し、オリジナルサイトでデータ更新後、その更新データをレプリケーション受信することにより、常に各ホストで同一のデータを利用できるようにする機能をいう。
なお、自サイトがレプリカサイトであり、且つ、トランザクションを発行したアプリケーションが存在しない場合には、オリジナルサイトからレプリケーションされた更新データを、自サイトに反映させることにより、常に各ホストで同一のデータを利用できるように構成されている。
【0057】
前記(b) のローカル更新と(c) のリモート更新の区別は、ベースホストがトランザクション受付サイトと同じであるか否かに依存して区別される。(b) のローカル更新の場合はローカルな主記憶データを更新したタイミング、(c) のリモート更新の場合はトランザクションをベースホストに転送し共有データを更新後、レプリケーションを受信してローカルデータを更新したタイミングで終了する。あくまでもこのローカル更新とリモート更新の区別は本システム内で行われるので、アプリケーションがこれについて意識することはない。
【0058】
(5)リトリーブ
リトリーブとは、システムの起動時またはレキシコンセットデータを主記憶上に格納するときに、オリジナルデータやレプリカデータを設定された通りに利用可能な状態にする機能である。自ホストの他から(オリジナルでもレプリカでもよい)レキシコンセットデータのすべてをネットワーク経由で受け取る。
【0059】
また、リトリーブ要求を送る相手先のホストのリストを指定することができる。あるルールに従ってホストリストの中のホストに対して送信要求を出す。オリジナルやレプリカの配置、ネットワークの帯域幅、マシンのスペックなどによってホストリストを決定することで、システム構成に適した設定をとることができる。
なお、一般には、データはネットワークを通じて各ホストに配置されるが、システムの起動時においては、ネットワークからのリトリーブに失敗した時はファイルからのロードも可能であり、また、ネットワークリトリーブをする前にファイルからのロードを行うことも可能である。
【0060】
(6)レプリケーション
レプリケーションとは、更新トランザクションによるデータの変更を他のマシンへマルチキャストで送信する機能である。オリジナルで更新トランザクションを実行し、更新分のみをマルチキャストでレプリカへ送信する。レプリカ側はそれを受信し、レプリカデータへ反映する。
【0061】
(7)バックアップ
バックアップとは、2次記憶装置へレキシコンセットの内容を保存する機能である。2次記憶へバックアップするかどうかはオプションで指定できるので(適宜指定することができるように構成されているので)、要求するスループットや信頼性向上などに柔軟に対応したシステム構成をとることができる。
バックアップ機能で保存されたデータは、起動時や障害回復時のリトリーブ機能で使用される。2次記憶装置へのバックアップ処理は、トランザクション処理と非同期で処理されるため、トランザクション処理のスループットを低下させることはなく、主記憶データ管理の高速性を維持できる。
【0062】
(8)ネットワークを構成するサイト等に関する用語
ローカルサイト:自サイトのこと
リモートサイト:他のサイトのこと
オリジナルサイト:オリジナルデータを持っているサイト
レプリカサイト:レプリカデータ(コピー)を持っているサイト
【0063】
[3.各ホストの構成…図2]
次に、各ホストの構成を図2によって説明する。
前記の全体構成図で説明したように、各ホストの主記憶領域には、それぞれデータベース管理システム1が配置されている。この管理システム1は、複数の処理部あるいは設定部と、これらの処理や設定を反映させるためのレキシコンセット2と呼ばれるデータベースを備えている。また、システム管理アプリケーションや業務アプリケーションとの接点(窓口)となるトランザクション受付部3および各ホストをネットワークに接続するための送信部および受信部4,5を備えている。
【0064】
この管理システムが備えている複数の処理部および設定部としては、次のものが用意されている。
(1)システム構成設定部11
このシステム構成設定部11は、ベースホスト設定部111、バックアップホスト設定部112、レキシコン定義部113およびマルチキャストアドレス設定部114を備えている。
このうち、ベースホスト設定部111は、複数のホストのいずれかにオリジナルデータをおくか、すなわち、あるレキシコンセットのベース(オリジナル)をネットワーク上のどのホストに置くかを定義する。バックアップホスト設定部112は、本システムが稼動中、各ベースホストについて、1つ以上のバックアップホストが存在するように配置する。レキシコン定義部113は、ベースホスト設定部111によって定義されたレキシコンセットについて、そのレキシコンに属するレキシコンを決定する。マルチキャストアドレス設定部114は、各レキシコンセットについて、システム起動時のパラメータとしてデフォルトのマルチキャストアドレスを設定したり、デフォルトと異なるマルチキャストアドレスを設定する。
【0065】
(2)トランザクション管理部12A
トランザクション管理部12Aは、アプリケーションが利用するトランザクションと、このトランザクションによって実行されるトランザクション関数を定義したり、このトランザクション関数がアクセスするレキシコンセットとの関係を定義する。また、トランザクションを利用してレキシコンセット内のデータの参照・更新・検索などの処理を行う。
【0066】
(3)トランザクション処理部12B
トランザクション処理部12Bは、前記トランザクション管理部12Aの設定に従い、アプリケーションからのトランザクションの実行依頼があった場合に、そのトランザクションに対応するトランザクション関数を選択して、このトランザクション関数を用いてレキシコンセット内のデータの参照・更新・検索などの処理を行う。
【0067】
(4)データ常駐管理部13
このデータ常駐管理部13は、各ホストにどのレキシコンセットを常駐させるか、すなわち、各ホストの業務アプリケーションがどのレキシコンセットのデータにアクセス可能かを、あらかじめ設定する処理を行う。また、システムの稼働時には、必要なデータをベースホストから各レプリカサイト呼び出すリトリーブ処理や、新たなレキシコンセットを所定のホストに追加常駐させたり、常駐を解放したりする常駐状態の変更処理も行う。このデータ常駐管理部13の構成については、図5に詳述する。
【0068】
(5)レプリケーション処理部14
このレプリケーション処理部14は、システム構成設定部においてあらかじめ設定されたベースホストとレプリカサイトとの間で、データの同一性を確保するためのレプリケーション処理を行う。すなわち、業務アプリケーションが行うデータに対するアクセスは、トランザクションを介して行われるが、このトランザクションには前記用語の説明で述べたように、データを参照するだけの「参照」と、データが変更される「更新」の2種類の処理がある。また、そのTRを実行するホストにも「ローカルサイト…自サイトのこと」と「リモートサイト…他のサイトのこと」の2種類がある。そこで、このレプリケーション処理部14は、これらの種類に応じて、前記用語の説明で述べた次の処理を行う。
(a) ローカル参照処理
(b) ローカル更新処理
(c) リモート更新処理
【0069】
(6)ベースホスト切替処理部15
前記システム構成設定部11で設定したように、各レキシコンセットについては、そのベースホストがあらかじめ設定され、それに従ってシステムが稼働されている。ところが、ネットワーク上に接続されている各ホストの故障、保守点検、ネットワーク障害などの理由から、レキシコンセットのベースホストを他のホストへ切り替えることが必要となる場合がある。この場合、ネットワーク上に接続されている各ホストには、次の3種類の立場がある。すなわち、(a) 現在Baseホストであるホスト(旧Baseホスト)、(b) 次にBaseホストになる予定のホスト(新Baseホスト)、(c) 上記2種以外のホスト(他のホスト)である。
このベースホスト切替処理部15は、前記の3種のホストにおいては、旧ベースホストから新ベースホストあるいは他のホストへのオリジナルデータのレプリケーション、および切替後のベースホストがどのホストであるかを各ホスト間に周知させるための処理を行う。
【0070】
[4.システム構成の設定…図3]
前記図2示したような各ホストについて、本実施の形態では、次ぎのように各種の設定を行う。この設定は、システム管理アプリケーションから実行を依頼されたデータ管理システム設定トランザクションが、各設定部や処理部にアクセスすることにより行われる。
すなわち、本システムは、各ホストの主記憶領域(本実施の形態では、ユニスペース/Unispaceと呼ぶ)上にレキシコンセットと呼ばれるデータ及びこのデータに対して様々な処理を行うためのトランザクションに関するデータのすべてを配置するものであるから、以降の例では、主記憶領域が予め正しく初期化されていることを前提とする。
【0071】
本システムを稼働するには、このように初期化完了された主記憶領域に対しては、各データを割り当て、各データに対する種々の設定を行うのであるが、そのために、専用のシステム管理アプリケーションが使用される。
トランザクションの登録もアプリケーションから行うものであるが、トランザクションの実行依頼を行うアプリケーションとトランザクションの登録を行うアプリケーションでは異なったアプリケーションを使用しているため、アプリケーションの種類は異なったものである。そこで、本実施の形態では、トランザクションの登録等のシステム設定を行うアプリケーションのことを、「システム管理アプリケーション」と呼び、トランザクションの実行依頼を行うアプリケーションを「ユーザ実行アプリケーション」と呼ぶ。
【0072】
(1)レキシコンセットの定義(S0301)
ユーザは、設計時に決めたレキシコンセットを定義する必要がある。すなわち、システム管理アプリケーションから発行したトランザクションを、トランザクション受付部3が受け付け、このトランザクション受付部3からの指令により、図2のシステム構成設定部11に設けられたベースホスト設定部111がレキシコンセットのベースホストを指定する。以下の例は、Unispaceと呼ばれる主記憶領域に対して、定義するレキシコンセットの「本名」と、このレキシコンセットのベース(オリジナル)をネットワーク上のどのホストに置くかを定義している。すなわち、"SampleLexiconSet"というレキシコンセットをベースホスト"host_1"で定義する。
DefineLexiconSet(&us,"SampleLexiconSet","host_1");
ただし、この状態では、レキシコンセットが定義されただけで、実体であるデータはどこにもない。
【0073】
(2)バックアップホストの定義(S0302)
すなわち、システム構成設定部11に設けられたバックアップホスト設定部112により、ユーザは、各レキシコンセットのバックアップホストを1つ以上定義するもので、その際、本システムが稼動している限り常に1つ以上のバックアップホストが存在するように配置する。また、バックアップホスト設定部112により、各バックアップホストにおいてファイルのバックアップを取るか否か決める。例えば、SampleLexiconSetのBackupホストとしてhost1、host2とし、host1ではファイルBackupし、host2ではファイルBackupしない場合は以下の通りである。
SetLexiconSetBackupHost(&us,"SampleLexiconSet","host1",TRUE);
SetLexiconSetBackupHost(&us,"SampleLexiconSet","host2",FALSE);
【0074】
(3)レキシコンの定義(S0303)
次に、レキシコン定義部113により、前記のように定義されたレキシコンセットの中にそのレキシコンセットに属するレキシコンを定義する。この場合、本実施の形態では、定義するレキシコンには、それが属するレキシコンセットと共に、そのレキシコンがシングルオリジナルかマルチオリジナルかのタイプも合わせて定義する。ここで、シングルオリジナルのレキシコンはレキシコンセットのベースホストでのみ更新操作(cell/contextの作成/変更 etc)が可能である。ベースホスト以外のホストでは、レキシコンの内容はベースホストでの更新操作の結果がレプリケーションされて反映される。マルチオリジナルのレキシコンでは、どこのホストでも更新操作が可能である。更新操作の結果はレプリケーションされず、更新結果はローカルにとどまる。
すなわち、"SampleLexiconSet"の中に2つのレキシコン"Lexicon_1"、"Lexicon_2"を定義する。"Lexicon1"をシングルオリジナルとし、"Lexicon2"をマルチオリジナルとする。
DefineLexiconInLexiconSet(&us,"SampleLexiconSet","Lexicon1",SingleORG);
DefineLexiconInLexiconSet(&us,"SampleLexiconSet","Lexicon2",MultiORG);
【0075】
(4)トランザクションライブラリの定義(S0304,S0305)
本システムにおいて、トランザクション関数とトランザクションは1対1に対応しており、トランザクション処理部12は、トランザクションの集合をライブラリとして定義し、このランザクションライブラリをレキシコンセットに登録する。
例えば、トランザクションライブラリ"TRLIB"をレキシコンセット "SampleLexiconSet"に定義する。ライブラリは3つのトランザクション "tr1","tr2","tr3"からなる場合。
char *TrNames[3];
TrNames[0]="tr1"; TrNames[1]="tr2"; TrNames[2]="tr3";
DefineTransactionLibrary(&us,"SampleLexiconSet","TRLIB",3,TrNames);
このようにしてトランザクションが定義されたが、実行できるトランザクションの実体はまだない。
【0076】
(5)トランザクション名とトランザクション関数名の関連付け(S0306)また、トランザクション処理部12は、トランザクション名とトランザクション関数名を関連付ける。同時に、トランザクションのアクセス対象レキシコンとアクセス形態を決定し、トランザクションと関連付けてレキシコンセットに登録する。この時点で、トランザクションがどのレキシコンに対してアクセスされるか設定される。ここで、アクセス形態とは、参照または更新を示す。参照の場合は、トランザクションはレキシコンの内容の参照のみが許され、レキシコンの内容を書き換えることは不可能である。更新の場合は、レキシコンの内容を参照することも、内容を書き換えることも可能である。
例えば、3つのトランザクション "tr1","tr2","tr3"がそれぞれトランザクション関数 "tr1all", "tr2srh", "tr3upd"に関連付けられ、"tr1"はレキシコン "Lexicon1","Lexicon2"を更新し、"tr2"は"Lexicon1"のみ参照し、"tr3"は"Lexicon1"を更新し、"Lexicon2"を参照する場合は以下の通りである。
char *lex[2];
int mode[2];
lex[0]="Lexicon1"; lex[1]="Lexicon2";
mode[0]=TRUE; mode[1]=TRUE;
AttachTransactionToFunction(&us,"SampleLexiconSet","tr1","tr1all",2,lex,mode);
lex[0]="Lexicon1";
mode[0]=FALSE;
AttachTransactionToFunction(&us,"SampleLexiconSet","tr2","tr2srh",1,lex,mode);
lex[0]="Lexicon1"; lex[1]="Lexicon2";
mode[0]=TRUE; mode[1]=FALSE;
AttachTransactionToFunction(&us,"SampleLexiconSet","tr3","tr3upd",2,lex,mode);
この場合、トランザクション名とトランザクション関数名が関連付けられただけであり、まだトランザクションが実行できる状態ではない。
【0077】
(6)レキシコン配置の定義(S0307)
データ常駐管理部13は、レキシコンを配置するホストを定義する。各ホストで実行するトランザクションに必要なレキシコンだけを配置するのが最もリソース節約になる。計算機に余裕があるならば各ホスト同一の配置状況にするのを勧める。例えば、レキシコンセット "SampleLexiconSe"の"Lexicon1"と"Lexicon2"をホスト "host1"に配置する場合波、以下の通りである。。
DefineHostOfLexiconResidence(&us,"SampleLexiconSet","Lexicon1","host1");
DefineHostOfLexiconResidence(&us,"SampleLexiconSet","Lexicon2","host1");
この状態では、レキシコンを配置するホストを定義しただけであり、実際にレキシコンのデータが配置されたり、またはレキシコンのデータを格納する主記憶領域が確保されない。実際にデータが配置され主記憶領域が確保されるのはレキシコンセットデータの常駐を行ったときである。
【0078】
(7)トランザクションライブラリとDLLファイルのロード(S0308)
次に、トランザクション処理部12は、トランザクション関数をライブラリ化したDLLファイルをトランザクションのライブラリと関連付けて、レキシコンセットが格納されている本システムが起動しているホストにロードする。ロードする時点でトランザクション関数名との関連付けができているトランザクションのみトランザクション関数ポインタとリンクされる。トランザクションライブラリ内のトランザクション全てに対して、トランザクション関数名の関連付けを見つけ出し、ロードしたDLLファイルからトランザクション関数名を用いてトランザクション関数ポインタを見つけ出してリンクする。例えば、トランザクションライブラリ "TRLIB"に対して、ホスト "host1" でDLLファイル"c:\gigabase\trfunc.dll"をロードする場合は以下の通りである。なお、ファイルタイプはDLLである。
LoadTransactionLibraryFile(&us,"SampleLexiconSet","TRLIB","host1","c:\gigabase\trfunc.dll",DLL);
【0079】
ここで初めてトランザクションと関数ポインタがリンクされたが、実際にトランザクションが実行できるためには実行するトランザクションのレキシコンセットが実行するホストにおいて常駐されていなければならない。
これで、トランザクション関数が本システムにロードされ、トランザクションとトランザクション関数の関連付けが完了した。このようにしてトランザクションを本システムに登録することにより、トランザクション関数は本システム上で実行され、本システム内でデータベースの操作が可能になる。
【0080】
(8)レキシコンセット別名の定義(S0309)
さらに、トランザクション処理部12では、トランザクションの実行をアプリケーションから投げる際、レキシコンセットの別名を指定して実行できる。レキシコンセットの別名でトランザクションを実行したい場合は、トランザクションの実行より予め別名を定義する。例えば、レキシコンセット "SampleLexiconSet"に別名"ALIAS"を定義する場合は以下の通りである。
DefineLexiconSetAlias(&us,"SampleLexiconSet","ALIAS");
アプリケーションからトランザクションの実行を投げる場合、"SampleLexiconSet"だけでなく"ALIAS"でも投げられる。なお、本実施の形態では、システム管理アプリケーションではレキシコンセット別名を使用できないように構成する。
【0081】
(9)マルチキャストアドレスの設定(S0310)
本設定を行わなければ、ユーザ定義のレキシコンセットに関する通信は、システム起動パラメータで設定されたデフォルトのマルチキャストアドレスで行われる。そこで、システム構成設定部11におけるマルチキャストアドレス設定部114により、この設定を行うとデフォルトと異なるマルチキャストアドレスで通信を行うようになる。デフォルトマルチキャストアドレスと異なるマルチキャストアドレスでレキシコンセットの通信を行う場合は、設定する。
設定したマルチキャストアドレスでレキシコンセットデータの通信を行わせるには、本設定を行ってからレキシコンセットデータの常駐を行わなければならない。あるホストにおいてマルチキャストアドレスを設定する前にレキシコンセットデータの常駐済みの場合、既にデータの送受信を行っているためマルチキャストアドレスは変更されない。この場合はいったんレキシコンセットデータを非常駐として再び常駐させ直せば、設定したマルチキャストアドレスが有効になる。例えば、"SampleLexiconSet"にマルチキャストアドレス 232.122.32.93 を設定する場合は、以下の通りである。
unsigned int maddr;
maddr=(232<<24)+(122<16)+(32<<8)+93;
SetMulticastAddressForLexiconSet(&us,"SampleLexiconSet",maddr);
【0082】
(11)レキシコンセットの常駐(S0311)
ユーザはデータ常駐管理部13により、各ホストにおいてレキシコンセットの常駐を行うことで、データを主記憶領域にロードしトランザクション関数を実行できるようになる。本設定をするとき、どこからレキシコンセットのデータを取ってくるか指定しなければならない。これがリトリーブ要求先ホストである。
レキシコンセットを常駐させたいホストにおいて本システムが起動していない場合、実際のレキシコンセットデータの常駐動作であるリトリーブは動かず、常駐情報が定義されるだけである。この場合,実際にリトリーブが動くのは、次に本システムが起動されたときである。
【0083】
すなわち、レキシコンセットの常駐動作では、本システムが起動済みであると、データのリトリーブを行う。レキシコンセットデータのリトリーブが済むと、その時点でリンク済みであるTRが実行できるようになる。レキシコンセットデータのリトリーブが済むと、設定されているならばマルチキャストアドレスが使用できるようになる。また、レキシコンセットのリトリーブが動くとき、その時点でそのホストで配置が定義されているレキシコンだけが主記憶上にデータが格納される。
例えば、レキシコンセット "SampleLexiconSet"をホスト"host1"に配置する場合。そのときリトリーブ要求先ホストを " host2","host3"とする。
char *rethost[2];
rethost[0]="host2"; rethost[1]="host3";
LoadLexiconSetData(&us,"SampleLexiconSet","host1",2,rethost);
【0084】
[5.アプリケーションとトランザクション関数の実行手順…図4]
アプリケーションからトランザクション関数が呼び出されて一連の処理を実行する処理フローを図4および図7に示す。
(1) アプリケーションは、最初に本システムへの接続を行う(S0401)。
(2) アプリケーションは、本システムとのデータのやり取りをするための共有メモリを確保する(S0402)。
(3) アプリケーションは、トランザクション関数へ渡す入力パラメータを共有メモリへセットする(S0403)。
(4) アプリケーションは、トランザクションの実行依頼を本システムへ出す(S0404)。
(5) アプリケーションは、トランザクション関数の処理が終了するまで実行待ちに入る(S0405)。
(6) 本システムは、アプリケーションからトランザクションの実行依頼を受けると、指定されたトランザクション関数を起動する(S0406)。すなわち、図7に示すように、アプリケーションが、自己が実行しようとすると処理に対応するトランザクションの実行依頼を行うと、そのトランザクションに1対1に対応したトランザクション関数が選択され、そのトランザクション関数が起動される。
(7) トランザクション関数は、起動されると最初にアプリケーションからの処理に必要なパラメータを共有メモリから取り出す(S0407)。
(8) トランザクション関数は、次に、データベースへ参照、検索、更新、削除、追加などのアクセスを行う。このデータを使ってトランザクション関数の処理を行い、出力として必要なデータを作成する(S0408)。この場合、トランザクション関数は、システム管理アプリケーションにより予め登録されているレキシコンセットのレキシコンに対して、必要な処理を行う。
(9) トランザクション関数は、作成したデータを共有メモリにセットする(S0409)。
(10)トランザクション関数は、処理を終了する(S0410)。
(11)本システムは、トランザクション関数の処理が終了すると、トランザクションの終了通知をアプリケーションへ伝える(S0411)。
(12)アプリケーションは、終了通知を受け取ると、トランザクション関数の処理結果を共有メモリから読み出す(S0412)。
(13)アプリケーションは、共有メモリを開放する(S0413)。
(14)アプリケーションは、一連の処理が終わって本システムへのアクセスが不用になれば本システムからの切断を実行する(S0414)。
(15)アプリケーションは、終了する(END)。
【0085】
[6.参照トランザクションと更新トランザクションの実行]
前記のようなトランザクションの実行時において、ユーザアプリケーションから依頼されたトランザクションの種類、すなわち前記図3のステップS0408におけるデータベースへの参照、検索、更新、削除、追加などアクセス形態によって、本システム内の処理が次のように異なる。
【0086】
(1)参照トランザクション
トランザクションが、データベースに改変を加えることのない参照トランザクションの場合、トランザクション処理部12はアクセス対象レキシコンに対してトランザクションを実行させる。そして、トランザクションの実行が終わった後、その実行結果をアプリケーションに対して通知する。この参照トランザクションは、データを参照するだけでその書き換えを行うことがないので、そのホストにあるデータがオリジナルデータであるか、レプリカデータであるかを問わず、各サイトで実行できる。
【0087】
(2)更新トランザクション
更新トランザクションの場合、実行を依頼したホストがオリジナルデータを持つか(以下、オリジナル側)、レプリカデータを持つか(以下、レプリカ側)によって処理が異なる。
まず、オリジナルデータを持つ場合は、参照トランザクションと同様にトランザクション処理部12がアクセス対象レキシコンに対してトランザクションを実行させ、実行結果をアプリケーションに通知する。
レプリカデータを持つ場合、トランザクションで直接レキシコンを更新することはできない。そこで、レプリカサイトのトランザクション処理部12がネットワークを介して、ベースホストのトランザクション処理部12にトランザクションの実行依頼を行う。ベースホストのトランザクション処理部12は、ベースホストに格納されているトランザクションを実行し、オリジナルデータのレキシコンを更新する。オリジナルデータが更新されると、レプリカサイトにその更新データがレプリケーションされ、レプリカサイトのデータが更新される。レプリカサイトのデータが更新されると、レプリカサイトのトランザクションはその実行結果をアプリケーションに結果を通知する。
【0088】
[7.トランザクションに関する設定]
このような本システムを実行するには、次のようなシステム構成を設定することが必要となる。このシステム構成の設定は、一般には、システム管理アプリケーションと呼ばれるプログラムによって行われる。
(1) レキシコンセット名とそのベースホスト(切り替え先候補)
(2) レキシコンセットとそれに含まれるレキシコン
(3) トランザクションライブラリとそれに含まれるトランザクション
(4) トランザクション名とこのトランザクションを実行するために必要なトランザクション関数
(5) トランザクションがアクセスするレキシコンとそのアクセス形態(参照/更新)
(6) レキシコンセットの別名(必要ならば)
(7) レキシコンセットを各ホストに反映させるために行うレプリケーション送信のマルチキャストアドレス(必要ならば)
(8) 各ホストで常駐させるレキシコンセット
(9) 各ホストに配置するレキシコン(常駐させるレキシコンセットに含まれている)
(10)各ホストでロードするトランザクションライブラリとそのDLLファイル名
(11)各レキシコンセットのバックアップホストとそれぞれファイルバックアップの有無
【0089】
[8.データ常駐管理部]
[8−1.データ常駐管理部の構成…図5]
以下、前記のようなデータの常駐処理に関する設定を行うデータ常駐管理部13の一実施の形態を図5に示す機能ブロック図に従って説明する。
【0090】
すなわち、本実施形態のデータ常駐管理部13は、前記図2の各ホストの構成の欄で説明したように、トランザクション受付部3を介してシステム管理アプリケーションSYS_APから依頼されたデータ管理システム設定トランザクションの処理に従って、ネットワークを構成する各ホストにおけるデータ常駐に関する種々の設定を行うものである。このデータ常駐管理部13には、各ホストにおけるデータの常駐状態を設定するための常駐状態設定部401と、前記常駐状態設定部401の設定内容に基づいて常駐すべきデータをそのベースホストからリトリーブするためのリトリーブデータ管理部405とが設けられている。
【0091】
前記常駐状態設定部401には、レキシコンセット名とそのレキシコンセットを配置するホスト名(常駐ホスト名)を列挙したレキシコンセット−常駐ホスト対応表501(表A)、及びレキシコンセット名とそのレキシコンセットを配置させるホスト名(常駐ホスト名)とそのレキシコンセットを常駐させるときに使用するリトリーブホストを列挙したリトリーブ要求先ホスト対応表502(表B)を作成するレキシコンセット常駐設定部402が設けられている。このリトリーブ要求先ホスト対応表502により、同一ホストをリトリーブ先としてリストに登録しているレキシコンセット名を列挙することができる。なお、レキシコンセット−常駐ホスト対応表501とリトリーブ要求先ホスト対応表502の一例を下記に示す。
【0092】
【表1】
Figure 0004131781
【表2】
Figure 0004131781
【0093】
また、前記常駐状態設定部401には、レキシコン−常駐ホスト対応表503(表C)を作成するレキシコンセット常駐計画設定部403と、このレキシコン−常駐ホスト対応表503(表C)に基づいて各ホストが独自に作成するレキシコン常駐状況表504(表D)を作成するためのレキシコンセット常駐状況設定部404が設けられている。なお、このレキシコン−常駐ホスト対応表503(表C)とレキシコン常駐状況表504(表D)の一例を下記に示す。
【表3】
Figure 0004131781
【表4】
Figure 0004131781
【0094】
前記表Cは、あるホストにデータ配置するレキシコンをレキシコンセット名、レキシコン名の組で列挙したものであり、いわば常駐計画表として機能する。また、表Dは、常駐計画を示したレキシコン−常駐ホスト対応表を参照して各ホスト毎に作成される表であって、各ホストにおいて、あるレキシコンが現在「常駐」しているか否かの状況を示すものである。なお、前記の表Aから表Cは、システム管理レキシコンセットのベースホストにおいて、システム管理レキシコンセットの一部として作成され、各ホストの起動時には、リトリーブ要求先ホストリストに従ってリトリーブ要求を出してリトリーブ受信する。
【0095】
また、本実施形態のデータ常駐管理部13には、自ホストにおいて「常駐する」との設定がなされている各レキシコンセットについて、そのレキシコンセットを他のホストからリトリーブしてもらうためのリトリーブ要求を送信するために、前記表Bを参照して各レキシコンセット毎にリトリーブ要求先を決定するリトリーブ要求先決定部601と、そのリトリーブ要求先に対してリトリーブ要求を発信するリトリーブ要求送信部602とが設けられている。また、リトリーブ要求先ホストから送られたリトリーブデータを受信するリトリーブデータ受信部603が設けられている。これらのリトリーブ要求送信部602とリトリーブデータ受信部603とは、各ホストに配置されたデータベース管理システム1の送信部5と受信部6とに接続され、ネットワークを介して他のホストに送信される。
【0096】
本実施形態のデータ常駐管理部13には、前記のようにリトリーブデータ管理部405が備えられ、このリトリーブデータ管理部405には、前記リトリーブデータ受信部603が受信したレキシコンセットの各レキシコンが自ホストに常駐させるべきものであるか否かを判定する常駐レキシコン判定部406と、自ホストに常駐させるレキシコンであると判定した場合に主記憶領域を割り当てる主記憶領域割当部407が設けられている。
【0097】
[8−2.データ常駐管理部の作用]
前記のような構成を有するデータ常駐管理部13を備えた各ホストにおいて、システム管理アプリケーションSYS_APによりデータ管理システム設定トランザクションの実行が依頼されると、以下に述べるような処理がなされる。
【0098】
[8−2−1.各ユーザにおける本システム初期起動時の処理]…図6,図7
先ず、起動ホストのリトリーブ要求先決定部601が、システム管理レキシコンセットに登録されているリトリーブ要求先ホスト対応表502(表B)に従って要求先ホストを決定し、リトリーブ要求送信部602を介して、その要求先ホストに対してリトリーブ要求を発信する(S0601)。
【0099】
このリトリーブ要求に対して、リトリーブ要求先ホストからリトリーブ応答があるか否かを検証し(S0602)、応答のない場合(S0602の"NO")は、現起動ホストはシステム管理レキシコンセットのベースホストであるか否かを検証する(S0603)。すなわち、現起動ホストがベースホストである場合には、他のホストからのリトリーブ要求の応答がなくとも起動可能なので、応答のない場合の可能性として、現起動ホストがベースホストであるか否かの検証を行う。
【0100】
ステップS0603において、現起動ホストがベースホストでない場合(S0603の"NO")は、他のホストがベースホストであるにもかかわらず、リトリーブ応答がないわけであるから、何らかの異常があって初期起動が失敗した状態であるため(S0604)、処理を終了する。一方、現起動ホストがベースホストであるためリトリーブ応答がない場合には(S0603の"YES")、初期起動は成功するが、その場合、表A〜表Cは空の状態である(S0605)。
【0101】
一方、前記ステップS0602において、リトリーブ要求先ホストからリトリーブ応答があった場合には(S062の"YES")、システム管理レキシコンセットのリトリーブを受信し(S0606)、これを主記憶領域割当部407により主記憶領域に割り当てる(S0607)。このリトリーブの受信と主記憶領域に対する割り当ては、システム管理レキシコンセットのリトリーブを全部受信するまで繰り返される(S0608の"NO")。
【0102】
この状態においては、システム管理レキシコンセットのみが現起動ホストに常駐した状態であり、アプリケーションプログラムが使用するデータに関するレキシコンセット(一般レキシコンセット)は、まだ常駐されていない。しかし、どのホストにどのレキシコンセットを常駐させるかを示すレキシコンセット−常駐ホスト対応表501(表A)、リトリーブ要求先ホスト対応表502(表B)、及び常駐させるレキシコンセット中のどのレキシコンを常駐させるかを示すレキシコン−常駐ホスト対応表503(表C)については、システム管理レキシコンセットとしてリトリーブされている。
【0103】
上記のステップS0606〜S0608の処理を繰り返すことにより、すべてのシステム管理レキシコンセットのリトリーブ受信が完了した後(S0608の"YES")、各ホストにおけるレキシコンの常駐状況を示すレキシコン常駐状況表504(表D)を作成する(S0609)。なお、このレキシコン常駐状況表504は、表中の各レキシコンが、現在そのホストに実際に常駐しているかどうかを示すものであって、表の内容はホスト毎に異なるものであり、現起動ホストにおいては常駐しているレキシコンはまだ一つも存在しないので、レキシコン常駐状況表504(表D)の内容はすべて×(常駐なし)になる。
【0104】
次に、自ホスト(現起動ホスト)は、自己に常駐させるレキシコンセットを対応表501に従って検索する(S0610)。例えば、自ホストがレキシコンセット−常駐ホスト対応表501(表A)中のhost1である場合は、LexiconSet_AとLexiconSet_Bとが常駐させるレキシコンセットである。この対応表501(表A)中に常駐させるレキシコンセットがない場合には(S0611の"NO")初期起動は完了するが、初期起動成功という観点では正常であっても、レキシコンセットがないためユーザTRの実行は不可能である(S0612)。ただし、後述するように、自ホストにおいて、ユーザデータ用の一般レキシコンセットの常駐を追加・修正することが可能である。
【0105】
ステップS0611において、対応表501(表A)に従い常駐させる一般レキシコンセットがある場合には(S0611の"YES")、該当するレキシコンセットを常駐させる処理を行う。すなわち、ステップS0613において、一般レキシコンセットの常駐が完了したか否かを検証するが、システム管理レキシコンセットのみが常駐している状態においては、まだ常駐しているユーザデータ用の一般レキシコンセットは存在しないので、その常駐は完了していない(S0613は"NO")。
【0106】
そして、ステップS0615以下の処理を繰り返すことにより、対応表501(表A)に記載されたすべてのユーザデータ用レキシコンセットについて常駐が完了した状態(S0613の"YES")において、初期起動が完了し、これらのレキシコンセットに含まれたデータに対してアプリケーションプログラムがユーザトランザクションを実行することが可能な状態となり(S0614)、データ常駐処理を終了する。
【0107】
以下、全レキシコンセットの常駐が完了していない状態(S0613の"NO")における、各レキシコンセットの常駐処理について説明する。先ず、レキシコンセット−常駐ホスト対応表501(表A)中の常駐対象レキシコンセットの中から、最初に常駐させるレキシコンセットを選択して、そのレキシコンセットに含まれる各レキシコンについて、レキシコン常駐計画を示すレキシコン−常駐ホスト対応表503(表C)を参照して、レキシコン常駐状況表504(表D)に○印を付ける(S0615)。すなわち、レキシコン−常駐ホスト対応表503(表C)は、各レキシコンセットに含まれているレキシコンをどのホストにおいて常駐させる予定があるかを記録したものであって、この対応表503(表C)を参照することにより、自己のホストにおいては、どのレキシコンを常駐させるべきか否かをレキシコン常駐状況表504(表D)に記録する。例えば、レキシコン−常駐ホスト対応表503VDにおいて、自ホストがhost1である場合、LexiconSet_Aのlex1とlex2、LexiconSet_BのlexPを常駐させる必要があるが、まず最初にLexiconSet_Aの常駐処理を行う場合には、レキシコン常駐状況表504中のLexiconSet_Aのlex1とlex2に該当する部分に○を付ける。
【0108】
次に、リトリーブ要求先ホスト対応表502(表B)からhost1のLexiconSet_Aのリトリーブ要求先ホスト(host2.host3.host4)を検索し(S0616)、各要求先ホストに対してリトリーブ要求を発信する(S0617)。この場合、リトリーブ要求の出し方と応答の受け方は、方法が提供されていれば、どのような方法でも良い。例えば、どの要求先ホストにリトリーブ要求を出すかは、予めその順番を定めておいても良いし、すべての要求先ホストに一斉にリトリーブ要求を送信しても良い。このリトリーブ要求に対して、すべての要求先ホスト(host2.host3.host4)からリトリーブ応答がなかった場合は(S0618の"NO")、常駐対象レキシコンセットを中身が空の状態で構築し(S0619)、ステップS0625に進み最初のレキシコンセット(LexiconSet_A)についてのリトリーブ処理を完了する。
【0109】
一方、いずれかの要求先ホストからリトリーブ応答があった場合には(S0618の"YES")、そのリトリーブデータ(LexiconSet_A)を受信し(S0620)、受信データ中に含まれるレキシコンが、レキシコン常駐状況表504(表D)に登録された(○をつけた)常駐させるレキシコンデータか否かを検証する(S0621)。受信データが常駐させるレキシコンでない場合には、そのデータを破棄し(S0622)、常駐させるデータである場合には、主記憶領域割当部407により主記憶領域を割り当てる(S0623)。
【0110】
このようにして、受信したリトリーブデータを常駐させた後は、常駐対象レキシコンセットのリトリーブの全受信が完了したか否かを検証し(S0624)、全受信が完了していない場合には(S0624の"NO")ステップS0620に戻り、次のリトリーブデータの受信とその常駐処理を繰り返す。全受信が完了した場合には(S0624の"YES")、常駐対象レキシコンセットのリトリーブが完了したものとして(S0625)、前記ステップS0613に戻る。
【0111】
上記のようにして、host1の最初の常駐対象レキシコンセット(LexiconSet_A)の常駐が完了した後は、対応表501(表A)に登録されている次の常駐対象レキシコンセット(LexiconSet_B)に関してステップS0615以下の処理を繰り返し、対応表501(表A)に記載されたすべてのレキシコンセットについて、常駐処理を行う。そのようにして、すべてのレキシコンセットについて常駐処理が終了すると(S0613の"YES")、自ホストにおける初期起動が完了する(S0614)。
【0112】
[8−2−2.システム管理レキシコンセットのベースホストにおける追加設定の処理]…図8
ところで、本システムにおいては、前記のように各ホストの初期起動が成功し、各ホストが稼働状態にある場合に、各ホストにおける常駐対象レキシコンセットを追加することが可能である。この追加設定は、システム管理レキシコンセットのベースホストにおいて実行することも、また、次項で述べるように、追加対象レキシコンセットの常駐先ホストにおいても実行可能である。
【0113】
以下、システム管理レキシコンセットのベースホストにおける追加設定の処理について、図8を参照して説明する。
まず、システム管理レキシコンセットのベースホストにおいて、あるホストに追加して常駐させるレキシコンセット名とその常駐ホスト名を対応表501(表A)に追加する(S0801)と共に、対応表501(表A)に追加した常駐ホストがレキシコンセットを取得するためのリトリーブ要求先ホストをリトリーブ要求先ホスト対応表502(表B)に追加する(S0802)。
【0114】
この状態で、ベースホストは、対応表501(表B)に追加設定した常駐先ホストで本システムが起動しているか否かを検証し(S0803)、常駐先ホストでシステムが起動している場合には、レプリケーション送信で、常駐先ホストの対応表501(表A)、リトリーブ要求先ホスト対応表502(表B)に、ベースホストで追加した対応表501(表A),502(表B)の内容を追加する(S0804)。
【0115】
この場合、レキシコン−常駐ホスト対応表503(表C)については、予めベースホスト側で作成してレプリケーション送信で各ホスト(常駐先ホストを含む)にも作成される。さらに、常駐先ホストにおいて、レキシコン−常駐ホスト対応表503(表C)に基づいて、追加対象レキシコンセットのレキシコンについて、レキシコン常駐状況表504(表D)に○印を付ける。
【0116】
続いて、ベースホストからの関数レプリケーションにより、常駐先ホストにおいてリトリーブ要求を起こさせる。すなわち、常駐先ホストは、図7のステップS0616及びS0617と同様にして、リトリーブ要求先ホスト対応表502(表B)に登録されたリトリーブ要求先ホストに対して、追加して常駐すべきレキシコンセットのリトリーブ要求を起こす(S0805)。そして、図7のS0618以下の処理を行い、追加されたレキシコンセットの常駐処理を行う。
【0117】
次に、システム管理レキシコンセットのベースホストは、常駐先ホストのモードをチェックし(S0806)、常駐先ホストでリトリーブが完了しているか否かを検証する(S0807)。常駐先ホストでリトリーブが完了していない場合には(S0807の"NO")、リトリーブ完了通知があるまで待機する(S0808)。一方、常駐先ホストでリトリーブが完了した場合には(S0807の"YES")、追加対象レキシコンセットやそれに含まれる追加対象レキシコンの常駐が完了したと判断し、常駐先ホストにおいてデータ常駐が成功したとして(S0809)、ベースホストにおける処理を終了する。なお、一定の時間が経過してもリトリーブ完了通知がこない場合には、リトリーブ完了を待たずにステップS0809に進むこともできる。
【0118】
[8−2−3.常駐先ホストにおける追加設定の処理]…図9、図10
次に、常駐先ホストがシステム管理レキシコンセットのベースホストと異なる場合の、常駐先ホストにおける常駐対象レキシコンセットの追加設定処理を説明する。
【0119】
まず、常駐先ホストにおいて、アプリケーションプログラムから常駐対象レキシコンセットの追加設定の実行依頼を受付けると(S0901)、常駐先ホストにおいては、追加するレキシコンセット名と常駐ホスト名(自ホスト名)を自己の所有しているレキシコンセット−常駐ホスト対応表501(表A)に追加する(S0902)。また、追加した常駐対象レキシコンセットのリトリーブ要求先のホストリストをリトリーブ要求先ホスト対応表502(表B)に追加する(S0903)。なお、この対応表501(表A)及び対応表502(表B)の追加は、リモートトランザクションにより、システム管理レキシコンセットのベースホストの対応表501(表A)及び対応表502(表B)の上で追加され、その結果のレプリケーション送信によるものである。また、レキシコン−常駐ホスト対応表503(表C)は、予めどのホストでどのレキシコンを配置するかを計画したものとして用意されている。
【0120】
また、このようにして用意された対応表501(表A)〜503(表C)については、システム管理レキシコンセットのベースホストから他のホストに対してレプリケーション送信することにより、各ホストにおける常駐対象レキシコンセット及びレキシコンに関する情報を一元化しておくことができる。
【0121】
上記のようにして、対応表501(表A)〜503(表C)が用意された後は、ステップS0904に記載のように、レキシコンの常駐計画を示すレキシコン−常駐ホスト対応表503(表C)から、常駐させるべきレキシコン名を読み出し(S0904)、そのレキシコンについてのレキシコン常駐状況を示すレキシコン常駐状況表504(表D)に○印を付ける(S0905)。次に、対応表502(表B)から、追加した常駐対象レキシコンセットのリトリーブ要求先ホストを検索し(S0906)、各要求先ホストに対してリトリーブ要求を送信する(S0907,S0908)。このリトリーブ要求に対して、リトリーブ応答がなかった場合は(S0909の"NO")、リトリーブを完了して(S0915)、追加の常駐処理は失敗したものとする。
【0122】
一方、いずれかの要求先ホストからリトリーブ応答があった場合には(S0909の"YES")、そのリトリーブデータを受信し(S0910)、受信データ中に含まれるレキシコンが、レキシコン常駐状況表504(表D)に登録された(○をつけた)常駐させるレキシコンデータか否かを検証する(S0911)。受信データが常駐させるレキシコンでない場合には、そのデータを破棄し(S0912)、常駐させるデータである場合には、そのデータを主記憶領域割当部407により主記憶領域を割り当てる(S0913)。
【0123】
このようにして、受信したリトリーブデータを常駐させた後は、常駐対象レキシコンセットのリトリーブの全受信が完了したか否かを検証し(S0914)、完了していない場合には(S0914の"NO")ステップS0910に戻り、次のリトリーブデータの受信とその常駐処理を繰り返す。このようにして、全受信が完了した場合には(S0914の"YES")、常駐対象レキシコンセットのリトリーブを完了し(S0915)、リトリーブモードを通常のアプリケーションプログラム処理モードに変更して、アプリケーションプログラムに対してリトリーブ終了通知トランザクションを発行する(S0916)。
【0124】
[8−2−4.常駐レキシコンの変更時における処理]…図11
本実施形態のデータ常駐管理部13によれば、前記のような常駐レキシコンの追加以外に、常駐対象レキシコンセット及びそれに含まれたレキシコンの常駐状態を変更することも可能である。
【0125】
以下、ホストhost1で、レキシコンセットLexiconSet_Bに常駐するレキシコンlexQを追加する場合を想定して、その場合の処理を図11により説明する。
まず、対応表501(表A)から常駐対象レキシコンセットの対象ホストの行(対応表501のLexiconSet_B、host1の行)を削除すると共に(S1101)、対応表502(表B)から対象レキシコンセットの対象ホストの行(LexiconSet_B、host1の行)を削除する(S1102)。なお、この対応表501(表A)及び対応表502(表B)の削除は、リモートトランザクションにより、システム管理レキシコンセットのベースホストの対応表501(表A)及び対応表502(表B)の上で削除され、その結果のレプリケーション送信によるものである。
【0126】
次に、常駐対象LexiconSet_Bのデータをホストの主記憶上から消し(S1103)、レキシコン−常駐ホスト対応表503(表C)の上で、常駐レキシコンの追加・削除・変更(レキシコン−常駐ホスト対応表503にLexiconSet_B、lexQ、host1のデータを追加)を行う(S1104)。
【0127】
このようにして、新たなレキシコン−常駐ホスト対応表503(表C)の作成と、変更前の常駐対象レキシコンセットが主記憶上から削除された後に、改めて対応表501(表A)及び対応表502(表B)に対して、常駐対象レキシコンセットと常駐先ホスト及びリトリーブホストの追加登録を行うことにより、前記図Cに示した常駐先ホストにおける追加設定の場合と同様の処理がなされる(S1105)。
【0128】
[8−3.第1実施形態の効果]
以上のような構成を有する本実施の形態によれば、次のような効果が発揮される。
(1)システムの起動時において、ベースホストからリトリーブされたレプリカデータを自ホストに常駐させることにより、常にベースホスト上のオリジナルデータと同一内容のデータを自己の主記憶領域に常駐させて利用することが可能になり、ネットワーク上の各ホストが、オリジナルデータの所在を意識することなく、自ホストのデータとして利用できる。
【0129】
(2)各ホスト毎に使用するデータが異なる場合であっても、各ホストに対するデータのリトリーブ処理をレキシコンセットを単位として行うため、個々のデータ(レキシコン)毎にリトリーブ処理を行う場合に比較して、その処理単位がまとまり、リトリーブ処理が容易に実行できる。一方、リトリーブ処理はデータをグループ化した処理単位であるレキシコンセットを対象として行い、データの常駐そのものは、アプリケーションが使用するレキシコンのみを対象とするので、データ常駐に必要な主記憶領域の効率的な仕様が可能となる。
【0130】
(3)データ常駐およびリトリーブに必要なデータをシステム管理レキシコンセットとして、予めそのベースホストに配置し、これを他のホストリトリーブ送信することにより、各ホストを起動した場合に、共通のシステム管理レキシコンセットが配置されることになり、各ホストにおけるデータ常駐処理が均等に実施されることになり、システムの整合性が確保される。
【0131】
(4)各ホストの稼働後に常駐対象となるデータの追加・削除・変更があった場合に、これをシステム管理レキシコンセットのベースホストから各ホストに反映させることが可能になり、各ホスト上にデータが常駐された後でも、各ホスト上で常駐させたデータの同一性を確保することが可能である。
【0132】
(5)データ常駐状態設定部とリトリーブデータ管理部とによって、予めデータの常駐先や常駐すべきデータの内容、更には各ホストに対する常駐常駐データのオリジナルの所在を設定しておくことができ、これらの設定内容に従って、システム起動時に各ホストに対するデータの常駐を円滑に実施できる。
【0133】
(6)本実施形態のデータ常駐管理部13が適用される分散ネットワークシステムは、システムのハードウェア構成に依存しないリモート/ローカル構造を採用することにより、アプリケーション・ソフトウェアをコンピュータのハードウェア構成から独立させることができる。そのため、アプリケーションはシステムの物理構造、すなわちハードウェアの物理構成や、データがどのコンピュータ上に実装されているか、あるいはデータの整合性がとれているかといった点をまったく意識する必要がない。これにより、種々のシステム開発に従事するユーザは、業務ロジックの設計・実装に専念することができるので、システム開発の生産性が大幅に向上する。
【0134】
[9.他の実施の形態]
(1)前記実施の形態では、リトリーブ処理をレキシコンセットを単位として行い、常駐処理をレキシコンセット中のレキシコンを単位として行ったが、リトリーブ処理と常駐処理をレキシコンセット毎に行っても、レキシコン毎に行うこともできる。
【0135】
(2)システム管理レキシコンセットのベースホストは、特定のコンピュータに固定されている必要はなく、各ホストにシステム管理アプリケーションを配置しておき、権限のあるシステム管理者が所望のホストからシステム管理レキシコンセットの改変を行うこともできる。その場合、最新のシステム管理レキシコンセットを既に起動中のホストにレプリケーションしたり、あるいはその後初期起動した他のホストにリトリーブしたりすることにより、最新のシステム管理レキシコンセットが作成されたホストをシステム管理レキシコンセットのベースホストとすることができる。
【0136】
(3)実施例の説明では、データ常駐に関する各種の設定をシステム管理アプリケーションから発行するシステム設定用トランザクションに従って行い、このトランザクションの実行をすべてトランザクション関数の呼出としているが、トランザクションの実行の形態はこれに限られるものではない。例えば、個々のトランザクションには具体的なデータ操作手続の記述が含まれており、本システムが一定の手順に従ってそれを解釈実行するという形態でも構わない。
【0137】
(4)前記のようにトランザクションには、各種の属性を付与するため識別子(トランザクション名等)が含まれている。この識別子に対して、例えば実行すべきトランザクション関数を対応付けるが、この識別子は付与すべき属性の種類に応じて必要な数を設定すればよい。
トランザクションが操作の対象とするのは、1つのレキシコンセットとする。前記の実施の形態では、ユニスペースが複数のレキシコンセットを含むことができるので、トランザクションには、操作対象のレキシコンセットを明記する。このレキシコンセット名を上記識別子の1つと考えても良い。もちろん、他の識別子から操作対象レキシコンセットを判別する手段を設けた実施の形態も可能で、レキシコンセット名の明記は必須ではない。
【0138】
(5)実施例の説明では、「複数のマシン」を物理的に異なるマシンと、通信ネットワークをそれらの間の物理的媒体を含む通信手段として想定したが、これを論理的に異なるマシン、例えば同一マシン内の異なるプロセスを対象として実施しても構わない。その場合には、各(論理)マシンの識別に異なる手段(プロセスID等)を使用すればよい。また、本システムが管理対象とするデータベース(レキシコンセット)は、1つでも複数でも構わない。
【0139】
(6)レプリケ−ションデ−タを伝達する手段としての通信ネットワ−クとトランザクションを転送する手段としての通信ネットワ−クは物理的/論理的に同一のものを用いても異なるものを用いてもよい。多数のレプリカホストに伝送するにはマルチキャスト/ブロ−ドキャストのネットワ−クを使用するのが効率的な場合が多いが、本発明の実施はそれに限定されるものではない。一方、トランザクションの転送は通常1対1通信で足りるが、実行すべきでないサイトが受信した場合はそのサイトの判断で実行しないあるいは破棄する等の処理を行うという条件でマルチキャスト/ブロ−ドキャストのネットワ−クを採用することも可能である。
【0140】
【発明の効果】
以上説明したように、本発明によれば、下記に述べるような優れた効果を発揮する分散処理型データベース管理システムを提供することができる。
【0141】
(1)リモート/ローカル構造による柔軟性
本発明で提供している分散システムは、リモート/ローカル構造と呼ばれるシステムのハードウェア構成に依存しない方式である。アプリケーション・ソフトウェアはシステムのハードウェア構成に関する実装を行う必要が無いため、ソフトウェア開発をシステム構築から独立させることができる。そのため、システム構築のためのコーディングは一切不要で、システム構築/設定作業はすべてシステム運用環境を用いて行うことができる。
【0142】
(2)ネットワークを活用した多様な信頼性強化
本発明の特徴的機能としては、システムの多重化機能とデータのリカバリ機能がある。これらの機能により、初期化や障害発生時にバックアップファイルから再ロードして速やかなシステムリカバリ処理が可能となる。
すなわち、各ホストに常駐させるデータを、システム管理レキシコンセットのベースホストで設定することができるので、ネットワークを構成する各マシン上のデータ管理を一ヶ所で集中して行うことができる。
【0143】
また、各ホストにおいてすべてのデータを常駐させる必要はなく、そのホストで用いるデータのみを常駐させるように設定することにより、各ホストの主記憶領域を有効に使用することができる。さらに、常駐データの設定変更は、システム管理レキシコンセットのベースホストのみならず、常駐先ホストにおいても可能であるので、各ホストにおいて処理するトランザクションが変更されても、迅速に対応することができる。
【0144】
(3)システム停止を伴わない機能変更
本実施形態のデータ管理システム設定装置においては、自ホストに常駐するデータを適宜変更することができるので、データ構造の変更に対して動的に対応することができる。また、これらの変更は、システムを停止させることなく適宜実行することができるので、システム設定変更の処理が非常に容易なものとなる。
【図面の簡単な説明】
【図1】本発明の分散処理型データベース管理システムの全体構成を示す機能ブロック図である。
【図2】図1のデータベース管理システムにおける各ホストの構成を示すブロック図である。
【図3】図1のデータベース管理システムにおけるシステム構成の設定順序を示すフローチャートである。
【図4】図1のデータベース管理システムにおけるアプリケーションとトランザクション関数の実行手順を示すフローチャートである。
【図5】図1のデータベース管理システムにおけるデータ常駐管理部13の構成を示すブロック図である。
【図6】各ユーザにおける本システム初期起動時の処理の流れ(前半)を示すフローチャートである。
【図7】各ユーザにおける本システム初期起動時の処理の流れ(後半)を示すフローチャートである。
【図8】システム管理レキシコンセットのベースホストにおける追加設定の処理の流れを示すフローチャートである。
【図9】常駐先ホストがシステム管理レキシコンセットのベースホストと異なる場合の、常駐先ホストにおける常駐対象レキシコンセットの追加設定処理の流れ(前半)を示すフローチャートである。
【図10】常駐先ホストがシステム管理レキシコンセットのベースホストと異なる場合の、常駐先ホストにおける常駐対象レキシコンセットの追加設定処理の流れ(後半)を示すフローチャートである。
【図11】常駐レキシコンの変更時における処理の流れを示すフローチャートである。
【符号の説明】
1…データベース管理システム
2…レキシコンセット
21…レキシコン
3…トランザクション受付部
4…送信部
5…受信部
11…システム構成設定部
12A…トランザクション管理部
12B…トランザクション処理部
13…データ常駐管理部
14…レプリケーション処理部
15…ベースホスト切替部
401…常駐状態設定部
402…レキシコンセット常駐設定部
403…レキシコンセット常駐計画設定部
404…レキシコンセット常駐状況設定部
405…リトリーブデータ管理部
406…常駐レキシコン判定部
407…主記憶領域割当部
501…レキシコンセット−常駐ホスト対応表(表A)
502…リトリーブ要求先ホスト対応表(表B)
503…レキシコン−常駐ホスト対応表(表C)
504…レキシコン常駐状況表(表D)
601…リトリーブ要求先決定部
602…リトリーブ要求送信部
603…リトリーブデータ受信部

Claims (14)

  1. ネットワークを介して接続された複数のコンピュータの主記憶領域上にそれぞれデータベースを配置し、ある特定のコンピュータに格納されたデータをオリジナルデータとし、このオリジナルデータを有するコンピュータをベースホストとすると共に、ある特定のコンピュータとは異なる他のコンピュータには、前記ベースホストに格納されているオリジナルデータと同一のレプリカデータを格納し、このレプリカデータを格納したコンピュータをレプリカホストとした分散処理型データベース管理システムにおいて、
    あるホストの起動時において、そのホストに配置すべきデータを、そのデータのオリジナルデータが格納されたベースホストまたはオリジナルデータと同一のレプリカデータが格納されたレプリカホストから取得し、その取得したデータを主記憶領域に常駐させ、
    前記データベースが、データの処理単位であるレキシコンと、このレキシコンを1つあるいは複数有するレキシコンセットによって構成され、前記オリジナルデータのリトリーブ処理がレキシコンセットを単位として行われるものであり、
    前記ネットワークを介して接続された複数のコンピュータの1つにおいて、各ホストに常駐させるべきレキシコンセットとレキシコンと、このレキシコンセットのオリジナルが格納されたベースホストと、レキシコンセットを常駐させるべき各ホストからリトリーブ要求を送り付ける要求送信先ホストのリストを各ホスト毎に設定し、これらの設定されたデータをシステム管理レキシコンセットのオリジナルとしてシステム管理レキシコンセットのベースホストに配置し、各ホストの起動時には、このシステム管理レキシコンセットを、そのベースホストまたはシステム管理レキシコンセットのオリジナルと同一のレプリカデータを格納するレプリカホストから他のホストに対してリトリーブ送信し、
    システム管理レキシコンセットに登録されているリトリーブ要求先ホストに従って要求先ホストを決定し、その要求先ホストに対してリトリーブ要求を発信し、このリトリーブ要求に対して、リトリーブ要求先ホストからリトリーブ応答があるか否かを検証し、どこからも応答のない場合は、リトリーブ要求の発信元ホストがシステム管理レキシコンセットのベースホストであるか否かを検証し、リトリーブ要求の発信元ホストがシステム管理レキシコンセットのベースホストである場合には、自ホストにデータがある場合にはそのデータを常駐させ、なければ空のシステム管理レキシコンセットを作成することを特徴とする分散処理型データベース管理システム。
  2. 自ホストに前記データのオリジナルが配置され、システムの起動時において、このオリジナルデータを自ホストの主記憶領域に常駐させることを特徴とする請求項1に記載の分散処理型データベース管理システム。
  3. 自ホストとは異なる他のホストであるベースホストに前記データのオリジナルが配置され、オリジナルデータと同一のレプリカデータが自ホストとは異なるレプリカホストに配置され、システムの起動時において、前記ベースホストまたはレプリカホストから、そのレプリカデータを自ホストに対してリトリーブ送信し、このリトリーブされたデータを自ホストの主記憶領域に常駐させることを特徴とする請求項1に記載の分散処理型データベース管理システム。
  4. 前記リトリーブ処理が、すでにデータを格納しているベースホストまたはレプリカホストからレプリカホストに対してレキシコンセットを単位として実行され、レプリカホストにおいては、リトリーブされたレキシコンセット中の予め定められたレキシコンに対して常駐処理がなされることを特徴とする請求項1ないし請求項3のいずれかに記載の分散処理型データベース管理システム。
  5. 各ホスト上にすべてのデータが常駐された後、常駐状態にあるデータの改変がなされた場合に、前記ベースホストのオリジナルデータと、レプリカホストのレプリカデータとの同一性を確保するためのレプリケーション処理部を設けたことを特徴とする請求項1に記載の分散処理型データベース管理システム。
  6. 予め設定されたデータが各ホストに常駐されて各ホストが稼働状態にある場合に、前記システム管理レキシコンセットのベースホストにおいて、このシステム管理レキシコンセットのデータを更新し、この更新されたシステム管理レキシコンセットのデータを各ホストにレプリケーション送信することにより、各ホストにおける常駐対象データを追加することを特徴とする請求項5に記載の分散処理型データベース管理システム。
  7. 予め設定されたデータが各ホストに常駐されて各ホストが稼働状態にある場合に、前記システム管理レキシコンセットのベースホストと異なるホストにおいて、このホストからシステム管理レキシコンセットのデータをリモートで変更し、このシステム管理レキシコンセットのベースホストから他のホストに対してレプリケーション送信して、各ホストにおける常駐対象レキシコンセット及びレキシコンに関する情報を一元化することを特徴とする請求項5に記載の分散処理型データベース管理システム。
  8. 前記ネットワークを介して接続された複数のコンピュータが予め、レキシコンセットを常駐させるべきホストと、このレキシコンセットのオリジナルが格納されたベースホストと、常駐させるべきホストからのリトリーブ要求を発信する要求先ホストリストとを設定するデータ常駐状態設定部を備え、
    このデータ常駐状態設定部の設定に従い、リトリーブ要求先ホストリストに従ってリトリーブ要求を発信し、応答したホスト(ベースまたはレプリカ)から要求元ホストに対してデータを送信するリトリーブデータ管理部を備えたことを特徴とする請求項1ないし請求項7のいずれか1項に記載の分散処理型データベース管理システム。
  9. 前記データ常駐状態設定部には、アクセス対象とするレキシコンセット名、そのレキシコンセットを配置させる常駐ホスト名、およびそのレキシコンセットを常駐させるときに使用するリトリーブホスト名を設定するレキシコンセット常駐設定部と、各ホストに配置するレキシコンをそのレキシコンセットと共に設定するレキシコンセット常駐計画設定部と、前記レキシコンセット常駐計画設定部による設定内容に従って、各ホストにおいて、あるレキシコンが現在常駐しているか否かの状況を確認するレキシコンセット常駐状況設定部が設けられていることを特徴とする請求項8に記載の分散処理型データベース管理システム。
  10. 各ホスト上にすべてのデータが常駐された後、常駐状態にあるデータの改変がなされた場合に、前記ベースホストのオリジナルデータと、レプリカホストのレプリカデータとの同一性を確保するためのレプリケーション処理部を設けたことを特徴とする請求項8または請求項9に記載の分散処理型データベース管理システム。
  11. 前記データ常駐状態設定部が、予め設定されたデータが各ホストに常駐されて各ホストが稼働状態にある場合に、前記システム管理レキシコンセットのベースホストにおいて、このシステム管理レキシコンセットのデータを更新し、この更新されたシステム管理レキシコンセットのデータを前記レプリケーション処理部より各ホストにレプリケーション送信することを特徴とする請求項10に記載の分散処理型データベース管理システム。
  12. 前記データ常駐状態設定部が、予め設定されたデータが各ホストに常駐されて各ホストが稼働状態にある場合に、前記システム管理レキシコンセットのベースホストと異なるホストにおいて、このホストが所有するシステム管理レキシコンセットのデータを更新し、この更新されたシステム管理レキシコンセットのデータを前記レプリケーション処理部よりシステム管理レキシコンセットのベースホストにレプリケーション送信し、前記レプリケーション処理部が、このシステム管理レキシコンセットのベースホストから他のホストに対してレプリケーション送信して、各ホストにおける常駐対象レキシコンセット及びレキシコンに関する情報を一元化することを特徴とする請求項10に記載の分散処理型データベース管理システム。
  13. ネットワークを介して接続された複数のコンピュータの主記憶領域上にそれぞれデータベースを配置し、ある特定のコンピュータに格納されたデータをオリジナルデータとし、このオリジナルデータを有するコンピュータをベースホストとすると共に、ある特定のコンピュータとは異なる他のコンピュータには、前記ベースホストに格納されているオリジナルデータと同一のレプリカデータを格納し、このレプリカデータを格納したコンピュータをレプリカホストとした分散処理型データベース管理システムをネットワーク上のコンピュータに実現する分散処理型データベース管理プログラムにおいて、
    あるホストの起動時において、そのホストに配置すべきデータを、そのデータのオリジナルデータが格納されたベースホストまたはオリジナルデータと同一のレプリカデータが格納されたレプリカホストから取得し、その取得したデータを主記憶領域に常駐させ、
    前記データベースが、データの処理単位であるレキシコンと、このレキシコンを1つあるいは複数有するレキシコンセットによって構成され、前記オリジナルデータのリトリーブ処理がレキシコンセットを単位として行わせる処理と、
    前記ネットワークを介して接続された複数のコンピュータの1つにおいて、各ホストに常駐させるべきレキシコンセットとレキシコンと、このレキシコンセットのオリジナルが格納されたベースホストと、レキシコンセットを常駐させるべき各ホストからリトリーブ要求を送り付ける要求送信先ホストのリストを各ホスト毎に設定し、これらの設定されたデータをシステム管理レキシコンセットのオリジナルとしてシステム管理レキシコンセットのベースホストに配置し、各ホストの起動時には、このシステム管理レキシコンセットを、そのベースホストまたはシステム管理レキシコンセットのオリジナルと同一のレプリカデータを格納するレプリカホストから他のホストに対してリトリーブ送信する処理と、
    システム管理レキシコンセットに登録されているリトリーブ要求先ホストに従って要求先ホストを決定し、その要求先ホストに対してリトリーブ要求を発信し、このリトリーブ要求に対して、リトリーブ要求先ホストからリトリーブ応答があるか否かを検証し、どこからも応答のない場合は、リトリーブ要求の発信元ホストがシステム管理レキシコンセットのベースホストであるか否かを検証し、リトリーブ要求の発信元ホストがシステム管理レキシコンセットのベースホストである場合には、自ホストにデータがある場合にはそのデータを常駐させ、なければ空のシステム管理レキシコンセットを作成する処理を実行させることを特徴とする分散処理型データベース管理プログラム。
  14. 前記ホスト毎に設定する処理が、アクセス対象とするレキシコンセット名、そのレキシコンセットを配置させる常駐ホスト名、およびそのレキシコンセットを常駐させるときに使用するリトリーブホスト名を設定するステップと、各ホストに配置するレキシコンをそのレキシコンセットと共に設定するステップと、前記の設定内容に従って、各ホストにおいて、あるレキシコンが現在常駐しているか否かの状況を確認するステップから構成されていることを特徴とする請求項13に記載の分散処理型データベース管理プログラム。
JP2001101738A 2001-03-30 2001-03-30 分散処理型データベース管理システム Expired - Fee Related JP4131781B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2001101738A JP4131781B2 (ja) 2001-03-30 2001-03-30 分散処理型データベース管理システム
EP02252292A EP1246064A3 (en) 2001-03-30 2002-03-28 Startup method of a new node in a distributed database management system
US10/109,640 US7143082B2 (en) 2001-03-30 2002-04-01 Distributed-processing database-management system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001101738A JP4131781B2 (ja) 2001-03-30 2001-03-30 分散処理型データベース管理システム

Publications (2)

Publication Number Publication Date
JP2002297432A JP2002297432A (ja) 2002-10-11
JP4131781B2 true JP4131781B2 (ja) 2008-08-13

Family

ID=18955012

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001101738A Expired - Fee Related JP4131781B2 (ja) 2001-03-30 2001-03-30 分散処理型データベース管理システム

Country Status (3)

Country Link
US (1) US7143082B2 (ja)
EP (1) EP1246064A3 (ja)
JP (1) JP4131781B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4158534B2 (ja) * 2003-01-21 2008-10-01 修平 西山 分散型データベースシステム
US20050267920A1 (en) * 2004-05-13 2005-12-01 Fabrice Helliker System and method for archiving data in a clustered environment
WO2008042907A2 (en) * 2006-10-02 2008-04-10 Presenceid, Inc. Systems and methods for managing identities in a database system
US20080209260A1 (en) * 2007-02-27 2008-08-28 Venkateswara Rao Vykunta Apparatus and method for synchronizing embedded databases of applications in a failover cluster
JP2011198109A (ja) * 2010-03-19 2011-10-06 Hitachi Ltd Id管理方法、id管理システム、およびid管理プログラム
US9436748B2 (en) 2011-06-23 2016-09-06 Simplivity Corporation Method and apparatus for distributed configuration management
JP2013054477A (ja) * 2011-09-02 2013-03-21 Hitachi Ltd データ共有装置およびデータ共有方法
JP5548829B2 (ja) * 2011-09-28 2014-07-16 株式会社日立製作所 計算機システム、データ管理方法及びデータ管理プログラム
US20210303164A1 (en) * 2020-03-25 2021-09-30 Pure Storage, Inc. Managing host mappings for replication endpoints

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US221320A (en) * 1879-11-04 James m
US221392A (en) * 1879-11-11 Improvement in lathe attachments for turning lathe-centers
US221393A (en) * 1879-11-11 Improvement in corsets
US221394A (en) * 1879-11-11 Improvement in refrigerators
KR100204027B1 (ko) * 1996-02-16 1999-06-15 정선종 이중면 비휘발성 메모리를 이용한 데이타베이스 회복 장치 및 그 방법
US5832514A (en) * 1996-06-26 1998-11-03 Microsoft Corporation System and method for discovery based data recovery in a store and forward replication process
US5987506A (en) * 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
US6532491B1 (en) * 1997-03-24 2003-03-11 Novell, Inc. Processes and apparatuses for managing network devices
US6012059A (en) * 1997-08-21 2000-01-04 Dataxel Corporation Method and apparatus for replicated transaction consistency
US6018746A (en) * 1997-12-23 2000-01-25 Unisys Corporation System and method for managing recovery information in a transaction processing system
US6243825B1 (en) * 1998-04-17 2001-06-05 Microsoft Corporation Method and system for transparently failing over a computer name in a server cluster
WO1999063441A1 (en) * 1998-06-05 1999-12-09 Mylex Corporation Snapshot backup strategy
US6393485B1 (en) * 1998-10-27 2002-05-21 International Business Machines Corporation Method and apparatus for managing clustered computer systems
US6349306B1 (en) * 1998-10-30 2002-02-19 Aprisma Management Technologies, Inc. Method and apparatus for configuration management in communications networks
JP2000163344A (ja) * 1998-11-27 2000-06-16 Nec Corp ネットワーク管理システムのデータベース復旧方式
US6671704B1 (en) * 1999-03-11 2003-12-30 Hewlett-Packard Development Company, L.P. Method and apparatus for handling failures of resource managers in a clustered environment
US7627694B2 (en) * 2000-03-16 2009-12-01 Silicon Graphics, Inc. Maintaining process group membership for node clusters in high availability computing systems
US6795830B1 (en) * 2000-09-08 2004-09-21 Oracle International Corporation Techniques for providing off-host storage for a database application
US6691245B1 (en) * 2000-10-10 2004-02-10 Lsi Logic Corporation Data storage with host-initiated synchronization and fail-over of remote mirror
US6898609B2 (en) * 2002-05-10 2005-05-24 Douglas W. Kerwin Database scattering system

Also Published As

Publication number Publication date
EP1246064A2 (en) 2002-10-02
US7143082B2 (en) 2006-11-28
JP2002297432A (ja) 2002-10-11
US20020184198A1 (en) 2002-12-05
EP1246064A3 (en) 2005-03-23

Similar Documents

Publication Publication Date Title
US7325041B2 (en) File distribution system in which partial files are arranged according to various allocation rules associated with a plurality of file types
US6081826A (en) System using environment manager with resource table in each computer for managing distributed computing resources managed for each application
US8495131B2 (en) Method, system, and program for managing locks enabling access to a shared resource
JP5411250B2 (ja) 冗長データ記憶システムへの指示に従ってのデータ配置
JP3088269B2 (ja) コンピュータネットワークシステム及びそのオペレーティングシステムの版数管理方法
US7240116B2 (en) Dynamic RDF groups
JP3526474B2 (ja) ネットワークにおける配布情報管理システム
US20030105840A1 (en) Method and apparatus for managing configuration information in a distributed computer system
US8572201B2 (en) System and method for providing a directory service network
US8478898B2 (en) System and method for routing directory service operations in a directory service network
US7228352B1 (en) Data access management system in distributed processing system
JP2003091449A (ja) ストレージシステムおよびストレージシステムの管理方法
US7069276B2 (en) Computer system
JP4131781B2 (ja) 分散処理型データベース管理システム
JP4131780B2 (ja) 分散トランザクション処理システム、分散トランザクション処理方法及び分散トランザクション処理プログラム
JP2017224253A (ja) 並列処理装置及びメモリキャッシュ制御方法
JP4129353B2 (ja) 分散データ管理システム、分散データ管理方法及び分散データ管理プログラム
JP4050479B2 (ja) トランザクション処理型データベースシステム
US20070106691A1 (en) System and method for efficient directory performance using non-persistent storage
JP4343056B2 (ja) ストレージ装置割当て方法ならびにそのための管理サーバおよびプログラム
JP2002297593A (ja) ベースホスト切替型データベース管理システム
JP4160171B2 (ja) 営業店バックアップ・システム、センタ側サーバ、営業店サーバ、営業店バックアップ方法および記録媒体
JPH0520280A (ja) 複合電子計算機システムのプログラム分配方式
JP2003288239A (ja) ストレージの分割利用管理方法、そのサーバならびにクライアントシステム
WO2007123580A2 (en) System and method for routing directory service operations in a directory service network

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071105

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080520

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080528

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110606

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110606

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120606

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120606

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130606

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees