JP2002297429A - 分散トランザクション処理システム、分散トランザクション処理方法及び分散トランザクション処理プログラム - Google Patents

分散トランザクション処理システム、分散トランザクション処理方法及び分散トランザクション処理プログラム

Info

Publication number
JP2002297429A
JP2002297429A JP2001099095A JP2001099095A JP2002297429A JP 2002297429 A JP2002297429 A JP 2002297429A JP 2001099095 A JP2001099095 A JP 2001099095A JP 2001099095 A JP2001099095 A JP 2001099095A JP 2002297429 A JP2002297429 A JP 2002297429A
Authority
JP
Japan
Prior art keywords
data
transaction
execution
changed
site
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.)
Granted
Application number
JP2001099095A
Other languages
English (en)
Other versions
JP4131780B2 (ja
Inventor
Takuro Iida
卓郎 飯田
Shuichi Kamimura
秀一 上村
Mutsumi Fujiwara
睦 藤原
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 JP2001099095A priority Critical patent/JP4131780B2/ja
Priority to EP02252290A priority patent/EP1246090A3/en
Priority to US10/108,647 priority patent/US6938055B2/en
Publication of JP2002297429A publication Critical patent/JP2002297429A/ja
Application granted granted Critical
Publication of JP4131780B2 publication Critical patent/JP4131780B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/21Design, administration or maintenance of databases
    • 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/99938Concurrency, e.g. lock management in shared database
    • 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/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • 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

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)

Abstract

