説明

トランザクション処理システムおよびトランザクション処理方法

【課題】NFSに対する問題点を解消し、性能を改善する。
【解決手段】所定操作単位に要求を送信するファイルクライアント1と、要求を受信するたびに応答結果を送信するファイルエージェント2とを備え、ファイルエージェント2は、トランザクション識別子のハッシュ値を用いてディレクトリ名を生成する通信制御部20と、登録要求受信時に登録対象のファイルをファイル記憶装置32に登録するファイルアクセス制御部22と、登録要求受信時に登録対象のファイル情報を仮登録する仮登録リスト記憶部25と、コミット要求受信時に仮登録したファイル情報をファイル情報DB31に格納するファイル情報制御部21とを有し、ファイルアクセス制御部22、仮登録リスト記憶部25およびファイル情報制御部21は、ロールバック要求受信時に未完了のトランザクションに対応するファイル情報を削除する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、トランザクション処理システムおよびトランザクション処理方法に関する。
【背景技術】
【0002】
従来のトランザクション処理システム(T101)は、アプリケーションサーバ間でのデータの受け渡しや、データ保証、運用管理の目的から、データを格納するファイルの保存先としてNAS(Network Attached Storage)を採用し、NFS(Network File System)を使用してアクセスする(例えば、下記特許文献1参照)。
【0003】
NFSは、汎用的なファイルプロトコルであるが、トランザクション処理システム(T101)固有のファイルアクセスの方法とは相容れないものがある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−268588号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
トランザクション処理システム(T101)にとって、NFSには以下の(1)〜(4)の問題点がある。
【0006】
(1)ハードマウントを用いた場合、NFSサーバ障害時にNFSクライアントがハングアップしてしまう。ソフトマウントを用いることでハングアップを回避できるが、トランザクション処理システム(T101)では、ファイルの確証をファイル出力関数の成功終了としているため、ハードマウントによるデータ書き込み保証が必須となり、書き込み保証のないソフトマウントを用いることができない。
【0007】
(2)1ディレクトリ内のリンク数に上限がある。トランザクション処理システム(T101)では、ディスク配置の構成、トランザクションのコミットを管理する目的、障害復旧時のファイル情報の取得などの目的で、出力先ごとや、その配下についてトランザクション単位にディレクトリを分割している。大規模なシステムであっても、出力先の数はあまり許容範囲であるが、出力先が障害で止まっている間に多数のトランザクションを実行してデータを出力すると、トランザクション単位のディレクトリ数が増えすぎて、ファイルを出力することができなくなってしまう。
【0008】
(3)通信処理の冗長性。トランザクション処理システム(T101)のファイルアクセスは、例えば、データ出力の場合には、必要なディレクトリの作成、ファイルのオープン、データの書き込み、ファイルのクローズという一連の操作が決まっている。これに対して、NFSは、ファイルアクセスの要求(オープンやクローズなど)ごとに、NFSサーバとクライアントとの間で通信が行われ、実行結果を確認した後に、次の要求が行われるため、速度性能が低い。
【0009】
(4)キャッシュの非効率性。トランザクション処理システム(T101)では、トランザクションが入力するファイルは順序性を維持するため、古いものから順にファイル読込を行う。これに対して、ディスクキャッシュは、一般的によく使うファイルや最新のファイルを優先する。したがって、回数としては均等にアクセスするファイルの中の最も古いものからアクセスするトランザクション処理システム(T101)に、ディスクキャッシュは適さない。
【0010】
本発明は、上述した課題を解決するためになされたものであり、NFSに対する問題点を解消し、性能を改善することができるトランザクション処理システムおよびトランザクション処理方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明のトランザクション処理システムは、所定の操作単位に要求を送信するファイルクライアントと、前記要求を受信するたびに、当該要求に対する結果を送信するファイルエージェントと、を備え、前記ファイルエージェントは、前記要求に対応するトランザクション識別子のハッシュ値を用いてディレクトリ名を生成する通信制御部と、前記要求として登録要求を受信したときに、登録対象のファイルをファイル記憶装置に登録するファイルアクセス制御部と、前記登録要求を受信したときに、登録対象のファイル情報を仮登録する仮登録リスト記憶部と、前記要求としてコミット要求を受信したときに、仮登録したファイル情報をファイル情報DBに格納するファイル情報制御部と、を有し、前記ファイルアクセス制御部、前記仮登録リスト記憶部および前記ファイル情報制御部は、前記要求としてロールバック要求を受信したときに、未完了のトランザクションに対応するファイル情報を削除する。
【0012】
本発明のトランザクション処理方法は、所定の操作単位に要求を送信するファイルクライアントと、前記要求を受信するたびに、当該要求に対する結果を送信するファイルエージェントと、を備えるトランザクション処理システムを制御する方法であって、前記ファイルエージェントが、前記要求に対応するトランザクション識別子のハッシュ値を用いてディレクトリ名を生成するステップと、前記要求として登録要求を受信したときに、登録対象のファイルをファイル記憶装置に登録するステップと、前記登録要求を受信したときに、登録対象のファイル情報を仮登録するステップと、前記要求としてコミット要求を受信したときに、仮登録したファイル情報をファイル情報DBに格納するステップと、前記要求としてロールバック要求を受信したときに、未完了のトランザクションに対応するファイル情報を削除するステップと、を含む。
【発明の効果】
【0013】
本発明によれば、NFSに対する問題点を解消し、性能を改善することができる。
【図面の簡単な説明】
【0014】
【図1】実施形態におけるトランザクション処理システムに適用可能なファイルプロトコルの構成を例示するブロック図である。
【図2】ファイル情報テーブルのデータ構成を示す図である。
【図3】ファイルエージェントの通信制御部の動作を説明するためのフローチャートである。
【図4】登録要求処理Bの処理手順を説明するためのフローチャートである。
【図5】取得要求処理Cの処理手順を説明するためのフローチャートである。
【図6】コミット要求処理Dの処理手順を説明するためのフローチャートである。
【図7】ロールバック要求処理Eの処理手順を説明するためのフローチャートである。
【図8】リスト要求処理Fの処理手順を説明するためのフローチャートである。
【図9】障害時の状態の一例を表す図である。
【図10】トランザクション処理システムの構成を例示するブロック図である。
【発明を実施するための形態】
【0015】
以下、添付図面を参照して、本発明に係るトランザクション処理システムおよびトランザクション処理方法の好適な実施形態について説明する。
【0016】
本実施形態では、NFSを、図1に示すようなトランザクション処理システム(T101)に適用可能なファイルプロトコルに置き換える。
【0017】
図1に示すように、ファイルプロトコルは、ファイルクライアント1と、ファイルエージェント2とを有する。ファイルクライアント1は、アプリケーションからの指示に従って動作する。ファイルエージェント2はファイルクライアント1の要求に従って動作する。
【0018】
ファイルクライアント1は、通信制御部10と、ファイル登録部11と、ファイル取得部12と、コミット部13と、ロールバック部14と、リスト取得部15とを有する。
【0019】
ファイル登録部11は、通信制御部10を用いてファイルエージェント2にファイルの登録を要求する。
【0020】
ファイル取得部12は、通信制御部10を用いてファイルエージェント2にファイルの取得を要求する。
【0021】
コミット部13は、は通信制御部10を用いてファイルエージェント2にトランザクション識別子を指定してコミットを要求する。
【0022】
ロールバック部14は、通信制御部10を用いてファイルエージェント2にトランザクション識別子を指定してロールバックを要求する。
【0023】
リスト取得部15は、通信制御部10を用いてファイルエージェント2にリスト取得を要求する。
【0024】
ファイルエージェント2は、通信制御部20と、ファイル情報制御部21と、ファイルアクセス制御部22と、キャッシュ制御部23とを有する。
【0025】
ファイル情報制御部21は、通信制御部20の指示に従って仮登録リスト記憶部25とファイル情報DB31にアクセスする。
【0026】
ファイルアクセス制御部22は、通信制御部20の指示に従ってファイル記憶装置32にアクセスする。
【0027】
キャッシュ制御部23は、通信制御部20の指示に従ってキャッシュ記憶部26にアクセスする。
【0028】
仮登録リスト記憶部25およびファイル情報DB31は、図2に示すテーブル構造を有する。図2に示すファイル情報テーブルは、データ項目として、例えば、宛先、出力元、出力トランザクション識別子、ファイル名、入力トランザクション識別子、およびパスを有する。宛先、出力元、出力トランザクション識別子、ファイル名および入力トランザクション識別子がファイル情報であり、パスはファイル情報から生成される。
【0029】
仮登録リスト記憶部25は、アプリケーションがコミットを要求するまでに登録されるファイルの情報を記憶する。記憶したファイル情報は、コミットによりファイル情報DB31に記憶され、ロールバックにより仮登録リスト記憶部25から削除される。
【0030】
キャッシュ記憶部26は、ファイルの内容を記憶する。
【0031】
ファイルクライアント1とファイルエージェント2は、それぞれ通信制御部10と通信制御部20でネットワークを介して相互に通信を行う。
【0032】
図3を参照して、ファイルエージェント2の通信制御部20の動作について説明する。
【0033】
最初に、通信制御部20は、ファイルクライアント1から要求を受信し(ステップS101)、受信した要求の種類を判定する(ステップS102)。
【0034】
上記ステップS102の要求判定で要求が“登録要求”であると判定された場合には、後述する登録要求処理Bを実行してから、処理を上記ステップS101に移行する。
【0035】
上記ステップS102の要求判定で要求が“取得要求”であると判定された場合には、後述する取得要求処理Cを実行してから、処理を上記ステップS101に移行する。
【0036】
上記ステップS102の要求判定で要求が“コミット要求”であると判定された場合には、後述するコミット要求処理Dを実行してから、処理を上記ステップS101に移行する。
【0037】
上記ステップS102の要求判定で要求が“ロールバック要求”であると判定された場合には、後述するロールバック要求処理Eを実行してから、処理を上記ステップS101に移行する。
【0038】
上記ステップS102の要求判定で要求が“リスト要求”であると判定された場合には、後述するリスト要求処理Fを実行してから、処理を上記ステップS101に移行する。
【0039】
図4を参照して、登録要求処理Bの処理手順について説明する。
【0040】
最初に、通信制御部20は、ファイルアクセス制御部22にファイル登録要求を発行する(ステップS201)。これにより、ファイルアクセス制御部22は、ファイル登録要求を受信し、ファイル記憶装置32内の指定されたパスにファイルを作成して登録する。
【0041】
ここで、通信制御部20は、ファイルパスを指定する際に、トランザクション識別子の文字列に基づくハッシュ値を取得し、トランザクション識別子の代わりにハッシュ値をディレクトリ名とする。従来は、トランザクション識別子単位にディレクトリが設けられ、そのディレクトリの中にファイルを格納していた。これに対し、本発明では、ハッシュ値が同一となるトランザクション識別子単位にディレクトリを設け、そのディレクトリの中にファイルを格納することで、ディレクトリ数を節減することができる。
【0042】
続いて、通信制御部20は、キャッシュ制御部23にキャッシュ登録要求を発行する(ステップS202)。
【0043】
続いて、通信制御部20は、ファイルアクセス制御部22によるファイル登録の結果を判定する(ステップS203)。
【0044】
この判定結果が、ファイル登録成功である場合、通信制御部20は、ファイル情報制御部21に対して、ファイルクライアント1から取得したファイル情報と、生成したファイルパスとを合わせてファイル情報仮登録要求を発行し(ステップS205)、仮登録が完了するまで待機する。続いて、通信制御部20は、キャッシュ登録の結果を取得するまで待機し(ステップS206)、ファイルクライアント1に応答を送信する(ステップS207)。
【0045】
一方、上記ステップS203の判定結果が、ファイル登録失敗である場合に、通信制御部20は、キャッシュ登録の結果を取得するまで待機し(ステップS206)、ファイルクライアント1に応答を送信する(ステップS207)。
【0046】
図5を参照して、取得要求処理Cの処理手順について説明する。
【0047】
最初に、通信制御部20は、ファイル情報制御部21に対して、取得対象ファイルのファイル情報に入力トランザクション識別子を登録するように要求する(ステップS301)。
【0048】
続いて、通信制御部20は、上記ステップS301の要求に対する結果を判定する(ステップS302)。
【0049】
この判定結果が、登録失敗、すなわち該当レコードが存在しない場合、通信制御部20は、ファイルが存在しない旨の応答をファイルクライアント1に送信する(ステップS306)。
【0050】
一方、上記ステップS302の判定結果が、登録成功である場合、通信制御部20は、キャッシュ制御部23にキャッシュ取得要求を発行する(ステップS303)。
【0051】
続いて、通信制御部20は、キャッシュ取得要求に対する結果を判定する(ステップS304)。
【0052】
この判定結果が、取得成功である場合、通信制御部20は、取得対象ファイルの内容としてキャッシュの内容を含む応答をファイルクライアント1に送信する(ステップS306)。
【0053】
一方、上記ステップS304の判定結果が、取得失敗、つまりキャッシュが存在しなかった場合、通信制御部20は、ファイルアクセス制御部22に対してファイル取得要求を発行し(ステップS305)、その結果取得されたファイルの内容を含む応答をファイルクライアント1に送信する(ステップS306)。
【0054】
図6を参照して、コミット要求処理Dの処理手順について説明する。
【0055】
最初に、通信制御部20は、ファイルクライアント1で指定された入力トランザクション識別子を有するファイル情報の一覧をファイル情報制御部21から取得する(ステップS401)。
【0056】
続いて、通信制御部20は、ファイルアクセス制御部22に対して、取得した一覧の全てのファイルを削除するように要求する(ステップS402)。
【0057】
続いて、通信制御部20は、ファイル情報制御部21に対して、ファイルクライアント1で指定された入力トランザクション識別子を有するレコードをファイル情報DB31から全て削除するように要求する(ステップS403)。
【0058】
続いて、通信制御部20は、ファイル情報制御部21に対して、仮登録リスト記憶部25に記憶されているファイル情報のうち、ファイルクライアント1で指定されたトランザクション識別子を有するファイル情報をファイル情報DB31に登録するように要求する(ステップS404)。
【0059】
続いて、通信制御部20は、応答をファイルクライアント1に送信する(ステップS405)。
【0060】
図7を参照して、ロールバック要求処理Eの処理手順について説明する。
【0061】
最初に、通信制御部20は、ファイル情報制御部21に対して、ファイルクライアント1で指定された入力トランザクション識別子を有するファイル情報をファイル情報DB31から削除するように要求する(ステップS501)。
【0062】
続いて、通信制御部20は、ファイルアクセス制御部22に対して、仮登録リスト記憶部25にある指定されたトランザクション識別子を有するファイルを、ファイル記憶装置32から削除するように要求する(ステップS502)。
【0063】
続いて、通信制御部20は、ファイル情報制御部21に対して、ファイルクライアント1で指定されたトランザクション識別子を有するファイル情報を仮登録リスト記憶部25から削除するように要求する(ステップS503)。
【0064】
続いて、通信制御部20は、応答をファイルクライアント1に送信する(ステップS504)。
【0065】
図8を参照して、リスト要求処理Fの処理手順について説明する。
【0066】
最初に、通信制御部20は、ファイル情報制御部21に対して、ファイルクライアント1で指定された条件を満たすファイル情報をファイル情報DB31から取得するように要求する(ステップS601)。
【0067】
続いて、通信制御部20は、取得したファイル情報を含む応答をファイルクライアント1に送信する(ステップS602)。
【0068】
ここで、ファイルエージェント2が障害により再起動したとき、障害発生時にファイル情報DB31が、図9に示す状態で更新されていた場合には、ファイル情報DB31をロールバックする。その後、ファイルエージェント2の異常を検出したファイルクライアント1は、再度同じ処理、または、状況に応じてコミット部13やロールバック部14を機能させることで復旧を行う。
【0069】
次に、図10を参照して、上述したファイルプロトコルをトランザクション処理システムに適用した場合について説明する。
【0070】
本トランザクション処理システムは、外部入力装置4からデータを入力し、最終的にデータベースDB−B8およびDB−C9を更新するシステムである。
【0071】
アプリケーションA7は、外部入力装置4からデータを入力し、決められたルールに従ってアプリケーションB7またはアプリケーションC7宛にデータを出力する。アプリケーションB7は、アプリケーションA7からのデータを入力し、決められたルールに従って、データベースDB−B8を更新するか、またはアプリケーションC7宛にデータを出力する。アプリケーションC7は、アプリケーションA7またはアプリケーションB7からのデータを入力し、データベースDB−C9を更新する。
【0072】
アプリケーションA7は、ファイルクライアントA1を複数有する。アプリケーションB7は、ファイルクライアントB1を複数有する。アプリケーションC7は、ファイルクライアントC1を複数有する。
【0073】
ファイルサーバ6は、複数のファイルエージェントA2、B2、C2を有する。各ファイルエージェントA2、B2、C2は、ファイル記憶装置32を共有する。
【0074】
ファイルエージェントA2は、複数存在し、アプリケーションA7のファイルクライアントA1と通信を行う。ファイル情報DBA31は、複数のファイルエージェントA2が共有する。
【0075】
ファイルエージェントB2は、複数存在し、アプリケーションB7のファイルクライアントB1と通信を行う。ファイル情報DBB31は、複数のファイルエージェントB2が共有する。
【0076】
ファイルエージェントC2は、複数存在し、アプリケーションC7のファイルクライアントC1と通信を行う。ファイル情報DBC31は、複数のファイルエージェントC2が共有する。
【0077】
最初に、アプリケーションA7が、データを出力する際、ファイルクライアントA1のファイル登録部11を実行する。ファイルクライアントA1は、複数存在するので、複数のファイルを並行して出力することができる。
【0078】
続いて、ファイルエージェントB2は、アプリケーションA7からアプリケーションB7宛のファイル登録要求を受信し、ファイル記憶装置32にファイルを作成する。
【0079】
続いて、ファイルエージェントC2は、アプリケーションA7からアプリケーションC7宛のファイル登録要求を受信し、ファイル記憶装置32にファイルを作成する。
【0080】
続いて、アプリケーションA7は、1つのトランザクションにおいて全てのファイルを出力したら、ファイルクライアントA1のコミット部13を実行する。
【0081】
続いて、ファイルエージェントB2は、アプリケーションA7からのコミット要求を受信し、ファイル情報DBB31にファイル情報を格納する。
【0082】
続いて、ファイルエージェントC2は、アプリケーションA7からのコミット要求を受信し、ファイル情報DBC31にファイル情報を格納する。
【0083】
続いて、アプリケーションA7は、登録したファイルの情報をアプリケーションB7とアプリケーションC7にネットワークを介して通知する。
【0084】
続いて、アプリケーションB7は、アプリケーションA7から受信したファイル情報を元にファイルを入力するため、ファイルクライアントB1のファイル取得部12を実行する。ファイルクライアントB1は、複数存在するので、複数のファイルを並行して入力することができる。
【0085】
続いて、ファイルエージェントB2は、アプリケーションB7からのファイル取得要求を受信し、ファイル記憶装置32あるいはキャッシュ記憶部26からファイルを取得する。
【0086】
続いて、アプリケーションB7は、取得したファイルのデータについて、データベースDB−B8を更新し、アプリケーションC7へデータを出力する。
【0087】
続いて、ファイルエージェントC2は、アプリケーションB7からアプリケーションC7宛のファイル登録要求を受け、ファイル記憶装置32にファイルを作成する。
【0088】
続いて、アプリケーションB7は、1つのトランザクションにおいて全てのファイルを出力したら、ファイルクライアントB1のコミット部13を実行する。
【0089】
続いて、ファイルエージェントC2は、アプリケーションB7からのコミット要求を受け、入力したファイルを削除し、ファイル情報DBC31にファイル情報を格納する。
【0090】
続いて、アプリケーションB7は、登録したファイルの情報をアプリケーションC7にネットワークを介して通知する。
【0091】
続いて、アプリケーションC7は、アプリケーションA7とアプリケーションB7から受信したファイル情報を元にファイルを入力するため、ファイルクライアントC1のファイル取得部12を実行する。ファイルクライアントC1は、複数存在するので、複数のファイルを並行して入力することができる。
【0092】
続いて、ファイルエージェントC2は、アプリケーションB7からのファイル取得要求を受信し、ファイル記憶装置32あるいはキャッシュ記憶部26からファイルを取得する。
【0093】
続いて、アプリケーションC7は、取得したファイルからデータを処理し、データベースDB−C9を更新する。
【0094】
続いて、アプリケーションC7は、1つのトランザクションにおいて全てのファイルを入力したら、ファイルクライアントC1のコミット部13を実行する。
【0095】
ファイルエージェントC2は、アプリケーションC7からのコミット要求を受け、入力したファイルを削除する。
【0096】
以上のようにして、各アプリケーション間でデータの受け渡しを行う。
【0097】
障害時の動作については、以下の(1)〜(3)のようにして復旧を行う。
【0098】
(1)アプリケーションB7がトランザクション中でファイル登録後、コミット前にAPサーバB5が障害になった場合。
【0099】
APサーバB5が、復旧後、ロールバック部14を実行し、ファイルエージェントB2およびファイルエージェントC2にロールバックを要求する。
【0100】
ファイルエージェントB2は、ファイル情報DBB31から入力トランザクション識別子を削除する。
【0101】
ファイルエージェントC2は、ファイル記憶装置32から該当するトランザクション識別子のファイルを削除し、ファイルエージェントC2の仮登録リスト記憶部25から出力トランザクション識別子に該当するファイル情報を削除する。
【0102】
その後、アプリケーションB7は、ファイルクライアントB1のリスト取得部15を実行し、ファイルエージェントB2が持っているファイル情報のリストを取得して、トランザクションを再開する。
【0103】
(2)アプリケーションB7がトランザクション中でファイル登録後、コミット中にAPサーバB5が障害になった場合。
【0104】
APサーバB5は、復旧してアプリケーションB7が再起動し、ファイルエージェントA2、ファイルエージェントB2およびファイルエージェントC2に対してリスト取得を行う。
【0105】
取得したファイル情報から、障害発生時に行っていたコミットが成功しているかどうかを判断(出力の場合は、トランザクション識別子のファイルが存在する場合に成功とし、入力の場合は、入力トランザクション識別子のファイルが存在していない場合に成功とする。)し、失敗しているものについては再度コミットを要求する。
【0106】
(3)アプリケーションB7がトランザクション中でファイル登録後、コミット中にファイルサーバ6が障害になった場合。
【0107】
APサーバB5のファイルクライアントB1は、コミットの応答を得ることができないため、ファイルエージェントの障害と判断し、通信パスの再確立後、再度コミット要求を行う。
【0108】
ファイルエージェントB2は、通常と同じコミット処理を行い、応答を返す。
【0109】
上述したように、本実施形態におけるトランザクション処理システムによれば、以下の(1)〜(4)の効果を奏する。
【0110】
(1)ファイルサーバ障害でアプリケーションをハングアップさせずに書き込みを保証することができる。
【0111】
これは、NFSを使用しないためである。ファイルエージェント2において、ファイルアクセス制御部22がファイル記憶装置32への書き込みを完了し、仮登録リスト記憶部25にファイル情報が登録された時点で、データがファイルに保存されたことが確定する。ファイル記憶装置32は、ファイルアクセス制御部22からの書き込み要求について、書き込み完了時に書き込みが保証できるものである必要がある。
【0112】
(2)サーバ異常により入力側の処理が止まってしまったときに、出力側の処理を止めるまでの期間の長さの上限を引き上げることができる。
【0113】
これは、ファイル情報DB31により、従来のファイル格納箇所の制限(同一トランザクションのファイルは一つのディレクトリに格納しなければならない)にとらわれる必要がなくなるためである。
【0114】
(3)ファイル滞留時のサーバ再起動の性能を改善することができる。
【0115】
これは、ファイル情報DB31によって、ディスクアクセスなしにファイル一覧を取得することができるため、特に多数のファイルが存在する場合に、ファイル一覧取得の速度を改善することができるためである。
【0116】
(4)トランザクションの速度性能を改善することができる。
【0117】
これは、トランザクション性能のボトルネックの一つがファイルアクセスであることから、ファイルアクセスの性能を改善することで、トランザクション性能を改善することができるためである。まず、open、read/write、closeを1回の要求/応答で行うため、NFSに比べて通信回数を減らすことができる。また、トランザクションの概念のファイルプロトコルとして含めることができるため、リネームや入力コンテナ削除など、トランザクション単位に複数のファイルをファイル名指定なしで処理することができる。さらに、最適なファイルキャッシュを提供することが可能となり、物理ディスクへのアクセスを減らすことができる。最適なファイルキャッシュとは、最後に書き込んだファイルではなく、サーバ単位に最も古いものをメモリに残しておくことである。
【0118】
[変形例]
なお、上述した実施形態は、単なる例示に過ぎず、実施形態に明示していない種々の変形や技術の適用を排除するものではない。すなわち、本発明は、その趣旨を逸脱しない範囲で様々な形態に変形して実施することができる。
【0119】
例えば、上記の実施形態の一部または全部は、以下の付記のようにも記載され得るが、本発明を以下に限定するものではない。
【0120】
(付記1) 所定の操作単位に要求を送信するファイルクライアントと、前記要求を受信するたびに、当該要求に対する結果を送信するファイルエージェントと、を備え、前記ファイルエージェントは、前記要求に対応するトランザクション識別子のハッシュ値を用いてディレクトリ名を生成する通信制御部と、前記要求として登録要求を受信したときに、登録対象のファイルをファイル記憶装置に登録するファイルアクセス制御部と、前記登録要求を受信したときに、登録対象のファイル情報を仮登録する仮登録リスト記憶部と、前記要求としてコミット要求を受信したときに、仮登録したファイル情報をファイル情報DBに格納するファイル情報制御部と、を有し、前記ファイルアクセス制御部、前記仮登録リスト記憶部および前記ファイル情報制御部は、前記要求としてロールバック要求を受信したときに、未完了のトランザクションに対応するファイル情報を削除する、ことを特徴とするトランザクション処理システム。
【0121】
(付記2) 所定の操作単位に要求を送信するファイルクライアントと、前記要求を受信するたびに、当該要求に対する結果を送信するファイルエージェントと、を備えるトランザクション処理システムを制御する方法であって、前記ファイルエージェントが、前記要求に対応するトランザクション識別子のハッシュ値を用いてディレクトリ名を生成するステップと、前記要求として登録要求を受信したときに、登録対象のファイルをファイル記憶装置に登録するステップと、前記登録要求を受信したときに、登録対象のファイル情報を仮登録するステップと、前記要求としてコミット要求を受信したときに、仮登録したファイル情報をファイル情報DBに格納するステップと、前記要求としてロールバック要求を受信したときに、未完了のトランザクションに対応するファイル情報を削除するステップと、を含むことを特徴とするトランザクション処理方法。
【符号の説明】
【0122】
1…ファイルクライアント、2…ファイルエージェント、4…外部入力装置、5…APサーバ、6…ファイルサーバ、7…アプリケーション、8、9…データベース、10…通信制御部、11…ファイル登録部、12…ファイル取得部、13…コミット部、14…ロールバック部、15…リスト取得部、20…通信制御部、21…ファイル情報制御部、22…ファイルアクセス制御部、23…キャッシュ制御部、25…仮登録リスト記憶部、26…キャッシュ記憶部、31…ファイル情報DB、32…ファイル記憶装置。

