JP5363485B2 - トランザクション処理スループットを高めるためのトランザクション集約 - Google Patents

トランザクション処理スループットを高めるためのトランザクション集約 Download PDF

Info

Publication number
JP5363485B2
JP5363485B2 JP2010522327A JP2010522327A JP5363485B2 JP 5363485 B2 JP5363485 B2 JP 5363485B2 JP 2010522327 A JP2010522327 A JP 2010522327A JP 2010522327 A JP2010522327 A JP 2010522327A JP 5363485 B2 JP5363485 B2 JP 5363485B2
Authority
JP
Japan
Prior art keywords
transaction
aggregated
transactions
item
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010522327A
Other languages
English (en)
Other versions
JP2010537338A (ja
Inventor
ベッカール、マイケル、ジェームズ
カーニー、マイケル、ジョン
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2010537338A publication Critical patent/JP2010537338A/ja
Application granted granted Critical
Publication of JP5363485B2 publication Critical patent/JP5363485B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5038Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/506Constraint

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)

Description

本発明の実施形態は、トランザクション処理スループットを高めるための自動化されたトランザクション集約に関する。
フローベース・プログラミング(Flow−based Programming、FBP)とも呼ばれるデータフロー・プログラミングは、大量バッチ・データ処理の表現を簡単かつ有効にするのに使用されてきた技法である。簡単なのは、ロジックが自然に取り込まれるからである。有効なのは、並列処理とパイプライン化並列処理との両方を使用してスループットを高めることができるからである。しかし、これら同じフローベース・プログラミング技法が、オンライン処理アプリケーションおよびトランザクション処理アプリケーションの表現の手段としてはあまりよく認識されていない。
フローベース・トランザクション処理(Flow−Based Transaction Processing、FBTP)は、高パフォーマンストランザクション処理システムを作成するのに使用されるフローベースのアプリケーション開発技法を記述するものである。顧客は、トランザクション処理を包含するためにFBPシステム(たとえば、インターナショナル・ビジネス・マシーンズ・コーポレーション社のDataStage(登録商標)製品)の機能性を拡張することを望む。顧客は、結果のシステムの高パフォーマンスおよび共通のグラフィカル開発ツーリングを使用してトランザクション処理と大量バッチ・データ処理との間でビジネス・ロジックを共用する能力の両方から価値を導出する。
トランザクションのコンポジションを実行する既存システムがある。Microsoft(登録商標)Transaction Server(MTS)とJava(登録商標)2 Platform Enterprise Edition(J2EE)アプリケーション・サーバとの両方が、宣言的トランザクション・コンポジションを特徴とする(JavaおよびすべてのJavaベースの商標およびロゴは、米国、他国、またはその両方でのSun Microsystems,Inc.社の商標であり、Microsoftは、米国、他国、またはその両方でのMicrosoft Corporation社の商標である)。
米国特許出願公開第2005/0086360号明細書
しかし、これらのシステムは、データフロー・ネットワークとして表されてはいないので、付随するデータ分離プロパティの恩恵を受けることができず、したがって、これらが達成できるトランザクション集約のスケールは、より低く、これによって、スループットを高める能力が制限される。
提供されるのは、トランザクション処理スループットを高める方法、コンピュータ・プログラム製品、コンピュータ・プログラム、およびシステムである。メッセージ識別子およびセッション識別子を有するトランザクション・アイテムが入手される。そのトランザクション・アイテムは、他のトランザクション・アイテムが同一のセッション識別子を有しない、集約されたトランザクションのリスト内の最も古い集約されたトランザクションに追加される。実行判断基準を満足した、集約されたトランザクションのリスト内の最初の集約されたトランザクションが実行される。集約されたトランザクションがコミットしていないことの判定に応答して、集約されたトランザクションは、複数のより小さい集約されたトランザクションに分割され、各集約されたトランザクションのターゲット・サイズは、システム・スループットの測定値に基づいて調整される。
本発明の好ましい実施形態を、例としてのみ、添付図面を参照してこれから説明する(同種の参照番号は、全体を通じて対応する部分を表す)。
ある種の実施形態によるコンピューティング・デバイスの詳細を示す図である。 ある種の実施形態によるトランザクション・プロセスを伴うデータフロー図である。 ある種の実施形態によるコミットおよびエラーの処理を伴うデータフロー図である。 ある種の実施形態によるポイズン(有害)・キュー(poison queue)を伴うデータフロー図である。 ある種の実施形態によるトランザクション処理のフェーズのリストを示す図である。 ある種の実施形態による集約されたトランザクションの処理を伴うデータフロー図である。 ある種の実施形態によるパイプラインセーフ概念を伴うデータフロー図である。 ある種の実施形態による並列性の使用を伴う図である。 ある種の実施形態によるロジックを示す図である。 ある種の実施形態によるロジックを示す図である。 ある種の実施形態によるロジックを示す図である。 ある種の実施形態に従って使用できるシステム・アーキテクチャを示す図である。
次の説明では、本明細書の一部を形成し、本発明の複数の実施形態を示す添付図面を参照する。本発明の範囲から逸脱せずに、他の実施形態を利用でき、構造的変更および動作変更を行うことができることを理解されたい。
実施形態は、システムの振る舞いがそれでも正しいが、平均トランザクション・サイズをはるかにより大きくすることができる形で、個々のトランザクションをより大きいトランザクションに集約できるトランザクション処理システムを作成し、展開することを可能にする。これは、関連するトランザクション・リソース(たとえば、データベース、キューイング・システム、トランザクション・ファイル・システムなど)に対するはるかにより多数の変更にまたがってトランザクション調整のコストを償却することによって、総合システム・スループットを改善することができる。これらのコストは、分散トランザクション調整環境で特に高い可能性がある。
実施形態は、自動的な形でオーバヘッドを減らし、スループットが高まりつつある間にサイズを増やし、スループットが悪影響を受ける場合にサイズを自動的に減らす、トランザクションを集約する適応ロジックを提供する。
実施形態は、データフロー・ネットワークとしてまたは同等のデータフローベースのプログラミング言語を使用してトランザクション処理システムを表す。実施形態は、トランザクション集約が可能である時の判定を可能にするデータ分離プロパティの識別にも依存する。ある種の実施形態では、データ分離プロパティは、バッチスタイル・データフロー・システムでの並列性の可能性を表すのに使用されるものと同一とすることができる。さらに、データフロー・ネットワークの集合指向の性質は、自動化された集約が働くことを可能にする。
図1に、ある種の実施形態によるコンピューティング・デバイスの詳細を示す。クライアント・コンピュータ100は、通信経路190を介してサーバ・コンピュータ120に接続される。クライアント・コンピュータ100は、1つまたは複数のクライアント・アプリケーション110を含む。
サーバ・コンピュータ120は、トランザクション集約調整(TAA)システム130、調整データ140(たとえば、システム・スループットの測定値)、集約されたトランザクションのリスト150、および1つまたは複数のサーバ・アプリケーション160を含む。サーバ・コンピュータ120は、クライアント・コンピュータ100にデータ・ストア170内のデータへのアクセスを与える。
クライアント・コンピュータ100およびサーバ・コンピュータ120は、サーバ、メインフレーム、ワークステーション、パーソナル・コンピュータ、ハンドヘルド・コンピュータ、ラップトップ・テレフォニ・デバイス、ネットワーク・アプライアンス、コンピュータ・クラスタ、その他など、当技術分野で既知のすべてのコンピューティング・デバイスを含むことができる。
通信経路190は、ピアツーピア・ネットワーク、スポーク・アンド・ハブ・ネットワーク、ストレージ・エリア・ネットワーク(SAN)、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、インターネット、イントラネット、その他など、すべてのタイプのネットワークを含むことができる。
データ・ストア170は、直接アクセス・ストレージ・デバイス(DASD)、Just a Bunch of Disks(JBOD)、Redundant Array of Independent Disks(RAID)、仮想化デバイスその他など、数多くのストレージ・デバイスを含むことができる。
プロセスを、データフロー図として記述することができる。プロセスを、データフロー図、オペレータ、およびアークというコンポーネントから構成することができる。データフロー図は、グラフの頂点/ボックスがオペレータと呼ばれ、アークがデータの有向フローを記述する有向グラフとして説明することができる。データフロー図は、さまざまなデータ・ソースから異なるオペレータを介してさまざまなデータ・ターゲットへのデータ・フローとしてデータを記述する。データフロー図は、データフロー・プログラミング言語から描くか作成することができる。オペレータは、外部リソースからデータを読み取り、外部リソースにデータを書き込み、かつ/またはそれを行っている間にデータ変換を適用することができる。一般に、オペレータは、すべての着信アークからのデータを消費することができ、すべての発信アーク上でデータを作ることができる。通常のデータフロー・プロセス−オーサリング・ツールでは、多数のオペレータが、一般的なデータ・アクセスおよび変換を提供するために組込みオペレータとして提供され、他のオペレータは、ユーザによって作成され、システムに簡単に統合され得る。アークは、2つの接続されたオペレータの間のデータの流れを表す。アークは、先入れ先出し(FIFO)キューとして振る舞う。すなわち、あるアーク上のデータ・アイテムは、互いに追い越すことができない。これらのデータ・アイテムは、それが入った順序でアークから出る。
継続的プロセスは、継続的データ・ソース(すなわち、継続的にデータを供給するデータ・ソース)から読み取り、入力データが使用可能になる時に入力データの対応する結果データを生成するプロセスと説明することができる。
トランザクション・プロセスは、そのデータ・ソースとしてトランザクション・リソースから読み取り、そのターゲットとしてトランザクション・データ・リソースに書き込む継続的プロセスである。これの通常の事例は、メッセージ・キューから読み取ることおよび1つまたは複数のデータベース・システム内の1つまたは複数のデータベース・テーブルに書き込むこと、ならびに出力メッセージ・キューおよびトランザクション・ファイル・システムに書き込むことである。
説明を簡単にするために、トランザクション・プロセスが単一の入力オペレータを有すると仮定する。入力としての複数のオペレータを、単一フィードに事前に合併できることに留意されたい。
図2に、ある種の実施形態によるトランザクション・プロセスのデータフロー図200を示す。図2では、メッセージ・キュー・ゲット・メソッド(MQ get)が、メッセージ・キューからメッセージを取り出す。lookupは、テーブル内のルックアップを実行する。変換(xform)は、データを変換する。関係データベース管理システム(RDBMS)のinsert、update、およびdeleteは、テーブルに対してこれらのアクションを実行する。メッセージ・キュー・プット・メソッド(MQ put)は、メッセージをメッセージ・キューに書き込む。
入力から読み取られた各データ・アイテムを、トランザクション・アイテムと呼ぶ。各トランザクション・アイテムは、セッション識別子(SID)ならびにトランザクションの内容を記述するのに使用されるすべての他のデータを有する。2つのトランザクション・アイテムが同一のSIDを持っている時に、これは、それらが別々のトランザクションで処理されなければならず、これらのトランザクションが、トランザクション・アイテムの到着の順序で実行されなければならないことを意味する。各トランザクション・アイテムは、同一のSIDを有するすべてのトランザクションに一意のメッセージ識別子(MID)をも持つ。異なるSID値を有する2つのトランザクション・アイテムを、同一トランザクションの一部または別々のトランザクションの一部として一緒に処理することができ、この処理の順序は、問題ではない。
ある種の実施形態では、SIDは、異なるSIDを有するすべての2つのメッセージを並列に処理できる形で入力メッセージに関連付けられたトークンである。実際には、これは、並列に処理できないメッセージのセットを識別することと、同一セット内のすべてのメッセージに同一のSIDを関連付けることとによって達成される。ある種の実施形態では、SIDは、メッセージの一部である(たとえば、アカウント番号または顧客番号が、セッションを識別することができ、あるいは、ブラウザ・クッキー値を、インターネット・アプリケーション(たとえば、オンライン・ショッピング)のSIDとすることができる)。
ある種の実施形態で、MIDは、1つのトランザクション実施の一部として他の入力メッセージと組み合わせて実行される場合であっても入力メッセージを一意に識別する、入力メッセージに関連付けられたトークンである。メッセージ・ペイロード内に自然なMIDがない場合には、MIDを、入力キューへのメッセージの到着の順序に基づくカウンタから割り当てられる整数とすることができる。
ある種の実施形態では、メッセージ識別子は、SID内で一意であり、その結果、SID+MIDは、一緒に、そのメッセージの一意IDを形成するようになる。実施形態は、障害を扱うためにこの一意IDを使用する。処理では、入力キューの1つの着信メッセージが、その処理中に処理フロー内で多数のレコードを作成する場合がある(たとえば、すべての勘定残高の表示)。6個のアカウントのそれぞれについて1つ程度のレコードが、1つの着信要求メッセージに起因して作成される場合がある。これらの6個のレコードは、データフロー図全体を移動し、さまざまなオペレータによって分離され、独立に処理され得る。これらのレコードのすべてが、着信要求メッセージと同一のMIDおよびSIDを持つ。したがって、これらのレコードのいずれかに関して何かが失敗する場合に、特定の着信メッセージを一意に識別するSID+MIDを介してそのメッセージに「責任」を負わせることができる。
実施形態は、入力メッセージ順序付け要件が全くない場合であってもシステムに適用可能である。単に理解の質を高めるために、単純な銀行ATMの例を本明細書で提供する(これが、ここでの説明のために非常に単純化された例であることに留意されたい。実際のATMネットワークは、これよりはるかに複雑である)。銀行ATM機のネットワークがあると仮定する。各ATM機の各人が、そのATM機での彼らの個人セッションに関係があるメッセージを作成している。これらのメッセージは、順番に処理されなければならず、したがって、同一のSIDを持たなければならない。しかし、多数のATM機からのメッセージ・ストリームは、最終的にアプリケーションの入力キューに入る時にインターリーブされる。各ATM機は、一時に1人の顧客だけにサービスできるので、実施形態は、ATM機のIDをSIDとして使用することができる。
図3に、ある種の実施形態によるコミットおよびエラーの処理を伴うデータフロー図300を示す。トランザクション・プロセス中に、エラーが収集され、エラー原因文書が生成され、コミット・ブロックに転送される。コミット・ブロックでは、許容できないエラーがない場合には、トランザクション・プロセスがコミットする(すなわち、コミット・ブロックは、エラーがあるが、それでもコミットを行わなければならないと判定することができる)。
図4に、ある種の実施形態によるポイズン・キューを伴うデータフロー図400を示す。トランザクション・プロセスは、関連するポイズン・キューまたはリジェクト・キュー(reject queue)をも有する。ポイズン・キューは、ポイズン・トランザクション・アイテムが置かれるキューと説明することができる。ポイズン・トランザクション・アイテムとは、成功して処理することができないトランザクション・アイテムである。すなわち、そのトランザクション・アイテムを処理するための、「コミット」を含んで「コミット」までの、「MQ get」の後に試みられるすべてのリソース・アクションが、エラーを伴って失敗するか、必ずコミットに失敗する(潜在的に、ある回数の繰り返された試みの後でさえ)。
図4では、トランザクション・フローは、所期の処理フローである主プランすなわち「プランA」および処理できないトランザクションをポイズン・キューまたはリジェクト・キューに置く代替案すなわち「プランB」からなる。
トランザクション・プロセスは、いかなるときも入力での処理可能な並行の別個のセッション識別子(SID)の個数に比例して可能な並列性を有する。各セッションのトランザクション・アイテムは、順次処理されるが、セッションにまたがって、並列性がある。これが、アプリケーション・サーバおよび他のトランザクション処理環境によって頻繁に示される並列性である。
ある種の実施形態では、パフォーマンスを、トランザクション粒度に対して使用可能な並列性をトレード・オフすることによって得ることができる。使用可能な十分に過度の並列性がある場合には、異なるセッションからのトランザクションを集約して、高パフォーマンス実行に十分な並列性を有しながら、オーバーヘッドを減らすことができる。
図5に、ある種の実施形態によるトランザクション処理のフェーズのリストを示す。トランザクション処理は、集約フェーズ510、計算フェーズ512、コミット・フェーズ514、エラー原因を伴うディスアグリケーション(分割)フェーズ516、およびエラー原因を伴わないディスアグリゲーション・フェーズ518を含む。
集約フェーズ510では、トランザクション・アイテムがキューなどのトランザクション・リソースから読み取られる時に、トランザクションを他のトランザクション・アイテムと共により大きいトランザクションに集約できるかどうかを判定するロジックが、開始される。
集約されたトランザクションのリストが、維持される。このリスト内の順序は、トランザクション集約が処理される順序である。着信トランザクション・アイテムは、まだ同一SIDを有するトランザクションを含まない最初の集約されたトランザクションに追加される。
図6に、ある種の実施形態による集約されたトランザクションの処理を伴うデータフロー図600を示す。実行判断基準(たとえば、タイマの満了または集約されたトランザクションのサイズがターゲット・サイズに達するなど)が満足される時に、リストの最初の集約されたトランザクションが、除去され、計算フェーズ512内の処理のためにデータフローに送られる。集約されたトランザクションのデータ(すなわち、集約されたトランザクションを構成するトランザクション・アイテム)は、一度に1トランザクション・アイテムずつ、データフロー図に送られる。集約の最後のトランザクション・アイテムには、作業単位の終り(「ウェーブ」とも称する)マーカが続く。ウェーブ・マーカは、これがトランザクション境界であること、たとえば、これが図6のRDBMS InsertおよびRDBMS Deleteにコミットに進むべきであることのシグナルであるように、フェーズへのシグナルと説明することができる。したがって、ウェーブ・マーカを、計算においてそれが続く集約されたトランザクションの計算フェーズの終りをシグナリングするものとして説明することができる。
この集約フェーズ510での集約されたトランザクションの蓄積は、以前の集約されたトランザクションの計算フェーズ512と並列に継続され得る。
上で述べた実行判断基準は、タイマの満了(トランザクション実行待ち時間に上限を設けるため)および集約されたトランザクションのサイズがターゲット・サイズに達することを含むことができる。
集約されたトランザクションのターゲット・サイズは、適応的に選択される。システムのスループットは、処理される集約されたトランザクションごとに測定される。ターゲット・サイズは、トランザクション・スループットが増える限り、増やされる。トランザクション・スループットが減る時には、ターゲット・サイズが減らされる。ターゲット・サイズの幅が大きくなるのを避けるため、移動平均に基づきターゲット・サイズを調整する、ランダム・ノイズ・ファクタを追加する、等のさまざまな技法がある。実施形態は、そのような調整技法のすべてを包含する。
ある種の実施形態で、集約されたトランザクションのリストの最初のリスト・アイテムを引き止めておかない最適化がある。最初のリスト・アイテムは、集約されたトランザクションのリストに追加される必要がない(たとえば、ウェーブ・マーカが、すべてのリスト・アイテムが処理され、コミットされることを保証するので)で、フローに直接に送られ得る。ウェーブ・マーカが、プロセスのアークを介して流れ、終端オペレータが、その作業単位の計算を終了した時に、計算は、その集約されたトランザクションについて終了したと言われる。
ある種の実施形態で、同一SIDを有する複数のレコードは、下流のデータフロー処理が単一のプロセスで行われず、パイプライン化された処理を使用する可能性があると仮定されるので集約に置かれず、したがって、副作用が起きた際の順次一貫性の保証がない。下流のデータフロー処理が、順次一貫性(たとえば、唯一のプロセスなのでパイプラインがなく、唯一のデータベース接続がある)を提供する場合に、実施形態は、集約ロジックをそれ相応に変更する。具体的に言うと、実施形態は、データの整合性が順序処理によって固有に維持されるので、同一SIDを有する複数のレコードが1つの集約に置かれることを可能にするように集約ロジックを変更する。
図7に、ある種の実施形態によるパイプラインセーフ概念を伴うデータフロー図700を示す。ある種の実施形態では、データフローが、それが更新もするリソースに対して参照(すなわち、ルックアップ)しない場合に、そのデータフローは、パイプラインセーフであると言われる。この状況では、実施形態は、同一SIDを有する複数のアイテムが到着順で処理される限り、同一SIDを有するこれらの複数のトランザクション・アイテムを、アプリケーションのセマンティクスに影響せずに集約されたトランザクションに集約することができる。さらに、実施形態は、集約されたトランザクションを構成する個々のトランザクション・アイテムをデータフロー実行プロセスにパイプライン化することができ、パフォーマンスを改善するためにパイプライン並列性の広範囲の使用を可能にする。さらに、実施形態は、最初の集約されたトランザクション・セットを蓄積する必要がない。そうではなく、この最初のセットは、仮想的に存在することができる。最初の集約されたトランザクション・セットについて識別された各アイテムを、フロー・グラフに直接に送ることができる。上で説明した「実行判断基準」が満足される時点で、実施形態は、作業ユニットの終りマーカをフロー・グラフに置くことができ、その直後の次の集約されたトランザクション・セットからのアイテムのパイプライン化を開始することができる。実施形態は、後続の集約されたトランザクションが、先行するトランザクションが完全にコミットされる(すなわち、後で説明するディスアグリゲーションによって作成されるものを含むすべてのトランザクションを含めて)まで、コミットしないことを保証する。
ある種の実施形態で、データフローがパイプラインセーフではない場合に、実施形態は(a)データフロー全体を通じて集約されたトランザクションのトランザクション・アイテムを1つずつ処理するが、計算フェーズ512の後のすべてのコミットを留保するか、(b)集約されたトランザクションを分離し、その結果、同一SIDを有する2つのトランザクション・アイテムが、同一の集約されたトランザクション・セットに入らないようにする。集約されたトランザクション・セットは、1つずつ処理される(その最終コミットを含めて)ので、これは、プロセスのセマンティクスの維持を保証する。
ある種の実施形態で、パイプラインセーフは、たとえば、データフローがテーブルY内のアカウント番号Xをルックアップでき、その後、その結果を用いてテーブルZを更新できることを意味する。テーブルは、互いに素であり、したがって、ルックアップと更新との間の依存関係はない。したがって、実施形態は、セマンティクスの変化を一切伴わずに要求をフローにパイプライン化することができる。フローのオペレータの間に任意の種類のバッファがある可能性があり、セマンティクスは、影響されない。ある種の実施形態では、すべてのルックアップが実行され、その後、すべての更新が実行される。ある種の実施形態では、ルックアップおよび更新が、インターリーブされる。
パイプラインセーフは、アカウント番号Xを持つものがパイプライン内にないことがわかっている限り、データフローが、テーブルY内のアカウント番号Xをルックアップでき、その後、アカウント番号Xのために特定の行でテーブルYを更新できることをも意味する。この場合に、テーブルは、互いに素ではないが、行は、互いに素であることがわかっている。
パイプラインセーフでないとは、データフローが、テーブルY内のアカウント番号Xをルックアップでき、その後、ある結果を用いてテーブルYを更新できるが、実施形態が、更新が後続レコードによる後続ルックアップ内でルックアップされるレコードに対するものであるかどうかを知ることができないことを意味する。ルックアップは、同一レコードに対するものであり、またはそれである可能性がある。この場合に、入力メッセージをデータフローにパイプライン化することは、安全ではない。というのは、更新およびルックアップがどのようにインターリーブされるかが未知であり、異なるインターリーブが異なるセマンティクスを作る可能性があるからである。たとえば、すべての入力メッセージが、同一のアカウント番号Xを持つと仮定されたい。すべてのルックアップが、まずテーブルYで実行され、その後すべての更新が実行された場合、結果は、ルックアップおよび更新がインターリーブされる場合とは明らかに異なる可能性がある。
したがって、データフロー図およびそのオペレータのプロパティの分析を介して入手されるデータフローに関する知識を考慮して、実施形態は、実施態様での並列性/オーバーラップに関して積極的とすることができる。
計算フェーズ512で、データフローを介して集約されたトランザクションを処理する時に、個々のトランザクションは、オペレータのグラフを通って流れ、グラフを通る経路は、最終的に、作業単位の終りマーカによってトラバースされ、このマーカは、グラフが空であり、処理の終りが検出できることを保証するために、グラフを通って経路に従うように分割し、結び付く。このウェーブ特徴は、参照によってその全体を本明細書に組み込まれている2005年4月21日に公開された米国特許出願公開第2005/0086360号明細書に記載されている。
データフロー図で流れるすべてのデータ・アイテムは、その作成を引き起こしたオリジナル・トランザクションのセッション識別子(SID)およびメッセージ識別子を持ち、したがって、単一の着信トランザクション・アイテムが、データフロー図に、ある変換ロジックまたはターゲット・リソース宛の多数のデータ・アイテムを作成させる場合に、これらのデータ・アイテムのそれぞれは、そのレコードからのSIDおよびMIDをもつ。
保留中の集約されたトランザクションは、集約されたトランザクションの処理中にプロセスによって表される更新、挿入、削除、エンキュー(キューにいれる)、およびデキュー(キューから出す)などを含む。データフロー図が集約されたトランザクションの処理を完了した後に、実施形態は、保留中の集約されたトランザクションのコミットを試みる。
計算フェーズ中にエラーが検出される、たとえば、SQLデータベース動作が障害を発生するか、変換計算が0による除算を行う場合に、MIDが、エラーを引き起こしたデータ・アイテムから抽出される。複数のエラーが検出される場合には、エラーを引き起こしたトランザクション・アイテムのセットを表すMIDのコレクションがある可能性がある。これらのMIDは、エラー原因と呼ばれ、下で説明するディスアグリケーション・フェーズ516で使用される。計算フェーズを、少なくとも1つのエラーMIDがエラー原因に現れた後に即座に終了することができる。代替案では、エラー原因MIDの完全なセットを収集することができ、あるいは、計算フェーズ512を、ある個数のMIDがエラー原因内で見つかった後に即座に終了することができる。ここで、さまざまな判断を使用することができる。たとえば、エラーは、トランザクション(不良MID)のすべてまたは一部をディスアグリケーション・フェーズ516に向けさせることができる。
計算フェーズが終わった後に、エラー原因がない場合には、実施形態は、コミット・フェーズ514を実行する。エラー原因がある場合には、実施形態は、即座にディスアグリケーション・フェーズ516に進む。
コミットがある場合には、保留中の集約されたトランザクションが、コミットされる。コミットが成功する場合には、これによって、集約されたトランザクション内のすべてのトランザクションの処理が完了し、実施形態は、別の集約されたトランザクションを識別し、その処理を開始するために集約フェーズ510に戻る。
コミットが失敗する場合には、リソースに対するアクションのすべての副作用が、自動的にロール・バックされる(トランザクション・リソースに関して通常通りに)。
ある種の実施形態では、集約フェーズ510中に入力キューをブラウズし、更新動作の残りが成功である時に破壊的デキュー動作を実行することによって、トランザクションの開始を最後の可能な瞬間まで延期することが可能である。すなわち、実施形態は、コミット動作の直前に破壊的デキュー動作を実行する。これは、特定の集約粒度を前提として、トランザクション「オープン時間」をできる限り短く保つ。破壊的デキュー動作とは(破壊的読取りとも称する)、メッセージが読み取られるが削除されないブラウジングとは異なって、メッセージが読み取られ、キューから削除される動作である。
エラー原因を伴うディスアグリゲーション・フェーズ516では、識別されたエラー原因がある場合に、実施形態は、各新しいトランザクションがエラー原因内の多くとも1つのMIDを有するトランザクション・アイテムだけを含むように、集約されたトランザクションを複数のより小さい集約されたトランザクションに分解する。ある種の実施形態では、違反するエラーを引き起こすトランザクション・アイテムが、それ自体の「集約された」トランザクションに分離され、この集約されたトランザクションのそれぞれは、正確に1つのトランザクション・アイテムを含む。次に、実施形態は、これらの新しい集約されたトランザクションが集約オペレータから最初に流れ出る集約されたトランザクションであるかのように、上で説明したものと同一の形でこれらの新しい集約されたトランザクションのそれぞれを処理する。
ある量のディスアグリゲーションの後に、エラー原因である個々のトランザクション・アイテムが、それぞれ単独の「集約された」トランザクションを構成する。この場合に、実施形態は、できる限り多くのディスアグリゲーションを行っており、トランザクション・アイテムは、それでも、障害を引き起こす。ある種の実施形態では、トランザクション・アイテムは、ある回数だけフロー内で再試行され、トランザクション・アイテムが、ある回数だけエラー原因に終わることがわかった後に、そのトランザクション・アイテムは、ポイズン・データとして拒否される。ポイズン・データ・トランザクションは、ポイズン・データ・キューに置かれ、ポイズン・キューへのエンキューと共に、着信キューからのそのトランザクションのデキューを含むトランザクションが、実行される。このトランザクションは、失敗してはならないが、このトランザクションが失敗する場合には、システムがダウンしていると判定される。
エラー原因を伴わないディスアグリゲーション・フェーズ518では、エラー原因がない場合に、システムは、一時的な問題または集約されたトランザクションが単に大きすぎるゆえのリソースの枯渇に起因して、保留中の集約されたトランザクションをコミットするのに失敗した可能性がある。この場合に、実施形態は、集約されたトランザクションを複数のより小さい集約されたトランザクションに分割する(たとえば、トランザクションを、半分に分割する、個々のトランザクション・アイテムに分解するなど)ことによってディスアグリゲートする。その後、実施形態は、これらの新しい集約されたトランザクションが、最初に集約オペレータから流れ出た集約されたトランザクションであるかのように、これらの新しい集約されたトランザクションのそれぞれを、上で説明したものと同一の形で処理する。コミットに失敗した集約されたトランザクションが1つのトランザクション・アイテムからなる場合には、実施形態は、その集約されたトランザクションをポイズン・データとして処理する。
ある種の実施形態では、トランザクション・アイテム用のポイズン・データ・キューを使用する時に、副トランザクションが使用可能である。このポイズン・キューは、異なるロジックを有する代替トランザクション処理データフロー図に供給することができる。この副グラフは、アイテムを異なって処理することを試み、リソースに対する異なるアクションをコミットすることを試みる。トランザクション・アイテムが、オリジナル処理フローに対するポイズンである場合であっても、トランザクション・アイテムを、それでも、副処理フローによって成功して処理することができる。副フローは、トランザクションを再集約することすらでき、そうでない場合に、基本的なトランザクション集約システムについて本明細書で説明するものと同一の技法を使用することができる。副フローは、拒否理由の性質に依存する場合がある。たとえば、無効な名前およびアドレス・データのために拒否されたMIDを、洗浄し、1つの副フロー内で再処理することができ、無効な数値データのために拒否されたMIDを、第2副フローでの修復のためにソースに送り返すことができる。ある種の実施形態では、それぞれが前のフロー(たとえば、オリジナル・フロー、二次フロー、三次フローなど)からの拒否を消費する、この種のフロー・ロジックの任意の長さのチェーンがあってもよい。
図8に、ある種の実施形態による並列性の使用を伴う図800を示す。実施形態は、分割フェーズと共に集約フェーズを先行させることによって、上で説明した技法を並列に実行することができる。分割フェーズは、同一SIDを有するすべてのトランザクション・アイテムが同一パーティションになることを保証する任意のロジックによって着信トランザクション・アイテムをパーティションに分割する。各パーティションは、集約から上の処理の別々のインスタンスへの入力となる。ある種の実施形態では、共通のポイズン・データ・キューを、すべてのパーティションによって使用することができる。そのような並列性は、分割のためにSIDに対してハッシュ関数を使用する。ハッシュ・パーティション関数は、同一のキーを有するレコードが同一パーティションに流れ込むことを保証する。
TAAシステム130は、集約フェーズ510によって作成された集約されたトランザクションのターゲット・サイズを、システム・スループットの測定値に基づいて自動的に調整する。ディスアグリゲーションおよび再試行ループは、システム・スループットを下げる可能性があるので、TAAシステム130は、自動的にターゲット・サイズをより小さくし、その結果、ターゲット集約サイズは、できる限り大きくなるが、ポイズン・トランザクション・アイテムを含む可能性が高くなるほどに大きくはなく、一時的理由またはリソース制限の理由で障害を発生する可能性が高くなるほどに大きくはならないように選択される。
ある種の実施形態では、集約は、デッドロックを作成し、ディスアグリゲーションは、非集約実施態様では発生しないはずのすべてのデッドロックをクリアすることができる。スループットに基づく集約のサイズの適応調整は、全体的なシステムパフォーマンスを低下させるようにこの問題を非常に悪化させるのを防ぐ。デッドロックおよびタイムアウトは、重い負荷の下で最も頻繁に発生する。重い負荷は、大きいトランザクションまたは多数の小さいトランザクションのオーバーヘッドによって発生し得る。トランザクションのサイズを調整することによって、全体的なシステムパフォーマンスを改善し、したがってデッドロックの可能性を減らすことができる。
実施形態は、処理ロジックを表し、その結果、処理ロジックを、集約されたトランザクションのセットに適用できるようになり、その集約は、同一SIDを有するトランザクションのFIFO処理が必要であることに配慮する。ある種の実施形態では、処理ロジックは、データフロー技法を使用して表され、並列性(パーティションとパイプラインとの両方)を、可能な時には自動化されたトランザクション集約と協力して活用できるという追加の利益を伴う。
図9、10、および11に、ある種の実施形態によるロジックを示す。制御は、ブロック900(図9)で、TAAシステム130がメッセージ識別子(MID)およびセッション識別子(SID)を有するトランザクション・アイテムを入手することから始まる。ブロック902で、TAAシステム130は、トランザクション・アイテムを、他のトランザクション・アイテムが同一のSIDを有しない最も古い(すなわち、集約されたトランザクションのリスト150の順で)集約されたトランザクションに追加する。ブロック904で、TAAシステム130は、集約されたトランザクションのリスト150内の最初の集約されたトランザクションが実行判断基準(たとえば、タイマの満了、集約されたトランザクションのサイズがターゲット・サイズに達する、またはディスアグリゲーション(下で説明する図10の916、図11の924)によって作成される)を満足したかどうかを判定する。そうである場合には、処理はブロック906に継続し、そうでない場合には、処理はブロック900にループ・バックする。
ブロック906で、TAAシステム130は、実行判断基準を満足した最初の集約されたトランザクションをデータフロー実行プロセスに送り、これを集約されたトランザクションのリスト150から除去する。ブロック908で、集約されたトランザクションがデータフローの通過を完了した後に、TAAシステム130は、コミットするかどうかを判定する。ある種の実施形態で、TAAシステム130は、トランザクション内のすべてのレコードの後に続くウェーブ・マーカに頼って、コミット・フェーズをいつ始めるべきかを知る。そうである場合には、処理はブロック910に継続し、そうでない場合には、処理はブロック912(図10)に継続する。ブロック910では、TAAシステム130は、集約されたトランザクションをコミットする。ブロック911で、TAAシステム130は、システム・スループットの測定値に基づいて集約されたトランザクションのターゲット・サイズを調整し、処理は、ブロック904にループ・バックする。
ブロック912では、TAAシステム130は、入手可能なエラー原因があるかどうかを判定する。そうである場合には、処理はブロック914に継続し、そうでない場合には、処理はブロック922(図11)に継続する。ブロック914では、TAAシステム130は、ディスアグリゲーションを実行すべきかどうかを判定する。たとえば、TAAシステム130は、ディスアグリゲーションが集約されたトランザクションに対して既に複数回実行されたかどうかを判定する。ある種の実施形態では、これが可能である。というのは、三次ディスアグリゲーション・プロセスが、それらが再処理するメッセージが既に拒否されたことを知っており、あるいは、不良メッセージに再試行カウンタを用いてタグ付けできるからである。ディスアグリゲーションを実行する場合には、処理はブロック916に進み、そうでない場合には、処理はブロック926(図11)に継続する。ブロック916では、TAAシステム130は、集約されたトランザクションを複数のより小さい集約されたトランザクションに分解し、各新しい集約されたトランザクションがエラー原因内のMIDを有する多くとも1つのトランザクション・アイテムを含むようにする。ブロック916(図10)から、処理はブロック928(図11)に進む。ブロック928では、新しいより小さい集約されたトランザクションを集約されたトランザクションのリスト150の前面に置き、これらに特別にラベルを付け、その結果、これらの新たに作成された集約されたトランザクション(以前に試みられた集約されたトランザクションの分解物である)が実行判断基準を満足したと考えられるようにする。したがって、これらの新しいディスアグリゲーションの最初の分解物が、即座に計算フェーズに送られる。ブロック930では、TAAシステム130は、システム・スループットの測定値に基づいて集約されたトランザクションのターゲット・サイズを調整し、処理は、ブロック904(図9)にループ・バックする。
ブロック922では、TAAシステム130は、入手可能なエラー原因がないにもかかわらず、ディスアグリゲーションを実行するかどうかを判定する。そうである場合には、処理はブロック924に継続し、そうでない場合には、処理はブロック926に継続する。ブロック924では、TAAシステム130は、集約されたトランザクションを複数のより小さい集約されたトランザクションに分解し、処理はブロック928に進む。ブロック926では、ポイズン・キュー処理を実行する。これは、トランザクション・アイテムをポイズン・キューに送ることと、オプションで、二次フロー、三次フローなどを実行することとを含む。ブロック926から、処理はブロック930に継続する。
したがって、実施形態は、集約されたトランザクション・サイズの自動チューニングを提供する。実施形態は、より高速のトランザクション処理および自動チューニングを提供する。実施形態は、データフローをトランザクション処理と組み合わせる。
実施形態は、抽出、変換、およびロード(ETL)ツール、複合イベント処理システム、ならびにプロセス・レベルとデータ・レベルとの両方での情報統合と両立できる。
ある種の実施形態で、ポイズン・データ・アイテムを作ったセッションについて処理すべきメッセージがある場合に、そのセッションを脇に追いやることができる(すなわち、そのセッションの後続メッセージは、認識され、すべてがポイズン・データ・アイテムとして分類される)。
追加実施形態の詳細
説明された動作を、ソフトウェア、ファームウェア、ハードウェア、またはその組合せを作るための標準的なプログラミング技法または工学技法あるいはその両方を使用して、方法、コンピュータ・プログラム製品、または装置として実施することができる。
実施形態のそれぞれは、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、またはハードウェア要素とソフトウェア要素との両方を含む実施形態の形をとることができる。実施形態を、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがこれらに限定はされないソフトウェアで実施することができる。
さらに、実施形態は、コンピュータまたは任意の命令実行システムによるまたはこれに関連する使用のためのプログラム・コードを提供するコンピュータ使用可能媒体またはコンピュータ可読媒体からアクセス可能なコンピュータ・プログラム製品の形をとることができる。この説明において、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、命令実行装置、または命令実行デバイスによるまたはこれに関連する使用のためのプログラムを含み、格納し、通信し、伝搬し、または搬送することのできる任意の装置とすることができる。
説明された動作を、コンピュータ使用可能媒体またはコンピュータ可読媒体内で維持されるコードとして実施することができ、ここで、プロセッサは、コンピュータ可読媒体からコードを読み取り、実行することができる。媒体は、電子的、磁気的、光学的、電磁的、赤外線の、または半導体のシステム(または装置もしくはデバイス)または伝搬媒体とすることができる。コンピュータ可読媒体の例は、半導体またはソリッド・ステートのメモリ、磁気テープ、リムーバブル・コンピュータ・ディスケット、リジッド磁気ディスク、光ディスク、磁気記憶媒体(たとえば、ハード・ディスク・ドライブ、フロッピィ・ディスク、テープなど)、揮発性および不揮発性のメモリ・デバイス(たとえば、ランダム・アクセス・メモリ(RAM)、DRAM、SRAM、読取り専用メモリ(ROM)、PROM、EEPROM、フラッシュ・メモリ、ファームウェア、プログラマブル・ロジックなど)を含む。光ディスクの現在の例は、コンパクト・ディスク−読取り専用メモリ(CD−ROM)、読み書き可能コンパクト・ディスク(CD−R/W)、およびDVDを含む。
説明された動作を実施するコードは、さらに、ハードウェア・ロジック(たとえば、集積回路チップ、プログラマブル・ゲート・アレイ(PGA)、特定用途向け集積回路(ASIC)など)で実施することができる。さらに、説明された動作を実施するコードは、「伝送信号」で実施することができ、ここで、伝送信号は、空間を介してまたは光ファイバ、銅ワイヤなどの伝送媒体を介して伝搬することができる。その中でコードまたはロジックが符号化される伝送信号は、さらに、無線信号、衛星伝送、ラジオ波、赤外線信号、Bluetoothなどを含むことができる。コードまたはロジックが符号化される伝送信号は、送信局によって送信され、受信局によって受信されることができ、ここで、伝送信号内で符号化されたコードまたはロジックは、受信するおよび送信する局またはデバイスで復号され、ハードウェアまたはコンピュータ可読媒体に格納され得る。
コンピュータ・プログラム製品は、その中でコードを実施できるコンピュータ使用可能媒体、コンピュータ可読媒体、ハードウェア・ロジック、または伝送信号あるいはこれらすべてを含むことができる。もちろん、実施形態の範囲から逸脱せずに、この構成に対して多数の変更を行えることと、コンピュータ・プログラム製品が当技術分野で既知の任意の適切な情報担持媒体を含むことができることとを、当業者は認めるであろう。
用語ロジックは、たとえば、ソフトウェア、ハードウェア、ファームウェア、またはソフトウェアとハードウェアとの組合せあるいはこれらすべてを含むことができる。
ある種の実施態様は、人またはコンピュータ可読コードをコンピューティング・システムに一体化する自動化された処理によってコンピューティング・インフラストラクチャを展開する方法を対象とすることができ、ここで、コンピューティング・システムと組み合わされたコードによって、説明された実施態様の動作を実行することが可能になる。
図9、10、および11のロジックは、特定の順序で発生する特定の動作を記述する。代替実施形態では、ロジック動作のいくつかを、異なる順序で、変更して、または除去して実行することができる。さらに、動作を、上で説明したロジックに追加することができ、それでも、説明される実施形態に従うものとすることができる。さらに、本明細書で説明した動作は、順次発生することができ、あるいは、ある動作を並列に処理することができ、あるいは、単一プロセスによって実行されるものとして説明された動作を、分散プロセスによって実行することができる。
図9、10、および11の図示されたロジックを、ソフトウェア、ハードウェア、プログラマブルおよび非プログラマブルのゲート・アレイ・ロジック、あるいはハードウェア、ソフトウェア、またはゲート・アレイ・ロジックのある組合せで実施することができる。
図12に、ある種の実施形態に従って使用できるシステム・アーキテクチャ1000を示す。クライアント・コンピュータ100またはサーバ・コンピュータ120あるいはその両方は、システム・アーキテクチャ1000を実施することができる。システム・アーキテクチャ1000は、プログラム・コードの格納または実行あるいはその両方に適し、システム・バス1020を介してメモリ要素1004に直接にまたは間接に結合された少なくとも1つのプロセッサ1002を含む。メモリ要素1004は、プログラム・コードの実際の実行中に使用されるローカル・メモリ、バルク・ストレージ、および実行中にコードをバルク・ストレージから取り出さなければならない回数を減らすために少なくとも一部のプログラム・コードの一時的ストレージを提供するキャッシュ・メモリを含むことができる。メモリ要素1004は、オペレーティング・システム1005および1つまたは複数のコンピュータ・プログラム1006を含む。
入出力(I/O)デバイス1012、1014(キーボード、ディスプレイ、ポインティング・デバイスなどを含むがこれらに限定はされない)を、直接にまたは介在する入出力コントローラ1010を介してのいずれかでシステムに結合することができる。
ネットワーク・アダプタ1008を、システムに結合して、データ処理システムが介在するプライベートネットワークまたはパブリックネットワークを介して他のデータ処理システム、リモート・プリンタ、またはリモート・ストレージ・デバイスに結合されるようにすることを可能にすることもできる。モデム、ケーブル・モデム、およびイーサネット・カードが、現在使用可能なタイプのネットワーク・アダプタ1008のうちのほんの一例にすぎない。システム・アーキテクチャ1000を、ストレージ1016(たとえば、磁気ディスクドライブ、光ディスク・ドライブ、テープ・ドライブなどの不揮発性ストレージ・エリア)に結合することができる。ストレージ1016は、内蔵ストレージ・デバイス、付加されたストレージ、またはネットワーク・アクセス可能ストレージを含むことができる。ストレージ1016内のコンピュータ・プログラム1006を、当技術分野で既知の形でメモリ要素1004にロードし、プロセッサ1002によって実行することができる。
システム・アーキテクチャ1000は、図示より少数のコンポーネント、この図に示されていない追加コンポーネント、または図示のコンポーネントおよび追加コンポーネントのある組合せを含むことができる。システム・アーキテクチャ1000は、メインフレーム、サーバ、パーソナル・コンピュータ、ワークステーション、ラップトップ、ハンドヘルド・コンピュータ、テレフォニ・デバイス、ネットワーク・アプライアンス、仮想化デバイス、ストレージ・コントローラなど、当技術分野で既知のすべてのコンピューティング・デバイスを含むことができる。
本発明の実施形態の前述の説明は、例示および説明のために提示されたものである。網羅的であることまたは実施形態を開示されたそのままの形態に限定することは、意図されていない。多数の修正形態および変形形態が、上の教示に鑑みて可能である。実施形態の範囲が、この詳細な説明によって限定されるのではなく、本明細書に添付された特許請求の範囲によって限定されることが意図されている。上の明細書、例、およびデータは、実施形態の構成の製造および使用の完全な説明を提供する。多数の実施形態をこの実施形態の趣旨および範囲から逸脱せずに作ることができるので、実施形態は、添付の特許請求の範囲または後に提出される特許請求の範囲およびその同等物に存する。