(57)【要約】 【課題】 ネットワークを構成する複数のマシンの主記
憶上の共有データの変更に迅速且つ適格に対処すること
ができる分散トランザクション処理システムを提供す
る。 【解決手段】 トランザクション受付部と、トランザク
ション実行制御部と、トランザクション実行部と、その
内容に変更があったか否かを監視したいデータの位置情
報とそのデータが変更された場合に実行される変更同期
トランザクションをそのデータに関連づけて登録・削除
する登録・削除部と、自己の保有するデータが変更され
たか否かを監視するデータ監視部と、オリジナルサイト
から送られた更新データを自サイトのレプリカデータに
反映させるレプリケーション処理部と、データ受信部及
びデータ送信部を備え、データ監視部により監視対象デ
ータが変更されたか否かを監視し、変更された場合に
は、そのデータに関連づけて予め登録されている変更同
期トランザクションを読み出して実行し、その実行完了
を、実行依頼元へ通知する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ネットワークに接
続された複数のマシン間において、各マシンで実行され
るトランザクションを適切に同期させることができる分
散トランザクション処理システム及び分散トランザクシ
ョン処理方法に関するものである。
【0002】
【従来の技術】ネットワークに分散したマシン間におけ
る共有データをリアルタイムに監視・制御するシステム
では、大量のデータを高速に処理(検索・更新)する必
要があるので、それらのデータへのアクセス手段を提供
するデータ管理手段(データベース、ファイルシステム
等)の性能がシステムの性能を決定する。このようなデ
ータ管理性能の向上を図るためには、通常ハードディス
ク等の外部記憶装置に格納されているデータのすべてを
主記憶上に配置して管理することが考えられる。特に、
昨今の主記憶容量の増加により、現在のハードウェア環
境でも全データを主記憶上に常駐させることは可能とな
ってきている。
【0003】
【発明が解決しようとする課題】しかしながら、従来の
ディスクを前提にしたデータ管理を単に主記憶でキャッ
シングするだけでは、リアルタイムアプリケーションが
必要とする性能を達成することはできない。その理由と
しては、(1)アプリケーションとデータ管理手段との
間で大量のデータ転送操作が必須となる、(2)ディス
クを前提として設計されたアルゴリズムを各マシンの主
記憶上で実行してもそれほど性能が向上しないという2
点が挙げられる。さらに、ディスクを前提として設計さ
れたアルゴリズムでは、データ管理手段が提供できる検
索機能が限られているため、多少高速化されてもアプリ
ケーションの開発負荷は軽減されない。
【0004】また、従来は、データベースの変更を確認
するために、アプリケーションが定期的にデータを監視
していた。そのため、定期的にデータを監視する仕組み
を各アプリケーションそれぞれで実装しなければならな
かった。また、データ変更を監視する周期は、各アプリ
ケーションそれぞれで設定していたため、監視する周期
を適切に設定することができず、監視対象データの変更
を直ちに検知することができなかった。
【0005】さらに、従来は、監視対象データが変更し
たことが逐次通知されなかったので、変更されたかどう
かを自主的に確認しなければならなかった。また、監視
対象データが変更された場合、アプリケーションがその
変更に同期して所定のプログラムを起動していたため、
監視対象データの変更に同期して動作するプログラムを
起動する仕組みをアプリケーションが実装しなければな
らなかった。
【0006】本発明は、上記のような従来技術の問題点
を解決するために提案されたものであり、その目的は、
ネットワークで結合された複数のマシン上で協調動作す
ることにより、各マシンの主記憶上の共有データについ
て、そのデータになんらかの変更が生じた場合に、その
変更に同期して実行される変更同期トランザクションを
各ホスト毎に登録することにより、主記憶上の共有デー
タの変更に迅速且つ適格に対処することができる分散ト
ランザクション処理システム及び分散トランザクション
処理方法を提供することにある。
【0007】
【課題を解決するための手段】上記目的を達成するた
め、請求項1記載の発明は、ネットワークを介して接続
された複数のコンピュータの主記憶領域上にそれぞれデ
ータベースを配置し、前記データベースに格納されたデ
ータのそれぞれについて、そのオリジナルデータを、前
記複数のコンピュータの内のある特定のコンピュータに
格納し、このオリジナルデータを保有するコンピュータ
をオリジナルサイトとすると共に、前記オリジナルサイ
トとは異なる他のコンピュータには、前記オリジナルデ
ータと同一のレプリカデータを格納し、このレプリカデ
ータを保有するコンピュータをレプリカサイトとし、前
記各コンピュータにおいては、前記データベースにアク
セスする処理をトランザクションとして実行する分散ト
ランザクション処理システムにおいて、前記各コンピュ
ータには、前記トランザクションの実行依頼を受け付け
るトランザクション受付部と、トランザクションの実行
を制御するトランザクション実行制御部と、トランザク
ションを実行するトランザクション実行部と、その内容
に変更があったか否かを監視したいデータの位置情報
と、その監視対象データが変更された場合に実行される
変更同期トランザクションをその監視対象データに関連
づけて登録・削除する登録・削除部と、自己の保有する
データが変更されたか否かを監視するデータ監視部と、
オリジナルサイトから送られた更新データを自サイトの
レプリカデータに反映させるレプリケーション処理部
と、データ受信部及びデータ送信部が備えられ、前記デ
ータ監視部により監視対象データが変更されたか否かを
監視し、変更された場合には、そのデータに関連づけて
予め登録されている変更同期トランザクションを読み出
して実行し、その変更同期トランザクションの実行完了
を、監視データ情報と変更同期トランザクションを登録
するためのトランザクションの実行を依頼した依頼元へ
通知することを特徴とする。
【0008】請求項3は、請求項1の発明を方法の観点
から捉えたものであって、ネットワークを介して接続さ
れた複数のコンピュータの主記憶領域上にそれぞれデー
タベースを配置し、前記データベースに格納されたデー
タのそれぞれについて、そのオリジナルデータを、前記
複数のコンピュータの内のある特定のコンピュータに格
納し、このオリジナルデータを保有するコンピュータを
オリジナルサイトとすると共に、前記オリジナルサイト
とは異なる他のコンピュータには、前記オリジナルデー
タと同一のレプリカデータを格納し、このレプリカデー
タを保有するコンピュータをレプリカサイトとし、前記
各コンピュータにおいては、前記データベースにアクセ
スする処理をトランザクションとして実行する分散トラ
ンザクション処理方法において、予め、その内容に変更
があったか否かを監視したい監視対象データの位置情報
と、その監視対象データが変更された場合に実行される
変更同期トランザクションをその監視対象データに関連
づけて登録しておき、その監視対象データが変更された
か否かを監視し、変更された場合には、そのデータに関
連づけて予め登録されている変更同期トランザクション
を読み出して実行し、その変更同期トランザクションの
実行完了を、監視データ情報と変更同期トランザクショ
ンを登録するためのトランザクションの実行を依頼した
依頼元へ通知することを特徴とする。
【0009】このような構成を有する請求項1、請求項
3の発明によれば、監視対象データが変更された場合に
実行されるべき変更同期トランザクションを、その監視
対象データと関連づけて予め登録してあるので、監視対
象データが変更された場合、アプリケーションの仕組み
なしに、予め登録されたプログラムを実行することがで
きる。また、監視対象データが変更され、それに付随し
て変更同期トランザクションが実行された場合には、変
更同期トランザクションの実行が終了したことが、監視
データ情報と変更同期トランザクションを登録するため
のトランザクションの実行を依頼した依頼元へ通知され
るので、別のトランザクションの実行を依頼でき、別の
ミドルウェアや独自のプログラムを実行することがで
き、さらに、別のプログラムを終了させることができ
る。
【0010】請求項2の発明は、請求項1に記載の分散
トランザクション処理システムにおいて、前記データ監
視部による監視が、一つのトランザクションの実行が終
了する毎に行われることを特徴とする。請求項4の発明
は、請求項3に記載の分散トランザクション処理方法に
おいて、一つのトランザクションの実行が終了する毎
に、監視対象データが変更されたか否かを監視すること
を特徴とする。このような構成を有する請求項2、請求
項4の発明によれば、トランザクションの実行が終了す
る毎に監視対象データの変更の有無を監視しているた
め、監視対象となるデータが変更されると、直ちにその
変更を検知することができる。そのため、従来のよう
に、データを監視する周期をアプリケーションで設定す
る必要がなくなり、アプリケーションは、監視対象デー
タが変更されたことを通知されるまで待つだけでよい。
【0011】請求項5の発明は、請求項3に記載の分散
トランザクション処理方法において、ネットワークに接
続された2つのコンピュータで独立に動作している2種
類のアプリケーション間で、一方が発行したトランザク
ションが実行された結果、監視対象データが更新された
場合、そのトランザクションの実行直後、または、オリ
ジナルサイトから送られた更新データを自サイトのレプ
リカデータに反映させる処理の実行直後に、予め登録さ
れている変更同期トランザクションを実行することによ
り、異なるコンピュータ上の互いに独立なアプリケーシ
ョン間で、2つのトランザクションを同期させることを
特徴とする。このような構成を有する請求項5の発明に
よれば、例えば、ネットワークに接続された2つのマシ
ンで独立に動作している2種類のアプリケーション間
で、更新トランザクションと参照トランザクションを同
期させることができる。
【0012】請求項6の発明は、請求項3に記載の発明
をコンピュータプログラムの観点で捉えたものであっ
て、ネットワークを介して接続された複数のコンピュー
タの主記憶領域上にそれぞれデータベースを配置し、前
記データベースに格納されたデータのそれぞれについ
て、そのオリジナルデータを、前記複数のコンピュータ
の内のある特定のコンピュータに格納し、このオリジナ
ルデータを保有するコンピュータをオリジナルサイトと
すると共に、前記オリジナルサイトとは異なる他のコン
ピュータには、前記オリジナルデータと同一のレプリカ
データを格納し、このレプリカデータを保有するコンピ
ュータをレプリカサイトとし、前記オリジナルサイトで
実行された更新結果を、ネットワーク上のすべてのレプ
リカデータに反映することにより、データの同一性を保
持することを可能とした分散トランザクション処理プロ
グラムであって、その内容に変更があったか否かを監視
したい監視対象データの位置情報と、その監視対象デー
タが変更された場合に実行される変更同期トランザクシ
ョンを、その監視対象データに関連づけて登録するステ
ップと、その監視対象データが変更されたか否かを監視
するステップと、その監視対象データが変更された場合
に、そのデータに関連づけて登録された変更同期トラン
ザクションを読み出して実行するステップと、その変更
同期トランザクションの実行完了を、監視データ情報と
変更同期トランザクションを登録するためのトランザク
ションの実行を依頼した依頼元へ通知するステップを有
することを特徴とする。
【0013】このような構成を有する請求項6の発明に
よれば、監視対象データが変更された場合に実行される
べき変更同期トランザクションを、その監視対象データ
と関連づけて予め登録してあるので、監視対象データが
変更された場合、アプリケーションの仕組みなしに、予
め登録されたプログラムを実行することができる。ま
た、監視対象データが変更され、それに付随して変更同
期トランザクションが実行された場合には、変更同期ト
ランザクションの実行が終了したことがアプリケーショ
ンへ通知されるので、別のトランザクションの実行を依
頼でき、別のミドルウェアや独自のプログラムを実行す
ることができ、さらに、別のプログラムを終了させるこ
とができる。
【0014】請求項7の発明は、コンピュータの主記憶
領域上にデータベースを配置し、前記データベースにア
クセスする処理をトランザクションとして実行するトラ
ンザクション処理システムにおいて、前記コンピュータ
には、前記トランザクションの実行依頼を受け付けるト
ランザクション受付部と、トランザクションの実行を制
御するトランザクション実行制御部と、トランザクショ
ンを実行するトランザクション実行部と、その内容に変
更があったか否かを監視したい前記データベース中のデ
ータの位置情報と、その監視対象データが変更された場
合に実行される変更同期トランザクションをその監視対
象データに関連づけて登録・削除する登録・削除部と、
前記監視対象データが変更されたか否かを監視するデー
タ監視部が備えられ、前記データ監視部により監視対象
データが変更されたか否かを監視し、変更された場合に
は、そのデータに関連づけて予め登録されている変更同
期トランザクションを読み出して実行し、その変更同期
トランザクションの実行完了を、監視データ情報と変更
同期トランザクションを登録するためのトランザクショ
ンの実行を依頼した依頼元へ通知することを特徴とす
る。
【0015】請求項8の発明は、請求項7の発明を方法
の観点から捉えたものであって、コンピュータの主記憶
領域上にデータベースを配置し、前記データベースにア
クセスする処理をトランザクションとして実行するトラ
ンザクション処理方法において、予め、その内容に変更
があったか否かを監視したい監視対象データの位置情報
と、その監視対象データが変更された場合に実行される
変更同期トランザクションをその監視対象データに関連
づけて登録しておき、その監視対象データが変更された
か否かを監視し、変更された場合には、そのデータに関
連づけて予め登録されている変更同期トランザクション
を読み出して実行し、その変更同期トランザクションの
実行完了を、監視データ情報と変更同期トランザクショ
ンを登録するためのトランザクションの実行を依頼した
依頼元へ通知することを特徴とする。このような構成を
有する請求項7,請求項8の発明によれば、同一マシン
上の独立なアプリケーション間で、トランザクションの
同期を図ることができる。
【0016】
【発明の実施の形態】[1.分散トランザクション処理
システムの全体像]本発明は、ネットワークで接続され
た複数のマシンで実行されるトランザクションを適切に
同期させるための分散トランザクション処理システムに
関するものである。本発明の詳細については後述する
が、ここでは本発明の分散トランザクション処理システ
ム(以下、本システムという)について概説する。すな
わち、本システムは、データベース(レキシコンセッ
ト)とトランザクションを扱うものであって、ネットワ
ークで接続された複数のマシンのそれぞれで受け付けた
トランザクションや、後述するレプリカデータを保有す
るレプリカサイトから転送されてきたトランザクショ
ン、あるいはオリジナルサイトから伝送されたきたレプ
リケーションデータの反映を実行する順序を適切に制御
するものである。
【0017】図1は、本発明に係る分散トランザクショ
ン処理システムの構成を示す図である。すなわち、本シ
ステムは、図1に示すように、複数のコンピュータA,
B,C……(各ホストと呼ぶ)を通信ネットワークで接
続することによって構成されている。また、各ホスト
A,B,Cの主記憶領域には、それぞれデータベース1
a、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をソートして検索を可能にするデータであ
り、インデックス機能の中心となるものであり、LEXICO
Nに属する。
【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と、後述するレプリケーションデータを自
サイトのデータに反映させるレプリケーション処理部1
5と、データ受信部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”とを発行し、これら各登録用トランザクション“T
R−1”、“TR−2”によって、監視対象であるセル
A、セルBとその変更時に実行される変更同期TR−
A、変更同期TR−Bをそれぞれ対応づける。
【0054】このようにして変更同期トランザクション
の登録がなされた状態において、例えば、ローカルサイ
トのアプリケーションプログラムが、セルA更新のため
の“TR−3”を発行してセルAの更新を試みると、ロ
ーカルサイトにおいてこのトランザクションが実行さ
れ、セルAが更新される。すると、このセルAの更新を
引き金として、セルAに対応づけられていた変更同期T
R−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に格納する(S60
3)。また、この監視対象データが変更されたときに起
動される変更同期トランザクションを、変更同期TR登
録・削除部182によって、前記監視対象データと関連
づけて変更同期TR格納部22に格納する(S60
4)。
【0061】次に、すべての監視対象データ(TR−1
でセルA以外のセルCや変更同期TR−A以外の変更同
期TR−C等)について、上述した登録処理が完了した
か否かを検証する(S605)。すべての監視対象デー
タについての登録が済んでいない場合には(S605の
“NO”)、前記ステップS602に戻り、次の監視対
象データ(例えば、セルC)を選択し、セルCに対する
変更同期トランザクション(図5に示した変更同期TR
−A)の登録を行うというように、登録の作業を繰り返
す。一方、すべての監視対象データについて登録が完了
した場合には(S605の“YES”)処理を終了す
る。
【0062】なお、すでに登録されている変更同期トラ
ンザクションの削除については、前記登録時と同様な処
理を、監視データ情報登録・削除部181と変更同期T
R登録・削除部182によって行う。この場合、その処
理手順は、図6のフローチャートにおける「登録」を
「削除」に置き換えることにより実行される。
【0063】[4−3−2.変更同期トランザクション
の実行]図7及び図8に示したように、アプリケーショ
ンプログラムによって実行依頼されたトランザクション
が実行されると、分散トランザクション管理装置10の
データ監視部20は、監視データ情報格納部21に登録
されている監視対象データがあるか否かを検証し(S7
01)、監視対象データがない場合には(S704の
“NO”)、処理を終了する。一方、監視対象データが
ある場合には(S704の“YES”)、監視データ情
報格納部21に登録されている監視対象データ(例え
ば、セルA)を1つ選択し(S702)、その監視対象
データの位置を取得する(S703)。
【0064】続いて、ステップS704において、すべ
ての監視対象データの位置を取得したか否かを検証し、
図5のセルB等のように、監視対象データが複数存在す
る場合は、すべての監視対象データについて、その選択
及び位置の取得を繰り返して行う(S704の“N
O”)。一方、すべての監視対象データの位置を取得し
た場合には(S704の“YES”)、それらの監視対
象データについて、その変更の有無を監視する。すなわ
ち、データ監視部20は、トランザクション実行管理部
13からデータ変更のあったデータの位置を知らされる
ので、トランザクション処理後の情報から監視対象デー
タを1つ探す(S705)。
【0065】データ監視部20が監視を継続している間
に、前記監視対象データが変更された、言い換えれば、
トランザクション処理後の情報に監視対象データが含ま
れていることを検出した場合には(S706の“YE
S”)、データ監視部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)に関連づけられた変更同期ト
ランザクションがすべて実行されたか否かを検証し(S
710)、実行されていない変更同期トランザクション
がある場合には(S710の“NO”)、ステップS7
07に戻り、S707〜S710を繰り返す。一方、そ
の監視対象データに関連づけられた変更同期トランザク
ションがすべて実行された場合(S710の“YE
S”)には、ステップS711に進み、さらにデータ監
視を行うか否かを検証し、データ監視を継続する場合に
は(S711の“NO”)、再びS705の監視状態に
戻る。一方、すべてのデータ監視が終了した場合は(S
711の“YES”)、処理を終了する。なお、処理が
終了しても、監視データや変更同期トランザクションの
登録情報は削除されない。
【0069】[4−4.第1実施形態の効果]上記のよ
うな構成を有する本実施形態の分散トランザクション管
理装置によれば、本装置自体に、監視対象データの変更
の有無を監視する手段が設けられているため、従来のよ
うに、定期的にデータの変更を監視する仕組みを個々の
アプリケーションで実装する必要がない。
【0070】また、本実施形態の分散トランザクション
管理装置によれば、トランザクションの実行が終了する
毎に監視対象データの変更の有無を監視しているため、
監視対象となるデータが変更されると、直ちにその変更
を検知することができる。そのため、従来のように、デ
ータを監視する周期をアプリケーションで設定する必要
がなくなり、アプリケーションは、監視対象データが変
更されたことを通知されるまで待つだけでよい。
【0071】さらに、本実施形態の分散トランザクショ
ン管理装置においては、監視対象データが変更された場
合に実行されるべき変更同期トランザクションを、その
監視対象データと関連づけて予め登録してあるので、監
視対象データが変更された時、本装置は、アプリケーシ
ョンの仕組みなしに、予め登録されたプログラムを実行
することができる。
【0072】例えば、ネットワークに接続された2つの
マシンで独立に動作している2種類のアプリケーション
間で、一方が発行した更新トランザクションが実行さ
れ、その結果、監視対象データが更新された場合、その
更新トランザクションまたはレプリケーションデータの
反映処理の実行直後に(他のトランザクションまたはレ
プリケーションデータの反映を実行する前に)、予め登
録されている変更同期トランザクション(例えば、参照
トランザクション)を実行することにより、異なるマシ
ン上の互いに独立なアプリケーション間で、更新トラン
ザクションと参照トランザクションを同期させることが
できる。
【0073】また、監視対象データが変更され、それに
付随して変更同期トランザクションが実行された場合に
は、変更同期トランザクションの実行が終了したこと
が、監視データ情報と変更同期トランザクションを登録
するためのトランザクションの実行を依頼した依頼元へ
通知されるので、別のトランザクションの実行を依頼で
き、別のミドルウェアや独自のプログラムを実行するこ
とができ、さらに、別のプログラムを終了させることが
できる。
【0074】[5.他の実施形態]本発明は上述した実
施形態に限定されるものではなく、以下に述べるように
適宜変更して適用することができる。すなわち、上記の
実施形態においては、「複数のマシン」を物理的に異な
るマシンと、通信ネットワークをそれらの間の物理的媒
体を含む通信手段として想定したが、これを論理的に異
なるマシン、例えば同一マシン内の異なるプロセスを対
象として実施しても構わない。その場合には、各(論
理)マシンの識別に、異なる手段(例えば、プロセスI
D等)を使用すればよい。
【0075】また、上記の実施形態においては、トラン
ザクションの実行をすべてトランザクション関数の呼出
しとして説明したが、トランザクションの実行の形態は
これに限られるものではない。例えば、個々のトランザ
クションには具体的なデータ操作手続の記述が含まれて
おり、本システムが一定の手順に従ってそれを解釈実行
するという形態でも構わない。
【0076】さらに、レプリケーションデータを伝達す
る手段としての通信ネットワークと、トランザクション
を転送する手段としての通信ネットワークは、物理的/
論理的に同一のものを用いても、異なるものを用いても
よい。多数のレプリカサイトに伝送するには、マルチキ
ャスト/ブロードキャストのネットワークを使用するの
が効率的な場合が多いが、本発明を適用する場合、それ
に限定されるものではない。一方、トランザクションの
転送は通常1対1通信で足りるが、実行すべきでないサ
イトが受信した場合は、そのサイトの判断で実行しな
い、あるいは破棄する等の処理を行なうという条件で、
マルチキャスト/ブロードキャストのネットワ−クを採
用することも可能である。
【0077】また、本発明は、上述したようなネットワ
ークで接続された複数のコンピュータにおいて、独立に
動作している2種類のアプリケーション間でトランザク
ションの同期を実現するものに限らず、同一マシン上の
独立なアプリケーション間でトランザクションの同期を
図ることもできる。
【0078】この場合、図4に示した構成要件の内、ト
ランザクションの実行依頼を受け付けるトランザクショ
ン受付部と、トランザクションの実行を管理するトラン
ザクション実行管理部と、トランザクションを実行する
トランザクション実行部と、その内容に変更があったか
否かを監視したいデータベース中のデータの位置情報
と、その監視対象データが変更された場合に実行される
変更同期トランザクションをその監視対象データに関連
づけて登録・削除する登録・削除部と、監視対象データ
が変更されたか否かを監視するデータ監視部が備えられ
ていれば良い。
【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格納部
フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 15/177 682 G06F 15/177 682J (72)発明者 藤原 睦 神奈川県川崎市幸区小向東芝町1 株式会 社東芝研究開発センター内 Fターム(参考) 5B045 DD16 DD18 5B082 GB02 HA03 5B085 AA08 BA07 BG04 BG07 5B098 AA03 AA10 GA01 GD04 GD12 GD14

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 ネットワークを介して接続された複数の
    コンピュータの主記憶領域上にそれぞれデータベースを
    配置し、 前記データベースに格納されたデータのそれぞれについ
    て、そのオリジナルデータを、前記複数のコンピュータ
    の内のある特定のコンピュータに格納し、このオリジナ
    ルデータを保有するコンピュータをオリジナルサイトと
    すると共に、 前記オリジナルサイトとは異なる他のコンピュータに
    は、前記オリジナルデータと同一のレプリカデータを格
    納し、このレプリカデータを保有するコンピュータをレ
    プリカサイトとし、 前記各コンピュータにおいては、前記データベースにア
    クセスする処理をトランザクションとして実行する分散
    トランザクション処理システムにおいて、 前記各コンピュータには、 前記トランザクションの実行依頼を受け付けるトランザ
    クション受付部と、 トランザクションの実行を制御するトランザクション実
    行制御部と、 トランザクションを実行するトランザクション実行部
    と、 その内容に変更があったか否かを監視したいデータの位
    置情報と、その監視対象データが変更された場合に実行
    される変更同期トランザクションをその監視対象データ
    に関連づけて登録・削除する登録・削除部と、 自己の保有するデータが変更されたか否かを監視するデ
    ータ監視部と、 オリジナルサイトから送られた更新データを自サイトの
    レプリカデータに反映させるレプリケーション処理部
    と、 データ受信部及びデータ送信部が備えられ、前記データ
    監視部により監視対象データが変更されたか否かを監視
    し、変更された場合には、そのデータに関連づけて予め
    登録されている変更同期トランザクションを読み出して
    実行し、その変更同期トランザクションの実行完了を、
    監視データ情報と変更同期トランザクションを登録する
    ためのトランザクションの実行を依頼した依頼元へ通知
    することを特徴とする分散トランザクション処理システ
    ム。
  2. 【請求項2】 前記データ監視部による監視が、一つの
    トランザクションの実行が終了する毎に行われることを
    特徴とする請求項1に記載の分散トランザクション処理
    システム。
  3. 【請求項3】 ネットワークを介して接続された複数の
    コンピュータの主記憶領域上にそれぞれデータベースを
    配置し、 前記データベースに格納されたデータのそれぞれについ
    て、そのオリジナルデータを、前記複数のコンピュータ
    の内のある特定のコンピュータに格納し、このオリジナ
    ルデータを保有するコンピュータをオリジナルサイトと
    すると共に、 前記オリジナルサイトとは異なる他のコンピュータに
    は、前記オリジナルデータと同一のレプリカデータを格
    納し、このレプリカデータを保有するコンピュータをレ
    プリカサイトとし、 前記各コンピュータにおいては、前記データベースにア
    クセスする処理をトランザクションとして実行する分散
    トランザクション処理方法において、 予め、その内容に変更があったか否かを監視したい監視
    対象データの位置情報と、その監視対象データが変更さ
    れた場合に実行される変更同期トランザクションをその
    監視対象データに関連づけて登録しておき、 その監視対象データが変更されたか否かを監視し、 変更された場合には、そのデータに関連づけて予め登録
    されている変更同期トランザクションを読み出して実行
    し、その変更同期トランザクションの実行完了を、監視
    データ情報と変更同期トランザクションを登録するため
    のトランザクションの実行を依頼した依頼元へ通知する
    ことを特徴とする分散トランザクション処理方法。
  4. 【請求項4】 一つのトランザクションの実行が終了す
    る毎に、監視対象データが変更されたか否かを監視する
    ことを特徴とする請求項3に記載の分散トランザクショ
    ン処理方法。
  5. 【請求項5】 ネットワークに接続された2つのコンピ
    ュータで独立に動作している2種類のアプリケーション
    間で、一方が発行したトランザクションが実行された結
    果、監視対象データが更新された場合、そのトランザク
    ションの実行直後、または、オリジナルサイトから送ら
    れた更新データを自サイトのレプリカデータに反映させ
    る処理の実行直後に、予め登録されている変更同期トラ
    ンザクションを実行することにより、異なるコンピュー
    タ上の互いに独立なアプリケーション間で、2つのトラ
    ンザクションを同期させることを特徴とする請求項3に
    記載の分散トランザクション処理方法。
  6. 【請求項6】 ネットワークを介して接続された複数の
    コンピュータの主記憶領域上にそれぞれデータベースを
    配置し、 前記データベースに格納されたデータのそれぞれについ
    て、そのオリジナルデータを、前記複数のコンピュータ
    の内のある特定のコンピュータに格納し、このオリジナ
    ルデータを保有するコンピュータをオリジナルサイトと
    すると共に、 前記オリジナルサイトとは異なる他のコンピュータに
    は、前記オリジナルデータと同一のレプリカデータを格
    納し、このレプリカデータを保有するコンピュータをレ
    プリカサイトとし、 前記オリジナルサイトで実行された更新結果を、ネット
    ワーク上のすべてのレプリカデータに反映することによ
    り、データの同一性を保持することを可能とした分散ト
    ランザクション処理プログラムであって、 その内容に変更があったか否かを監視したい監視対象デ
    ータの位置情報と、その監視対象データが変更された場
    合に実行される変更同期トランザクションを、その監視
    対象データに関連づけて登録するステップと、 その監視対象データが変更されたか否かを監視するステ
    ップと、 その監視対象データが変更された場合に、そのデータに
    関連づけて登録された変更同期トランザクションを読み
    出して実行するステップと、 その変更同期トランザクションの実行完了を、監視デー
    タ情報と変更同期トランザクションを登録するためのト
    ランザクションの実行を依頼した依頼元へ通知するステ
    ップを有することを特徴とする分散トランザクション処
    理プログラム。
  7. 【請求項7】 コンピュータの主記憶領域上にデータベ
    ースを配置し、 前記データベースにアクセスする処理をトランザクショ
    ンとして実行するトランザクション処理システムにおい
    て、 前記コンピュータには、 前記トランザクションの実行依頼を受け付けるトランザ
    クション受付部と、 トランザクションの実行を制御するトランザクション実
    行制御部と、 トランザクションを実行するトランザクション実行部
    と、 その内容に変更があったか否かを監視したい前記データ
    ベース中のデータの位置情報と、その監視対象データが
    変更された場合に実行される変更同期トランザクション
    をその監視対象データに関連づけて登録・削除する登録
    ・削除部と、 前記監視対象データが変更されたか否かを監視するデー
    タ監視部が備えられ、前記データ監視部により監視対象
    データが変更されたか否かを監視し、変更された場合に
    は、そのデータに関連づけて予め登録されている変更同
    期トランザクションを読み出して実行し、その変更同期
    トランザクションの実行完了を、監視データ情報と変更
    同期トランザクションを登録するためのトランザクショ
    ンの実行を依頼した依頼元へ通知することを特徴とする
    トランザクション処理システム。
  8. 【請求項8】 コンピュータの主記憶領域上にデータベ
    ースを配置し、 前記データベースにアクセスする処理をトランザクショ
    ンとして実行するトランザクション処理方法において、 予め、その内容に変更があったか否かを監視したい監視
    対象データの位置情報と、その監視対象データが変更さ
    れた場合に実行される変更同期トランザクションをその
    監視対象データに関連づけて登録しておき、 その監視対象データが変更されたか否かを監視し、 変更された場合には、そのデータに関連づけて予め登録
    されている変更同期トランザクションを読み出して実行
    し、その変更同期トランザクションの実行完了を、監視
    データ情報と変更同期トランザクションを登録するため
    のトランザクションの実行を依頼した依頼元へ通知する
    ことを特徴とするトランザクション処理方法。