【特許請求の範囲】
【請求項1】
所定の操作単位に要求を送信するファイルクライアントと、
前記要求を受信するたびに、当該要求に対する結果を送信するファイルエージェントと、を備え、
前記ファイルエージェントは、
前記要求に対応するトランザクション識別子のハッシュ値を用いてディレクトリ名を生成する通信制御部と、
前記要求として登録要求を受信したときに、登録対象のファイルをファイル記憶装置に登録するファイルアクセス制御部と、
前記登録要求を受信したときに、登録対象のファイル情報を仮登録する仮登録リスト記憶部と、
前記要求としてコミット要求を受信したときに、仮登録したファイル情報をファイル情報DBに格納するファイル情報制御部と、を有し、
前記ファイルアクセス制御部、前記仮登録リスト記憶部および前記ファイル情報制御部は、前記要求としてロールバック要求を受信したときに、未完了のトランザクションに対応するファイル情報を削除する、
ことを特徴とするトランザクション処理システム。
【請求項2】
所定の操作単位に要求を送信するファイルクライアントと、前記要求を受信するたびに、当該要求に対する結果を送信するファイルエージェントと、を備えるトランザクション処理システムを制御する方法であって、
前記ファイルエージェントが、
前記要求に対応するトランザクション識別子のハッシュ値を用いてディレクトリ名を生成するステップと、
前記要求として登録要求を受信したときに、登録対象のファイルをファイル記憶装置に登録するステップと、
前記登録要求を受信したときに、登録対象のファイル情報を仮登録するステップと、
前記要求としてコミット要求を受信したときに、仮登録したファイル情報をファイル情報DBに格納するステップと、
前記要求としてロールバック要求を受信したときに、未完了のトランザクションに対応するファイル情報を削除するステップと、
を含むことを特徴とするトランザクション処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−194951(P2012−194951A)
【公開日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願番号】特願2011−60401(P2011−60401)
【出願日】平成23年3月18日(2011.3.18)
【出願人】(000004237)日本電気株式会社 (19,353)