Claims (15)

  1. トランザクショナル・リソースからメッセージ識別子およびセッション識別子を有するトランザクション・アイテムを入手することと、
    他のトランザクション・アイテムが同一のセッション識別子を有しない集約されたトランザクションのリスト内の最も古い集約されたトランザクションに前記トランザクション・アイテムを追加することと、
    タイマの満了および集約されたトランザクションのサイズが所定のターゲット・サイズに達することのうちの少なくとも1つを含む実行判断基準を満足した集約されたトランザクションの前記リスト内の最初の集約されたトランザクションをデータフロー実行プロセスに送ることにより実行することと、
    前記集約されたトランザクションがコミットしていないことの判定に応答して、前記集約されたトランザクションを複数のより小さい集約されたトランザクションに分解することであって、
    (1)エラー原因となったトランザクション・アイテムのメッセージ識別子が入手可能であることを判定することと、
    各新しい集約されたトランザクションが前記エラー原因内のメッセージ識別子を有する多くとも1つのトランザクション・アイテムを含むように、前記集約されたトランザクションを前記複数のより小さい集約されたトランザクションに分解することを含む、
    または、
    (2)エラー原因となったトランザクション・アイテムのメッセージ識別子が入手可能でないことを判定することと、
    前記集約されたトランザクションを前記複数のより小さい集約されたトランザクションに分解することを含む、
    ことであることと、
    システム・スループットの集約されたトランザクションごとに測定された測定値に基づいて各集約されたトランザクションのターゲット・サイズを調整することと
    を含む、コンピュータ実施される方法。
  2. 前記複数のより小さい集約されたトランザクションを集約されたトランザクションの前記リストの前面に置くことと、
    前記複数のより小さい集約されたトランザクションに既に前記実行判断基準を満足したものとしてラベルを付けることと
    をさらに含む、請求項1に記載の方法。
  3. 着信トランザクション・アイテムをパーティションに分割することであって、同一セッション識別子を有するトランザクション・アイテムが同一パーティション内にあること、
    をさらに含む、請求項1または2のいずれかに記載の方法。
  4. 前記集約されたトランザクションを構成する個々のトランザクション・アイテムをデータフロー実行プロセスにパイプライン化すること
    をさらに含む、請求項1ないしのいずれかに記載の方法。
  5. 前記集約されたトランザクションがコミットしたことの判定に応答して、システム・スループットの測定値に基づいて各集約されたトランザクションの前記ターゲット・サイズを調整すること
    をさらに含む、請求項1ないしのいずれかに記載の方法。
  6. コンピュータ上で実行された時に前記コンピュータに、
    トランザクショナル・リソースからメッセージ識別子およびセッション識別子を有するトランザクション・アイテムを入手させ、
    他のトランザクション・アイテムが同一のセッション識別子を有しない集約されたトランザクションのリスト内の最も古い集約されたトランザクションに前記トランザクション・アイテムを追加させ、
    タイマの満了および集約されたトランザクションのサイズが所定のターゲット・サイズに達することのうちの少なくとも1つを含む実行判断基準を満足した集約されたトランザクションの前記リスト内の最初の集約されたトランザクションをデータフロー実行プロセスに送ることにより実行させ、
    前記集約されたトランザクションがコミットしていないことの判定に応答して、前記集約されたトランザクションを複数のより小さい集約されたトランザクションに分解するときに、
    (1)エラー原因となったトランザクション・アイテムのメッセージ識別子が入手可能であることを判定させ、
    各新しい集約されたトランザクションが前記エラー原因内のメッセージ識別子を有する多くとも1つのトランザクション・アイテムを含むように、前記集約されたトランザクションを前記複数のより小さい集約されたトランザクションに分解させる、
    または、
    (2)エラー原因となったトランザクション・アイテムのメッセージ識別子が入手可能でないことを判定させ、
    前記集約されたトランザクションを前記複数のより小さい集約されたトランザクションに分解させる、
    システム・スループットの集約されたトランザクションごとに測定された測定値に基づいて各集約されたトランザクションのターゲット・サイズを調整させる
    コンピュータ可読プログラムを含むコンピュータ・プログラム。
  7. 前記コンピュータ可読プログラムが、コンピュータ上で実行される時に、前記コンピュータに、
    前記複数のより小さい集約されたトランザクションを集約されたトランザクションの前記リストの前面に置かせ、
    前記複数のより小さい集約されたトランザクションに既に前記実行判断基準を満足したものとしてラベルを付けさせる
    請求項に記載のコンピュータ・プログラム。
  8. 前記コンピュータ可読プログラムが、コンピュータ上で実行される時に、前記コンピュータに、
    着信トランザクション・アイテムをパーティションに分割させ、同一セッション識別子を有するトランザクション・アイテムが同一パーティション内にある
    請求項6または7のいずれかに記載のコンピュータ・プログラム。
  9. 前記コンピュータ可読プログラムが、コンピュータ上で実行される時に、前記コンピュータに、
    前記集約されたトランザクションを構成する個々のトランザクション・アイテムをデータフロー実行プロセスにパイプライン化させる
    請求項6ないし8のいずれかに記載のコンピュータ・プログラム。
  10. 前記コンピュータ可読プログラムが、コンピュータ上で実行される時に、前記コンピュータに、
    前記集約されたトランザクションがコミットしたことの判定に応答して、システム・スループットの測定値に基づいて各集約されたトランザクションの前記ターゲット・サイズを調整させる
    請求項6ないし9のいずれかに記載のコンピュータ・プログラム。
  11. 動作を実行できるロジックであって、前記動作が
    トランザクショナル・リソースからメッセージ識別子およびセッション識別子を有するトランザクション・アイテムを入手することと、
    他のトランザクション・アイテムが同一のセッション識別子を有しない集約されたトランザクションのリスト内の最も古い集約されたトランザクションに前記トランザクション・アイテムを追加することと、
    タイマの満了および集約されたトランザクションのサイズが所定のターゲット・サイズに達することのうちの少なくとも1つを含む実行判断基準を満足した集約されたトランザクションの前記リスト内の最初の集約されたトランザクションをデータフロー実行プロセスに送ることにより実行することと、
    前記集約されたトランザクションがコミットしていないことの判定に応答して、前記集約されたトランザクションを複数のより小さい集約されたトランザクションに分解することであって、
    (1)エラー原因となったトランザクション・アイテムのメッセージ識別子が入手可能であることを判定することと、
    各新しい集約されたトランザクションが前記エラー原因内のメッセージ識別子を有する多くとも1つのトランザクション・アイテムを含むように、前記集約されたトランザクションを前記複数のより小さい集約されたトランザクションに分解することを含む、
    または、
    (2)エラー原因となったトランザクション・アイテムのメッセージ識別子が入手可能でないことを判定することと、
    前記集約されたトランザクションを前記複数のより小さい集約されたトランザクションに分解することを含む、
    ことであることと、
    システム・スループットの集約されたトランザクションごとに測定された測定値に基づいて各集約されたトランザクションのターゲット・サイズを調整することと
    を含む、ロジック
    を含むシステム。
  12. 前記動作が
    前記複数のより小さい集約されたトランザクションを集約されたトランザクションの前記リストの前面に置くことと、
    前記複数のより小さい集約されたトランザクションに既に前記実行判断基準を満足したものとしてラベルを付けることと
    をさらに含む、請求項11に記載のシステム。
  13. 前記動作が、
    着信トランザクション・アイテムをパーティションに分割することであって、同一セッション識別子を有するトランザクション・アイテムが同一パーティション内にあること、 をさらに含む、請求項11または12に記載のシステム。
  14. 前記動作が、
    前記集約されたトランザクションを構成する個々のトランザクション・アイテムをデータフロー実行プロセスにパイプライン化すること
    をさらに含む、請求項11ないし13のいずれかに記載のシステム。
  15. 前記動作が、
    前記集約されたトランザクションがコミットしたことの判定に応答して、システム・スループットの測定値に基づいて各集約されたトランザクションの前記ターゲット・サイズを調整すること
    をさらに含む、請求項11ないし14のいずれかに記載のシステム。