JP2001099095A 2001-03-30 2001-03-30 分散トランザクション処理システム、分散トランザクション処理方法及び分散トランザクション処理プログラム Expired - Fee Related JP4131780B2 (ja)

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 true JP2002297429A (ja) 2002-10-11
JP4131780B2 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2004036432A1 (ja) * 2002-10-21 2006-02-16 玉津 雅晴 データベースのアクセラレーター
JP2008234381A (ja) * 2007-03-22 2008-10-02 Fujifilm Corp 医療検査予約ネットワークシステム及びこれに用いられる中継装置、並びに医療検査スケジュール管理方法
JP2011510397A (ja) * 2008-01-15 2011-03-31 マイクロソフト コーポレーション 構造化されたデータ要素にアクセスして更新するためのマルチクライアントのコラボレーション

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4381655B2 (ja) * 2002-05-31 2009-12-09 株式会社日立製作所 ストレージシステム、ストレージ装置、及び該ストレージ装置を利用した情報共有方法
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
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)

* Cited by examiner, † Cited by third party
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
US5991771A (en) * 1995-07-20 1999-11-23 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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2004036432A1 (ja) * 2002-10-21 2006-02-16 玉津 雅晴 データベースのアクセラレーター
JP2008234381A (ja) * 2007-03-22 2008-10-02 Fujifilm Corp 医療検査予約ネットワークシステム及びこれに用いられる中継装置、並びに医療検査スケジュール管理方法
JP2011510397A (ja) * 2008-01-15 2011-03-31 マイクロソフト コーポレーション 構造化されたデータ要素にアクセスして更新するためのマルチクライアントのコラボレーション

