(57)【要約】      （修正有）【課題】一貫性が保持されなければならないマルチ・トランザクション処理において、実用的なスループットを持つリアルタイム更新を要件とするマルチ・トランザクション処理システムを実現する。【解決手段】マルチ・トランザクション処理の起点となるプロセスのプロセスＩＤによって識別されるカウンタのアップダウンにより、カウンタが初期値に戻ったときをひとつのマルチ・トランザクション処理の完了とみなすことにするという更新アクセス・カウンタ技術を適用することによって課題を解決する。【選択図】図１
2011070242.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上に配置された、
データベースを管理する１または２以上のデータベース・オブジェクト管理装置と、
前記データベース・オブジェクト管理装置が管理するデータベースを格納するための、各々の前記データベース・オブジェクト管理装置毎に対応する１または２以上のデータベース・オブジェクト格納装置と、
分散マルチ・トランザクション処理においてトランザクション処理一貫性を保持しながら実行するための分散マルチ・トランザクション処理装置と、
前記データベースの持つメタ情報を管理するための１または２以上のデータベース・メタ情報管理リポジトリ装置と、
で構成されるアクセス・カウンタ式分散マルチ・トランザクション制御システムであって、
分散マルチ・トランザクション処理装置は、
直接的または間接的に、挿入または変更または削除の１または２以上の更新アクセスを端末計算機またはサーバ計算機から要求されるデータベース・オブジェクト管理装置が管理するデータベース・オブジェクトに対するトランザクション処理において、
要求される１または２以上の前記更新アクセスの起点となるプロセスを識別するプロセス識別子によって識別される更新アクセス・カウンタが存在するものとし、
前記更新アクセス・カウンタはあらかじめ特定の初期値を持つものとし、
該起点となったプロセス自身および該前記起点となったプロセスによって直接または間接的に引き起こされた自身のデータベース・ドメイン内の端末計算機またはサーバ計算機上のプロセスないしスレッドが存在すればそのプロセスないしスレッドによって要求される更新アクセスが発生する都度、該前記更新アクセスを要求する起点となったプロセスを識別するプロセス識別子によって識別される該前記更新アクセス・カウンタ内のカウントを一定数ずつカウントアップし、
実際の更新アクセスが成功したという情報を順に受け取る毎に該前記更新アクセスを要求する起点となったプロセスを識別するプロセス識別子によって識別される該前記更新アクセス・カウンタ内のカウントを該前記一定数と同じ値ずつカウントダウンし、該前記カウンタの値が該前記初期値と一致した時に、該前記起点となったプロセス自身および該前記起点となったプロセスによって直接または間接的に引き起こされた自身または他のデータベース・ドメイン内の端末計算機またはサーバ計算機上のプロセスないしスレッドによって実行されたすべての更新アクセスのコミット処理を実行し、また、
実際の更新アクセスが失敗したという情報を一個でも受け取った場合、余の更新アクセスを中止し、その結果を待たずに、すみやかに該前記起点となったプロセス自身および該前記起点となったプロセスないしスレッドが存在するならばそのプロセスないしスレッドによって直接または間接的に引き起こされた自身または他のデータベース・ドメイン内の端末計算機またはサーバ計算機上のプロセスないしスレッドによって実行されたすべての更新アクセスのロールバック処理を実行する、
ことを特徴とする分散マルチ・トランザクション処理実行部と、
を有し、
データベース・メタ情報管理リポジトリ装置は、
１または２以上の前記更新アクセスの起点となるプロセスを識別するプロセス識別子によって識別される更新アクセス・カウンタと、
を有する、
ことを特徴とする、アクセス・カウンタ式分散マルチ・トランザクション制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチ・トランザクション制御システムに関する。
【背景技術】
【０００２】
単一のデータベース・ドメイン内でのマルチ・トランザクション処理の一貫性を一相コミットで確保する方法が特許文献２に記載されている。特許文献２によれば、複数の前記データベース・ドメイン相互でのマルチ・トランザクション処理の一貫性の保持のためには二相コミットで確保しなければならない旨が記載されており、一貫性が保持されたマルチ・トランザクション処理の実用的なスループットの確保は難しい。また、マルチ・トランザクション処理一貫性を確保するための方法として、前記マルチ・トランザクション処理を構成する各単一トランザクション処理のステータスは、該ステータスのステータス情報を該単一トランザクション毎に保持することになっており、非常に複雑なものになっている。
【０００３】
特許文献１には、大規模分散データベースにおいて、マルチ・トランザクション処理の起点プロセス単位に保持されるアクセス・カウンタがマルチ・トランザクション制御システムに適用されていることが記載されている。この大規模データベースは、複数のデータベースで構成されるデータベース・グループであるデータベース・ドメインに分割され、前記アクセス・カウンタを各データベース・ドメイン間でメタ情報として共有することで、前記分散マルチ・トランザクション制御システムを実現しているが、本発明では、複数のデータベースで構成された単一のデータベース・ドメイン内においても、このアクセス・カウンタ方式を適用することを示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４３６２８３９号
【特許文献２】特表第２００７−５０１４５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一貫性が保持されなければならないマルチ・トランザクション処理において、実用的なスループットを持つリアルタイム更新を要件とするマルチ・トランザクション処理システムを実現することが本発明の課題である。
【課題を解決するための手段】
【０００６】
本発明は、特許文献２に記載のコーディネータによる各トランザクションのステータスの一元共有による一段階コミットプロトコルによるマルチ・トランザクション処理に代え、マルチ・トランザクション処理の起点となるプロセスのプロセスＩＤによって認識されるカウンタのアップダウンにより、カウンタが初期値に戻ったときをひとつのマルチ・トランザクション処理の完了とみなすことにするという更新アクセス・カウンタ技術を適用することによって課題を解決する。
【発明の効果】
【０００７】
複数のデータベースにまたがるマルチ・トランザクション処理を、オーバーヘッドの大きな二相コミット・プロトコルによらない方法で、シンプルに高速に実施することが可能とする。さらに、複数のデータベースが疎結合することによって有機的に結びついて大規模なデータベース・システムを構成するようなシステムにおいても、前記トランザクション起動プロセス単位のアクセス・カウンタの共有のみで、簡単にマルチ・トランザクション処理が可能となる。
【図面の簡単な説明】
【０００８】
【図１】図１は共有カウンタ方式によるマルチ・トランザクション処理装置の一例である。
【図２】図２は共有カウンタ方式によるマルチ・トランザクション処理において全ての更新処理が成功した場合を例示したシーケンス図である。
【図３】図３は共有カウンタ方式によるマルチ・トランザクション処理において途中で更新処理が失敗した場合を例示したシーケンス図である。
【図４】図４は請求項１に記載の分散マルチ・トランザクション処理装置とデータベース・メタ情報管理リポジトリ装置の詳細構成図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態について、図を用いて説明する。なお、本発明は、これら実施の形態に何ら限定されるものではなく、その要旨を逸脱しない範囲において、種々なる態様で実施し得る。
【実施例１】
【００１０】
図１に記載されているように、
ネットワーク９００上に配置された、
データベースを管理する１または２以上のデータベース・オブジェクト管理装置３００と、
前記データベース・オブジェクト管理装置３００が管理するデータベースを格納するための、各々の前記データベース・オブジェクト管理装置毎に対応する１または２以上のデータベース・オブジェクト格納装置２００と、
分散マルチ・トランザクション処理においてトランザクション処理一貫性を保持しながら実行するための分散マルチ・トランザクション処理装置９００と、
前記データベースの持つメタ情報を管理するための１または２以上のデータベース・メタ情報管理リポジトリ装置４００と、
で構成されるアクセス・カウンタ式分散マルチ・トランザクション制御システムであって、
図４に記載されているように、
分散マルチ・トランザクション処理装置９００は、  
直接的または間接的に、挿入または変更または削除の１または２以上の更新アクセスを端末計算機またはサーバ計算機から要求されるデータベース・オブジェクト管理装置が管理するデータベース・オブジェクトに対するトランザクション処理において、
要求される１または２以上の前記更新アクセスの起点となるプロセスを識別するプロセス識別子によって識別される更新アクセス・カウンタ９０３が存在するものとし、
図２に記載されているように、
前記更新アクセス・カウンタはあらかじめ特定の初期値を持つものとし、
該起点となったプロセス自身および該前記起点となったプロセスによって直接または間接的に引き起こされた自身のデータベース・ドメイン内の端末計算機またはサーバ計算機上のプロセスないしスレッドが存在すればそのプロセスないしスレッドによって要求される更新アクセスが発生する都度、該前記更新アクセスを要求する起点となったプロセスを識別するプロセス識別子によって識別される該前記更新アクセス・カウンタ内のカウントを一定数ずつカウントアップし、
実際の更新アクセスが成功したという情報を順に受け取る毎に該前記更新アクセスを要求する起点となったプロセスを識別するプロセス識別子によって識別される該前記更新アクセス・カウンタ内のカウントを該前記一定数と同じ値ずつカウントダウンし、該前記カウンタの値が該前記初期値と一致した時に、該前記起点となったプロセス自身および該前記起点となったプロセスによって直接または間接的に引き起こされた自身または他のデータベース・ドメイン内の端末計算機またはサーバ計算機上のプロセスないしスレッドによって実行されたすべての更新アクセスのコミット処理を実行し、また、
図３に記載されているように、
実際の更新アクセスが失敗したという情報を一個でも受け取った場合、余の更新アクセスを中止し、その結果を待たずに、すみやかに該前記起点となったプロセス自身および該前記起点となったプロセスないしスレッドが存在するならばそのプロセスないしスレッドによって直接または間接的に引き起こされた自身または他のデータベース・ドメイン内の端末計算機またはサーバ計算機上のプロセスないしスレッドによって実行されたすべての更新アクセスのロールバック処理を実行する、
ことを特徴とする分散マルチ・トランザクション処理実行部９０６と、
を有し、
データベース・メタ情報管理リポジトリ装置は、
１または２以上の前記更新アクセスの起点となるプロセスを識別するプロセス識別子によって識別される更新アクセス・カウンタと、
を有する、
ことを特徴とする、アクセス・カウンタ式分散マルチ・トランザクション制御システムであってもよい。
【産業上の利用可能性】
【００１１】
大規模データベース・システムにおいてだけではなく、データベース・ドメインの分割には及ばない規模のデータベース・システムにおいても、シンプルで、高速なマルチ・トランザクション処理を実現し、製造業における部品引き当てや劇場やスタジアムの座席販売システムのような、金融機関の勘定系システムや航空会社や鉄道会社の座席予約システムのように大規模ではないシステムにおいても適用可能である。
【符号の説明】
【００１２】
１００  データベース・ドメイン
２００  データベース・オブジェクト格納装置
２０１、２０２、２０３  リレーション
３００  データベース・オブジェクト管理装置
４００  データベース・メタ情報管理リポジトリ装置
５００  データベース・メタ情報格納管理部
６００  ＬＡＮ、ＷＡＮのＴＣＰ／ＩＰネットワーク
６２０  ＴＣＰ／ＩＰネットワークまたはＡＴＡ、ＦＣ等のインターフェース・ケーブル
７００、７０１、７０２、７０３  端末装置
８００  ストレージ
９００  分散マルチ・トランザクション処理装置
９０３  更新アクセス・カウンタ
９０６  分散マルチ・トランザクション処理実行部
９０８  ＬＡＮ、ＷＡＮまたはマシン内のＴＣＰ／ＩＰネットワーク
【図４】
2011070242.tif 000003
【図１】
2011070242.tif 000004
【図２】
2011070242.tif 000005
【図３】
2011070242.tif 000006
【手続補正書】
【提出日】平成21年11月30日(2009.11.30)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一貫性を保持されなければならないマルチ・トランザクション制御システムに関する。
【背景技術】
【０００２】
単一のデータベース・ドメイン内でのマルチ・トランザクション処理の一貫性を一相コミットで確保する方法が特許文献２に記載されている。特許文献２によれば、複数の前記データベース・ドメイン相互でのマルチ・トランザクション処理の一貫性の保持のためには二相コミットで確保しなければならない旨が記載されており、一貫性が保持されたマルチ・トランザクション処理の実用的なスループットの確保は難しい。また、マルチ・トランザクション処理一貫性を確保するための方法として、前記マルチ・トランザクション処理を構成する各単一トランザクション処理のステータスは、該ステータスのステータス情報を該単一トランザクション毎に保持することになっており、非常に複雑なものになっている。
【０００３】
特許文献１の段落０００２には、全ての更新が成功する場合にはコミットを行い、１つでも失敗すればロールバックするような一般的なトランザクションシステムの構成が開示されている。さらに、段落００１３には複数のトランザクションを関連させる手法として「入れ子トランザクション」と「連鎖トランザクション」があることが開示されている。段落００１４および段落００１５には「入れ子トランザクション」に関する詳細な説明が開示されている。また、段落００１６および段落００１７には「連鎖トランザクション」に関する詳細な説明が開示されている。本発明は、特許文献１では開示されていない「入れ子トランザクション」や「連鎖トランザクション」を実施するための具体的な方法のひとつである。特許文献２にはトランザクション処理層での冗長化方法に関して開示されている。しかし、トランザクション処理層での冗長化は、ストレージ層での冗長化に対してアドバンテージは無く、寧ろ、その複雑さゆえのディスアドバンテージのほうが大きいため重要視されていない。前記特許文献２の段落００５７には各テーブルについて１つずつ「ＣＯＭＭＩＴ実施管理表」が設けられており、前記「ＣＯＭＭＩＴ実施管理表」にはＣＯＭＭＩＴの実行状況と現在実行中の対象クエリ数を表す「対象クエリカウンタ」という情報を保持していると記載されている。さらに、「ＣＯＭＭＩＴ状況は、ＣＯＭＭＩＴを実行中であることを示す「ＣＯＭＭＩＴ」と、他の対象クエリが実行中であるため実行待ちの状態にあることを示す「ＷＡＩＴＩＮＧ」と、実行中でも実行待ちでもない状態を示す「ＮＵＬＬ」という３つの値を取り得る。」と記載されているが、一貫性を保持されなければならないマルチ・トランザクション処理では「更新アクセスは行われたが、まだＣＯＭＭＩＴ指令を受けていないのでＣＯＭＭＩＴせずに待機している」という別の「ＷＡＩＴＩＮＧ」という状態が存在しなければならないが、その記載はない。したがって、前記特許文献２の段落００５７の記載は「一貫性を保持されなければならないマルチ・トランザクション処理」を対象としたものではなく、前記特許文献２の段落００５７に記載の「対象クエリカウンタ」は「一貫性を保持されなければならないマルチ・トランザクション処理」に必要とされる更新アクセス・カウンタとは全く性質の異なるものである。
【０００４】
特許文献３には、大規模分散データベースにおいて、マルチ・トランザクション処理の起点プロセス単位に保持されるアクセス・カウンタがマルチ・トランザクション制御システムに適用されていることが記載されている。この大規模データベースは、複数のデータベースで構成されるデータベース・グループであるデータベース・ドメインに分割され、前記アクセス・カウンタを各データベース・ドメイン間でメタ情報として共有することで、前記分散マルチ・トランザクション制御システムを実現しているが、本発明では、複数のデータベースで構成された単一のデータベース・ドメイン内においても、このアクセス・カウンタ方式を適用することを示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３７３２１１３号公報
【特許文献２】特開第２００７−２１９５９８号公報
【特許文献３】特許第４３６２８３９号公報
【特許文献４】特表第２００７−５０１４５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
一貫性が保持されなければならないマルチ・トランザクション処理において、実用的なスループットを持つリアルタイム更新を要件とするマルチ・トランザクション処理システムを実現することが本発明の課題である。
【課題を解決するための手段】
【０００７】
本発明では一貫性が保持されなければならない一連のマルチ・トランザクションを識別するためのＩＤとして更新アクセスの起点となるプロセスを識別するプロセス識別子によって識別されることを特徴とする更新アクセス・カウンタを使用している。すなわち、本発明は、特許文献４に記載のコーディネータによる各トランザクションのステータスの一元共有による一段階コミット・プロトコルによるマルチ・トランザクション処理に代え、マルチ・トランザクション処理の起点となるプロセスのプロセスＩＤによって識別されるカウンタのアップダウンにより、カウンタが初期値に戻ったときをひとつの一貫性が保持されなければならない一連のマルチ・トランザクション処理の完了とみなすことにするという更新アクセス・カウンタ技術を適用することによって課題を解決する。
【発明の効果】
【０００８】
複数のデータベースにまたがるマルチ・トランザクション処理を、オーバーヘッドの大きな二相コミット・プロトコルによらない方法で、シンプルに高速に実施することが可能とする。さらに、複数のデータベースが疎結合することによって有機的に結びついて大規模なデータベース・システムを構成するようなシステムにおいても、前記トランザクション起動プロセス単位のアクセス・カウンタの共有のみで、簡単にマルチ・トランザクション処理が可能となる。
【図面の簡単な説明】
【０００９】
【図１】図１は共有カウンタ方式によるマルチ・トランザクション処理装置の一例である。
【図２】図２は共有カウンタ方式によるマルチ・トランザクション処理において全ての更新処理が成功した場合を例示したシーケンス図である。
【図３】図３は共有カウンタ方式によるマルチ・トランザクション処理において途中で更新処理が失敗した場合を例示したシーケンス図である。
【図４】図４は請求項１に記載の分散マルチ・トランザクション処理装置とデータベース・メタ情報管理リポジトリ装置の詳細構成図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について、図を用いて説明する。なお、本発明は、これら実施の形態に何ら限定されるものではなく、その要旨を逸脱しない範囲において、種々なる態様で実施し得る。
【実施例１】
【００１１】
図１に記載されているように、
ネットワーク９００上に配置された、
データベースを管理する１または２以上のデータベース・オブジェクト管理装置３００と、
前記データベース・オブジェクト管理装置３００が管理するデータベースを格納するための、各々の前記データベース・オブジェクト管理装置毎に対応する１または２以上のデータベース・オブジェクト格納装置２００と、
分散マルチ・トランザクション処理においてトランザクション処理一貫性を保持しながら実行するための分散マルチ・トランザクション処理装置９００と、
前記データベースの持つメタ情報を管理するための１または２以上のデータベース・メタ情報管理リポジトリ装置４００と、
で構成されるアクセス・カウンタ式分散マルチ・トランザクション制御システムであって、
データベース・メタ情報管理リポジトリ装置４００は、
１または２以上の前記更新アクセスの起点となるプロセスを識別するプロセス識別子によって識別されることを特徴とする更新アクセス・カウンタ９０３と、
を有し、
図４に記載されているように、
分散マルチ・トランザクション処理装置９００は、
直接的または間接的に、挿入または変更または削除の１または２以上の更新アクセスを端末計算機またはサーバ計算機から要求されるデータベース・オブジェクト管理装置が管理するデータベース・オブジェクトに対するトランザクション処理において、
図２に記載されているように、
前記更新アクセス・カウンタはあらかじめ特定の初期値を持つものとし、
該起点となったプロセス自身および該前記起点となったプロセスによって直接または間接的に引き起こされた自身のデータベース・ドメイン内の端末計算機またはサーバ計算機上のプロセスないしスレッドが存在すればそのプロセスないしスレッドによって要求される更新アクセスが発生する都度、該前記更新アクセスを要求する起点となったプロセスを識別するプロセス識別子によって識別される該前記更新アクセス・カウンタ内のカウントを一定数ずつカウントアップし、
実際の更新アクセスが成功したという情報を順に受け取る毎に該前記更新アクセスを要求する起点となったプロセスを識別するプロセス識別子によって識別される該前記更新アクセス・カウンタ内のカウントを該前記一定数と同じ値ずつカウントダウンし、該前記カウンタの値が該前記初期値と一致した時に、該前記起点となったプロセス自身および該前記起点となったプロセスによって直接または間接的に引き起こされた自身または他のデータベース・ドメイン内の端末計算機またはサーバ計算機上のプロセスないしスレッドによって実行されたすべての更新アクセスのコミット処理を実行し、また、
図３に記載されているように、
実際の更新アクセスが失敗したという情報を一個でも受け取った場合、余の更新アクセスを中止し、その結果を待たずに、すみやかに該前記起点となったプロセス自身および該前記起点となったプロセスないしスレッドが存在するならばそのプロセスないしスレッドによって直接または間接的に引き起こされた自身または他のデータベース・ドメイン内の端末計算機またはサーバ計算機上のプロセスないしスレッドによって実行されたすべての更新アクセスのロールバック処理を実行する、
分散マルチ・トランザクション処理実行部９０６と、
を有する、
ことを特徴とする、アクセス・カウンタ式分散マルチ・トランザクション制御システムであってもよい。
【産業上の利用可能性】
【００１２】
大規模データベース・システムにおいてだけではなく、データベース・ドメインの分割には及ばない規模のデータベース・システムにおいても、シンプルで、高速なマルチ・トランザクション処理を実現し、製造業における部品引き当てや劇場やスタジアムの座席販売システムのような、金融機関の勘定系システムや航空会社や鉄道会社の座席予約システムのように大規模ではないシステムにおいても適用可能である。
【符号の説明】
【００１３】
１００  データベース・ドメイン
２００  データベース・オブジェクト格納装置
２０１、２０２、２０３  リレーション
３００  データベース・オブジェクト管理装置
４００  データベース・メタ情報管理リポジトリ装置
５００  データベース・メタ情報格納管理部
６００  ＬＡＮ、ＷＡＮのＴＣＰ／ＩＰネットワーク
６２０  ＴＣＰ／ＩＰネットワークまたはＡＴＡ、ＦＣ等のインターフェース・ケーブル
７００、７０１、７０２、７０３  端末装置
８００  ストレージ
９００  分散マルチ・トランザクション処理装置
９０３  更新アクセス・カウンタ
９０６  分散マルチ・トランザクション処理実行部
９０８  ＬＡＮ、ＷＡＮまたはマシン内のＴＣＰ／ＩＰネットワーク
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１
【補正方法】変更
【補正の内容】
【請求項１】
ネットワーク上に配置された、
データベースを管理する１または２以上のデータベース・オブジェクト管理装置と、
前記データベース・オブジェクト管理装置が管理するデータベースを格納するための、各々の前記データベース・オブジェクト管理装置毎に対応する１または２以上のデータベース・オブジェクト格納装置と、
分散マルチ・トランザクション処理においてトランザクション処理一貫性を保持しながら実行するための分散マルチ・トランザクション処理装置と、
前記データベースの持つメタ情報を管理するための１または２以上のデータベース・メタ情報管理リポジトリ装置と、
で構成されるアクセス・カウンタ式分散マルチ・トランザクション制御システムであって、
データベース・メタ情報管理リポジトリ装置は、
１または２以上の更新アクセスの起点となるプロセスを識別するプロセス識別子によって識別されることを特徴とする更新アクセス・カウンタと、
を有し、
分散マルチ・トランザクション処理装置は、
直接的または間接的に、挿入または変更または削除の１または２以上の更新アクセスを端末計算機またはサーバ計算機から要求されるデータベース・オブジェクト管理装置が管理するデータベース・オブジェクトに対するトランザクション処理において、
前記更新アクセス・カウンタはあらかじめ特定の初期値を持つものとし、
該起点となったプロセス自身および該前記起点となったプロセスによって直接または間接的に引き起こされた自身のデータベース・ドメイン内の端末計算機またはサーバ計算機上のプロセスないしスレッドが存在すればそのプロセスないしスレッドによって要求される更新アクセスが発生する都度、該前記更新アクセスを要求する起点となったプロセスを識別するプロセス識別子によって識別される該前記更新アクセス・カウンタ内のカウントを一定数ずつカウントアップし、
実際の更新アクセスが成功したという情報を順に受け取る毎に該前記更新アクセスを要求する起点となったプロセスを識別するプロセス識別子によって識別される該前記更新アクセス・カウンタ内のカウントを該前記一定数と同じ値ずつカウントダウンし、該前記カウンタの値が該前記初期値と一致した時に、該前記起点となったプロセス自身および該前記起点となったプロセスによって直接または間接的に引き起こされた自身または他のデータベース・ドメイン内の端末計算機またはサーバ計算機上のプロセスないしスレッドによって実行されたすべての更新アクセスのコミット処理を実行し、また、
実際の更新アクセスが失敗したという情報を一個でも受け取った場合、余の更新アクセスを中止し、その結果を待たずに、すみやかに該前記起点となったプロセス自身および該前記起点となったプロセスないしスレッドが存在するならばそのプロセスないしスレッドによって直接または間接的に引き起こされた自身または他のデータベース・ドメイン内の端末計算機またはサーバ計算機上のプロセスないしスレッドによって実行されたすべての更新アクセスのロールバック処理を実行する、
分散マルチ・トランザクション処理実行部と、
を有する、
ことを特徴とする、アクセス・カウンタ式分散マルチ・トランザクション制御システム。
【手続補正書】
【提出日】平成22年1月4日(2010.1.4)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一貫性を保持されなければならないマルチ・トランザクション制御システムに関する。
【背景技術】
【０００２】
単一のデータベース・ドメイン内でのマルチ・トランザクション処理の一貫性を一相コミットで確保する方法が特許文献２に記載されている。特許文献２によれば、複数の前記データベース・ドメイン相互でのマルチ・トランザクション処理の一貫性の保持のためには二相コミットで確保しなければならない旨が記載されており、一貫性が保持されたマルチ・トランザクション処理の実用的なスループットの確保は難しい。また、マルチ・トランザクション処理一貫性を確保するための方法として、前記マルチ・トランザクション処理を構成する各単一トランザクション処理のステータスは、該ステータスのステータス情報を該単一トランザクション毎に保持することになっており、非常に複雑なものになっている。
【０００３】
特許文献１の段落０００２には、全ての更新が成功する場合にはコミットを行い、１つでも失敗すればロールバックするような一般的なトランザクションシステムの構成が開示されている。さらに、段落００１３には複数のトランザクションを関連させる手法として「入れ子トランザクション」と「連鎖トランザクション」があることが開示されている。段落００１４および段落００１５には「入れ子トランザクション」に関する詳細な説明が開示されている。また、段落００１６および段落００１７には「連鎖トランザクション」に関する詳細な説明が開示されている。
【０００４】
特許文献２には、大規模分散データベースにおいて、マルチ・トランザクション処理の起点プロセス単位に保持されるアクセス・カウンタがマルチ・トランザクション制御システムに適用されていることが記載されている。この大規模データベースは、複数のデータベースで構成されるデータベース・グループであるデータベース・ドメインに分割され、前記アクセス・カウンタを各データベース・ドメイン間でメタ情報として共有することで、前記分散マルチ・トランザクション制御システムを実現しているが、本発明では、複数のデータベースで構成された単一のデータベース・ドメイン内においても、このアクセス・カウンタ方式を適用することを示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３７３２１１３号公報
【特許文献２】特許第４３６２８３９号公報
【特許文献３】特表第２００７−５０１４５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
一貫性が保持されなければならないマルチ・トランザクション処理において、実用的なスループットを持つリアルタイム更新を要件とするマルチ・トランザクション処理システムを実現することが本発明の課題である。
【課題を解決するための手段】
【０００７】
本発明では一貫性が保持されなければならない一連のマルチ・トランザクションを識別するためのＩＤとして更新アクセスの起点となるプロセスを識別するプロセス識別子によって識別されることを特徴とする更新アクセス・カウンタを使用している。すなわち、本発明は、特許文献３に記載のコーディネータによる各トランザクションのステータスの一元共有による一段階コミット・プロトコルによるマルチ・トランザクション処理に代え、マルチ・トランザクション処理の起点となるプロセスのプロセスＩＤによって識別されるカウンタのアップダウンにより、カウンタが初期値に戻ったときをひとつの一貫性が保持されなければならない一連のマルチ・トランザクション処理の完了とみなすことにするという更新アクセス・カウンタ技術を適用することによって課題を解決する。
【発明の効果】
【０００８】
複数のデータベースにまたがるマルチ・トランザクション処理を、オーバーヘッドの大きな二相コミット・プロトコルによらない方法で、シンプルに高速に実施することが可能とする。さらに、複数のデータベースが疎結合することによって有機的に結びついて大規模なデータベース・システムを構成するようなシステムにおいても、前記トランザクション起動プロセス単位のアクセス・カウンタの共有のみで、簡単にマルチ・トランザクション処理が可能となる。
【図面の簡単な説明】
【０００９】
【図１】図１は共有カウンタ方式によるマルチ・トランザクション処理装置の一例である。
【図２】図２は共有カウンタ方式によるマルチ・トランザクション処理において全ての更新処理が成功した場合を例示したシーケンス図である。
【図３】図３は共有カウンタ方式によるマルチ・トランザクション処理において途中で更新処理が失敗した場合を例示したシーケンス図である。
【図４】図４は請求項１に記載の分散マルチ・トランザクション処理装置とデータベース・メタ情報管理リポジトリ装置の詳細構成図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について、図を用いて説明する。なお、本発明は、これら実施の形態に何ら限定されるものではなく、その要旨を逸脱しない範囲において、種々なる態様で実施し得る。
【実施例１】
【００１１】
図１に記載されているように、
ネットワーク９００上に配置された、
データベースを管理する１または２以上のデータベース・オブジェクト管理装置３００と、
前記データベース・オブジェクト管理装置３００が管理するデータベースを格納するための、各々の前記データベース・オブジェクト管理装置毎に対応する１または２以上のデータベース・オブジェクト格納装置２００と、
分散マルチ・トランザクション処理においてトランザクション処理一貫性を保持しながら実行するための分散マルチ・トランザクション処理装置９００と、
前記データベースの持つメタ情報を管理するための１または２以上のデータベース・メタ情報管理リポジトリ装置４００と、
で構成されるアクセス・カウンタ式分散マルチ・トランザクション制御システムであって、
データベース・メタ情報管理リポジトリ装置４００は、
１または２以上の前記更新アクセスの起点となるプロセスを識別するプロセス識別子によって識別されることを特徴とする更新アクセス・カウンタ９０３と、
を有し、
図４に記載されているように、
分散マルチ・トランザクション処理装置９００は、
直接的または間接的に、挿入または変更または削除の１または２以上の更新アクセスを端末計算機またはサーバ計算機から要求されるデータベース・オブジェクト管理装置が管理するデータベース・オブジェクトに対するトランザクション処理において、
図２に記載されているように、
前記更新アクセス・カウンタはあらかじめ特定の初期値を持つものとし、
該起点となったプロセス自身および該前記起点となったプロセスによって直接または間接的に引き起こされた自身のデータベース・ドメイン内の端末計算機またはサーバ計算機上のプロセスないしスレッドが存在すればそのプロセスないしスレッドによって要求される更新アクセスが発生する都度、該前記更新アクセスを要求する起点となったプロセスを識別するプロセス識別子によって識別される該前記更新アクセス・カウンタ内のカウントを一定数ずつカウントアップし、
実際の更新アクセスが成功したという情報を順に受け取る毎に該前記更新アクセスを要求する起点となったプロセスを識別するプロセス識別子によって識別される該前記更新アクセス・カウンタ内のカウントを該前記一定数と同じ値ずつカウントダウンし、該前記カウンタの値が該前記初期値と一致した時に、該前記起点となったプロセス自身および該前記起点となったプロセスによって直接または間接的に引き起こされた自身または他のデータベース・ドメイン内の端末計算機またはサーバ計算機上のプロセスないしスレッドによって実行されたすべての更新アクセスのコミット処理を実行し、また、
図３に記載されているように、
実際の更新アクセスが失敗したという情報を一個でも受け取った場合、余の更新アクセスを中止し、その結果を待たずに、すみやかに該前記起点となったプロセス自身および該前記起点となったプロセスないしスレッドが存在するならばそのプロセスないしスレッドによって直接または間接的に引き起こされた自身または他のデータベース・ドメイン内の端末計算機またはサーバ計算機上のプロセスないしスレッドによって実行されたすべての更新アクセスのロールバック処理を実行する、
分散マルチ・トランザクション処理実行部９０６と、
を有する、
ことを特徴とする、アクセス・カウンタ式分散マルチ・トランザクション制御システムであってもよい。
【産業上の利用可能性】
【００１２】
大規模データベース・システムにおいてだけではなく、データベース・ドメインの分割には及ばない規模のデータベース・システムにおいても、シンプルで、高速なマルチ・トランザクション処理を実現し、製造業における部品引き当てや劇場やスタジアムの座席販売システムのような、金融機関の勘定系システムや航空会社や鉄道会社の座席予約システムのように大規模ではないシステムにおいても適用可能である。
【符号の説明】
【００１３】
１００  データベース・ドメイン
２００  データベース・オブジェクト格納装置
２０１、２０２、２０３  リレーション
３００  データベース・オブジェクト管理装置
４００  データベース・メタ情報管理リポジトリ装置
５００  データベース・メタ情報格納管理部
６００  ＬＡＮ、ＷＡＮのＴＣＰ／ＩＰネットワーク
６２０  ＴＣＰ／ＩＰネットワークまたはＡＴＡ、ＦＣ等のインターフェース・ケーブル
７００、７０１、７０２、７０３  端末装置
８００  ストレージ
９００  分散マルチ・トランザクション処理装置
９０３  更新アクセス・カウンタ
９０６  分散マルチ・トランザクション処理実行部
９０８  ＬＡＮ、ＷＡＮまたはマシン内のＴＣＰ／ＩＰネットワーク
【手続補正書】
【提出日】平成22年1月4日(2010.1.4)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一貫性を保持されなければならないマルチ・トランザクション制御システムに関する。
【背景技術】
【０００２】
単一のデータベース・ドメイン内でのマルチ・トランザクション処理の一貫性を一相コミットで確保する方法が特許文献３に記載されている。特許文献３によれば、複数の前記データベース・ドメイン相互でのマルチ・トランザクション処理の一貫性の保持のためには二相コミットで確保しなければならない旨が記載されており、一貫性が保持されたマルチ・トランザクション処理の実用的なスループットの確保は難しい。また、マルチ・トランザクション処理一貫性を確保するための方法として、前記マルチ・トランザクション処理を構成する各単一トランザクション処理のステータスは、該ステータスのステータス情報を該単一トランザクション毎に保持することになっており、非常に複雑なものになっている。
【０００３】
特許文献１の段落０００２には、全ての更新が成功する場合にはコミットを行い、１つでも失敗すればロールバックするような一般的なトランザクションシステムの構成が開示されている。さらに、段落００１３には複数のトランザクションを関連させる手法として「入れ子トランザクション」と「連鎖トランザクション」があることが開示されている。段落００１４および段落００１５には「入れ子トランザクション」に関する詳細な説明が開示されている。また、段落００１６および段落００１７には「連鎖トランザクション」に関する詳細な説明が開示されている。
【０００４】
特許文献２には、大規模分散データベースにおいて、マルチ・トランザクション処理の起点プロセス単位に保持されるアクセス・カウンタがマルチ・トランザクション制御システムに適用されていることが記載されている。この大規模データベースは、複数のデータベースで構成されるデータベース・グループであるデータベース・ドメインに分割され、前記アクセス・カウンタを各データベース・ドメイン間でメタ情報として共有することで、前記分散マルチ・トランザクション制御システムを実現しているが、本発明では、複数のデータベースで構成された単一のデータベース・ドメイン内においても、このアクセス・カウンタ方式を適用することを示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３７３２１１３号公報
【特許文献２】特許第４３６２８３９号公報
【特許文献３】特表第２００７−５０１４５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
一貫性が保持されなければならないマルチ・トランザクション処理において、実用的なスループットを持つリアルタイム更新を要件とするマルチ・トランザクション処理システムを実現することが本発明の課題である。
【課題を解決するための手段】
【０００７】
本発明では一貫性が保持されなければならない一連のマルチ・トランザクションを識別するためのＩＤとして更新アクセスの起点となるプロセスを識別するプロセス識別子によって識別されることを特徴とする更新アクセス・カウンタを使用している。すなわち、本発明は、特許文献３に記載のコーディネータによる各トランザクションのステータスの一元共有による一段階コミット・プロトコルによるマルチ・トランザクション処理に代え、マルチ・トランザクション処理の起点となるプロセスのプロセスＩＤによって識別されるカウンタのアップダウンにより、カウンタが初期値に戻ったときをひとつの一貫性が保持されなければならない一連のマルチ・トランザクション処理の完了とみなすことにするという更新アクセス・カウンタ技術を適用することによって課題を解決する。
【発明の効果】
【０００８】
複数のデータベースにまたがるマルチ・トランザクション処理を、オーバーヘッドの大きな二相コミット・プロトコルによらない方法で、シンプルに高速に実施することが可能とする。さらに、複数のデータベースが疎結合することによって有機的に結びついて大規模なデータベース・システムを構成するようなシステムにおいても、前記トランザクション起動プロセス単位のアクセス・カウンタの共有のみで、簡単にマルチ・トランザクション処理が可能となる。
【図面の簡単な説明】
【０００９】
【図１】図１は共有カウンタ方式によるマルチ・トランザクション処理装置の一例である。
【図２】図２は共有カウンタ方式によるマルチ・トランザクション処理において全ての更新処理が成功した場合を例示したシーケンス図である。
【図３】図３は共有カウンタ方式によるマルチ・トランザクション処理において途中で更新処理が失敗した場合を例示したシーケンス図である。
【図４】図４は請求項１に記載の分散マルチ・トランザクション処理装置とデータベース・メタ情報管理リポジトリ装置の詳細構成図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について、図を用いて説明する。なお、本発明は、これら実施の形態に何ら限定されるものではなく、その要旨を逸脱しない範囲において、種々なる態様で実施し得る。
【実施例１】
【００１１】
図１に記載されているように、
ネットワーク９００上に配置された、
データベースを管理する１または２以上のデータベース・オブジェクト管理装置３００と、
前記データベース・オブジェクト管理装置３００が管理するデータベースを格納するための、各々の前記データベース・オブジェクト管理装置毎に対応する１または２以上のデータベース・オブジェクト格納装置２００と、
分散マルチ・トランザクション処理においてトランザクション処理一貫性を保持しながら実行するための分散マルチ・トランザクション処理装置９００と、
前記データベースの持つメタ情報を管理するための１または２以上のデータベース・メタ情報管理リポジトリ装置４００と、
で構成されるアクセス・カウンタ式分散マルチ・トランザクション制御システムであって、
データベース・メタ情報管理リポジトリ装置４００は、
１または２以上の前記更新アクセスの起点となるプロセスを識別するプロセス識別子によって識別されることを特徴とする更新アクセス・カウンタ９０３と、
を有し、
図４に記載されているように、
分散マルチ・トランザクション処理装置９００は、
直接的または間接的に、挿入または変更または削除の１または２以上の更新アクセスを端末計算機またはサーバ計算機から要求されるデータベース・オブジェクト管理装置が管理するデータベース・オブジェクトに対するトランザクション処理において、
図２に記載されているように、
前記更新アクセス・カウンタはあらかじめ特定の初期値を持つものとし、
該起点となったプロセス自身および該前記起点となったプロセスによって直接または間接的に引き起こされた自身のデータベース・ドメイン内の端末計算機またはサーバ計算機上のプロセスないしスレッドが存在すればそのプロセスないしスレッドによって要求される更新アクセスが発生する都度、該前記更新アクセスを要求する起点となったプロセスを識別するプロセス識別子によって識別される該前記更新アクセス・カウンタ内のカウントを一定数ずつカウントアップし、
実際の更新アクセスが成功したという情報を順に受け取る毎に該前記更新アクセスを要求する起点となったプロセスを識別するプロセス識別子によって識別される該前記更新アクセス・カウンタ内のカウントを該前記一定数と同じ値ずつカウントダウンし、該前記カウンタの値が該前記初期値と一致した時に、該前記起点となったプロセス自身および該前記起点となったプロセスによって直接または間接的に引き起こされた自身または他のデータベース・ドメイン内の端末計算機またはサーバ計算機上のプロセスないしスレッドによって実行されたすべての更新アクセスのコミット処理を実行し、また、
図３に記載されているように、
実際の更新アクセスが失敗したという情報を一個でも受け取った場合、余の更新アクセスを中止し、その結果を待たずに、すみやかに該前記起点となったプロセス自身および該前記起点となったプロセスないしスレッドが存在するならばそのプロセスないしスレッドによって直接または間接的に引き起こされた自身または他のデータベース・ドメイン内の端末計算機またはサーバ計算機上のプロセスないしスレッドによって実行されたすべての更新アクセスのロールバック処理を実行する、
分散マルチ・トランザクション処理実行部９０６と、
を有する、
ことを特徴とする、アクセス・カウンタ式分散マルチ・トランザクション制御システムであってもよい。
【産業上の利用可能性】
【００１２】
大規模データベース・システムにおいてだけではなく、データベース・ドメインの分割には及ばない規模のデータベース・システムにおいても、シンプルで、高速なマルチ・トランザクション処理を実現し、製造業における部品引き当てや劇場やスタジアムの座席販売システムのような、金融機関の勘定系システムや航空会社や鉄道会社の座席予約システムのように大規模ではないシステムにおいても適用可能である。
【符号の説明】
【００１３】
１００  データベース・ドメイン
２００  データベース・オブジェクト格納装置
２０１、２０２、２０３  リレーション
３００  データベース・オブジェクト管理装置
４００  データベース・メタ情報管理リポジトリ装置
５００  データベース・メタ情報格納管理部
６００  ＬＡＮ、ＷＡＮのＴＣＰ／ＩＰネットワーク
６２０  ＴＣＰ／ＩＰネットワークまたはＡＴＡ、ＦＣ等のインターフェース・ケーブル
７００、７０１、７０２、７０３  端末装置
８００  ストレージ
９００  分散マルチ・トランザクション処理装置
９０３  更新アクセス・カウンタ
９０６  分散マルチ・トランザクション処理実行部
９０８  ＬＡＮ、ＷＡＮまたはマシン内のＴＣＰ／ＩＰネットワーク