JP2010522327A 2007-08-30 2008-08-22 トランザクション処理スループットを高めるためのトランザクション集約 Expired - Fee Related JP5363485B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/848,115 US8347292B2 (en) 2007-08-30 2007-08-30 Transaction aggregation to increase transaction processing throughout
US11/848,115 2007-08-30
PCT/EP2008/061003 WO2009027329A1 (en) 2007-08-30 2008-08-22 Transaction aggregation to increase transaction processing throughput

Publications (2)

Publication Number Publication Date
JP2010537338A JP2010537338A (ja) 2010-12-02
JP5363485B2 true JP5363485B2 (ja) 2013-12-11

Family

ID=40114198

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010522327A Expired - Fee Related JP5363485B2 (ja) 2007-08-30 2008-08-22 トランザクション処理スループットを高めるためのトランザクション集約

Country Status (6)

Country Link
US (2) US8347292B2 (ja)
EP (1) EP2191370B1 (ja)
JP (1) JP5363485B2 (ja)
KR (1) KR101171501B1 (ja)
CN (1) CN101784988B (ja)
WO (1) WO2009027329A1 (ja)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7877350B2 (en) 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
JP5520219B2 (ja) 2007-07-26 2014-06-11 アビニシオ テクノロジー エルエルシー エラーハンドリングをもつトランザクションのグラフ型計算
US8347292B2 (en) 2007-08-30 2013-01-01 International Business Machines Corporation Transaction aggregation to increase transaction processing throughout
EP2396724A4 (en) * 2009-02-13 2012-12-12 Ab Initio Technology Llc TASK EXECUTION MANAGEMENT
US8667329B2 (en) * 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
US9940670B2 (en) 2009-12-10 2018-04-10 Royal Bank Of Canada Synchronized processing of data by networked computing resources
US10057333B2 (en) 2009-12-10 2018-08-21 Royal Bank Of Canada Coordinated processing of data by networked computing resources
MX337624B (es) 2009-12-10 2016-03-11 Royal Bank Of Canada Procesamiento sincronizado de datos por recursos de computo conectados en red.
KR101687213B1 (ko) 2010-06-15 2016-12-16 아브 이니티오 테크놀로지 엘엘시 동적으로 로딩하는 그래프 기반 계산
US8473953B2 (en) 2010-07-21 2013-06-25 International Business Machines Corporation Batching transactions to apply to a database
US8799378B2 (en) 2010-12-17 2014-08-05 Microsoft Corporation Non-greedy consumption by execution blocks in dataflow networks
US8595267B2 (en) * 2011-06-27 2013-11-26 Amazon Technologies, Inc. System and method for implementing a scalable data storage service
CN102306200B (zh) * 2011-09-22 2013-03-27 用友软件股份有限公司 增量数据操作语句的并发应用装置和方法
CN102508834B (zh) * 2011-09-22 2014-05-07 用友软件股份有限公司 基于消息的大型事务应用装置和方法
US8812438B2 (en) * 2012-01-20 2014-08-19 Salesforce.Com, Inc. System, method and computer program product for synchronizing data using data identifying messages
US9135262B2 (en) * 2012-10-19 2015-09-15 Oracle International Corporation Systems and methods for parallel batch processing of write transactions
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US9274926B2 (en) 2013-01-03 2016-03-01 Ab Initio Technology Llc Configurable testing of computer programs
US20140215127A1 (en) * 2013-01-31 2014-07-31 Oracle International Corporation Apparatus, system, and method for adaptive intent logging
US9596279B2 (en) 2013-02-08 2017-03-14 Dell Products L.P. Cloud-based streaming data receiver and persister
US9191432B2 (en) 2013-02-11 2015-11-17 Dell Products L.P. SAAS network-based backup system
US9442993B2 (en) 2013-02-11 2016-09-13 Dell Products L.P. Metadata manager for analytics system
US9141680B2 (en) * 2013-02-11 2015-09-22 Dell Products L.P. Data consistency and rollback for cloud analytics
US9917885B2 (en) 2013-07-30 2018-03-13 International Business Machines Corporation Managing transactional data for high use databases
CN103593236B (zh) * 2013-11-14 2017-02-22 华为技术有限公司 一种业务流程调度的计算机设备、方法和装置
EP3092557B1 (en) 2013-12-05 2024-03-27 AB Initio Technology LLC Managing interfaces for dataflow graphs composed of sub-graphs
US9424071B2 (en) 2014-01-24 2016-08-23 International Business Machines Corporation Transaction digest generation during nested transactional execution
US9323568B2 (en) 2014-01-24 2016-04-26 International Business Machines Corporation Indicating a low priority transaction
US9304935B2 (en) 2014-01-24 2016-04-05 International Business Machines Corporation Enhancing reliability of transaction execution by using transaction digests
US9317379B2 (en) 2014-01-24 2016-04-19 International Business Machines Corporation Using transactional execution for reliability and recovery of transient failures
US9465746B2 (en) 2014-01-24 2016-10-11 International Business Machines Corporation Diagnostics for transactional execution errors in reliable transactions
US9679033B2 (en) 2014-03-21 2017-06-13 International Business Machines Corporation Run time insertion and removal of buffer operators
US9870378B2 (en) 2014-11-18 2018-01-16 International Business Machines Corporation Read and delete input/output operation for database management
EP3230387A1 (en) * 2014-12-12 2017-10-18 SABIC Global Technologies B.V. Laser direct structured materials and their methods of making
KR101825416B1 (ko) * 2014-12-30 2018-03-22 주식회사 쏠리드 간섭 제거 중계 장치
EP3269090B1 (en) * 2015-02-27 2019-10-02 Royal Bank Of Canada Coordinated processing of data by networked computing resources
US9928270B2 (en) * 2015-06-25 2018-03-27 International Business Machines Corporation Aggregating and summarizing sequences of hierarchical records
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
US10437585B2 (en) * 2015-10-23 2019-10-08 Oracle International Corporation Managing highly scalable continuous delivery pipelines
US20170171721A1 (en) * 2015-12-10 2017-06-15 Linear Dms Solutions Sdn. Bhd. Bluetooth protocol broadcasting system
AU2016377516B2 (en) 2015-12-21 2020-01-30 Ab Initio Technology Llc Sub-graph interface generation
US10853879B2 (en) 2016-02-19 2020-12-01 Chicago Mercantile Exchange Inc. Systems and methods for reducing data lookups within a set of queues
US10218656B2 (en) 2016-03-08 2019-02-26 International Business Machines Corporation Smart message delivery based on transaction processing status
JP6530337B2 (ja) * 2016-03-16 2019-06-12 株式会社日立製作所 トランザクション制御システムおよびトランザクション制御方法
US11418583B2 (en) * 2018-02-14 2022-08-16 International Business Machines Corporation Transaction process management by dynamic transaction aggregation
CN110990182B (zh) * 2019-12-03 2021-06-11 腾讯科技(深圳)有限公司 事务处理方法、装置、设备及存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2667818B2 (ja) 1986-10-09 1997-10-27 株式会社日立製作所 トランザクション処理方法
US5283897A (en) * 1990-04-30 1994-02-01 International Business Machines Corporation Semi-dynamic load balancer for periodically reassigning new transactions of a transaction type from an overload processor to an under-utilized processor based on the predicted load thereof
US5423040A (en) * 1991-07-24 1995-06-06 International Business Machines Corporation System and method for efficiently executing directed acyclic graphs
GB2311443A (en) * 1996-03-23 1997-09-24 Ibm Data message transfer in batches with retransmission
US6311265B1 (en) 1996-03-25 2001-10-30 Torrent Systems, Inc. Apparatuses and methods for programming parallel computers
JPH09282283A (ja) * 1996-04-16 1997-10-31 Hitachi Ltd オンライントランザクションのトレース方法、性能評価方法およびオンライントランザクション処理システム
JPH10149306A (ja) * 1996-11-18 1998-06-02 Nippon Telegr & Teleph Corp <Ntt> サービス連携装置およびその生成装置
US6122372A (en) * 1997-06-04 2000-09-19 Signet Assurance Company Llc System and method for encapsulating transaction messages with verifiable data generated identifiers
US6272602B1 (en) * 1999-03-08 2001-08-07 Sun Microsystems, Inc. Multiprocessing system employing pending tags to maintain cache coherence
US6801938B1 (en) 1999-06-18 2004-10-05 Torrent Systems, Inc. Segmentation and processing of continuous data streams using transactional semantics
US6978305B1 (en) * 2001-12-19 2005-12-20 Oracle International Corp. Method and apparatus to facilitate access and propagation of messages in communication queues using a public network
US7167831B2 (en) * 2002-02-04 2007-01-23 Microsoft Corporation Systems and methods for managing multiple grammars in a speech recognition system
US7069244B2 (en) * 2002-09-17 2006-06-27 First Data Corporation Method and system for merchant processing of purchase card transactions with expanded card type acceptance
US7792716B2 (en) * 2002-10-31 2010-09-07 Federal Reserve Bank Of Atlanta Searching for and identifying automated clearing house transactions by transaction type
JP4316243B2 (ja) 2003-01-20 2009-08-19 株式会社東芝 電力設備監視装置およびその監視方法
US7120825B2 (en) * 2003-06-06 2006-10-10 Hewlett-Packard Development Company, L.P. Adaptive batch sizing for asynchronous data redundancy
US8214588B2 (en) * 2003-11-05 2012-07-03 International Business Machines Corporation Parallel asynchronous order-preserving transaction processing
US8307109B2 (en) 2003-08-27 2012-11-06 International Business Machines Corporation Methods and systems for real time integration services
JP2006031631A (ja) * 2004-07-21 2006-02-02 Nec Corp データベース処理システム及び方法並びにデータベース処理用プログラム
US7490084B2 (en) * 2004-09-24 2009-02-10 Oracle Corporation Deferred incorporation of updates for spatial indexes
US20060230402A1 (en) 2005-04-07 2006-10-12 International Business Machines Corporation Managing transactions for Enterprise JavaBeans
US8347292B2 (en) 2007-08-30 2013-01-01 International Business Machines Corporation Transaction aggregation to increase transaction processing throughout

