JP2008165370A - オンライントランザクション処理を分割し、分散環境で実行するための方法および装置。 - Google Patents
オンライントランザクション処理を分割し、分散環境で実行するための方法および装置。 Download PDFInfo
- Publication number
- JP2008165370A JP2008165370A JP2006352292A JP2006352292A JP2008165370A JP 2008165370 A JP2008165370 A JP 2008165370A JP 2006352292 A JP2006352292 A JP 2006352292A JP 2006352292 A JP2006352292 A JP 2006352292A JP 2008165370 A JP2008165370 A JP 2008165370A
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- server
- processing
- optimistic
- executing
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】トランザクションを分割して分散環境で実行することで、スケーラブルにトランザクションを実行できるシステムを提案する。
【課題手段】本発明においては、トランザクションを分割して分散環境で実行するためのシステムを提案する。当該システムは、トランザクション処理を競合が起こりにくい(optimistic)処理と競合が起こりやすい(pessimistic)処理に分割する手段と、第1のサーバと、第2のサーバを含むシステムである。前記第1のサーバは、前記optimistic処理を実行すると第1のトランザクション実行部と、前記optimistic処理の実行結果を、前記第2のサーバに送信するためのトランザクション・ログ送信部とを有する。前記第2のサーバは、前記トランザクション・ログを受信するための、トランザクション・ログ受信部と、前記pessimistic処理を実行すると第2のトランザクション実行部とを有する
【選択図】図2
【課題手段】本発明においては、トランザクションを分割して分散環境で実行するためのシステムを提案する。当該システムは、トランザクション処理を競合が起こりにくい(optimistic)処理と競合が起こりやすい(pessimistic)処理に分割する手段と、第1のサーバと、第2のサーバを含むシステムである。前記第1のサーバは、前記optimistic処理を実行すると第1のトランザクション実行部と、前記optimistic処理の実行結果を、前記第2のサーバに送信するためのトランザクション・ログ送信部とを有する。前記第2のサーバは、前記トランザクション・ログを受信するための、トランザクション・ログ受信部と、前記pessimistic処理を実行すると第2のトランザクション実行部とを有する
【選択図】図2
Description
本発明は、オンライントランザクション処理において、トランザクションをoptimisticロックとPessimisticロックに基づく処理に分割し、分散環境で実行することに関する。
近年のオンライントランザクション処理(OLTP:On-Line Transaction Processing)システムは、Web化などにより多数のユーザの処理を直接受け付ける形態が多くなってきており、システムの処理能力およびスケーラビリティに対する要求が高まってきている。システムをスケーラブルにするには、複数のアプリケーション・サーバと、複数のデータベース管理システム(DBMS)から構成される多階層アーキテクチャを採用する事が一般的である。一般に、アプリケーション・サーバでの処理はスケールアウトされるように設計されることが望ましい。しかし、DBアクセス処理及びDBMS部分を注意して設計しなければ、DBアクセスにボトルネックが発生してしまい、スケールアウトさせることができない。
現在多くのOLTPで用いられている並行性制御機構は、悲観的並行性制御機構(Pessimistic Concurrency Control, 以下単にPessimistic CC)と呼ばれるものである。Pessimistic CCは、データアクセスを行う際に、DBMSでロック獲得処理を行うものである。この方法は、確実に読み書きの競合を制御できるものの、通信を介してロック獲得処理を行う必要があり、ネットワーク遅延が発生し、さらにはDBMSに負荷が集中してしまうため、スケーラビリティに欠けるといった問題がある。
一方、Pessimistic CCのスケーラビリティの問題を解決するための有効な手段として、楽観的並行性制御機構(Optimistic Concurrency Control, 以下単にOptimistic CC)がある。Optimistic CCは、ロック競合はまれにしか発生しないという前提のもと、ロックを取得せずにトランザクション処理を続行し、コミット時にまとめて読み書きの競合のチェック(Validate)を行う。読み書きの競合が無かった場合にのみトランザクションをDBにコミットし、読み書きの競合があった場合にはそのトランザクションの再実行を試みる。Optimistic CCはトランザクション処理の途中でDBMSに対するロック取得要求を出さないため、スケーラビリティに優れた処理方式であるといえる。しかし、読み書きの競合が頻繁に発生するようなデータアクセス(ホットスポット)があると、トランザクションの再実行ばかりが発生してしまい、逆にシステムの処理性能は低下する。
読み書きの競合が発生しやすいリソースに対してのみPessimistic CCを適用し、他のリソースに関してはOptimistic CCを適用することで、ロックのコストを最小限に抑え、スケーラビリティに優れたトランザクションの実行を行う手法もいくつか提案されている。しかし、これらの手法を利用した場合でも、ロック取得からロック開放までのトランザクションの実行、ネットワークの遅延の影響により、分散環境ではリソースに対するロックの競合が多発することがある。
また、特許文献1では、競合するリソースに対する書き込みをトランザクションのコミット直前まで遅らせ、コミット時に集中的に決定していく手法も提案されている。この手法を利用することで、複数のトランザクションが、トランザクション固有のオブジェクトに対し、トランザクション間で連続した番号を採番する、といった処理を、競合をなく処理することが可能となる。しかし、この手法は採番処理以外の処理に適用することが難しい。
特許文献2は、単にPessimisticロックとOptimisticロックとで、処理するノードを分けようという特許であり、トランザクションコンテキストが分割されるわけではない。また、特許文献3は、そのコンピュータ本来の命令セット(主命令セット)とは異なる命令セット(副命令セット)で記述されたプログラムをハードウェアエミュレーションで実行する機能を持つコンピュータに関するものである.エミュレーションに関するオーバヘッドが理由で副命令セットの実行は主命令セットの実行よりも遅いため,副命令セットで記述されたプログラムは主命令セットに変換して高速化することが望まれるが,変換そのものにも時間を要するためこれらのコストの間にはトレードオフが存在する.特許文献3は,副命令セットで記述されたプログラムの実行をプロファイルして速度に影響する部分を検出し,そこだけを主命令セットに変換することで,変換コストを抑えつつ実行を高速化する技術である.しかし、特許文献3は、トランザクションを分散環境で実行する機能と関連しているわけではない。
オンライントランザクション処理において、トランザクションをoptimisticロックとPessimisticロックに関する処理に分割し、分散環境で実行する方法および装置を提供する。
上記課題を解決するため、本発明においては、トランザクションを分割して分散環境で実行するためのシステムを提案する。当該システムは、トランザクション処理を競合が起こりにくい(optimistic)処理と競合が起こりやすい(pessimistic)処理に分割する手段と、第1のサーバと、第2のサーバを含むシステムである。前記第1のサーバは、前記optimistic処理を実行すると第1のトランザクション実行部と、前記optimistic処理の実行結果を、前記第2のサーバに送信するためのトランザクション・ログ送信部とを有する。前記第2のサーバは、前記トランザクション・ログを受信するための、トランザクション・ログ受信部と、前記pessimistic処理を実行すると第2のトランザクション実行部とを有する
本発明の方法により、読み書きの競合がほとんど発生しない前半部分をOptimistic CCに基づいた方式で複数サーバ(スケーラブル)に実行し、ホットスポットを含む後半部分をPessimistic CCに基づき1カ所または少数箇カ所で集中的に実行することを可能にする。これにより、一部に読み書きの競合が頻繁に発生するような処理を含むトランザクション処理プログラムを、より多くのサーバで実行する事を可能にする。
以上、本発明の概要を、方法として説明したが、本発明は、装置、プログラム、またはプログラム製品として把握することもできる。プログラム製品は、例えば、前述のプログラムを格納した記憶媒体を含め、あるいはプログラムを伝送する媒体を含めることができる。
上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの構成要素のコンビネーションまたはサブコンビネーションもまた、発明となり得ることに留意すべきである。
図1は、本発明の、オンライントランザクション処理において、OptimisticロックとPessimisticロックに基づく処理に分割し、分散環境で実行するシステム100の高水準の概要図である。クライアント150a、b・・は、ネットワーク101を通して、アプリケーション・サーバ120a,b・・(第1のサーバ)にトランザクションの処理要求を送信する。サーバ110は、トランザクション処理プログラムを予め、あるいは動的に、OptimisticロックとPessimisticロックに基づく処理(SQL)に分割し、アプリケーション・サーバにOptimisticロックに基づく処理(競合が起こりにくい処理)を配置し、コミット・サーバ130にPessimisticロックに基づく処理(競合が起こりやすい処理)を配置する。アプリケーション・サーバ120a,b・・はOptimisticロックに基づくSQLの読み込み部分のみDBMSサーバ140に対してSQLコマンドを送信し、その結果およびSQLの書き込み部分はトランザクション・ログとしてコミット・サーバ130(第2のサーバ)に送信する。コミット・サーバ130はDBMSサーバ140に対してSQLを実行する。なお、コミット・サーバ130とDBMSサーバ140は、同一サーバであってもよい。
図2は、トランザクションをOptimisticロックとPessimisticロックに基づく処理に分割し、分散環境で実行するシステムの機能ブロックを概念的に示した概略図200である。サーバ210は、トランザクション処理プログラムをOptimisticロックとPessimisticロックに基づく処理に分割するプログラム変換器211を有する。プログラム変換器211は、トランザクション処理プログラム213を、メタデータ215を利用して、競合が起こりにくい処理217と競合が起こりやすい処理219に分割する。メタデータ215には、トランザクションの実行時プロファイルやサーバの構成情報などを含む。プログラム変換器211は一例としてプログラムスライシングを利用したプログラムの分割方法(Automated Method-Extraction Refactoring by Using Block-Based Slicing, Katsuhisa Maruyama, SSR 2001)などの既知の手法を利用する。競合が起こりにくい処理217は、予め、またはその都度アプリケーション・サーバ220a,b・・,nに渡して配置する。競合が起こりやすい処理219は、予め、またはその都度コミット・サーバ230に渡して配置する。
アプリケーション・サーバ220a、b、・・,nは、クライアント251から処理要求があった場合、トランザクション実行部221(第1のトランザクション実行部)が、競合が起こりにくい処理227に含まれるSQLを実行する。ただし、実際にデータベースにアクセスするのは、データの読み込み処理であり、かつ、同一トランザクションによって初めて読み込まれる場合に限って行なわれる(これは、一般のOptimisticトランザクション処理システムと同一の処理である)。トランザクション実行部221は、書き込み処理については、データの読み込み結果とともにトランザクション・ログとして、トランザクション送信部223に送信する。トランザクション送信部223は、トランザクション・ログ229をコミット・サーバ230に送信する。
コミット・サーバ230では、トランザクション・ログ受信部231が、トランザクション・ログ229を受信し、トランザクション実行部233(第2のトランザクション実行部)に渡す。トランザクション実行部233は、トランザクション・ログに含まれるすべての読み書き処理についてValidation処理を行う。Validationした結果、問題なければ、トランザクション・ログ229に含まれる競合が起こりにくい処理(Optimisticロックに基づく処理)の書き込み処理についてコマンドをDBMSサーバ240に対して実行した後、競合が起こりやすい処理239について読み込み処理と書き込み処理のコマンドをDBMSに対して発行し、トランザクションをコミットする。
DBMSサーバ240は、DBMS241とプロファイル情報収集部243を有する。プロファイル情報収集部243は、DBへのアクセス状態を情報として収集し、実行時プロファイルとしてサーバ210に取得される。サーバ210は、最新の実行時プロファイルなどを使って、どのSQLで競合が起こりやすいか否かなどを検証し、プログラム変換器211におけるプログラム変換時に反映する。すなわち、実行しながらホットスポットの分析し、トランザクション処理プログラムの分割にその分析結果が反映可能となる。プロファイル情報収集243は、DBMSのモニタリング機構、例えばIBM(登録商標)のDB2(登録商標)を利用して、定期的に各SQLの実行時間を計測する。なお、DBMSサーバが複数ある場合は、コミット・サーバも複数になる。
ここで、下記のトランザクション処理プログラムを分割する例を説明する。
購入 (prodcode) {
1: price = SELECT 金額 FROM 商品テーブル WHERE コード=’prodcode’;
*2: stock = SELECT FOR UPDATE 在庫量 FROM 在庫テーブル;
3: amount = 購入数計画(prodcode, price);
4: INSERT INTO 購入記録(商品コード, 個数, 日時) VALUES(’prodcode’, ’amount’ , 現在時刻);
*5: UPDATE 在庫テーブル SET 在庫量 = stock + amount;
}
購入 (prodcode) {
1: price = SELECT 金額 FROM 商品テーブル WHERE コード=’prodcode’;
*2: stock = SELECT FOR UPDATE 在庫量 FROM 在庫テーブル;
3: amount = 購入数計画(prodcode, price);
4: INSERT INTO 購入記録(商品コード, 個数, 日時) VALUES(’prodcode’, ’amount’ , 現在時刻);
*5: UPDATE 在庫テーブル SET 在庫量 = stock + amount;
}
このトランザクション処理プログラム中、2行目と5行目がホットスポットであったとする。このプログラムを、プログラム変換により、ホットスポットを含む後半部分と、それ以外の前半部分に分割する。最もナイーブな分割は、最初に現れた2行目の直前で分割するものであるが、2行目にデータ依存しない3行目も後半に含まれてしまう。特に3行目が計算機リソースを多く消費するような処理であった場合には、できるだけ前半に残してスケーラビリティを出すのが望ましい。そのため、プログラムの意味を変えない範囲でなるべく後半部分が最小となるよう、3−4行目の文を2行目の前まで移動させ、以下のようにoptimistic処理とpessimistic処理に分割する。
--optimistic処理--
購入_pre (prodcode) {
1: price = SELECT 金額 FROM 商品テーブル WHERE コード=’prodcode’;
3: amount = 購入数計画(prodcode, price);
4: INSERT INTO 購入記録(商品コード, 個数, 日時) VALUES(’prodcode’, ’amount’ , 現在時刻);
delegateCommit(“購入”, prodcode, amount);
}
購入_pre (prodcode) {
1: price = SELECT 金額 FROM 商品テーブル WHERE コード=’prodcode’;
3: amount = 購入数計画(prodcode, price);
4: INSERT INTO 購入記録(商品コード, 個数, 日時) VALUES(’prodcode’, ’amount’ , 現在時刻);
delegateCommit(“購入”, prodcode, amount);
}
--pessimistic処理--
購入_post(prodcode, amount) {
*2: stock = SELECT FOR UPDATE 在庫量 FROM 在庫テーブル;
*5: UPDATE 在庫テーブル SET 在庫量 = stock + amount;
}
購入_post(prodcode, amount) {
*2: stock = SELECT FOR UPDATE 在庫量 FROM 在庫テーブル;
*5: UPDATE 在庫テーブル SET 在庫量 = stock + amount;
}
optimistic処理の最後尾には、delegateCommit呼び出しを挿入する。これは、図におけるトランザクション・ログ送信部223を起動するものである。
トランザクションログの形式はValidation方式に応じて様々なものがあるが、値比較によるValidationを前提とし、上記optimistic処理のトランザクションを実行した際のログの例を以下に示す。これはprodcode=123456 というパラメータで実行し、amount=100 であった場合を想定したものである。
ReadSet = {
“SELECT 金額 FROM 商品テーブル WHERE コード=’123456’”, {1280}
}
WriteSet = {
“INSERT INTO 購入記録(商品コード, 個数, 日時) VALUES(’123456’, ’100’ , ‘2006/9/30’)”
}
ReadSet = {
“SELECT 金額 FROM 商品テーブル WHERE コード=’123456’”, {1280}
}
WriteSet = {
“INSERT INTO 購入記録(商品コード, 個数, 日時) VALUES(’123456’, ’100’ , ‘2006/9/30’)”
}
このトランザクションログには、読み込み履歴(ReadSet)が1エントリ、書き込み履歴(WriteSet)が1エントリ含まれる。読み込み履歴のエントリは、クエリとそのクエリを発行した結果読み出されるべき値のリストのペアからなる。ReadSetには、上記optimistic処理の行1に対応した「”SELECT 金額 FROM 商品テーブル WHERE コード=’123456’”というクエリを発行した結果1280という値を取得した」というログが含まれる。書き込み履歴のエントリは、発行した更新クエリ(SQLのUPDATE, INSERT, DELETE文)のリストから成る。WriteSetには、INSERT文が1つ含まれている。後述するValidationの際には、ReadSetに含まれるクエリを発行し、その結果がログの値リストと同じであるかどうかをチェックする。値が同じであれば、WriteSetにある更新クエリを発行して、データベースに対してトランザクションのコミット処理を行う。値が違う場合には、読み書きの競合が発生した事になるため、トランザクションをアボートさせ、再実行を促す。
図3は、本発明の処理フロー300を例示したものである。ステップ301で処理が開始される。ステップ303でトランザクション処理プログラムの変換を行う。ここでは、トランザクション処理プログラムを競合が起こりにくい処理(optimistic処理)と競合が起こりやすい処理(pessimistic処理)に分割する。ステップ305では、アプリケーション・サーバで、クライアントからの処理要求を受けたことを契機に、トランザクション処理を開始する。ステップ305ではoptimistic処理の内、読み込み処理をDBMSに対して行う。ステップ307でステップ305の実行ログおよび書き込み処理をトランザクション・ログとしてコミット・サーバに送信する。
ステップ308では、トランザクション・ログを受信したコミット・サーバが、トランザクションの開始処理(begin処理)を行ったのち、ステップ309でこれまで行われたoptimistic処理の競合チェックのため、validationを行う。ステップ311でValidationの結果をチェックする。ステップ311で、Validationの結果のチェックに問題があれば(No)、ステップ323に進んで、それまでの処理をアボートして、ステップ305に戻って、再びトランザクション処理を開始する。
ステップ311で、Validationの結果のチェックに問題がなければ(Yes)、ステップ313に進んで、optimistic処理の内の書き込み処理を実行し、さらにステップ315に進んで、pessimisticの読み込み処理と書き込み処理を行う。ステップ317では、DBMSに対して、トランザクション処理をコミットする(commit処理)。ステップ319でコミットの結果に問題ないかチェックする。ステップ319で問題あると判断した場合(No)、ステップ323に進んで、これまでの処理をアボートして、再びトランザクション処理を開始する。ステップ319で問題ないと判断した場合(Yes)、ステップ321に進んで、処理フローを終了する。
図4は、本発明の実施の形態によるクライアント150、サーバ110、120、130および150を実現するのに好適な情報処理装置のハードウェア構成の一例を示した図である。
情報処理装置は、バス2に接続されたCPU(中央処理装置)401とメインメモリ404を含んでいる。ハードディスク装置413、430、およびCD−ROM装置426、429、フレキシブル・ディスク装置420、MO装置428、DVD装置431のようなリムーバブル・ストレージ(記憶メディアを交換可能な外部記憶システム)がフロッピーディスクコントローラ419、IDEコントローラ425、SCSIコントローラ427などを経由してバス402へ接続されている。
フレキシブル・ディスク、MO、CD−ROM、DVD−ROMのような記憶メディアが、リムーバブル・ストレージに挿入される。これらの記憶メディアやハードディスク装置413、430、ROM414には、オペレーティング・システムと協働してCPU等に命令を与え、本発明を実施するためのコンピュータ・プログラムのコードを記憶することができる。メインメモリ404にロードされることによってコンピュータ・プログラムは実行される。コンピュータ・プログラムは圧縮し、また複数に分割して複数の媒体に記憶することもできる。
情報処理装置は、キーボード/マウス・コントローラ5を経由して、キーボード406やマウス407のような入力デバイスからの入力を受ける。情報処理装置は、視覚データをユーザに提示するための表示装置411にDAC/LCDC410を経由して接続される。
情報処理装置は、ネットワーク・アダプタ418(イーサネット(R)・カードやトークンリング・カード)等を介してネットワークに接続し、他のコンピュータ等と通信を行うことが可能である。図示はされていないが、パラレルポートを介してプリンタと接続することや、シリアルポートを介してモデムを接続することも可能である。
以上の説明により、本発明の実施の形態によるシステムを実現するのに好適な情報処理装置は、通常のパーソナルコンピュータ、ワークステーション、メインフレームなどの情報処理装置、または、これらの組み合わせによって実現されることが容易に理解されるであろう。ただし、これらの構成要素は例示であり、そのすべての構成要素が本発明の必須構成要素となるわけではない。
本発明の実施の形態において使用される情報処理装置の各ハードウェア構成要素を、複数のマシンを組み合わせ、それらに機能を配分し実施する等の種々の変更は当業者によって容易に想定され得ることは勿論である。それらの変更は、当然に本発明の思想に包含される概念である。
本発明の実施形態によるシステムは、マイクロソフト・コーポレーションが提供するWindows(R)オペレーティング・システム、アップル・コンピュータ・インコーポレイテッド提供するMacOS(R)、X Window Systemを備えるUNIX(R)系システム(例えば、インターナショナル・ビジネス・マシーンズ・コーポレーションが提供するAIX(R)など)のような、GUI(グラフィカル・ユーザー・インターフェース)マルチウインドウ環境をサポートするオペレーティング・システムを採用することができる。
以上から、本発明の実施の形態において使用されるシステムは、特定のオペレーティング・システム環境に限定されるものではないことを理解することができる。すなわち、オペレーティング・システムは、アプリケーション・ソフトウェアなどがデータ処理システムの資源を利用できるようにする資源管理機能を提供することができるものであれば、いかなるものをも採用することができる。なお、資源管理機能には、ハードウェア資源管理機能、ファイルハンドル機能、スプール機能、ジョブ管理機能、記憶保護機能、仮想記憶管理機能などが含まれ得るが、これらの機能については、当業者によく知られたものであるので詳細な説明は省略する。
また、本発明は、ハードウェア、ソフトウェア、またはハードウェア及びソフトウェアの組み合わせとして実現可能である。ハードウェアとソフトウェアの組み合わせによる実行において、所定のプログラムを有するデータ処理システムにおける実行が典型的な例として挙げられる。かかる場合、該所定プログラムが該データ処理システムにロードされ実行されることにより、該プログラムは、データ処理システムを制御し、本発明にかかる処理を実行させる。このプログラムは、任意の言語・コード・表記によって表現可能な命令群から構成される。そのような命令群は、システムが特定の機能を直接、または1.他の言語・コード・表記への変換、2.他の媒体への複製、のいずれか一方もしくは双方が行われた後に、実行することを可能にするものである。
もちろん、本発明は、そのようなプログラム自体のみならず、プログラムを記憶した媒体もその範囲に含むものである。本発明の機能を実行するためのプログラムは、フレキシブル・ディスク、MO、CD−ROM、DVD、ハードディスク装置、ROM、MRAM、RAM等の任意のコンピュータ読み取り可能な記憶媒体に格納することができる。かかるプログラムは、記憶媒体への格納のために、通信回線で接続する他のデータ処理システムからダウンロードしたり、他の記憶媒体から複製したりすることができる。また、かかるプログラムは、圧縮し、または複数に分割して、単一または複数の記憶媒体に格納することもできる。また、様々な形態で、本発明を実施するプログラム製品を提供することも勿論可能であることにも留意されたい。
以上、本発明の実施形態によれば、ウェブサーバのリソース・データをクライアントにバックアップし、また、ウェブサーバのリソース・データが破損した場合に、クライアントがバックアップしたリソース・データから回復できるシステムを容易に構築することができることが理解される。
上記の実施の形態に、種々の変更または改良を加えることが可能であることが当業者に明らかである。そのような変更または改良を加えた形態も当然に本発明の技術的範囲に含まれることに留意されたい。
Claims (12)
- トランザクション処理を分散環境で実行するためのシステムであって、
トランザクション処理を競合が起こりにくい(optimistic)処理と競合が起こりやすい(pessimistic)処理に分割する手段と、
第1のサーバと、
第2のサーバと
を含むシステムであって、
前記第1のサーバは、
前記optimistic処理を実行する第1のトランザクション実行部と、
前記optimistic処理の実行結果を、前記第2のサーバに送信するためのトランザクション・ログ送信部と
を有し、
前記第2のサーバは、
前記トランザクション・ログを受信するための、トランザクション・ログ受信部と
前記pessimistic処理を実行する第2のトランザクション実行部と、
を有する
前記システム。 - 前記第2のトランザクション実行部は、さらに
前記optimistic処理の実行結果をチェックするvalidation機能
を有する請求項1に記載のシステム。 - 前記システムは、さらに
トランザクション処理の実行状態のプロファイル情報を収集する収集部を有するDBMSサーバを含む
請求項1に記載のシステム。 - 前記分割する手段は、前記プロファイル情報を反映して、前記トランザクション処理を分割する請求項3に記載のシステム。
- 前記第1のトランザクション実行部は、前記optimistic処理のうちDBの読み込み処理を行い、
前記第2のトランザクション実行部が、前記optimistic処理のうちDBの書き込み処理を行う
請求項1に記載のシステム。 - 前記第2のサーバの機能と前記DBMSサーバの機能が、同一サーバにある、請求項3に記載のシステム。
- トランザクション処理を分散環境で実行するための方法であって、
トランザクション処理を競合が起こりにくい(optimistic)処理と競合が起こりやすい(pessimistic)処理に分割するステップと、
第1のサーバで前記optimistic処理を実行するとステップと、
前記第1のサーバで、前記optimistic処理の実行結果を、第2のサーバに送信するステップと、
前記第2のサーバで前記トランザクション・ログを受信するステップと、
前記第2のサーバで前記pessimistic処理を実行するステップと、
を有する方法。 - 前記方法は、さらに、
前記第2のサーバで、前記optimistic処理の実行結果をチェックするステップを、有する請求項7に記載の方法。 - 前記方法は、さらに、
DBMSサーバで、トランザクション処理の実行状態のプロファイル情報を収集するステップを
含む請求項7に記載の方法。 - 前記分割するステップは、前記プロファイル情報を反映して、前記トランザクション処理を分割する請求項9に記載の方法。
- 前記optimistic処理のトランザクションを実行するステップは、前記optimistic処理のうちDBの読み込み処理を行い、
前記pessimistic処理のトランザクションを実行するステップが、前記optimistic処理のうちDBの書き込み処理を行う
請求項7に記載の方法。 - 請求項1乃至11のいずれか1項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006352292A JP2008165370A (ja) | 2006-12-27 | 2006-12-27 | オンライントランザクション処理を分割し、分散環境で実行するための方法および装置。 |
US11/964,930 US8276153B2 (en) | 2006-12-27 | 2007-12-27 | Method and system for dividing and executing on-line transaction processing in distributed environment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006352292A JP2008165370A (ja) | 2006-12-27 | 2006-12-27 | オンライントランザクション処理を分割し、分散環境で実行するための方法および装置。 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008165370A true JP2008165370A (ja) | 2008-07-17 |
Family
ID=39585927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006352292A Pending JP2008165370A (ja) | 2006-12-27 | 2006-12-27 | オンライントランザクション処理を分割し、分散環境で実行するための方法および装置。 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8276153B2 (ja) |
JP (1) | JP2008165370A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016095638A (ja) * | 2014-11-13 | 2016-05-26 | 日本電気株式会社 | トランザクション処理装置、トラザクション処理方法、及びプログラム |
JP7566146B2 (ja) | 2021-05-19 | 2024-10-11 | ▲騰▼▲訊▼科技(深▲セン▼)有限公司 | オブジェクト処理方法、装置、及びコンピュータ機器 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130227101A1 (en) * | 2012-02-27 | 2013-08-29 | Verizon Patent And Licensing, Inc. | Method and system for providing transaction management in a request-oriented service architecture |
US20130227143A1 (en) * | 2012-02-27 | 2013-08-29 | Verizon Patent And Licensing Inc. | Method and system for providing transaction management in a request-oriented service architecture using meta-models |
US9436477B2 (en) | 2012-06-15 | 2016-09-06 | International Business Machines Corporation | Transaction abort instruction |
US9448796B2 (en) | 2012-06-15 | 2016-09-20 | International Business Machines Corporation | Restricted instructions in transactional execution |
US8688661B2 (en) | 2012-06-15 | 2014-04-01 | International Business Machines Corporation | Transactional processing |
US9336046B2 (en) | 2012-06-15 | 2016-05-10 | International Business Machines Corporation | Transaction abort processing |
US9361115B2 (en) | 2012-06-15 | 2016-06-07 | International Business Machines Corporation | Saving/restoring selected registers in transactional processing |
US9367323B2 (en) | 2012-06-15 | 2016-06-14 | International Business Machines Corporation | Processor assist facility |
US8966324B2 (en) | 2012-06-15 | 2015-02-24 | International Business Machines Corporation | Transactional execution branch indications |
US20130339680A1 (en) | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Nontransactional store instruction |
US9772854B2 (en) | 2012-06-15 | 2017-09-26 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
US10437602B2 (en) | 2012-06-15 | 2019-10-08 | International Business Machines Corporation | Program interruption filtering in transactional execution |
US8682877B2 (en) | 2012-06-15 | 2014-03-25 | International Business Machines Corporation | Constrained transaction execution |
US9740549B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
US9317460B2 (en) | 2012-06-15 | 2016-04-19 | International Business Machines Corporation | Program event recording within a transactional environment |
US9348642B2 (en) | 2012-06-15 | 2016-05-24 | International Business Machines Corporation | Transaction begin/end instructions |
US8880959B2 (en) | 2012-06-15 | 2014-11-04 | International Business Machines Corporation | Transaction diagnostic block |
US9384004B2 (en) | 2012-06-15 | 2016-07-05 | International Business Machines Corporation | Randomized testing within transactional execution |
US9442737B2 (en) | 2012-06-15 | 2016-09-13 | International Business Machines Corporation | Restricting processing within a processor to facilitate transaction completion |
CN105190537B (zh) * | 2013-04-03 | 2019-11-05 | 慧与发展有限责任合伙企业 | 修改将在多个执行环境中执行的操作流的方法和产品 |
CN115796874B (zh) * | 2023-01-09 | 2023-05-09 | 杭州安节科技有限公司 | 一种操作级别的区块链交易并发执行方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5864679A (en) * | 1993-09-06 | 1999-01-26 | Kabushiki Kaisha Toshiba | Transaction routing in a multiple processor system using an extracted transaction feature parameter and transaction historical data |
US5956489A (en) * | 1995-06-07 | 1999-09-21 | Microsoft Corporation | Transaction replication system and method for supporting replicated transaction-based services |
US7111290B1 (en) * | 1999-01-28 | 2006-09-19 | Ati International Srl | Profiling program execution to identify frequently-executed portions and to assist binary translation |
US7206805B1 (en) * | 1999-09-09 | 2007-04-17 | Oracle International Corporation | Asynchronous transcription object management system |
US6681226B2 (en) * | 2001-01-30 | 2004-01-20 | Gemstone Systems, Inc. | Selective pessimistic locking for a concurrently updateable database |
US6975595B2 (en) * | 2001-04-24 | 2005-12-13 | Atttania Ltd. | Method and apparatus for monitoring and logging the operation of a distributed processing system |
US7305678B2 (en) | 2001-05-17 | 2007-12-04 | International Business Machines Corporation | Method and system for reducing synchronization waits when allocating sequenced identifiers in a multi-threaded server |
US20060136454A1 (en) * | 2004-12-16 | 2006-06-22 | Tchouati Constant W | Method for managing a hybrid distributed database in a communication network |
-
2006
- 2006-12-27 JP JP2006352292A patent/JP2008165370A/ja active Pending
-
2007
- 2007-12-27 US US11/964,930 patent/US8276153B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016095638A (ja) * | 2014-11-13 | 2016-05-26 | 日本電気株式会社 | トランザクション処理装置、トラザクション処理方法、及びプログラム |
US10303676B2 (en) | 2014-11-13 | 2019-05-28 | Nec Corporation | Transaction processing apparatus, transaction processing method, and computer-readable recording medium |
JP7566146B2 (ja) | 2021-05-19 | 2024-10-11 | ▲騰▼▲訊▼科技(深▲セン▼)有限公司 | オブジェクト処理方法、装置、及びコンピュータ機器 |
Also Published As
Publication number | Publication date |
---|---|
US20080163221A1 (en) | 2008-07-03 |
US8276153B2 (en) | 2012-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008165370A (ja) | オンライントランザクション処理を分割し、分散環境で実行するための方法および装置。 | |
US8239389B2 (en) | Persisting external index data in a database | |
US8572575B2 (en) | Debugging a map reduce application on a cluster | |
US8095561B2 (en) | Extensible framework for data import and export | |
US7769864B2 (en) | Adaptation of clusters to virtualization technologies | |
US7082551B2 (en) | Method and data processing system providing checkpoint/restart across multiple heterogeneous computer systems | |
US20130124193A1 (en) | System and Method Implementing a Text Analysis Service | |
US20040010499A1 (en) | Database system with improved methods for asynchronous logging of transactions | |
KR101099227B1 (ko) | 복제 명령들을 서브스크라이버들에게 분배하는 컴퓨팅 시스템, 컴퓨터화된 방법 및 컴퓨터 판독가능 기록 매체 | |
JP4432087B2 (ja) | データベース更新管理システム、プログラムおよび方法 | |
CN101350022B (zh) | 基于数据库逻辑锁的变更处理方法 | |
US8271448B2 (en) | Method for strategizing protocol presumptions in two phase commit coordinator | |
JP2006092005A (ja) | データ処理方法、データベースシステム及びストレージ装置 | |
US8407713B2 (en) | Infrastructure of data summarization including light programs and helper steps | |
US10127329B2 (en) | Processing large XML files by splitting and hierarchical ordering | |
EP3853715A1 (en) | Techniques for updating big data tables using snapshot isolation | |
US20210365457A1 (en) | Graph database and methods with improved functionality | |
JP5181183B2 (ja) | 変換装置、サーバシステム、変換方法およびプログラム | |
CN106204263B (zh) | 交易运行控制方法和装置 | |
US10621163B2 (en) | Tracking and reusing function results | |
US8027996B2 (en) | Commitment control for less than an entire record in an in-memory database in a parallel computer system | |
Korotkevitch | SQL Server Advanced Troubleshooting and Performance Tuning | |
US11347771B2 (en) | Content engine asynchronous upgrade framework | |
CN113296966B (zh) | 数据处理方法及装置 | |
Sidhanta et al. | Consistify: preserving correctness and sla under weak consistency |