Also Published As

Publication number Publication date
US6938055B2 (en) 2005-08-30
EP1246090A2 (en) 2002-10-02
EP1246090A3 (en) 2004-03-24
US20020143765A1 (en) 2002-10-03
JP4131780B2 (ja) 2008-08-13

Similar Documents

Publication Publication Date Title
EP2169909B1 (en) System and method to maintain coherence of cache contents in a multi-tier software system aimed at interfacing large databases
US7325041B2 (en) File distribution system in which partial files are arranged according to various allocation rules associated with a plurality of file types
US7487228B1 (en) Metadata structures and related locking techniques to improve performance and scalability in a cluster file system
US7783610B2 (en) Distributed database system providing data and space management methodology
US7415466B2 (en) Parallel transaction recovery
US6950833B2 (en) Clustered filesystem
JP4291060B2 (ja) トランザクション処理方法,トランザクション制御装置およびトランザクション制御プログラム
US20130297565A1 (en) Database Management System
US7593968B2 (en) Recovery and relocation of a distributed name service in a cluster filesystem
US20040068563A1 (en) Method, system, and program for managing locks enabling access to a shared resource
JP4746838B2 (ja) データベースへのアクセスを制御するための異なったデータベースサーバ間のデータベースのオーナーシップのパーティション化
JPH10222407A (ja) プロセスオーバーヘッド及びデータベースサーバからの冗長な検索を減少するように同じプロセスにおける多数のデータベーストランザクションを処理する方法
JP2004213435A (ja) 記憶装置システム
JP2002297429A (ja) 分散トランザクション処理システム、分散トランザクション処理方法及び分散トランザクション処理プログラム
JP4131781B2 (ja) 分散処理型データベース管理システム
JP4129353B2 (ja) 分散データ管理システム、分散データ管理方法及び分散データ管理プログラム
JP3866448B2 (ja) ノード間共用ファイル制御方式
JP4050479B2 (ja) トランザクション処理型データベースシステム
JP2002297593A (ja) ベースホスト切替型データベース管理システム
JP2710329B2 (ja) 分散システムにおける利用者情報管理方式
JP2776747B2 (ja) ファイル転送装置
JPH09171480A (ja) 情報記憶システムを備えるネットワークシステム、該システムの入力システムならびに自動運用システム、および該ネットワークシステムの自動運用方法
JP2004199535A (ja) 計算機システムおよびそのストレージの管理方法
JP3374320B2 (ja) ステートレスプロトコルによるデータベースアクセス方法及びシステム
JPH06251068A (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