Also Published As

Publication number Publication date
WO2009027329A1 (en) 2009-03-05
KR101171501B1 (ko) 2012-08-06
US20090064147A1 (en) 2009-03-05
JP2010537338A (ja) 2010-12-02
US8347292B2 (en) 2013-01-01
CN101784988A (zh) 2010-07-21
CN101784988B (zh) 2012-08-29
EP2191370A1 (en) 2010-06-02
US20130007750A1 (en) 2013-01-03
KR20100077151A (ko) 2010-07-07
US8904393B2 (en) 2014-12-02
EP2191370B1 (en) 2016-10-05

Similar Documents

Publication Publication Date Title
JP5363485B2 (ja) トランザクション処理スループットを高めるためのトランザクション集約
US20210182415A1 (en) Querying in big data storage formats
WO2020220216A1 (en) Search time estimate in data intake and query system
US7937437B2 (en) Method and apparatus for processing a request using proxy servers
US8276153B2 (en) Method and system for dividing and executing on-line transaction processing in distributed environment
US7681087B2 (en) Apparatus and method for persistent report serving
CN105723363B (zh) Erp系统中维持并升级承租者数据库的方法及其服务器
US7996838B2 (en) System and program storage device for facilitating workload management in a computing environment
US11169959B2 (en) Lineage data for data records
US20080098044A1 (en) Methods, apparatus and computer programs for data replication
KR101636601B1 (ko) 다수의 소프트웨어 애플리케이션이 연계된 세션을 제공하는 방법 및 시스템
CN103886079A (zh) 一种数据处理方法和系统
US20180096028A1 (en) Framework for management of models based on tenant business criteria in an on-demand environment
US10535069B2 (en) Method, medium, and system for handling blocks on orders during order processing
US9473561B2 (en) Data transmission for transaction processing in a networked environment
EP3149589B1 (en) System and method for dynamic collection of system management data in a mainframe computing environment
US7092973B2 (en) Conflict detection in a distributed system landscape
US7478115B2 (en) System and method for database and filesystem coordinated transactions
US7650606B2 (en) System recovery
US8312100B2 (en) Managing orphaned requests in a multi-server environment
JP2010152435A (ja) 情報処理装置及び情報処理方法及びプログラム
US7979540B2 (en) Configurable recovery of aborted session data
JP2004005460A (ja) 情報システムにおけるデータアクセス方法および情報システム
US11532045B2 (en) Securities trading apparatus and securities trading method
Wang et al. Fast log replication in highly available data store

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110801

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130430

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: 20130820

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130905

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees