JP4131780B2 - 分散トランザクション処理システム、分散トランザクション処理方法及び分散トランザクション処理プログラム - Google Patents
分散トランザクション処理システム、分散トランザクション処理方法及び分散トランザクション処理プログラム Download PDFInfo
- Publication number
- JP4131780B2 JP4131780B2 JP2001099095A JP2001099095A JP4131780B2 JP 4131780 B2 JP4131780 B2 JP 4131780B2 JP 2001099095 A JP2001099095 A JP 2001099095A JP 2001099095 A JP2001099095 A JP 2001099095A JP 4131780 B2 JP4131780 B2 JP 4131780B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- transaction
- execution
- site
- original
- 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
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
- G06F16/21—Design, administration or maintenance of databases
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99938—Concurrency, e.g. lock management in shared database
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明は、ネットワークに接続された複数のマシン間において、各マシンで実行されるトランザクションを適切に同期させることができる分散トランザクション処理システム及び分散トランザクション処理方法に関するものである。
【0002】
【従来の技術】
ネットワークに分散したマシン間における共有データをリアルタイムに監視・制御するシステムでは、大量のデータを高速に処理(検索・更新)する必要があるので、それらのデータへのアクセス手段を提供するデータ管理手段(データベース、ファイルシステム等)の性能がシステムの性能を決定する。このようなデータ管理性能の向上を図るためには、通常ハードディスク等の外部記憶装置に格納されているデータのすべてを主記憶上に配置して管理することが考えられる。特に、昨今の主記憶容量の増加により、現在のハードウェア環境でも全データを主記憶上に常駐させることは可能となってきている。
【0003】
【発明が解決しようとする課題】
しかしながら、従来のディスクを前提にしたデータ管理を単に主記憶でキャッシングするだけでは、リアルタイムアプリケーションが必要とする性能を達成することはできない。その理由としては、(1)アプリケーションとデータ管理手段との間で大量のデータ転送操作が必須となる、(2)ディスクを前提として設計されたアルゴリズムを各マシンの主記憶上で実行してもそれほど性能が向上しないという2点が挙げられる。さらに、ディスクを前提として設計されたアルゴリズムでは、データ管理手段が提供できる検索機能が限られているため、多少高速化されてもアプリケーションの開発負荷は軽減されない。
【0004】
また、従来は、データベースの変更を確認するために、アプリケーションが定期的にデータを監視していた。そのため、定期的にデータを監視する仕組みを各アプリケーションそれぞれで実装しなければならなかった。また、データ変更を監視する周期は、各アプリケーションそれぞれで設定していたため、監視する周期を適切に設定することができず、監視対象データの変更を直ちに検知することができなかった。
【0005】
さらに、従来は、監視対象データが変更したことが逐次通知されなかったので、変更されたかどうかを自主的に確認しなければならなかった。また、監視対象データが変更された場合、アプリケーションがその変更に同期して所定のプログラムを起動していたため、監視対象データの変更に同期して動作するプログラムを起動する仕組みをアプリケーションが実装しなければならなかった。
【0006】
本発明は、上記のような従来技術の問題点を解決するために提案されたものであり、その目的は、ネットワークで結合された複数のマシン上で協調動作することにより、各マシンの主記憶上の共有データについて、そのデータになんらかの変更が生じた場合に、その変更に同期して実行される変更同期トランザクションを各ホスト毎に登録することにより、主記憶上の共有データの変更に迅速且つ適格に対処することができる分散トランザクション処理システム及び分散トランザクション処理方法を提供することにある。
【0007】
【課題を解決するための手段】
上記の目的を達成するため、請求項1の発明は、ネットワークを介して接続された複数のコンピュータの主記憶領域上にそれぞれデータベースを配置し、前記データベースに格納されたデータのそれぞれについて、そのオリジナルデータを、前記複数のコンピュータの内のある特定のコンピュータに格納し、このオリジナルデータを保有するコンピュータをオリジナルサイトとすると共に、前記オリジナルサイトとは異なる他のコンピュータには、前記オリジナルデータと同一のレプリカデータを格納し、このレプリカデータを保有するコンピュータをレプリカサイトとし、前記各コンピュータにおいては、前記データベースにアクセスする処理をトランザクションとして実行する分散トランザクション処理システムにおいて、次のような構成を採用したことを特徴とする。
(1)前記各コンピュータには、前記トランザクションの実行依頼を受け付けるトランザクション受付部と、トランザクションの実行を制御するトランザクション実行制御部と、トランザクションを実行するトランザクション実行部と、その内容に変更があったか否かを監視したいデータの位置情報と、その監視対象データが変更された場合に実行される変更同期トランザクションをその監視対象データに関連づけて登録・削除する登録・削除部と、自己の保有するデータが変更されたか否かを監視するデータ監視部と、オリジナルサイトから送られた更新データを自サイトのレプリカデータに反映させるレプリケーション処理部と、データ受信部及びデータ送信部が備えられている。
(2)前記データ監視部により監視対象データが変更されたか否かを監視し、変更された場合には、トランザクション実行制御部により、そのデータに関連づけて予め登録されている変更同期トランザクションを読み出してトランザクション実行部により実行させ、その変更同期トランザクションの実行完了を、監視データ情報と変更同期トランザクションを登録するためのトランザクションの実行を依頼した依頼元へ通知する。
(3)前記トランザクション実行制御部は、ネットワークに接続された複数のコンピュータで独立に動作している複数のアプリケーション間で、一方が発行したトランザクションが実行された結果監視対象データが更新された場合、そのトランザクションの実行直後またはオリジナルサイトから送られた更新データを自サイトのレプリカデータに反映させる処理の実行直後に、予め登録されている変更同期トランザクションをトランザクション実行部により実行させることで、異なるコンピュータ上の互いに独立なアプリケーション間で複数のトランザクションを同期させる。
【0008】
また、請求項3は前記請求項1の発明を方法の観点で、請求項5は前記請求項1の発明をコンピュータプログラムの観点で把握したものである。
【0009】
この様な構成を有する請求項1、請求項3または請求項5の発明によれば、監視対象データが変更された場合に実行されるべき変更同期トランザクションを、その監視対象データと関連づけて予め登録してあるので、監視対象データが変更された場合、アプリケーションの仕組みなしに、予め登録されたプログラムを実行することができる。また、監視対象データが変更され、それに付随して変更同期トランザクションが実行された場合には、変更同期トランザクションの実行が終了したことが、監視データ情報と変更同期トランザクションを登録するためのトランザクションの実行を依頼した依頼元へ通知されるので、別のトランザクションの実行を依頼でき、別のミドルウェアや独自のプログラムを実行することができ、さらに、別のプログラムを終了させることができる。
また、トランザクション実行制御部は、ネットワークに接続された複数のコンピュータで独立に動作している複数のアプリケーション間で、一方が発行したトランザクションが実行された結果監視対象データが更新された場合、そのトランザクションの実行直後またはオリジナルサイトから送られた更新データを自サイトのレプリカデータに反映させる処理の実行直後に、予め登録されている変更同期トランザクションをトランザクション実行部により実行させることで、異なるコンピュータ上の互いに独立なアプリケーション間で複数のトランザクションを同期させるものであるから、例えば、ネットワークに接続された複数のマシンで独立に動作している複数のアプリケーション間で、更新トランザクションと参照トランザクションを同期させることができる。
【0010】
請求項2の発明は、請求項1に記載の分散トランザクション処理システムにおいて、前記データ監視部による監視が、一つのトランザクションの実行が終了する毎に行われることを特徴とする。
請求項4の発明は、請求項3に記載の分散トランザクション処理方法において、一つのトランザクションの実行が終了する毎に、監視対象データが変更されたか否かを監視することを特徴とする。
このような構成を有する請求項2、請求項4の発明によれば、トランザクションの実行が終了する毎に監視対象データの変更の有無を監視しているため、監視対象となるデータが変更されると、直ちにその変更を検知することができる。そのため、従来のように、データを監視する周期をアプリケーションで設定する必要がなくなり、アプリケーションは、監視対象データが変更されたことを通知されるまで待つだけでよい。
【0012】
請求項5の発明は、請求項3に記載の発明をコンピュータプログラムの観点で捉えたものであって、ネットワークを介して接続された複数のコンピュータの主記憶領域上にそれぞれデータベースを配置し、前記データベースに格納されたデータのそれぞれについて、そのオリジナルデータを、前記複数のコンピュータの内のある特定のコンピュータに格納し、このオリジナルデータを保有するコンピュータをオリジナルサイトとすると共に、前記オリジナルサイトとは異なる他のコンピュータには、前記オリジナルデータと同一のレプリカデータを格納し、このレプリカデータを保有するコンピュータをレプリカサイトとし、前記オリジナルサイトで実行された更新結果を、ネットワーク上のすべてのレプリカデータに反映することにより、データの同一性を保持することを可能とした分散トランザクション処理プログラムであって、その内容に変更があったか否かを監視したい監視対象データの位置情報と、その監視対象データが変更された場合に実行される変更同期トランザクションを、その監視対象データに関連づけて登録するステップと、その監視対象データが変更されたか否かを監視するステップと、その監視対象データが変更された場合に、そのデータに関連づけて登録された変更同期トランザクションを読み出して実行するステップと、その変更同期トランザクションの実行完了を、監視データ情報と変更同期トランザクションを登録するためのトランザクションの実行を依頼した依頼元へ通知するステップを有することを特徴とする。
【0013】
このような構成を有する請求項5の発明によれば、監視対象データが変更された場合に実行されるべき変更同期トランザクションを、その監視対象データと関連づけて予め登録してあるので、監視対象データが変更された場合、アプリケーションの仕組みなしに、予め登録されたプログラムを実行することができる。また、監視対象データが変更され、それに付随して変更同期トランザクションが実行された場合には、変更同期トランザクションの実行が終了したことがアプリケーションへ通知されるので、別のトランザクションの実行を依頼でき、別のミドルウェアや独自のプログラムを実行することができ、さらに、別のプログラムを終了させることができる。
【0016】
【発明の実施の形態】
[1.分散トランザクション処理システムの全体像]
本発明は、ネットワークで接続された複数のマシンで実行されるトランザクションを適切に同期させるための分散トランザクション処理システムに関するものである。
本発明の詳細については後述するが、ここでは本発明の分散トランザクション処理システム(以下、本システムという)について概説する。すなわち、本システムは、データベース(レキシコンセット)とトランザクションを扱うものであって、ネットワークで接続された複数のマシンのそれぞれで受け付けたトランザクションや、後述するレプリカデータを保有するレプリカサイトから転送されてきたトランザクション、あるいはオリジナルサイトから伝送されたきたレプリケーションデータの反映を実行する順序を適切に制御するものである。
【0017】
図1は、本発明に係る分散トランザクション処理システムの構成を示す図である。すなわち、本システムは、図1に示すように、複数のコンピュータA,B,C……(各ホストと呼ぶ)を通信ネットワークで接続することによって構成されている。また、各ホストA,B,Cの主記憶領域には、それぞれデータベース1a、1b、1cとこのデータベースにアクセスするためのトランザクション関数2a、2b、2cが配置されている。
【0018】
また、各ホストでは1または複数個のアプリケーションが実行されるが、本システムが複数のホストから構成される場合、異なるホストでは異なるアプリケーションが実行されることが多い。すなわち、アプリケーションX,Y,Zは本システムの外部にあって、各ホストごとにそのデータベースにアクセスして必要な処理を行う。この場合、各アプリケーションX,Y,Zは、各ホストに設けられた処理部3a、3b、3cを介して、本システムに予め登録されているトランザクション関数2a、2b、2cに参照・更新などの処理を依頼し、その結果を受けてデータベースへのアクセス以外にプログラムの実行に必要となる処理を行う。通常、アプリケーションでは画面への表示や印刷などのフロントエンド処理を行う。
【0019】
(データベース)
また、本システムのデータベース1a、1b、1cは、1つ以上の部分(レキシコン)から構成されている。このレキシコンは、レキシコンセットのデータの部分に選択的にアクセスしたり、属性を付与するための単位であって、名称(レキシコン名)等でユニークに識別される。本システムの実行環境においては、図2に示すように、ユニスペースが複数のレキシコンセットを含むことができるので、レキシコンセットもまた名称(レキシコンセット名)等で識別する。さらに、同一の物理的マシン上に共通のネットワークを使用して複数のユニスペース、すなわち異なるレキシコンセットの組を管理する複数のシステムとして本システムを実施することもあり得るので、ユニスペースもまた名称(ユニスペース名)等で区別する。
【0020】
そして、各ホストのデータベースに格納されているレキシコンセットは、いずれかのホスト上にそのオリジナルデータが保有され、他のホストにはそのコピーであるレプリカデータが保有されている。例えば、図1においては、ホストA(コンピュータA)には、データBのオリジナルデータが保有され、ホストC(コンピュータC)には、データAのオリジナルデータが保有されている。また、ホストB(コンピュータB)には、データA及びデータBのレプリカデータが保有されている。また、本システムにおいては、データの更新処理は、オリジナルデータに対してのみ実行でき、レプリカデータでは、データの更新処理を行うことはできない。
【0021】
(トランザクション)
アプリケーションからの一度の依頼によって実施されるデータ参照及び更新の処理単位を「トランザクション」と呼ぶ。各々のトランザクションには、具体的な処理内容を記述した「トランザクション関数」が対応する。すなわち、図1に示したトランザクション関数(TR関数)A,Bは、各マシンのデータベースにアクセスして、アプリケーション共通で必要となる処理を実現する関数である。すなわち、本システムにおいては、各アプリケーションX,Y,Zは、直接データベースにアクセスして処理を行うわけではなく、トランザクション関数を介してデータベースにアクセスするように構成されている。
【0022】
また、トランザクションには、各種の属性を付与するため識別子(トランザクション名等)が含まれている。この識別子に対して、例えば実行すべきトランザクション関数を対応付けたりする。この識別子は、付与すべき属性の種類に応じて必要な数を設定すればよい。
【0023】
また、トランザクションが操作の対象とするのは、1つのレキシコンセットとする。本システムでは、ユニスペースが複数のレキシコンセットを含むことができるので、トランザクションには、操作対象のレキシコンセットを明記する。このレキシコンセット名を上記識別子の1つと考えても良い。もちろん、他の識別子から操作対象レキシコンセットを判別する手段を設けることもでき、レキシコンセット名の明記は必須ではない。
【0024】
そして、本システムにおいては、アプリケーションからのデータ操作の依頼をトランザクションを単位として処理する。従って、オリジナルデータに対する更新処理も更新トランザクション(更新TR)を単位として実行され、レプリカサイトにおける更新内容(レプリケーションデータ)のレプリカデータに対する反映処理も、原因となった更新TRを単位として行われる。
【0025】
(本システムの主たる目的)
本システムの主たる目的は、例えば、ネットワークで接続された2つのマシンにおいて、それぞれ独立に動作している2種類のアプリケーション間で、一方が発行した更新トランザクションが実行されるたびに、他方が更新直後のデータ内容を確実に参照トランザクションによって取得するといった動作、すなわちトランザクション間の同期を実現することにある。
【0026】
すなわち、本システムにおいては、トランザクション間の同期を実現する手段として、トランザクション自体を、監視対象として指定されたデータ項目(部分)と対応づけておき、そのデータ項目を更新したトランザクションまたはレプリケーションデータの実行直後に、他のトランザクションまたはレプリケーションデータの反映を実行する前に、そのデータに対応づけたトランザクションを実行して、アプリケーションに実行完了または実行結果を通知する機能を有している。この機構によって、異なるマシン上の互いに独立なアプリケーション間で、更新トランザクションと参照トランザクションを同期させることができるものである。
【0027】
本システムの別の目的は、データベース(レキシコンセット)を複数のマシン上で同一内容に保つことを意図している。すなわち、各マシンは同一内容のデータベースのコピーを保持しており、1つのマシンでそのデータベースに対して更新が加えられた場合には、通信ネットワークを経由して各マシンに更新情報(内容)を伝達し、各マシンのデータベースに更新内容を速やかに反映させることによってこの目的を達成しようとするものである。本明細書においては、この機能を「レプリケーション」と称する。
【0028】
なお、本明細書においては、データベースを更新する権利を持つマシンをそのデータベースのオリジナルサイト、そのデータをオリジナルデータと呼ぶ。また、それ以外のマシンでそのデータベースのコピーを保有するものをレプリカサイト、そのデータをレプリカデータと呼ぶ。
【0029】
また、本システムは、データベースを更新するトランザクション(更新TR)を上記オリジナルサイトで実行する機能を備え、前記レプリケーションと併せて、複数のコピーからなるデータベースを、各マシンのアプリケーションからは論理的に1つのデータベースに見えるように運用する。すなわち、各マシンのアプリケーションはオリジナルサイトがどのマシンかを気にする必要がない。本明細書においては、このようなシステム構成を「リモート/ローカル構造」と呼ぶ。
【0030】
さらに、本システムにおいては、トランザクションの実行及びレプリケーションデータの反映が一単位完了するまでは、そのデータベース(レキンコンセット)を操作対象とする他のトランザクションの処理を行わない(もちろん他のレプリケーションデータの反映も行なわない)。それらの実行及び反映、また、そのデータベース(レキンコンセット)を操作対象とする他のトランザクションの実行またはレプリケーションデータの反映が進行中の場合は、それらの完了を待って開始される。すなわち、(1つのマシンの)1つのデータベース(レキンコンセント)に関するトランザクションの実行及びレプリケーションデータの反映は、トランザクション単位でシリアルに処理される。それゆえ、トランザクション及びその実行を依頼したアプリケーションが他のトランザクションの実行途中のデータベースの内容にアクセスすることはない。
【0031】
なお、更新操作を行なわず、データの検索・参照のみを行なうトランザクションを、更新トランザクションに対して参照トランザクションと呼ぶ。本システムでは、レプリケーション機能によって、オリジナルデータとレプリカデータの一致がトランザクション単位で速やかに図られるので、参照トランザクションは、そのトランザクションを依頼されたマシン(ローカルマシン)のレプリカデータを操作対象としても何ら不都合を生じない。
【0032】
また、通信ネットワークはオリジナルサイトがレプリケーションをレプリカサイトに伝達してレプリケーション機能を実現するための媒体であると同時に、レプリカサイトで発行(依頼)された更新トランザクションをオリジナルサイトに転送するための媒体でもある。この更新トランザクションをオリジナルサイトのみで実行する機能は、具体的には通信ネットワークを経由してレプリカサイトで発行された更新トランザクションをオリジナルサイトに転送することによって実現される。
【0033】
[2.用語の説明]
各実施形態について説明する前に、本明細書中で用いられる種々の用語について説明する。
ユニスペースとは、図2に示すように、本システムが対象とするデータベース(レキシコンセット)を複数含む形態をいう。また、ユニスペースは、データ及びデータアクセス(参照・更新)のサービスを区別するための識別子となるので、ユニスペース名が付与される。
【0034】
レキシコンセットとは、ユニスペースを構成する共有データに定められた部分集合のことである。このレキシコンセット毎に各マシンにそのデータを配置するか否かを指定することができる。本システムにおける種々の処理は、このレキシコンセット単位でなされる。
【0035】
また、レキシコンセット内には、データベースとして共有データへの高速アクセスを可能にするインデックス機能がある。以下に基本となるデータ構造を記す。
LEXICON:レキシコンセットの部分集合であり、レキシコンセットに属する。
CELL:データを格納する配列であり、タイプ(データ型)、キャパシティ(配列の長さ)、カウント(ソート時のキーとしての有効長)属性を持ち、LEXICONに属する。
CONTEXT:CELLに直線的な関係を与えるデータ(CELLの配列)であり、キャパシティ属性を持ち、LEXICONに属する。
ROW:CONTEXTの一部に対してソートキーを指定するデータであり、ローレングス、キーレングスの属性を持ち、CONTEXTに属する。
FACADE:ROWをソートして検索を可能にするデータであり、インデックス機能の中心となるものであり、LEXICONに属する。
【0036】
トランザクションとは、アプリケーションプログラムの要求に応じて、共有データを参照したり、更新する操作をいう。トランザクションが一度に操作対象とすることができるデータの集合は、ひとつのレキシコンセットのみである。
ローカルサイト:アプリケーションから見た自サイトのこと
リモートサイト:アプリケーションから見た他のサイトのこと
オリジナルサイト:オリジナルデータを持っているサイトのこと
レプリカサイト:レプリカデータ(コピー)を持っているサイトのこと
【0037】
ローカル参照:トランザクション操作が、共有データの「参照」だけの場合で、完全にローカルな主記憶データへのアクセスとして処理され、ネットワークのトラフィックは一切発生しない処理をいう。
ローカル更新:トランザクションを発行したアプリケーションプログラムが存在するサイトがオリジナルサイトの場合の更新処理をいう。つまり、自サイトでデータ更新をすることができ、更新後、他のサイトにその更新データをマルチキャスト送信することにより、常に各ホストで同一のデータを利用できるようにする機能をいう。
【0038】
リモート更新:トランザクションを発行したアプリケーションプログラムが存在するサイトがレプリカサイトの場合の更新処理をいう。つまり、自サイトのデータはレプリカデータなので、データ更新をすることができず、そのトランザクションをオリジナルサイトに転送し、オリジナルサイトでデータ更新後、その更新データをレプリケーション受信することにより、常に各ホストで同一のデータを利用できるようにする機能をいう。
なお、自サイトがレプリカサイトであり、且つ、トランザクションを発行したアプリケーションプログラムが存在しない場合には、オリジナルサイトからレプリケーションされた更新データを、自サイトに反映させることにより、常に各ホストで同一のデータを利用できるように構成されている。
【0039】
レプリケーションとは、更新トランザクションによるデータの変更を他のマシンへマルチキャストで送信する機能である。
リトリーブとは、ネットワーク経由で、すでに運用中の他のマシンからレキシコンセットのデータを取り寄せて、自サイトで運用を開始するまでの処理をいう。
【0040】
[3.各実施形態とコンピュータ]
本発明の各実施形態はコンピュータ上に実現され、実施形態の各機能は、所定の手順(プログラム)がこのコンピュータを制御することで実現される。
本明細書における各「手段」は、実施形態の各機能に対応する概念的なもので、必ずしも特定のハードウェアやソフトウェア・ルーチンに1対1には対応しない。同一のハードウェア要素が、場合によって異なった手段を構成する。例えば、コンピュータは、ある命令を実行するときにある手段となり、別の命令を実行するときは別の手段となりうる。また、一つの手段が、わずか1命令によって実現さる場合もあれば、多数の命令によって実現される場合もある。したがって、本明細書では、以下、実施形態の各機能を有する仮想的回路ブロック(手段)を想定して実施形態を説明する。また、本実施形態における各手順の各ステップは、その性質に反しない限り、実行順序を変更し、複数同時に実行し、また、実行ごとに異なった順序で実行してもよい。このような順序の変更は、例えば、ユーザが実行可能な処理を選択するなどメニュー形式のインターフェース手法によって実現することができる。
【0041】
[4.第1実施形態]
本実施形態は、本発明に係る分散トランザクション処理システムの特徴的な機能である「変更同期トランザクション」に関するものである。すなわち、ネットワークで接続されたマシンにおいて、独立に動作している2種類のアプリケーション間で、一方が発行した更新トランザクションが実行されるたびに、他方が更新直後のデータ内容を確実に参照トランザクションによって取得するといった動作、すなわちトランザクション間の同期を実現するものである。
【0042】
[4−1.第1実施形態の構成]
図3は、本システムが適用されるネットワーク構成の一例を示したものである。すなわち、図3は、2つのLANがルーターRを介してWANにより接続された状態を示しす概念的なネットワーク構成図であり、各LANには複数のパーソナルコンピュータ(PC)が接続されている。なお、本システムを適用する具体的なネットワーク構成は自由であり、WANは必須ではなく、各LANに各種サーバーを設けることも自由である。
【0043】
また、図4は、本システムにより変更同期トランザクションを適切に実行するために、各マシンに備えられた分散トランザクション管理装置の構成を示す機能ブロック図である。なお、この分散トランザクション管理装置は、上記「全体像の説明」で示した図1における処理部に対応するものである。
【0044】
すなわち、本実施形態の分散トランザクション管理装置10は、アプリケーション11からのトランザクションの実行依頼を受け付けるトランザクション受付部12と、自サイトにおけるトランザクションの実行を管理するトランザクション実行管理部13と、トランザクションを実行するためのトランザクション関数を呼び出してトランザクションを実行するトランザクション実行部14と、後述するレプリケーションデータを自サイトのデータに反映させるレプリケーション処理部15と、データ受信部16及びデータ送信部17を備えている。
【0045】
なお、このデータ送信部17は、後述するオリジナルサイトへのリモートTRの送信、他のサイトへのレプリケーションの送信を行う部分であり、データ受信部16は、レプリカサイトからのリモートTRの受信、他のサイトからのレプリケーションの受信を行う部分である。
【0046】
また、本実施形態の分散トランザクション管理装置10には、変更同期トランザクションを登録・削除する登録・削除部18と、オリジナルデータあるいはレプリカデータであるレキシコンセットを格納するデータ格納部19と、このデータ格納部19に格納されたデータが変更されたか否かを監視するデータ監視部20とを備えている。なお、データ監視部20が監視するデータは、特定の個々のデータである「セル」であっても、特定のデータ群である「ファサード」であっても良い。
【0047】
また、前記登録・削除部18には、その内容に変更があったか否かを監視したいデータの位置情報を登録・削除する監視データ情報登録・削除部181と、監視対象データが変更された場合に実行される変更同期トランザクションを登録・削除する変更同期TR登録・削除部182が設けられている。また、前記監視データ情報登録・削除部181によって登録された監視対象データの位置情報は、監視データ情報格納部21に格納され、前記変更同期TR登録・削除部182によって登録された変更同期トランザクションは、変更同期TR格納部22に格納される。
そして、上記のような構成を有する分散トランザクション管理装置10を備えた各ホストにおいて、監視対象データが変更された場合には、後述するような処理がなされる。
【0048】
[4−2.全容]
アプリケーションプログラムは、各ホストにおいて予め指定されたデータ(セル、ファサード単位)が変化した場合に呼び出されるトランザクションを、各ホストに予め登録しておくことが可能である。このデータ更新のイベント直後に実行されるトランザクションを「変更同期トランザクション」と呼び、通常のトランザクションと区別する。
また、この変更同期トランザクションは、(1)指定データの更新直後に実行したい手続きの処理、(2)指定データの更新のイベントのアプリケーション側への通知等の目的で利用することが可能である。
【0049】
このような変更同期トランザクションを各ホストで登録するにはトランザクションを用いる必要があるが、この登録用トランザクションは、ローカルサイト(自サイト)で実行する必要がある。また、変更同期トランザクションについても、ローカルサイトが指定データのベースサイトであるか否かにかかわらず、アプリケーションの存在する(任意の)サイトで実行可能なので、やはりローカルサイト毎に登録する必要がある。
すなわち、変更同期トランザクションを実行するには、まず、それを登録するための登録用トランザクションと、データ更新直後に自動的に実行される変更同期トランザクションの2つが必要となる。
【0050】
続いて、本発明に係る分散トランザクション管理装置10による変更同期トランザクションの動作を、図5に基づいて説明する。なお、図5においては、ローカルサイトは、ネットワーク上の各サイトのアプリケーションプログラムが利用するデータの内、“セルA”のベースサイト(オリジナルサイト)であり、また、リモートサイトは、“セルB”のベースサイトである。
【0051】
このような構成において、ローカルサイトのアプリケーションプログラムがセルAの更新を行うには、通常は、図5の中段に記載のように、セルA更新のためのトランザクションである“TR−3”を発行し、この“TR−3”がセルAのベースサイトであるローカルサイトで実行されることにより、セルAが更新される。そして、ローカルサイトにおいてセルAの更新がなされると、セルA更新のためのトランザクションである“TR−3”は終了する。同時に、このセルAの更新内容が、他のリモートサイトに送信され、リモートサイト上に設けられているセルA(レプリカデータ)の内容を、オリジナルのセルAの内容と同一のものに書き換える。このように、本明細書においては、各データについて、そのオリジナルデータを保有するベースサイトと、レプリカデータを保有するレプリカサイトとの間で、データの同一性を確保する処理を「レプリケーション」と呼ぶこととする。なお、図5においては、この「レプリケーション」を点線で示している。
【0052】
ところで、前記のようにしてセルAが更新された場合に、その更新を引き金として、ある特定の処理を実行させたい場合がある。例えば、セルAが更新された場合に、その更新内容を参照したり、更新を反映させた新たな検索、ソート、再計算などの処理が必要となる場合がある。これらの処理は、いずれもトランザクションの実行としてなされるものであるから、本発明においては、セルAの更新に伴って実行すべき処理を、予め「変更同期トランザクション」として、本装置(アプリケーションプログラムではなく、トランザクションの実行側)に登録しておく。
【0053】
すなわち、図5では、ローカルサイトにおいて、セルAが変更された場合に実行する特定のトランザクションを、“変更同期TR−A”として登録し、また、他のセルBが変更された場合に実行する別のトランザクションを“変更同期TR−B”として登録する。この場合、これらの登録作業は、アプリケーションプログラム側から行うものであり、アプリケーションプログラム側から、変更同期TR−Aの登録のための登録用トランザクションである“TR−1”と、変更同期TR−Bの登録のための登録用トランザクションである“TR−2”とを発行し、これら各登録用トランザクション“TR−1”、“TR−2”によって、監視対象であるセルA、セルBとその変更時に実行される変更同期TR−A、変更同期TR−Bをそれぞれ対応づける。
【0054】
このようにして変更同期トランザクションの登録がなされた状態において、例えば、ローカルサイトのアプリケーションプログラムが、セルA更新のための“TR−3”を発行してセルAの更新を試みると、ローカルサイトにおいてこのトランザクションが実行され、セルAが更新される。すると、このセルAの更新を引き金として、セルAに対応づけられていた変更同期TR−Aが実行される。なお、この変更同期TR−Aが実行された後は、その終了イベントがアプリケーションプログラム側に通知される。
【0055】
一方、ローカルサイトのアプリケーションプログラムが、他サイトにオリジナルデータが存在するセルBの更新を行う場合は、セルB更新用のトランザクションである“TR−4”がアプリケーションプログラムから発行される。
なお、この場合、本装置を備えた複数のホストからなるネットワークシステムでは、データの更新処理はオリジナルサイトでしか実行できないとされているため、このセルB更新のトランザクションがセルBのベースサイトであるリモートサイトにリモートトランザクションとして送信され、セルBのベースサイトであるリモートサイト上のオリジナルデータが更新される。なお、図5においては、この「リモートトランザクション」を波線で示している。
【0056】
続いて、更新されたセルBの内容は、リモートサイトからローカルサイトにレプリケーション送信され、ローカルサイト上のセルB(レプリカデータ)の内容が更新される。このセルBの内容の更新を引き金として、これに対応づけられていた変更同期TR−Bが実行される。
【0057】
なお、以上の説明は、セルBのベースサイトがリモートサイトであり、ローカルサイトのアプリケーションプログラムによってセルBの更新トランザクションが実行され場合を想定したが、図中一点鎖線で示すように、他のサイト(セルBのベースサイトや、セルBの他のレプリカサイト)からの更新トランザクションにより、セルBが更新される場合もある。その場合も、ローカルサイトのレプリカデータに対しては、レプリケーションによりセルBの更新内容が反映されるので、ローカルサイトにおいては、このセルBの更新を引き金として変更同期TR−Bが実行される。
【0058】
このように、自サイトが監視対象データであるセルAのベースサイトであれば、自サイトにおいてセルAの更新がなされた場合には、その更新内容を他サイトに反映させるためのレプリケーション処理が必要であるし、自サイトの監視対象データがセルBのようにレプリカデータであれば、自サイトにおける監視対象データの変更は、他サイト(セルBのベースサイト)からのレプリケーション処理によって実行されることになる。
【0059】
[4−3.第1実施形態の作用]
続いて、前記のような変更同期トランザクションの登録及び実行処理の手順を、図6及び図7に示すフローチャートによって説明する。なお、この実施の形態では、監視対象データとして、特定の個々のデータを指すセルA、セルBを例に挙げて説明したが、特定のデータ群であるファサード単位でデータの変更を監視することも可能である。
【0060】
[4−3−1.変更同期トランザクションの登録と削除]
図6に示したように、トランザクション実行管理部13は、アプリケーションプログラム11(システム管理用アプリケーションプログラム又はユーザのアプリケーションプログラム)から発行された登録用トランザクション(例えば、図5に示したTR−1)により、変更同期トランザクション(図5に示した変更同期TR−A)の登録を実行すべき旨の依頼を受付けると(S601)、監視対象データ(例えば、前記図5のセルA)を1つ選択し(S602)、監視データ情報登録・削除部181によって、この監視対象データの位置情報を監視データ情報格納部21に格納する(S603)。また、この監視対象データが変更されたときに起動される変更同期トランザクションを、変更同期TR登録・削除部182によって、前記監視対象データと関連づけて変更同期TR格納部22に格納する(S604)。
【0061】
次に、すべての監視対象データ(TR−1でセルA以外のセルCや変更同期TR−A以外の変更同期TR−C等)について、上述した登録処理が完了したか否かを検証する(S605)。すべての監視対象データについての登録が済んでいない場合には(S605の“NO”)、前記ステップS602に戻り、次の監視対象データ(例えば、セルC)を選択し、セルCに対する変更同期トランザクション(図5に示した変更同期TR−A)の登録を行うというように、登録の作業を繰り返す。一方、すべての監視対象データについて登録が完了した場合には(S605の“YES”)処理を終了する。
【0062】
なお、すでに登録されている変更同期トランザクションの削除については、前記登録時と同様な処理を、監視データ情報登録・削除部181と変更同期TR登録・削除部182によって行う。この場合、その処理手順は、図6のフローチャートにおける「登録」を「削除」に置き換えることにより実行される。
【0063】
[4−3−2.変更同期トランザクションの実行]
図7及び図8に示したように、アプリケーションプログラムによって実行依頼されたトランザクションが実行されると、分散トランザクション管理装置10のデータ監視部20は、監視データ情報格納部21に登録されている監視対象データがあるか否かを検証し(S701)、監視対象データがない場合には(S704の“NO”)、処理を終了する。一方、監視対象データがある場合には(S704の“YES”)、監視データ情報格納部21に登録されている監視対象データ(例えば、セルA)を1つ選択し(S702)、その監視対象データの位置を取得する(S703)。
【0064】
続いて、ステップS704において、すべての監視対象データの位置を取得したか否かを検証し、図5のセルB等のように、監視対象データが複数存在する場合は、すべての監視対象データについて、その選択及び位置の取得を繰り返して行う(S704の“NO”)。一方、すべての監視対象データの位置を取得した場合には(S704の“YES”)、それらの監視対象データについて、その変更の有無を監視する。すなわち、データ監視部20は、トランザクション実行管理部13からデータ変更のあったデータの位置を知らされるので、トランザクション処理後の情報から監視対象データを1つ探す(S705)。
【0065】
データ監視部20が監視を継続している間に、前記監視対象データが変更された、言い換えれば、トランザクション処理後の情報に監視対象データが含まれていることを検出した場合には(S706の“YES”)、データ監視部20は、変更同期TR格納部22から、変更された監視対象データに関連づけられた変更同期トランザクションを読み出して(S707)、その変更同期トランザクションをトランザクション実行管理部13に送り、トランザクション実行管理部13は、その変更同期トランザクションの実行をトランザクション実行部14に依頼して実行する(S708)。そして、変更同期トランザクションの実行が終了したときは、その終了を、監視データ情報と変更同期トランザクションを登録するためのトランザクションの実行を依頼した依頼元に通知する(S709)。
【0066】
例えば、監視対象データである“セルA”が変更された場合には、ステップS707において、変更同期TR−Aが読み出され、監視対象データである“セルB”が変更された場合には、変更同期TR−Bが読み出され、その変更同期トランザクションが実行される(S708)。
【0067】
なお、この際、前記図5において説明したように、監視対象データについて他ホストとの間でデータの同一性を確保する必要がある場合には、トランザクション実行管理部13がこれを検出し、各ホスト間におけるレプリケーション処理を実行する。なお、このレプリケーション処理に要する各ホスト間のデータの送受信は、データ送信部17及びデータ受信部16を介して実行される。また、他ホストからレプリケーションを受信した場合には、トランザクション実行管理部13及びレプリケーション処理部15によって、そのレプリケーションデータが自サイトのデータに反映される。
【0068】
ステップS709において、ある変更同期トランザクションの実行が終了したときは、変更された監視対象データ(セルA)に関連づけられた変更同期トランザクションがすべて実行されたか否かを検証し(S710)、実行されていない変更同期トランザクションがある場合には(S710の“NO”)、ステップS707に戻り、S707〜S710を繰り返す。一方、その監視対象データに関連づけられた変更同期トランザクションがすべて実行された場合(S710の“YES”)には、ステップS711に進み、さらにデータ監視を行うか否かを検証し、データ監視を継続する場合には(S711の“NO”)、再びS705の監視状態に戻る。一方、すべてのデータ監視が終了した場合は(S711の“YES”)、処理を終了する。なお、処理が終了しても、監視データや変更同期トランザクションの登録情報は削除されない。
【0069】
[4−4.第1実施形態の効果]
上記のような構成を有する本実施形態の分散トランザクション管理装置によれば、本装置自体に、監視対象データの変更の有無を監視する手段が設けられているため、従来のように、定期的にデータの変更を監視する仕組みを個々のアプリケーションで実装する必要がない。
【0070】
また、本実施形態の分散トランザクション管理装置によれば、トランザクションの実行が終了する毎に監視対象データの変更の有無を監視しているため、監視対象となるデータが変更されると、直ちにその変更を検知することができる。そのため、従来のように、データを監視する周期をアプリケーションで設定する必要がなくなり、アプリケーションは、監視対象データが変更されたことを通知されるまで待つだけでよい。
【0071】
さらに、本実施形態の分散トランザクション管理装置においては、監視対象データが変更された場合に実行されるべき変更同期トランザクションを、その監視対象データと関連づけて予め登録してあるので、監視対象データが変更された時、本装置は、アプリケーションの仕組みなしに、予め登録されたプログラムを実行することができる。
【0072】
例えば、ネットワークに接続された2つのマシンで独立に動作している2種類のアプリケーション間で、一方が発行した更新トランザクションが実行され、その結果、監視対象データが更新された場合、その更新トランザクションまたはレプリケーションデータの反映処理の実行直後に(他のトランザクションまたはレプリケーションデータの反映を実行する前に)、予め登録されている変更同期トランザクション(例えば、参照トランザクション)を実行することにより、異なるマシン上の互いに独立なアプリケーション間で、更新トランザクションと参照トランザクションを同期させることができる。
【0073】
また、監視対象データが変更され、それに付随して変更同期トランザクションが実行された場合には、変更同期トランザクションの実行が終了したことが、監視データ情報と変更同期トランザクションを登録するためのトランザクションの実行を依頼した依頼元へ通知されるので、別のトランザクションの実行を依頼でき、別のミドルウェアや独自のプログラムを実行することができ、さらに、別のプログラムを終了させることができる。
【0075】
[5.他の実施形態]
本発明は上述した実施形態に限定されるものではなく、以下に述べるように適宜変更して適用することができる。すなわち、上記の実施形態においては、トランザクションの実行をすべてトランザクション関数の呼出しとして説明したが、トランザクションの実行の形態はこれに限られるものではない。例えば、個々のトランザクションには具体的なデータ操作手続の記述が含まれており、本システムが一定の手順に従ってそれを解釈実行するという形態でも構わない。
【0076】
さらに、レプリケーションデータを伝達する手段としての通信ネットワークと、トランザクションを転送する手段としての通信ネットワークは、物理的/論理的に同一のものを用いても、異なるものを用いてもよい。多数のレプリカサイトに伝送するには、マルチキャスト/ブロードキャストのネットワークを使用するのが効率的な場合が多いが、本発明を適用する場合、それに限定されるものではない。一方、トランザクションの転送は通常1対1通信で足りるが、実行すべきでないサイトが受信した場合は、そのサイトの判断で実行しない、あるいは破棄する等の処理を行なうという条件で、マルチキャスト/ブロードキャストのネットワ−クを採用することも可能である。
【0079】
【発明の効果】
以上述べた様に、本発明によれば、ネットワークで結合された複数のマシン上で協調動作することにより、各マシンの主記憶上の共有データについて、そのデータになんらかの変更が生じた場合に、その変更に同期して実行される変更同期トランザクションを各ホスト毎に登録することにより、主記憶上の共有データの変更に迅速且つ適格に対処することができる分散トランザクション処理システム及び分散トランザクション処理方法を提供することができる。
【図面の簡単な説明】
【図1】本発明に係る分散トランザクション処理システムの全体構成を示す図
【図2】ユニスペースの構成を示す模式図
【図3】本発明に係る分散トランザクション処理システムが適用されるネットワーク構成の一例を示す図
【図4】本発明に係る分散トランザクション処理システムの第1実施形態の構成を示すブロック図
【図5】本発明に係る分散トランザクション処理システムによる変更同期トランザクションの動作状態を示す図
【図6】変更同期トランザクションの登録と削除の処理手順を示すフローチャート
【図7】変更同期トランザクションの実行の処理手順(前半)を示すフローチャート
【図8】変更同期トランザクションの実行の処理手順(後半)を示すフローチャート
【符号の説明】
10…分散トランザクション管理装置
11…アプリケーション
12…トランザクション受付部
13…トランザクション実行管理部
14…トランザクション実行部
15…レプリケーション処理部
16…データ受信部
17…データ送信部
18…登録・削除部
181…監視データ情報登録・削除部
182…変更同期TR登録・削除部
19…データ格納部
20…データ監視部
21…監視データ情報格納部
22…変更同期TR格納部
Claims (5)
- ネットワークを介して接続された複数のコンピュータの主記憶領域上にそれぞれデータベースを配置し、前記データベースに格納されたデータのそれぞれについて、そのオリジナルデータを、前記複数のコンピュータの内のある特定のコンピュータに格納し、このオリジナルデータを保有するコンピュータをオリジナルサイトとすると共に、前記オリジナルサイトとは異なる他のコンピュータには、前記オリジナルデータと同一のレプリカデータを格納し、このレプリカデータを保有するコンピュータをレプリカサイトとし、前記各コンピュータにおいては、前記データベースにアクセスする処理をトランザクションとして実行する分散トランザクション処理システムにおいて、
前記各コンピュータには、前記トランザクションの実行依頼を受け付けるトランザクション受付部と、トランザクションの実行を制御するトランザクション実行制御部と、トランザクションを実行するトランザクション実行部と、その内容に変更があったか否かを監視したいデータの位置情報と、その監視対象データが変更された場合に実行される変更同期トランザクションをその監視対象データに関連づけて登録・削除する登録・削除部と、自己の保有するデータが変更されたか否かを監視するデータ監視部と、オリジナルサイトから送られた更新データを自サイトのレプリカデータに反映させるレプリケーション処理部と、データ受信部及びデータ送信部が備えられ、
前記データ監視部により監視対象データが変更されたか否かを監視し、変更された場合には、トランザクション実行制御部により、そのデータに関連づけて予め登録されている変更同期トランザクションを読み出してトランザクション実行部により実行させ、その変更同期トランザクションの実行完了を、監視データ情報と変更同期トランザクションを登録するためのトランザクションの実行を依頼した依頼元へ通知し、
前記トランザクション実行制御部は、ネットワークに接続された複数のコンピュータで独立に動作している複数のアプリケーション間で、一方が発行したトランザクションが実行された結果監視対象データが更新された場合、そのトランザクションの実行直後またはオリジナルサイトから送られた更新データを自サイトのレプリカデータに反映させる処理の実行直後に、予め登録されている変更同期トランザクションをトランザクション実行部により実行させることで、異なるコンピュータ上の互いに独立なアプリケーション間で複数のトランザクションを同期させることを特徴とする分散トランザクション処理システム。 - 前記データ監視部による監視が、一つのトランザクションの実行が終了する毎に行われることを特徴とする請求項1に記載の分散トランザクション処理システム。
- ネットワークを介して接続された複数のコンピュータの主記憶領域上にそれぞれデータベースを配置し、前記データベースに格納されたデータのそれぞれについて、そのオリジナルデータを、前記複数のコンピュータの内のある特定のコンピュータに格納し、このオリジナルデータを保有するコンピュータをオリジナルサイトとすると共に、前記オリジナルサイトとは異なる他のコンピュータには、前記オリジナルデータと同一のレプリカデータを格納し、このレプリカデータを保有するコンピュータをレプリカサイトとし、前記各コンピュータにおいては、前記データベースにアクセスする処理をトランザクションとして実行する分散トランザクション処理方法において、
予め、その内容に変更があったか否かを監視したい監視対象データの位置情報と、その監視対象データが変更された場合に実行される変更同期トランザクションをその監視対象データに関連づけて登録しておき、その監視対象データが変更されたか否かを監視し、変更された場合には、そのデータに関連づけて予め登録されている変更同期トランザクションを読み出して実行し、
その変更同期トランザクションの実行完了を、監視データ情報と変更同期トランザクションを登録するためのトランザクションの実行を依頼した依頼元へ通知し、
ネットワークに接続された複数のコンピュータで独立に動作している複数のアプリケーション間で一方が発行したトランザクションが実行された結果、監視対象データが更新された場合、そのトランザクションの実行直後またはオリジナルサイトから送られた更新データを自サイトのレプリカデータに反映させる処理の実行直後に、予め登録されている変更同期トランザクションを実行することにより、異なるコンピュータ上の互いに独立なアプリケーション間で複数のトランザクションを同期させることを特徴とする分散トランザクション処理方法。 - 一つのトランザクションの実行が終了する毎に、監視対象データが変更されたか否かを監視することを特徴とする請求項3に記載の分散トランザクション処理方法。
- ネットワークを介して接続された複数のコンピュータの主記憶領域上にそれぞれデータベースを配置し、前記データベースに格納されたデータのそれぞれについて、そのオリジナルデータを、前記複数のコンピュータの内のある特定のコンピュータに格納し、このオリジナルデータを保有するコンピュータをオリジナルサイトとすると共に、前記オリジナルサイトとは異なる他のコンピュータには、前記オリジナルデータと同一のレプリカデータを格納し、このレプリカデータを保有するコンピュータをレプリカサイトとし、前記オリジナルサイトで実行された更新結果を、ネットワーク上のすべてのレプリカデータに反映することにより、データの同一性を保持することを可能とした分散トランザクション処理プログラムであって、
その内容に変更があったか否かを監視したい監視対象データの位置情報と、その監視対象データが変更された場合に実行される変更同期トランザクションを、その監視対象データに関連づけて登録するステップと、その監視対象データが変更されたか否かを監視するステップと、その監視対象データが変更された場合に、そのデータに関連づけて登録された変更同期トランザクションを読み出して実行するステップと、その変更同期トランザクションの実行完了を、監視データ情報と変更同期トランザクションを登録するためのトランザクションの実行を依頼した依頼元へ通知するステップと、
ネットワークに接続された複数のコンピュータで独立に動作している複数のアプリケーション間で一方が発行したトランザクションが実行された結果、監視対象データが更新された場合、そのトランザクションの実行直後またはオリジナルサイトから送られた更新データを自サイトのレプリカデータに反映させる処理の実行直後に、予め登録されている変更同期トランザクションを実行することにより、異なるコンピュータ上の互いに独立なアプリケーション間で複数のトランザクションを同期させるステップを有することを特徴とする分散トランザクション処理プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001099095A JP4131780B2 (ja) | 2001-03-30 | 2001-03-30 | 分散トランザクション処理システム、分散トランザクション処理方法及び分散トランザクション処理プログラム |
EP02252290A EP1246090A3 (en) | 2001-03-30 | 2002-03-28 | Data processing system and method and storage medium storing data processing program |
US10/108,647 US6938055B2 (en) | 2001-03-30 | 2002-03-29 | Data processing system and method and storage medium storing data processing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001099095A JP4131780B2 (ja) | 2001-03-30 | 2001-03-30 | 分散トランザクション処理システム、分散トランザクション処理方法及び分散トランザクション処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002297429A JP2002297429A (ja) | 2002-10-11 |
JP4131780B2 true JP4131780B2 (ja) | 2008-08-13 |
Family
ID=18952684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001099095A Expired - Fee Related JP4131780B2 (ja) | 2001-03-30 | 2001-03-30 | 分散トランザクション処理システム、分散トランザクション処理方法及び分散トランザクション処理プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US6938055B2 (ja) |
EP (1) | EP1246090A3 (ja) |
JP (1) | JP4131780B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4381655B2 (ja) * | 2002-05-31 | 2009-12-09 | 株式会社日立製作所 | ストレージシステム、ストレージ装置、及び該ストレージ装置を利用した情報共有方法 |
JPWO2004036432A1 (ja) * | 2002-10-21 | 2006-02-16 | 玉津 雅晴 | データベースのアクセラレーター |
JP4907059B2 (ja) * | 2004-01-26 | 2012-03-28 | 大日本印刷株式会社 | コンピュータシステムおよびそのデータの自動バックアップ方法 |
JP2005276094A (ja) * | 2004-03-26 | 2005-10-06 | Hitachi Ltd | 分散ストレージ装置のファイル管理方法及び分散ストレージシステム並びにプログラム |
US8386732B1 (en) * | 2006-06-28 | 2013-02-26 | Emc Corporation | Methods and apparatus for storing collected network management data |
US10305723B1 (en) * | 2006-06-28 | 2019-05-28 | EMC IP Holding Company LLC | Methods and apparatus for selecting a read mechanism |
JP2008234381A (ja) * | 2007-03-22 | 2008-10-02 | Fujifilm Corp | 医療検査予約ネットワークシステム及びこれに用いられる中継装置、並びに医療検査スケジュール管理方法 |
US8862979B2 (en) * | 2008-01-15 | 2014-10-14 | Microsoft Corporation | Multi-client collaboration to access and update structured data elements |
US8122203B2 (en) * | 2008-04-10 | 2012-02-21 | International Business Machines Corporation | Serviceability level indicator processing for storage alteration |
US9983986B2 (en) | 2015-09-28 | 2018-05-29 | International Business Machines Corporation | Testing code response to injected processing errors |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4875159A (en) * | 1987-12-22 | 1989-10-17 | Amdahl Corporation | Version management system using plural control fields for synchronizing two versions of files in a multiprocessor system |
US4933848A (en) * | 1988-07-15 | 1990-06-12 | International Business Machines Corporation | Method for enforcing referential constraints in a database management system |
US6205464B1 (en) * | 1994-09-16 | 2001-03-20 | International Businesss Machines Corporation | System for building optimal commit trees in a distributed transaction processing system |
US5956489A (en) * | 1995-06-07 | 1999-09-21 | Microsoft Corporation | Transaction replication system and method for supporting replicated transaction-based services |
WO1997004389A1 (en) * | 1995-07-20 | 1997-02-06 | Novell, Inc. | Transaction synchronization in a disconnectable computer and network |
US5781910A (en) * | 1996-09-13 | 1998-07-14 | Stratus Computer, Inc. | Preforming concurrent transactions in a replicated database environment |
US5926819A (en) * | 1997-05-30 | 1999-07-20 | Oracle Corporation | In-line triggers |
US5953719A (en) * | 1997-09-15 | 1999-09-14 | International Business Machines Corporation | Heterogeneous database system with dynamic commit procedure control |
US6018770A (en) * | 1997-10-13 | 2000-01-25 | Research In Motion Limited | System and method for managing packet-switched connections |
US6321374B1 (en) * | 1997-11-07 | 2001-11-20 | International Business Machines Corporation | Application-independent generator to generate a database transaction manager in heterogeneous information systems |
US6460055B1 (en) * | 1999-12-16 | 2002-10-01 | Livevault Corporation | Systems and methods for backing up data files |
-
2001
- 2001-03-30 JP JP2001099095A patent/JP4131780B2/ja not_active Expired - Fee Related
-
2002
- 2002-03-28 EP EP02252290A patent/EP1246090A3/en not_active Ceased
- 2002-03-29 US US10/108,647 patent/US6938055B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1246090A2 (en) | 2002-10-02 |
US20020143765A1 (en) | 2002-10-03 |
JP2002297429A (ja) | 2002-10-11 |
EP1246090A3 (en) | 2004-03-24 |
US6938055B2 (en) | 2005-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3088269B2 (ja) | コンピュータネットワークシステム及びそのオペレーティングシステムの版数管理方法 | |
US9405606B2 (en) | Clustered filesystems for mix of trusted and untrusted nodes | |
EP1179770B1 (en) | File system | |
US7107323B2 (en) | System and method of file distribution for a computer system in which partial files are arranged according to various allocation rules | |
EP3580649B1 (en) | Optimizing content storage through stubbing | |
JP4291060B2 (ja) | トランザクション処理方法,トランザクション制御装置およびトランザクション制御プログラム | |
US20040068563A1 (en) | Method, system, and program for managing locks enabling access to a shared resource | |
US20060123121A1 (en) | System and method for service session management | |
US7290100B2 (en) | Computer system for managing data transfer between storage sub-systems | |
JP4131780B2 (ja) | 分散トランザクション処理システム、分散トランザクション処理方法及び分散トランザクション処理プログラム | |
JP3554134B2 (ja) | ネットワーク接続経路探索方法、計算機、ネットワークシステム及び記憶媒体。 | |
US20080133609A1 (en) | Object-based storage system for defferring elimination of shared file and method thereof | |
JP4131781B2 (ja) | 分散処理型データベース管理システム | |
JP4129353B2 (ja) | 分散データ管理システム、分散データ管理方法及び分散データ管理プログラム | |
JP3842549B2 (ja) | 情報収集システム、情報収集方法及び記憶媒体 | |
EP1595217A2 (en) | System and method for processing a request using multiple database units | |
JP3330006B2 (ja) | 情報記憶システムを備えるネットワークシステム、該システムの入力システムならびに | |
JP3635997B2 (ja) | 配布情報選択装置および方法 | |
JP4050479B2 (ja) | トランザクション処理型データベースシステム | |
JP2002297593A (ja) | ベースホスト切替型データベース管理システム | |
JPH04112322A (ja) | Ews・ホスト連携のライブラリ管理方式 | |
JP2776747B2 (ja) | ファイル転送装置 | |
JP3412921B2 (ja) | データ処理システム及びコンピュータ及び遠隔ファイル処理方法 | |
JPH1055301A (ja) | 分散型データベース装置 | |
JP2001273269A (ja) | 複数プロセッサの構成情報更新方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20030930 |
|
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 |