JP4283328B2 - 部分的に順序付けられたトランザクションをスケジューリングしてイベントを関連付けるための方法 - Google Patents

部分的に順序付けられたトランザクションをスケジューリングしてイベントを関連付けるための方法 Download PDF

Info

Publication number
JP4283328B2
JP4283328B2 JP2007523052A JP2007523052A JP4283328B2 JP 4283328 B2 JP4283328 B2 JP 4283328B2 JP 2007523052 A JP2007523052 A JP 2007523052A JP 2007523052 A JP2007523052 A JP 2007523052A JP 4283328 B2 JP4283328 B2 JP 4283328B2
Authority
JP
Japan
Prior art keywords
event
transaction
situation
events
received
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
JP2007523052A
Other languages
English (en)
Other versions
JP2008508582A (ja
JP2008508582A5 (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 JP2008508582A publication Critical patent/JP2008508582A/ja
Publication of JP2008508582A5 publication Critical patent/JP2008508582A5/ja
Application granted granted Critical
Publication of JP4283328B2 publication Critical patent/JP4283328B2/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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/912Applications of a database
    • Y10S707/951Calendar or scheduling
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Description

本発明は、イベント駆動システムに関し、特に、分散環境において部分的に時間に依存するイベントの並列処理を確実にするための方法に関する。
応答形アプリケーションは、イベントの検出によって動作するように構成されるイベント駆動のアプリケーションという種類に関連する。そのようなイベントの正確なタイミングおよび内容は、予めわからないのが通常である。イベントを検出し、その検出を適切な動作に結びつけるために、互いに異なる分野において数多くのツールが構築されている。このようなツールは、能動的なデータベース、イベント管理システム、「発行/購読(publish/subscribe)型」機構、リアル・タイム・システム、および同様の製品において存在する。
「Situation awareness system」という題の2003年8月5日に発行された米国特許第6604093号(エツォン(Etzion)他)は、参照によって本願に引用されたものとする。本米国特許は、イベントを順次的な順序で処理するための構成可能なイベント駆動規則ベース・システムを開示している。以降、本明細書を通じて、このシステムを「動的ミドルウェア技術(Acitive Middleware Technology)」を意味する省略形である「AMIT」と称するものとする。AMITは、米国ニューヨーク州アーモンクのインターナショナル・ビジネス・マシン社の商標である。すなわち、互いに異なるイベントのインスタンス間のすべての関係(時間的および量的共に)がメモリ内に保存されていると同時に、入力イベントが1つずつ処理される。このアプローチは、イベントの多くが時間的な関係を有する場合(例えば、特定のイベントのシーケンスが特定の時間内に生じる場合)には必須であるものの、時間的に独立した膨大な数のイベントを分散環境において処理しなければならないような他の場合(例えば、個々のイベント・インスタンスの順序が計算された統計メトリクスよりも重要でない、集合イベント規則)には、拡張可能ではないだろう。また、AMITイベント規則(イベント結合)にデータベース・クエリが含まれる場合には、ACIDトランザクション・サポートを追加しなければならない。
2001年8月7日に発行された「Method of Scheduling distributed transactions」という題の米国特許6272515号(フォーケット(Fouquet))は、参照によって本願に引用されたものとする。本米国特許は、トランザクションの動作の起動をトランザクションが開始された時系列順序に従ってシリアル化するために、トランザクションの並列起動の可能性を有するトランザクショナル・モニタのための分散トランザクションをスケジューリングして、互いに異なるトランザクションまたは同一のトランザクションの動作間の実行が衝突することを許容する方法を開示する。よって、そのような方法は、基本的な動作に分割可能な従来のトランザクションには適用可能で、イベントはトランザクションの開始または動作の中止のみを信号で知らせるだけであったが、そのようなアプローチは、予め定義されたイベント結合(イベント駆動規則)を検出して、分散トランザクション環境における後続の処理を行う規則エンジンには適さない。
そのような場合には、イベント駆動規則エンジンは、各イベント・インスタンスを、これ以上複合動作に分割できないアトミックなトランザクションとして扱う。そのようなトランザクションは、処理されたイベント・インスタンスに特有なリソースを固定しなければならない。リソースとは、期間である計算ウィンドウを表すデータ構造であって、そこにおいては、イベント・インスタンスの根拠となることができ、予め定義されたイベントの結合(規則)が生じる。入力イベント間の時間的および他の意味的な依存性がある場合には、互いに異なる分散トランザクション間における、解消されなければならない衝突が生じうる。
したがって、本発明の目的は、意味的に関連しているイベントであって、構成イベントの順序が重要でありうるようなイベントを定義するイベント駆動規則を有するイベント・トランザクションの分散型トランザクション志向環境における並列処理のための改良された方法およびシステムを提供することである。
本発明の概略的な局面によれば、それぞれが各タイムスタンプを有するイベント・トランザクションをスケジューリングするための、所定のイベント規則を有するイベント駆動アプリケーションにおいて使用される方法(スケジューラ)が提供され、本方法は、前記所定のイベント規則に従ってイベント間の予想時間依存性を解消するステップと、イベント・トランザクションが処理されるであろう時を判断するステップとを含み、それによって、イベント・トランザクションを並列処理のために分散型プロセッサへディスパッチすることができる。
本発明を他の局面から見ると、そのような方法を実施するためのシステムが提供される。好ましくは、そのようなシステムは、予め定義されたイベント結合を検出するイベント受信器および搬送器を備え、1つ以上のイベントを受信するためのイベント・トランザクションと、イベント・トランザクションに結合され、前記イベントに関連した各タイムスタンプに応答可能で、関連イベント規則に従ってイベント間の予想時間依存性を解消するためのイベント並列制御部と、各分散型プロセッサに結合されるように適合されて、前記イベント規則定義からわかる依存性に従って前記イベントを並列的に実行するためのイベント並列制御部の少なくとも2つの出力ポートとを備える。
よって、本発明の好ましい実施形態は、イベント駆動規則エンジンにおいて状況を生じさせるイベント規則に適したトランザクションを定義し、そのようなトランザクションのための並列制御機構を定義する。
トランザクションを順次的ではなく並列的に処理するには、いくつかのイベント処理部間にトランザクションを分散させる必要がある。
イベント並列制御部は、単一のマシンを使用して並列制御アルゴリズムを中心的に実行し、実行準備のできたトランザクション、すなわち、現在のトランザクションの実行が完了する前に実行するはずだったすべてのトランザクションを互いに異なる処理部へディスパッチする。処理部は、互いに異なるマシン上の互いに異なる処理であってもよいし、遠隔手続呼び出し(RPC)を使用して単一のマシン上の互いに異なる処理(スレッド)であってもよい。本発明は、AMIT用に開発されたが、分散環境において動作するイベント駆動規則エンジンの種類全体に対して容易に適用できる。
本発明を理解し、実際にどのように実行されるかを見るために、非限定的な例としてのみ、添付の図面を参照して、本発明の好ましい実施形態を説明する。
図1は、予め定義されたイベント結合(規則)に従ってイベントを検出および処理するための本発明の第1の実施形態に係るシステム10を模式的に示すブロック図である。イベント・ディスパッチャ11は、各イベントに関連したタイムスタンプに従ってイベントをイベント並列制御部12へ順次搬送し、イベント処理部13は、各イベントについてイベント処理を開始する。イベント処理部13は、先に参照した米国特許第6604093号に記載されたAMITのような任意の従来のイベント・トランザクション・プロセッサでありうる。イベント並列制御部12は、同時に入力するイベントを処理するために、イベント規則の意味論的知識を使用する、タイムスタンプに基づく並列アルゴリズム(後述)を使用する。イベント・トランザクションが現在のイベント規則に従って開始できるかをチェックして、必要があればトランザクションの実行を中断する。また、対応イベントが、他のイベント結合および基本のイベントから派生された複雑な(入れ子となっている)イベント結合に対して定義された場合に、既に実行しているイベント・トランザクションをコミットまたは中止させる。
イベント規則は、イベントおよびルールが従来AMITへ供給されるのと同様のやり方で、外部データベース14内またはイベント・ディスパッチャ11によってアクセスされるデータ・ファイル内に記憶されてもよい。しかしながら、イベントは従来AMITへ直接供給されるのに対して、本発明においては、直接ではなく、イベント・ディスパッチャ11を介して供給される。規則はAMITおよびイベント・ディスパッチャによって同時に読み出されてもよい。イベント・ディスパッチャ11は、まず、イベントをイベント並列制御部12へ供給し、その後にのみ、イベント並列制御部12からの開始制御情報に応じて、イベントをイベント処理部13に供給する。各イベントに関連したタイムスタンプ情報が内部クロック(図示せず)または各イベントに関連した予め定義された実行順序によって導出されてもよい。イベント・ディスパッチャ11は、イベント並列制御部12と共に、既知の依存性に従って処理が開始されるであろう時を判断するように入力イベントを処理するイベント受信器および搬送器15として動作して、その後、イベントをイベント処理部13へディスパッチする。
図1は、イベント並列制御部12の構成およびそれがイベント処理部13に結合される方法を示す。実際には、本発明の好ましい一実施形態は、数個のイベント処理部を同時に実行できるので、実際には、イベント並列制御部12は、複数のプロセッサ出力ポートを有し、それぞれの出力ポートは、各イベント処理部に結合するように適合されている。
図2は、分散環境で使用される本発明のそのような実施形態に係るシステム20を模式的に示すブロック図である。図1を参照してすでに説明した構成要素は、同一の参照符号によって識別されることになる。よって、システム20において、イベント受信器および搬送器15は、複数のイベント処理部に結合され、そのそれぞれに13が付されており、AMITエンジンによって実現されてもよい。入力イベントは、開始されるであろう時を判断するように、図1を参照して上述したように、イベント受信器および搬送器15によって処理される。その後、互いに異なるイベント処理部13へディスパッチされて並列処理されてもよいが、これが行われる方法および互いに異なるプロセッサが選択される方法自体は、本発明の特徴ではない。
本発明に係るシステムの予想される実施について述べたが、今度は、タイムスタンプに基づく並列制御アルゴリズムの動作の仕方を説明する。
本システムにおけるすべてのイベントと状況と間の依存グラフが作成される。依存グラフは、メタデータ(規則定義)の分析に基づいて構築されてもよい。メタデータは、通常は、イベント処理部13への直接入力として供給されるが、本発明においては、イベント受信器および搬送器15を介して間接的にそこへ供給される。本発明の一実施形態を実施する目的で、規則定義の一部として、各イベントについて以下のデータ構造が保持されるものとする。
本イベントを追加すべき状況のリスト、
本イベントがその計算ウィンドウを開始できる状況のリスト、
本イベントがその計算ウィンドウを閉じることができる状況のリスト、
本イベントによってトリガできる状況のリスト。
本発明を実施するアルゴリズムは、構成イベントに関連したタイムスタンプを示すデータを含むイベント/状況階層をあらわすデータを構築するために、これらの規則を処理して、イベントと状況との間の依存性と、状況と他の状況との間の依存性とを判断する。この情報は、その後、あるイベントが正当に開始したといえるかどうか、またはあるイベントは開始可能以前の関連イベントの完了に依存するかどうか判断するために使用される。このような事情において、状況は、あるイベントまたはイベントの組み合わせによって生じるイベントの一種に過ぎないことが理解されるだろう。したがって、アルゴリズムに関して言えば「イベント」という用語および「状況」という用語は区別がなされていない。
アルゴリズムは楽観的処理を許容するので、イベントは、分散プロセッサによって、従来行われるような順次的ではなく並列的に処理される。よって、前のイベントに時間的に依存しない後のイベントの処理が遅延しないように、前のイベントがコミットするのを待つ必要なく後のイベントの処理を開始できる可能性を考慮している。一方、後のイベントが前のイベントの完了までは後のイベントは解決できないことがイベント階層から判断される場合には、後のイベントが完了に時間依存する前のイベントが終了するまで、後のイベントは中止される。
アルゴリズムは、以下に説明するように、イベント間の時間依存性を抽出するようにイベント・データを処理する。これがどのように行われるかをより直感的な方法で説明するために、イベント階層が図示されている。しかしながら、実際には、重要なのは図示表現における暗黙の情報であって、当該情報はどのみちイベント・データ内に固有なものであるから、アルゴリズムは、イベント階層の図示表現を実際に生じさせる必要はないものと理解されるべきである。よって、以下の規則は、イベント階層を図によって構築するために適用される。
イベントまたは状況がオペランドとして状況に関係する場合には、イベント/状況ノードから状況ノードへエッジが追加される。
イベントまたは状況が計算ウィンドウの開始または終了として機能する場合には、対応する開始/終了エッジがイベント/状況ノードから状況ノードへ追加される。
並列制御テーブルが作成されて、各状況定義用に別個の欄が定義される。依存グラフにおいて、あるイベントから当該欄に関連した状況へのエッジがある場合、イベントが欄に追加される。各欄は、イベントの到着タイムスタンプによってソートされる。イベントは、その到着タイムスタンプと共に、並列制御テーブル内の適切な欄に追加される。特定のイベントによってトリガされうるすべての状況は、これらの状況がまだ保留中である旨を示すマークと共に並列制御テーブル内の適切な欄に追加される。以下に説明する例において、マークは、アスタリスク(*)によって示されている。計算ウィンドウの終了として機能するイベントについては、延期/遅延状況を配慮するために、特別なマークが追加される。以下に説明する例において、そのようなイベントから依存状況へのパスは、「終了エッジ」としてマーク付けされている。同様な方法で、計算ウィンドウの開始として機能するイベントから依存状況へのパスは、「開始エッジ」としてマーク付けされている。これにより、アルゴリズムは、依存状況に関する計算ウィンドウの開始および終了依存を識別することができる。
イベント・トランザクションは、並列制御テーブルのすべての欄における「実」イベント(マーク付けされていない状況)のうちで最初に配置されている場合に開始されるはずである。イベント・トランザクションは、並列制御テーブルの全ての欄において最初に配置されている場合にのみコミットされることになる。通常のイベントと、計算ウィンドウの終了として機能するイベントとがあって、タイムスタンプが同一の場合(延期/遅延状況の場合)には、イベントは、新たなトランザクションを開始することになる。タイムスタンプt2のイベント・トランザクションがコミットしようとすると、アルゴリズムは、タイムスタンプt1(t1<t2)を有するマーク付けされた状況が実状況になったか(マークが除去された)どうかをチェックする。このような場合に、後のイベント・トランザクションは中止されて再開される。
まだマーク付けされているタイムスタンプを有する状況がある場合には、マーク付けされた状況が解消するまで(除去されるか、または実状況となるまで)トランザクション処理はブロックされることになる。
図3から図5を参照して、互いに異なる例を説明する。図3は、依存性の単純な場合を示し、第1のイベントが状況の検出を導き、検出された状況が第2のイベントと共に他の状況検出に関わる。図4は、入力イベントが状況を検出するための計算ウィンドウを閉じることができる場合を示し、図5は、計算ウィンドウ期間の終了時にのみ報告される検出された状況は、他の状況検出については考慮しなければならない場合を示す。
第1の例
図3は、合成関数がe1である状況S1と、S1およびe2の合成である状況S2とを図示している。イベント・トランザクションが部分的に順序立っており、イベントがコミットされている順序またはシーケンスが重要であることを暗示しているものとする。両状況についての計算ウィンドウは、スタートアップで開始され、終了しない。
シナリオ
イベントe1はt1に到着し、イベントe2はt2に到着する(t2>t1)。S1およびS2についての並列制御テーブルは、表1に示すとおりである。
Figure 0004283328
状況S2に関して言えば、S1は、状況S2が生じうる前に完了(すなわち、コミット)しなければならない構成イベントである。しかしながら、S1は、イベントe1のコミットにも依存している。これは、状況S2に関して言えば、イベントS1は時間t1において解消しておらず、そのようにマーク付けされている。e1およびe2は共に、トランザクションを並列して開始することになる。S1がトリガされると、e2はそのトランザクションを中止して、その作業をやり直すことになる。これにより、S2が(S1,e2)のシーケンスであって、e2がコミットする前にS1がコミットしなければならず、その後にのみS2が解消可能であることを示す場合に、トランザクションの順序付けは維持されることが確実となる。一方、S1が生じず、並列制御テーブルから削除されるという場合もある。例えば、S1は「銀行口座は引き出し超過である」という状況であり、この状況を生じさせるイベントであるe1は、単に顧客の現在の残高である場合がある。よって、e2がコミットする時までにe1が到着し、かつ健全な残高である場合には、S1はトリガされず、並列制御テーブルから削除可能である。このことは、状況をトリガするために1つのイベントのみを必要とする定義の場合に発生しうる。例えば、S2は2つのイベント(S1またはe2)のうちの1つが到着するとトリガされるように定義されてもよい。例えば、S2は「口座上の問題」という状況を示し、e2は「クレジット・カード
は取り消される」ことを示す場合を考える。この場合、S1がトリガされなければ、e2は戻されず、S2が検出されることになる。これにより、イベント・ディスパッチャ11は、イベント・トランザクションe1およびe2を別のプロセッサへディスパッチすることができ、並列処理が可能となることによって時間の節約となる。
第2の例
図4は、e1の合成関数である状況S1を図示する。状況S2は、S1とe2との合成関数である。ここまでは、図3を参照して上述したのと同一のイベント階層である。しかしながら、すべての状況が特定の計算ウィンドウにおいて生じる一方で、以前の場合、計算ウィンドウは無制限であり、スタートアップから解除されることなく拡張されていたが、図4に示す状況が、スタートアップ後に開始して所定のターミネータを有する計算ウィンドウ内において強制的に生じる。これらは、イベントに関連した開始エッジまたは終了エッジとして図示されており、開始エッジまたは終了エッジは、当該イベントによって生じた状況が、エッジが開始エッジか終了エッジかによって、当該イベントと同時に開始または終了する計算ウィンドウと共に強制的に生じることを示す。よって、イベントe3は、S1およびS2についての計算ウィンドウを終了させる。これは、e3が生じる場合には、S1およびS2の両方の計算が終了するという意味である。一方、S1およびS2の計算ウィンドウは、共にe4の到着で開始される。よって、S1およびS2両方の計算ウィンドウは、e4に関連した時間からe3に関連した時間へと拡張する。これは、e3がe4より前に到着する場合には、S1に対する影響はないという意味である。なぜならば、その計算ウィンドウは、S1がその計算の開始以前に計算される必要がある場合があるので、まだ開始されていないからである。イベントe4は、S1の計算は開始可能でe3によって計算ウィンドウが閉じられる時に計算が完了すると判断している。イベントe4は、計算ウィンドウを開始するが、S1は、(もしあれば、閾値条件に対応した)イベントe1の到着後に適切になるとすぐ検出されることになる。よって、e4が到着すると、S1の計算ウィンドウを開始して、次に到着する(但しe3より前の)イベントe1が計算されることになる。一例として、e4は「営業開始(day start)」イベント、e3は「営業終了(day end)」であってもよい。S1は「銀行口座が引き出し超過である」というイベント、e1は「口座残高」であってもよい。イベントe2は「支払い要求」、S2は「支払い不履行」であってもよい。「支払い不履行」は、同一の営業日に「支払い要求」と「口座引き出し超過」とが受信される場合に検出されてもよい。
シナリオ
イベントe4はt1に到着し、イベントe1はt2に到着し、イベントe3はt3に到着し、イベントe2はt4に到着し、t1<t2<t3<t4となる。
この場合、並列制御テーブルは、以下を含むことになる。
Figure 0004283328
この場合、処理は順次的となる。なぜならば、e3はe1(S1)前に開始できず、e2はe3(S2)前に開始できないからである。イベントが計算ウィンドウを閉じる場合に計算ウィンドウを閉じると、トランザクションは、すべてのイベント(実状況、および楽観的に処理されるが後に中止されて再実行されてもよい「マーク付けされた状況」)のうち最初に配置されている場合にのみ開始することになり、各状況について別個にコミットされることになる(部分コミット)。部分コミットメントの後、他のトランザクションがコミットされた状況について開始してもよい。また、ある状況について計算ウィンドウが閉じられた後に、方法は、(同一のタイムスタンプの)ウィンドウを閉じるイベントの前に、遅延/延期状況がトリガされて書き込まれたかをチェックする。これは、同一のイベントによって計算ウィンドウが閉じられた他の状況において必要とされる延期/遅延状況の場合に生じることとなる。
第3の例
図5は、e1の合成関数である延期された状況S1を図示する。状況S2は、S1の合成関数である。よってここでも、イベント階層は、図3を参照して上述したのと同一である。しかしながら、両方の状況についての計算ウィンドウは、スタートアップにおいて開始し、イベントe2の到着で終了する。
シナリオ
イベントe1はt1に到着し、e2はt2に到着する(t1<t2).
この場合、並列制御テーブルは、以下を含むことになる。
Figure 0004283328
状況S1は、タイムスタンプt1で書き込まれない。なぜなら、e2のみがS1をトリガできるからである(延期状況)。S1は、e2の到着で終了する計算ウィンドウ内でコミットされなければならない。よって、e2が到着すると、S1の計算は停止し、すなわち、計算ウィンドウが閉じる。S1の計算は、e2が到着すると実行される。すなわち、S1は延期状況なので、その計算はe2が到着するまで延期される。実際の計算は、e2の前に到着したe1イベントに対して行われる。
e2が到着してその処理を開始すると、S1の計算が終了する。S1が検出されて状況が生じたことが暗示されると、S1:t1が並列制御テーブルに書き込まれ、e2がその処理を中断し、その処理はS1の処理が完了した後にのみ再開される。これにより、例えばAMIT言語の一部である延期状況の計算が可能となる。
延期状況の一例は、NOT状況である。例えば、状況S1がNOT(e1)として定義されるとする。この場合、S1は、e1がe2以前に到着しない場合に検出されることになる。イベントe1はそのままであり、「口座残高」である状況S1は「平均残高」となり、Report(e1)として定義されることになる。この状況は、イベントe2が受信されるまで最大バランスを計算し、e2の到着でトリガされることになる。状況S2は、「よい一日を(Good Day)」となり、S1によって計算された平均残高が所定量より大きい場合にトリガされる。
図6は、図1および図2に示すイベント受信器および搬送器15によって実行される主要動作の概要を示すフローである。よって、イベントを受信すると、イベント受信器および搬送器15は、タイムスタンプをイベントに割り当て、受信されたイベントと、それによってトリガされうるすべての状況をイベント並列テーブル内の適切な欄に追加する。その後、所定の規則に従って、当該イベントについてトランザクションが開始できるかが判断される。開始できなければ、イベント受信器および搬送器15は、イベント・トランザクションが開始できるまで待機する。イベント・トランザクションが開始できる場合には、イベント受信器および搬送器15は、イベントをイベント処理部13へディスパッチし、その後、イベント処理部13から、トランザクション処理結果を受信する。その後、所定の規則に従って、トランザクションが本イベントに対してコミット可能かが判断される。コミット可能でない場合には、結果を廃棄して、トランザクションを再開する。コミット可能である場合には、イベント並列テーブルを更新して、結果をコミットする。どのプロセッサを選択するかは、本発明の一部ではないことに注意すべきである。任意の適切な既存のクラスタ化機構を使用できる。例えば、WebSphere(IBM社の登録商標)アプリケーション・サーバ・ベースのソリューションの場合には、WebSphereクラスタが使用されてもよく、そのロード・バランシング機構によってプロセッサが選択されることになる。
図7は、1つ以上のイベントを受信するためのイベント・ディスパッチャ11を備えるイベント受信器および搬送器15を機能的により詳細に示すブロック図である。イベント並列制御部12は、イベント・ディスパッチャ11に結合されて、イベントに関連したタイムスタンプに応答して、関連イベント規則に従ってイベント間の予想時間依存性を解消するためのものである。タイムスタンプは、到着前の各イベントに予め関連付けられていてもよいし、代わりに、タイムスタンプは、到着時にイベント受信器および搬送器15によってイベントに割り当てられてもよい。イベント・ディスパッチャ11は、登録部20を含む。登録部20は、登録されたリストを維持するように各入力イベントを登録するためのものであって、すべての依存性が解消される各イベント・トランザクションをイベント処理部13へディスパッチするように適合されており、よって、イベントに関連したイベント規則定義からわかった依存性に従ってイベントの並列実行が可能となる。イベント並列制御部は、所定のイベント規則に従って、各登録されたイベントの予想時間依存性を、登録されたイベントとまだ検出されていないマーク付けされた状況と共に解消するように構成される。
イベント受信器および搬送器15は、イベント・トランザクションの処理結果を受信するための受信部21と、受信部21に結合されて、イベント・トランザクションをコミットすべきかまたは中止すべきかを判定するためのステータス判定部22とをさらに含む。ステータス判定部に結合された割り込み部23は、イベント・トランザクションは中止すべきである旨を示すステータスに応答して、イベント・トランザクションを中止するためのものである。イベント・ディスパッチャ11は、割り込み部に結合されて、イベント・トランザクションを再び処理部へディスパッチする。処理部は、上述の処理部と同一であっても、異なる処理部であってもよい。
また、本発明のシステムは、適切にプログラムされたコンピュータであってもよいことが理解されるだろう。同様に、本発明においては、本発明の方法を実行するためにコンピュータによって読み出し可能なコンピュータ・プログラムが意図されている。さらに、本発明においては、本発明の方法を実行するために機械によって実行可能な命令のプログラムを具体的に実施する機械読み取り可能なメモリが意図されている。
予め定義されたイベント結合(規則)に従ってイベントを検出および処理するための本発明の第1の実施形態に係るシステムを模式的に示すブロック図である。 分散環境において使用される本発明の第2の実施形態に係るシステムを模式的に示すブロック図である。 本発明の別の例に係るイベントと状況との間の依存性を説明する依存グラフを示す。 本発明の別の例に係るイベントと状況との間の依存性を説明する依存グラフを示す。 本発明の別の例に係るイベントと状況との間の依存性を説明する依存グラフを示す。 本発明に係るイベント受信器/搬送器によって実行される主要動作を示すフローである。 図1に示すイベント受信器/搬送器を機能的により詳細に示すブロック図である。

Claims (1)

  1. それぞれが各タイムスタンプを有するイベント・トランザクションをスケジューリングするための、所定のイベント規則を有するイベント駆動アプリケーションにおいて使用される方法であって、
    前記所定のイベント規則に従ってイベント間の予想時間依存性を解消するステップと、
    前記イベント・トランザクションが処理されるであろう時を判断するステップとを含み、それによって、前記イベント・トランザクションを並列処理のために分散型プロセッサへディスパッチすることができ、
    前記イベント・トランザクションが処理されるであろう時を判断するステップが、
    登録されたイベントのリストを維持するように各入力イベントを登録するステップと、
    各登録されたイベントについて、前記所定のイベント規則に従って、登録されたイベント間の予想時間依存性を、まだ検出されていないマーク付けされた状況と共に解消するステップと、
    すべての依存性が解消された各イベント・トランザクションをイベント処理部へディスパッチするステップと、
    前記イベント・トランザクションの処理結果を受信するステップと、
    前記イベント・トランザクションをコミットすべきかまたは中止すべきかを判断するステップと、
    前記イベント・トランザクションを中止すべきである場合には、前記イベント・トランザクションを中止して、再びイベント処理部へディスパッチするステップとを含み
    各入力イベントを登録するステップが、
    イベントを受信するステップと、
    タイムスタンプを前記イベントに割り当てるステップと、
    前記受信されたイベントによってトリガ可能なすべての状況を所定の規則を使用して判断するステップと、
    前記受信されたイベントと、それによってトリガ可能なすべての状況とをイベント並列テーブル内の適切な欄に追加するステップと、
    前記受信されたイベントによって生じたトランザクションを前記受信されたイベントのために開始できるかを前記所定の規則に従って判断するステップと、
    前記トランザクションを前記受信されたイベントのために開始できない場合には、前記トランザクションが開始できるまで待機するステップと、
    前記トランザクションを開始できる場合には、前記イベントをイベント処理部へディスパッチするステップと、
    トランザクション処理結果を前記イベント処理部から受信するステップと、
    前記トランザクションを前記受信されたイベントに対してコミットできるかを前記所定の規則に従って判断するステップと、
    前記トランザクションを前記受信されたイベントに対してコミットできない場合には、前記処理結果を廃棄して前記トランザクションを再開するステップと、 前記トランザクションを前記受信されたイベントに対してコミットできる場合には、前記イベント並列テーブルを更新して、前記トランザクションをコミットするステップとを含む、方法。
JP2007523052A 2004-07-27 2005-06-27 部分的に順序付けられたトランザクションをスケジューリングしてイベントを関連付けるための方法 Expired - Fee Related JP4283328B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/899,783 US7266571B2 (en) 2004-07-27 2004-07-27 Method and system for scheduling a partial ordered transactions for event correlation
PCT/EP2005/052998 WO2006010683A1 (en) 2004-07-27 2005-06-27 Method and system for scheduling partial ordered transactions for event correlation

Publications (3)

Publication Number Publication Date
JP2008508582A JP2008508582A (ja) 2008-03-21
JP2008508582A5 JP2008508582A5 (ja) 2008-12-18
JP4283328B2 true JP4283328B2 (ja) 2009-06-24

Family

ID=35414657

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007523052A Expired - Fee Related JP4283328B2 (ja) 2004-07-27 2005-06-27 部分的に順序付けられたトランザクションをスケジューリングしてイベントを関連付けるための方法

Country Status (6)

Country Link
US (1) US7266571B2 (ja)
EP (1) EP1779243A1 (ja)
JP (1) JP4283328B2 (ja)
CN (1) CN100538643C (ja)
TW (1) TWI345176B (ja)
WO (1) WO2006010683A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539502B1 (en) * 2006-04-20 2013-09-17 Sybase, Inc. Method for obtaining repeatable and predictable output results in a continuous processing system
US8010550B2 (en) * 2006-11-17 2011-08-30 Microsoft Corporation Parallelizing sequential frameworks using transactions
US7711678B2 (en) * 2006-11-17 2010-05-04 Microsoft Corporation Software transaction commit order and conflict management
US8024714B2 (en) 2006-11-17 2011-09-20 Microsoft Corporation Parallelizing sequential frameworks using transactions
DE102007009909B4 (de) * 2007-02-28 2016-09-08 Globalfoundries Inc. Verfahren zum Validieren einer atomaren Transaktion in einer Multikernmikroprozessorumgebung
US7890472B2 (en) * 2007-09-18 2011-02-15 Microsoft Corporation Parallel nested transactions in transactional memory
US8789059B2 (en) * 2007-11-02 2014-07-22 International Business Machines Corporation Dynamic scheduling feasibility analysis of event-driven applications based on reducing tasks of overlapping events
US8200682B2 (en) 2008-04-22 2012-06-12 Uc4 Software Gmbh Method of detecting a reference sequence of events in a sample sequence of events
GB0811652D0 (en) * 2008-06-25 2008-07-30 Symbian Software Ltd Computing device
US9430526B2 (en) * 2008-09-29 2016-08-30 Teradata Us, Inc. Method and system for temporal aggregation
CA2897462A1 (en) 2009-02-11 2010-05-04 Certusview Technologies, Llc Management system, and associated methods and apparatus, for providing automatic assessment of a locate operation
CA2754159C (en) 2009-08-11 2012-05-15 Certusview Technologies, Llc Systems and methods for complex event processing of vehicle-related information
FR2965948A1 (fr) * 2010-10-07 2012-04-13 Commissariat Energie Atomique Systeme d'ordonnancement de l'execution de taches cadence par un temps logique vectoriel
US9208222B2 (en) * 2010-11-26 2015-12-08 Htc Corporation Note management methods and systems
JP6021112B2 (ja) * 2013-11-28 2016-11-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 複数のスレッドで順序付きトランザクションを実行する方法、並びに、当該トランザクションを実行するためのコンピュータ及びそのコンピュータ・プログラム
BE1023523B1 (nl) * 2015-09-25 2017-04-19 Atlas Copco Airpower, N.V. Werkwijze voor het koelen van een compressor of vacuümpomp en een compressor of vacuümpomp die een dergelijke werkwijze toepast
KR102123616B1 (ko) * 2018-02-09 2020-06-17 한양대학교 산학협력단 충돌 페이지 리스트를 이용한 병렬 저널링 방법 및 그 장치
CN109828788A (zh) * 2018-12-21 2019-05-31 天翼电子商务有限公司 基于线程级推测执行的规则引擎加速方法及系统
CN110610598B (zh) * 2019-08-08 2021-02-26 善泊科技(珠海)有限公司 一种基于事件机制的无人化停车场中控管理系统及其方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5201044A (en) * 1990-04-16 1993-04-06 International Business Machines Corporation Data processing method for file status recovery includes providing a log file of atomic transactions that may span both volatile and non volatile memory
GB2256514B (en) * 1991-05-21 1994-11-16 Digital Equipment Corp Commitment ordering for guaranteeing serializability across distributed transactions
FR2751106B1 (fr) * 1996-07-11 1999-01-08 Alsthom Cge Alcatel Methode de planification de transactions distribuees
US6237001B1 (en) * 1997-04-23 2001-05-22 Oracle Corporation Managing access to data in a distributed database environment
US7023440B1 (en) * 1998-09-14 2006-04-04 Fisher Rosemount Systems, Inc. Methods and apparatus for integrated display of process events and trend data
US6604093B1 (en) * 1999-12-27 2003-08-05 International Business Machines Corporation Situation awareness system
US6725287B1 (en) * 2000-11-09 2004-04-20 Elity Systems, Inc. Method and system for capturing streaming data by an actionable information engine

Also Published As

Publication number Publication date
US7266571B2 (en) 2007-09-04
TW200627286A (en) 2006-08-01
WO2006010683A1 (en) 2006-02-02
CN1989490A (zh) 2007-06-27
US20060026130A1 (en) 2006-02-02
TWI345176B (en) 2011-07-11
CN100538643C (zh) 2009-09-09
JP2008508582A (ja) 2008-03-21
EP1779243A1 (en) 2007-05-02

Similar Documents

Publication Publication Date Title
JP4283328B2 (ja) 部分的に順序付けられたトランザクションをスケジューリングしてイベントを関連付けるための方法
JP7023718B2 (ja) リアルタイムデータストリームに対して実行するためのクエリの選択
CN101681272B (zh) 使用事务来并行化顺序框架
US7665093B2 (en) Synchronization of runtime and application state via batching of workflow transactions
US7386577B2 (en) Dynamic determination of transaction boundaries in workflow systems
US8108521B2 (en) Methods and systems for dynamic parallel processing
US7860847B2 (en) Exception ordering in contention management to support speculative sequential semantics
US7996838B2 (en) System and program storage device for facilitating workload management in a computing environment
TWI451340B (zh) 使用交易以平行化循序框架之方法及電腦可讀取媒體
US8661441B2 (en) Transaction load reduction for process completion
US20070005623A1 (en) Process oriented message driven workflow programming model
JPH05197604A (ja) マルチプロセッサ・コンピュータ及びその動作方法
Qadah et al. Q-Store: Distributed, Multi-partition Transactions via Queue-oriented Execution and Communication.
CN107247784B (zh) 一种分布式事务的控制方法及事务管理器
US8027996B2 (en) Commitment control for less than an entire record in an in-memory database in a parallel computer system
US20090064141A1 (en) Efficient utilization of transactions in computing tasks
CN113220436A (zh) 一种分布式环境下的通用批量作业执行方法及装置
CN108052392B (zh) 一种基于区块链的业务处理方法及装置
Kambayashi et al. Shirakami: A hybrid concurrency control protocol for tsurugi relational database system
CN118260049A (zh) 一种基于Flink流式处理的可靠事务性交易方法
Garcia-Molina et al. Services for a workflow management system
Portilla et al. A survey for analyzing transactional behavior in service based applications
Attiya et al. Staleness and Local Progress in Transactional Memory
Hogan Voice mail and office automation
Lam et al. READS: a prototyping environment for real-time active applications

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080425

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081029

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20081029

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20081107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090106

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090318

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120327

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees