JP6189304B2 - 分散データグリッド内のサーバ側イベントモデルをサポートするためのシステムおよび方法 - Google Patents

分散データグリッド内のサーバ側イベントモデルをサポートするためのシステムおよび方法 Download PDF

Info

Publication number
JP6189304B2
JP6189304B2 JP2014530894A JP2014530894A JP6189304B2 JP 6189304 B2 JP6189304 B2 JP 6189304B2 JP 2014530894 A JP2014530894 A JP 2014530894A JP 2014530894 A JP2014530894 A JP 2014530894A JP 6189304 B2 JP6189304 B2 JP 6189304B2
Authority
JP
Japan
Prior art keywords
event
interceptors
dispatcher
distributed data
data grid
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.)
Active
Application number
JP2014530894A
Other languages
English (en)
Other versions
JP2014526750A5 (ja
JP2014526750A (ja
Inventor
オリバー,ブライアン
アーリス,ノア
グレイザー,ジーン
リー,ロバート・エイチ
Original Assignee
オラクル・インターナショナル・コーポレイション
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 オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2014526750A publication Critical patent/JP2014526750A/ja
Publication of JP2014526750A5 publication Critical patent/JP2014526750A5/ja
Application granted granted Critical
Publication of JP6189304B2 publication Critical patent/JP6189304B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/542Intercept

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Description

著作権に関する注意
本特許文献の開示の一部には、著作権保護の対象となるものが含まれている。著作権者は、この特許文献または特許開示の何者かによる複製が、特許商標庁の特許ファイルまたは記録にある限り、それに対して異議を唱えないが、そうでなければ、いかなる場合もすべての著作権を留保する。
発明の分野
本発明は分散演算環境におけるデータキャッシングおよびアクセス技術に関し、特に、分散データグリッド内のサーバ側イベントモデルのサポートに関する。
背景
分散データ管理システムの文脈において、データ変更についての情報を提供するためにイベントモデルが用いられることがある。典型的な例では、クライアントはリスナーを登録して、あるデータ上の特定のイベントをリスニングし得る。データが変更されるとイベントが発生し、クライアントはリスナーによってイベントを通知される。
この手法の1つの制限は、イベントが既に発生したという意味で非同期であることであり、つまり、クライアントはイベントが既に発生した後に通知されるのでクライアントはデータ変更に影響を及ぼす有効な手段を有しないことである。このため、イベントに変更を加えるためには、クライアントは新たなトランザクション全体を行なって当該変更を加えざるを得ないことがあり得る。別の制限は、クライアントはしばしば非常に大きいデータセットであるものの内部のすべてのイベントをリスニングするように登録されるため、ソリューションのサイズおよびスケーラビリティであることが多い。
また、異なるセマンティクスおよび特有の構成形態を有するさまざまな拡張可能なフックが別個の特徴としてユーザに提示されることが多い。これらのフックが互いにどのように関連しているかについてのドキュメンテーションはほとんどない場合があり、どのフックが使用に最適であるかが常に明確であるとは限らない。さらに、プログラミングモデルはフックごとに異なり、その多くが独特の制限を有する。
したがって、上記の制限に対処するか制限を解消し、かつ多数の他の利点を提供する新たなソリューションが望まれる。
概要
本明細書には、分散データグリッド内のサーバ側イベントモデルに、クラスタ全体にわたって分散されたデータパーティションを格納する複数のクラスタノードを提供し得るシステムおよび方法が記載され、各クラスタノードは1組のパーティションを担当する。上記システムは、1つ以上のイベント・インターセプタを、クラスタ内に配置されたイベント・ディスパッチャにマッピングし得る。1つ以上のイベント・インターセプタは、イベント・ディスパッチャからディスパッチされる少なくとも1つのイベントをハンドリングすることができ、少なくとも1つのイベントは分散データグリッド内のオペレーションに関連付けられている。上記システムは、上記1つ以上のイベント・インターセプタによる少なくとも1つのイベントのハンドリングが完了するまで、分散データグリッド内のオペレーションの完了を遅らせ得る。
本発明の実施形態に係る、サーバ側イベントモデルをサポートする分散データグリッドを示す図である。 本発明の実施形態に係る、分散データグリッド内のサーバ側イベントモデルを提供するためのフローチャートを示す図である。 本発明の実施形態に係る、分散データグリッド内のサーバ側イベントモデルのイベント階層を示す図である。 本発明の実施形態に係る、分散データグリッド内のサーバ側イベントモデルについてイベントをディスパッチするフローを示す図である。 本発明の実施形態に係る、分散データグリッド内のイベント・インターセプタの登録を示す図である。 本発明の実施形態に係る、分散データグリッド内のイベント・インターセプタの登録を示す図である。 本発明の実施形態に係る、分散データグリッド内のサーバ側イベントモデルの継続のサポートを示す図である。
詳細な説明
さまざまな実施形態に従い、サーバ側イベントモデルには、分散データグリッド内で、クラスタ全体にわたって分散されたデータパーティションを格納する複数のクラスタノードが提供され得、各クラスタノードは1組のパーティションを担当する。1つの例示的な分散データグリッドは、オラクル(登録商標)社のCoherenceデータグリッドである。このシステムは、1つ以上のイベント・インターセプタを、クラスタ内に配置されたイベント・ディスパッチャにマッピングし得る。1つ以上のイベント・インターセプタは、イベント・ディスパッチャからディスパッチされる少なくとも1つのイベントをハンドリングすることができ、少なくとも1つのイベントは分散データグリッド内のオペレーションに関連付けられている。このシステムは、上記1つ以上のイベント・インターセプタによる少なくとも1つのイベントのハンドリングが完了するまで、分散データグリッド内のオペレーションの完了を遅らせ得る。
ある実施形態に従い、分散データグリッド内のサーバ側機能を実行するクリティカルパスにイベントが発生し得る。データグリッドは、ある一定のデータが変更されたときにのみ受動的な演算を実行し得る。データグリッドは、クライアントをクリティカルパスに注入することを回避するために、クライアント側からのインタラクションを必要とせずにそのようなイベントのハンドリングをサポートする。データグリッド内では、クライアントがクリティカルパスに関与するとクライアント応答を待つための不要な遅延が生じ得るため、クライアントがクリティカルパスに関与できないようにすることが好ましい。
ある実施形態に従い、クリティカルパス内のイベントのハンドリングは、クライアント・インタラクションのオーバーヘッドなしにデータグリッドが大きなデータ列を処理するときに有益であり得る。こうして、データグリッドはより多くのタイプのイベントを使用し得、イベントをハンドリングするための異なるイベント・リスナーまたはインターセプタを定義し得る。さらに、データグリッド内のデータに対するオペレーションの実行は、クリティカルパス内にディスパッチされるイベントのハンドリングが完了するまで遅らされる。こうして、必要とされるサーバ側イベントは、分散データグリッドの性能を改良し得る。
サーバ側イベントモデル
ある実施形態に従い、Coherenceの単一イベントモデル(Unified Event Model:UEM)などのサーバ側イベントモデルは、分散データグリッド内のサーバ側プログラミングモデルを単純化するために用いられ得る汎用イベント・フレームワークである。
サーバ側イベントモデルは、一貫性があるセマンティックモデル、一様な構成を提供し得、分散データグリッドのサーバ側プログラミング能力を拡張するための柔軟性を拡大し得る。イベントは、対応するイベントハンドラの内部からどのオペレーションが実行され得るかを形式化する、明確に定義されたセマンティクスを有し得る。これらのイベントは、分散データグリッド・クラスタ内で拡張性に対して「ワンストップ・ショップ(one-stop shopping)」を提供し得る。ユーザはどのイベントが利用可能であるかを迅速に調べ、それらのセマンティクスを理解し得る。
サーバ側イベントモデルを用いて、分散データグリッドは、広範な拡張可能なフックの代わりにサーバ側プログラミングモデルを提供し得る。たとえば、Coherenceでは、エンドユーザはこのサーバ側プログラミングモデルを用いて、バッキング・マップ・リスナー(Backing Map Listener)、パーティション・リスナー(Partition Listener)、キャッシュ・ローダー/キャッシュ・ストア(Cache Loader/Cache Store)、トリガ(Trigger)、トランスフォーマ(Transformer)、エントリ・プロセッサ(Entry Processor)、アグリゲータ(Aggregator)およびカスタム・バッキング・マップ(Custom Backing Map)のためのカスタムロジックを挿入し得る。こうして、分散データグリッドは、拡張可能なフックの使用に関する異なる問題を回避し得、外部ユーザアプリケーションとのデータ交換を単純化し得る。
図1は、本発明の実施形態に係る、サーバ側イベントモデルをサポートする分散データグリッドを示す図である。図1に示されるように、サーバ側イベントモデル110は、相互接続された複数のクラスタノード101〜106を含むデータグリッド・クラスタ100内に設けられ得る。サーバ側イベントモデルは、1つ以上のイベント・インターセプタ121〜123にマッピングされ得る少なくとも1つのイベント・ディスパッチャ111を含む。イベント・インターセプタは、サーバ側イベントモデル・フレームワークによって発生したイベント120を受信してハンドリングする役割を果たす。データグリッド・クラスタ内に配置されるイベント・ディスパッチャは、イベント・インターセプタを、イベント・インターセプタが登録されているイベントに対してトリガする役割を果たし得る。
ある実施形態に従い、イベント・インターセプタは、サーバ側イベントモデル・フレームワークによって発生したイベントを受信してハンドリングする役割を果たし得る。イベント・インターセプタはさらに、2つ以上のイベント・インターセプタが同じイベントに登録されている場合、ともにチェーンされ得る。こうして、複数のインターセプタが単一のイベントのコンテキスト内で実行され得る。
Coherenceの例では、イベント・インターセプタ・インターフェイスは、イベントをハンドリングするためのロジックを実装するためにエンドユーザに提供され得る。リスティング1において以下に示されるようなサンプルインターフェイスは、イベントをハンドリングするための1つの方法および登録処理の一部として用いられる別の方法の、2つの方法を有し得る。
ある実施形態に従い、イベント・ディスパッチャは、イベントが発生する必要のあるコンテキストに緊密に結合され得る専用オブジェクトである。分散データグリッド内のキーの場所に配置された専用イベント・ディスパッチャ・インスタンスが存在し得る。
Coherenceでは、イベント・ディスパッチャは、StorageEventをハンドリングするためのPartitionedServiceに関連付けられ得る。リスティング2において以下に示されるように、最適化されたイベント・インターセプタの登録を容易にするために、イベント・ディスパッチャは、イベント・ディスパッチャがディスパッチする役割を果たす明確に定義された1組のイベントを有し得る。
さらに、イベント・ディスパッチャは、たとえばJMXを介して自身の性能についての統計を公開し、サーバ側イベントモデルがシステム内でどのように挙動しているかについての見通しを開発者およびオペレーションチームの両方に与え得る。そのような情報には、すべての登録されたイベント・インターセプタの名前、登録された各イベント・インターセプタの対象のイベント・タイプ、発生/処理されたイベントの数、投げられた例外の数、イベントのハンドリングに費やされる平均時間、イベントのハンドリングに費やされる最長時間、上記イベントの間に最も長く時間がかかったイベント・インターセプタの名前が含まれる。
図2は、本発明の実施形態に係る、分散データグリッド内のサーバ側イベントモデルを提供するためのフローチャートを示す図である。図2に示されるように、ステップ201において、1つ以上のイベント・インターセプタがイベント・ディスパッチャにマッピングされ得る。イベント・ディスパッチャは、分散データグリッド内のオペレーションに関連付けられる少なくとも1つのイベントをディスパッチするように動作する。次に、ステップ202において、上記1つ以上のイベント・インターセプタは、イベント・ディスパッチャから上記1つ以上のイベント・インターセプタにディスパッチされる少なくとも1つのイベントをハンドリングし得る。最後に、ステップ203において、分散データグリッドは、上記1つ以上のイベント・インターセプタによる少なくとも1つのイベントのハンドリングが完了するまで、オペレーションの完了を遅らせる。
イベント階層
ある実施形態に従い、イベントは、分散データグリッド内で実行される何らかのオペレーションの観察可能な発生を表わす。分散データグリッド内には異なるタイプのイベントが存在し得る。たとえば、クライアント・イベントはクライアント・コンテキスト(すなわち非ストレージ・メンバー)内で発生し得、ストレージ・イベントはストレージ可能メンバーのコンテキスト内で発生し得る。
ある実施形態に従い、イベントは、イベントが発生する機能領域に対応する1組のインターフェイスと定義され得る。
図3は、本発明の実施形態に係る、分散データグリッド内のサーバ側イベントモデルのイベント階層を示す図である。図3に示されるように、Eventインターフェイス301はシステム内のすべてのイベントのベースである。システム内の各イベントオブジェクトは、自身に関連付けられた1つ以上のイベント・タイプを有し得る。Eventインスタンスのコンシューマは、イベント・タイプに基づいてどの動作を実行すべきかを決定し得る。以下のリスティング3は、CoherenceにおけるサンプルのEventインターフェイスを示す。
さらに図3に示すように、イベント階層300は、ストレージ・イベントのためのStorageEventインターフェイス302を含む。StorageEventインターフェイスは、イベント・インターフェイスから直接的に拡張する。さらに、イベント階層は、異なるタイプのストレージ・イベントのための、StorageCacheEventインターフェイス303、StorageEntryEventインターフェイス304、StorageInvocationEventインターフェイス305、およびStorateTransferEventインターフェイス306を含む。
さらに、図3には示されない他のイベントも存在し得る。たとえば、クラスタ内のメンバーシップ(参加したメンバー、離脱したメンバー)に関するイベントであるMemberEvent、クラスタ全体に関するイベントであるClusterEvent、Coherenceトランザクション(開始、コミット、ロードバック)に関するイベントであるTransactionEvent、Coherence Proxy(ロード・バランシング・イベント、プッシュバック・イベント)に関するイベントであるProxyEvent、セキュリティおよび監査に関するイベントであるSecurityEvent、動作を必要とするいくつかの閾値エラーが発生したことを示すイベントであるAbnormalEvent、ならびにストレージ不可能メンバー上で実行されるイベントであるClientSideEventが存在し得る。
ある実施形態に従い、イベント・インスタンスは不変であり得、その寿命は下層システムによって制御され得る。したがって、イベント・クラスの参照は、複数の呼出しにわたって保持され得ない。
イベントのディスパッチ
ある実施形態に従い、イベントのディスパッチには、イベント・インターセプタによる処理のためのイベントの発生と、同じイベントに登録されたイベント・インターセプタが2つ以上ある場合のイベント・インターセプタのチェーンの呼出しとが含まれる。
ある実施形態に従い、イベント・インターセプタはともにチェーンされ得、イベントをディスパッチする役割を果たすスレッドによって逐次呼出され得る。イベントオブジェクトのベース実装は、インターセプタをチェーンするためのすべてのロジックを提供し得、これは次に、指定インターフェイスによって必要とされるイベント・インスタンスの各実装に再使用され得る。イベント・インターセプタは、イベント・インターセプタがイベント・ディスパッチャに追加された順序に基づいて実行され得る。たとえば、Coherenceでは、イベント・インターセプタは、EventDispatcher.addInterceptor()方法で第1のパラメータを介して先頭または末尾に追加され得る。
図4は、本発明の実施形態に係る、分散データグリッド内のサーバ側イベントモデルについてイベントをディスパッチするフローを示す図である。図4に示されるように、イベントをディスパッチするフローは401で開始され、402において、処理するためのイベントが発生する。イベントをディスパッチするフローは、403において、イベントに登録されたイベント・インターセプタのチェーンを呼出すステップを含む。チェーン内のイベント・インターセプタがシステムによってトリガされると、404において、イベントをハンドリングするためにonEvent()方法が実行され得る。最後に、イベントをディスパッチするフローは、406において、チェーン内のすべてのイベント・インターセプタが呼出されて完了すると終了する。
チェーン内の各イベント・インターセプタは、コンテキストが許可する場合、イベントに関連付けられたデータを任意に修正し得る(たとえばStorageEntryEvent前のINSERTINGおよびUPDATINGイベント)。予めコミットされたストレージ・イベント(たとえばUPDATING、INSERTING、REMOVING)については、イベント・インターセプタは、405において例外を投げることによってオペレーションを禁止し得る。
チェーン内の各イベント・インターセプタは、チェーン内で自身の後に実行されるイベント・インターセプタによって生じるすべての副作用の結果を任意に観察し得る。インターセプタ・チェーンが予めコミットされたストレージ・イベントに関連付けられている場合、この結果観察能力は、処理を禁止する第2の機会を提供する。
下流のイベント・インターセプタの副作用の観察は、Event.nextInterceptor()方法によって達成され得る。この方法がリターン(return)すると、すべての下流のイベント・インターセプタが実行されたことを意味し、イベントに関連付けられた状態に対するいずれの変更も観察可能である。
ある実施形態に従い、イベントオブジェクトは、下流の効果の観察をサポートするために、イベント・インスタンスの処理の状態を保持し得る。イベント・インターセプタ自身がEvent.nextInterceptor()を呼出すと、イベント・インターセプタは発火すべきチェーン内の次のイベント・インターセプタをトリガし得、例外を投げることを含む、副作用に対して行動を取るオプションが与えられる。イベント・インターセプタがリターン(return)すると、イベント自身がチェーンのonEvent()方法において次のイベント・インターセプタをトリガし得る。
インターセプタ管理
ある実施形態に従い、イベント・インターセプタは、システム内のどのイベント・ディスパッチャが利用可能であるかを直接的に知らずに、サーバ側イベントモデル・フレームワークに登録され得る。たとえば、システムは、まだインスタンス化されていないイベント・ディスパッチャにイベント・インターセプタが登録されるシナリオをサポートし得る。ユーザが、ensureCache(“cache-foo”)が呼出される前に特定のサービスについてのすべてのストレージ・イベントに関心がある場合、登録されたイベント・インターセプタは、“cache-foo”についてのイベント・ディスパッチャが実現される際にこのディスパッチャに依然として追加される必要があり得る。さらに、システムは、イベント・インターセプタをイベント・ディスパッチャに選択的に登録し得る。また、ディスパッチャの選択基準はイベント・ディスパッチャおよびディスパッチャ実装ごとに異なり得るため、システムは柔軟なカスタマイズ化可能なマッピングをサポートし得る。
ある実施形態に従い、イベント・インターセプタ・レジストリは、システムに登録されたイベント・インターセプタを、システムに登録されたイベント・ディスパッチャにマッピングし得る。イベント・インターセプタ・レジストリは、イベント・ディスパッチャの後のランタイム初期化およびランタイム・イベント・インターセプタ登録をサポートするために、利用可能なイベント・ディスパッチャおよび現在登録されているイベント・インターセプタの両方を追跡し得る。以下のリスティング4は、イベント・インターセプタ・レジストリのサンプルインターフェイスである。
サーバ側イベントモデル・フレームワークは、イベント・インターセプタを異なるイベント・ディスパッチャに柔軟に整合させ得る。フレームワークは、イベント・ディスパッチャが所与のイベント・インターセプタを呼出すべきか否かを判断するために、イベント・インターセプタとイベント・ディスパッチャとの間のハンドシェイクを可能にする。このハンドシェイクは登録期間中に行なわれ得る。
ある実施形態に従い、登録ワークフローは、ディスパッチャの登録およびインターセプタの登録と同様である。主な相違点は、レジストリが登録された1組のインターセプタまたは登録された1組のイベント・ディスパッチャ全体にわたって反復しているか否かである。
図5は、ある実施形態に係る、分散データグリッド内のイベント・インターセプタの登録を示す図である。図5に示されるように、502において新たなインターセプタがイベント・インターセプタ・レジストリに登録されると、504においてレジストリは登録された各ディスパッチャについてinterceptor.introduceDispatcher(Dispatcher d)を呼出す。そして、イベント・インターセプタは、供給されたディスパッチャからのイベントを自身がリスニングしたいか否かを評価し得る。リスニングしたい場合、506において、インターセプタはEventDispatcher.addInterceptor()を呼出すことによって自身をディスパッチャに関連付け得る。
図6は、ある実施形態に係る、分散データグリッド内のイベント・インターセプタの登録を示す図である。図6に示されるように、602において新たなディスパッチャが登録されると、604においてレジストリは登録された各インターセプタについてinterceptor.introduceDispatcher(Dispatcher d)を呼出す。そして、イベント・インターセプタは、供給されたディスパッチャからのイベントを自身がリスニングしたいか否かを評価し得る。リスニングしたい場合、606において、インターセプタはEventDispatcher.addInterceptor()を呼出すことによって自身をディスパッチャに関連付け得る。
サーバ側イベントのプログラム構成をサポートするために、イベント・インターセプタ・レジストリ・インスタンスは、JVM内で実行されるCoherenceインスタンス全体に利用可能であるようにされ得る。システム内のどこからもレジストリにアクセスできるため、サーバ側イベントモデルは、ディスパッチャおよびインターセプタがインスタンス化される際にそれらを動的に追加および削除することをサポートするのに十分拡張可能であり得る。Coherenceでは、異なる機能性はregisterResource/unregisterResource APIを介してクラスタに追加され得る。レジストリは、いずれかの他のオブジェクトまたはコンポーネントがレジストリへのアクセスを望む前に、インスタンス化されてクラスタオブジェクトに登録され得る。たとえば、インターセプタ・レジストリは、com.oracle.EventInterceptorRegistryの名前で格納され得る。
Coherenceにおけるサポートクラス
ある実施形態に従い、分散データグリッドは、サーバ側イベントモデルのシンプルなユースケースについて、すぐに使えるサポートクラスを提供し得る。たとえば、Coherenceデータグリッドは、抽象イベント・インターセプタ・クラス、シンプルなデリゲート・イベント・インターセプタ・クラス、シンプルなイベント・ディスパッチャ・クラス、およびマルチスレッド・イベント・ディスパッチャ・クラスを提供する。
抽象イベント・インターセプタ・クラスは、システム内のインターセプタを構築するのに必要な作業を単純化するイベント・インターセプタのためのベース実装を提供し得る。抽象イベント・インターセプタ・クラスは、イベント・タイプと、サービス名と、処理されるイベントの総数、イベントの平均処理時間、およびイベントの最長処理時間を含む基本的なJMXメトリクスとに基づいて、基本的な登録アルゴリズムを提供し得る。
シンプルなデリゲート・イベント・インターセプタ・クラスは、サポートされるイベント・タイプのみに集中することによって、システム内のイベント・インターセプタの登録の際に必要なオーバーヘッドを減少させ得る。シンプルなデリゲート・イベント・インターセプタ・クラスは、抽象イベント・インターセプタ・クラスを拡張し得、イベント・インターセプタと、イベント・インターセプタがリスニングする関心がある任意のサービス名と、イベント・インターセプタがリスニングする関心がある任意のキャッシュ名と、上記インターセプタがリスニングする関心がある1組のイベント・タイプとを用いて構築され得る。
ある実施形態に従い、次にイベント・ディスパッチャは、供給されたインターセプタを所望のイベント・タイプに整合させ得、インプリメンタはシステム内のイベント・ディスパッチャとのハンドシェイクのいずれにも対処する必要がない。
シンプルなイベント・ディスパッチャ・クラスは、1組のインターセプタおよびそれらの順序をタイプによって管理する役割を果たし得る汎用イベント・ディスパッチャである。新たなインターセプタを追加するとインターセプタ・リストの新たなコピーが生成され得るため、現在処理中のどのイベントにも処理の最中に影響が及ばない。さらに、コンポーネントがイベント・タイプをディスパッチしたい場合、シンプルなイベント・ディスパッチャは、適切な1組のインターセプタを取り、インターセプタ・チェーニングフローに基づいてイベントにそれらの処理を開始するよう頼む役割を果たし得る。また、シンプルなイベント・ディスパッチャは、実行順序における名前による登録済インターセプタのリスト、ディスパッチされたイベントの数、イベントのディスパッチに費やされる平均時間、イベントをディスパッチする最長時間、および最長ディスパッチ時間を有するインターセプタなどのJMX統計について報告する役割を果たし得る。さらに、シンプルなイベント・ディスパッチャ・クラスは、DispatchEventの汎用実装とともにEventDispatcherインターフェイスを実装するcom.tangosol.net.internal.unifiedevents.dispatchersの下で実装され得る。
また、マルチスレッド・イベント・ディスパッチャ・クラスはシンプルなイベント・ディスパッチャ・クラスを拡張し得、余分のスレッドを追加してイベントを非同期に処理し得る。イベントは、内部ワーカー・スレッドによる処理のためにキューに配置され得る。メイン・スレッドがキューに作業を配置する間、ワーカー・スレッドは登録されたインターセプタを実際に呼出す役割を果たす。マルチスレッド・イベント・ディスパッチャは、メイン・スレッドについてのイベントのディスパッチ、およびワーカー・スレッドについてのイベントのディスパッチの両方を可能にするAPIを提供し得る。
サーバ側イベントモデルの構成
ある実施形態に従い、サーバ側イベントモデルはプログラム的に構成され得る。たとえば、Coherenceでは、イベント・インターセプタ・レジストリは、Cluster.getResource(“com.oracle.EventInterceptorRegistry”)を呼出すことによってクラスタから抽出され得る。さらに、イベント・インターセプタは、EventInterceptorRegistry.registerInterceptor(“InterceptorName”、新たなEventInterceptor())を呼出すことによってイベント・インターセプタ・レジストリに登録され得る。
別の実施形態に従い、サーバ側イベントモデルは、キャッシュ構成ファイル内で宣言的に構成され得る。以下のリスティング6は、インターセプタ構成を有するサンプルキャッシュ構成である。
上記に示されるように、Coherenceの名前空間ハンドラは、キャッシュ構成ファイル内の新たなxml要素をサポートするように拡張され得る。1つのxml要素は、システム内に登録される1組のすべてのインターセプタを定義する任意の<event-interceptors>要素であり得る。別のxml要素は、イベント・インターセプタのインスタンスを定義する任意の<interceptor>要素であり得る。
<interceptor>要素は、インターセプタの名前を定義する<name>属性と、EventInterceptorを実装するクラスの名前を定義する<class-scheme>属性と、<service-name>、<cache-name>、および<events>に関連付けられているいずれかのディスパッチャをインターセプタがフィルタリングするかの宣言的な方法を定義する<dispatcher-filter>属性とを含み得る。<service-name>属性は、登録するために整合する必要のあるサービスの名前を定義する。<cache-name>属性は、登録するために整合する必要のあるキャッシュの名前を定義する。<events>属性は、インターセプタが登録することを望むイベントのリストを定義する。<event-type>属性は、登録すべきイベント・インスタンスを定義する。<event-type>属性は、<class-scheme>属性および<events>属性に対して登録すべきイベント・インスタンスを定義する。<class-scheme>属性は、com.tangosol.coherence.unifiedevents.StorageEntryEventなどの使用すべきサーバ側イベント・クラスを定義し、<events>属性は、登録すべきイベント名のリストを定義する。
オフロードイベントおよびサポート継続
ある実施形態に従い、エンドユーザコードがクラスタ・メンバーを停止させたりストールすることを防止するために、サーバ側イベントモデルは、可能ならいつでも、分散データグリッド内のパーティションサービスに関連付けられたサービス・スレッドのブロッキングを回避する。サービス・スレッドは、すべての受信要求をハンドリングし、かつそれらの実行を調整する役割を果たすからである。こうして、サーバ側イベントモデルは分散データグリッドの性能を改良し得る。
Coherenceの例では、$Service上のイベント・ディスパッチャ処理は、ほとんどのサーバ側イベントメッセージをハンドリングする役割を果たすスレッドとして用いられ得る。イベント・ディスパッチャ処理は、サーバ側で実行されると明示的に宣言される場合以外はクライアント側でハンドリングされるマップ・リスナーの形態のエンドユーザコードを典型的に実行する、ガードされたキューベースのプロセッサである。比較的小さい1組の機能がサーバ側で消費されるため、このスレッドはサーバ側イベントモデルの理想的な候補である。また、イベント・ディスパッチャは必要な保護でガードされる。さらに、イベント・ディスパッチャ処理は、キーによって順番にイベントを処理する単一のスレッド・キュー・プロセッサであり得る。順序付けが保証されるように、イベントのハンドリングは単一のスレッド上で行なわれ得る。
図7は、分散データグリッド内の継続のサポートを示す図である。図7に示されるように、サービス・スレッド701上の継続を要求する方法は、イベント前段階702およびイベント後段階704の2段階に分けることができる。イベント前段階は、必要なイベントが処理のためにワーカー・スレッド710にディスパッチされると終了する。イベント・ディスパッチャがイベントハンドリング706を完了すると、ワーカー・スレッドがサービス・スレッドに応答メッセージをポストバックすることによって、要求処理がイベント後段階で継続される。換言すれば、イベントがハンドリングされたという応答がポストバックされるとイベント後段階が継続する。
ある実施形態に従い、継続サポートは、イベント・ディスパッチャ・スレッドにイベントをポストすることによって達成され得る。たとえば、パーティション転送イベントが継続をサポートし得る。特定のエントリに対する修正とは異なり、パーティション転送は、ユーザが継続に対処する際に同一のスレッド(サービス・スレッド)から1組のパーティションを確実にロックおよびロック解除できるようにするために、サービス・スレッド上で実行可能である。さらに、パーティション転送イベントによってインターセプタがパーティション全体にわたって反復する可能性が高いことを考えると、パーティション転送ロジックは、それが長期間にわたってブロックされることを防止するために、サービス・スレッド上で実行されなくてもよい。
ある実施形態に従い、コミット後のイベントは、これらが提供されるエントリが不変であるため、分散データグリッド内部の要求処理のフローを中断する能力を有しない。1つの要件は、コミット後のイベントがキーによって順番に実行されることであり、これは、イベントハンドリングをワーカー・スレッドからイベント・ディスパッチャ・スレッドにオフロードして進むことによって単純に達成され得る。この場合も、Coherenceでは、イベントハンドリングのオフロードは、イベントオブジェクトをイベント・ディスパッチャ・スレッドにポストすることによって達成され得る。
ある実施形態に従い、イベント・ディスパッチャ上にディスパッチされるすべてのイベントがイベント・ディスパッチャ・キューに配置され得る。Coherenceでは、イベント・ディスパッチャは、典型的にSerice$DispatchEventオブジェクトであるRunnableを実行する。DispatchUEMEventオブジェクトは、公的にディスパッチされる必要のあるUEMEventオブジェクト、およびイベントをディスパッチするUEMEventDispatcherオブジェクトへの参照を含む、PartitionedCache上の専用のService$DispatchEvent子コンポーネントであり得る。
リスティング7において以下に示されるように、DispatchUEMEventオブジェクトは、必要とされる特定のリターンまたは継続をハンドリングする役割を果たす子オブジェクトを有し得る。必要な情報は、多様性に基づいてイベントがディスパッチされたあとにカプセル化され得る。
特定のDispatchUEMEventインスタンスの実行が終了すると、ワーカー・スレッドからの応答がサービス・スレッドにポストバックされ得る。データパーティション転送をサポートする例では、基本的なPartitionedCache$Acknowledgementコンポーネントを拡張する2つの応答メッセージ、すなわちPostDepartedメッセージおよびPostArrivedメッセージがあり得る。DispatchTransferDepartingコンポーネントのrunAfter方法は、PostDepartedメッセージをサービス・スレッドにポストバックする役割を果たし得る。DispatchTransferDepartingコンポーネントは、DispatchUEMEventを拡張し、StorageTransferEvent.DEPARTINGイベントをCoherence EventDispatcherスレッド上のUEMEventDispatcherに発生させる役割を果たす。さらに、DispatchTransferArrivedコンポーネントのrunAfter方法は、PostArrivedメッセージをサービス・スレッドにポストバックする役割を果たし得る。DispatchTransferArrivedコンポーネントはさらにDispatchUEMEventを拡張し、StorageTransferEvent.ARRIVEDイベントをCoherence EventDispatcherスレッド上のUEMEventDispatcherに発生させる役割を果たす。
本開示に記載されるさまざまな文脈の全体にわたって、本発明の実施形態は、上述のシステムおよび方法を実行するように構成されたコンピュータ装置、演算システムおよび機械読取可能媒体をさらに含む。特別に設計された集積回路または他の電子機器からなる実施形態に加えて、本発明は本開示の教示に従ってプログラムされた汎用または専用デジタルコンピュータまたはマイクロプロセッサを用いて便利に実現され得、これはコンピュータ技術の当業者にとって明らかになるであろう。
本開示の教示に基づいて適切なソフトウェアコーディングが熟練のプログラマによって作成され得、これはソフトウェア技術の当業者にとって明らかになるであろう。本発明は特定用途向け集積回路を作成することによって、または従来のコンポーネント回路の適切なネットワークを相互接続することによっても実現され得、これは当業者にとって明らかになるであろう。
さまざまな実施形態は、本明細書中に提示された特徴のいずれかを実行するように(1つまたは複数の)汎用または専用の演算プロセッサ/装置をプログラムするために使用できる命令が格納された(1つまたは複数の)記憶媒体であるコンピュータプログラム製品を含む。記憶媒体は、フロッピーディスク(登録商標)、光ディスク、DVD、CD−ROM、マイクロドライブ、光磁気ディスク、ホログラフィック記憶装置、ROM、RAM、PRAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリデバイス、磁気または光カード、ナノシステム(分子メモリICを含む)を含む任意の種類の物理的媒体、紙または紙ベースの媒体、ならびに命令および/または情報を記憶するのに適した任意の種類の媒体またはデバイスを含み得るが、これらに限定されない。コンピュータプログラム製品は全体的または部分的に、1つ以上の公的および/または私的ネットワーク上で送信可能であり、当該送信は、本明細書中に提示された特徴のいずれかを実行するための1つ以上のプロセッサによって使用できる命令を含む。当該送信は複数の別個の送信を含み得る。しかし、ある一定の実施形態に従って、命令を含むコンピュータ記憶媒体は、一時的ではなく(すなわち、送信処理中でなく)、むしろ物理的デバイス上に持続される。
本発明の好ましい実施形態のこれまでの記載は例示および説明を目的として提供されている。すべてを網羅するまたは本発明を開示された形態そのものに限定することは意図されていない。多くの変更および変形が当業者にとって明らかになり得る。変形は、開示された特徴の組み合わせを含み得る。実施形態は、本発明の原理およびその実際の応用を最もうまく説明することによって関連技術の当業者が本発明を理解できるようにするために、選択され説明された。本発明の範囲は、以下の特許請求の範囲およびその均等物によって定められることが意図されている。

Claims (15)

  1. 分散データグリッド内のサーバ側イベントモデルを提供するためのシステムであって、
    イベント・ディスパッチャを備え、前記イベント・ディスパッチャは、前記分散データグリッド内のオペレーションに関連付けられる少なくとも1つのイベントをディスパッチするように動作し、前記システムはさらに、
    1つ以上のイベント・インターセプタを備え、前記1つ以上のイベント・インターセプタは前記イベント・ディスパッチャにマッピングされ、前記1つ以上のイベント・インターセプタは、前記イベント・ディスパッチャから前記1つ以上のイベント・インターセプタにディスパッチされる前記少なくとも1つのイベントをハンドリングするように動作し、
    前記分散データグリッドは、前記1つ以上のイベント・インターセプタによる前記少なくとも1つのイベントのハンドリングが完了するまで、前記分散データグリッド内の前記オペレーションの完了を遅らせ、
    前記1つ以上のイベント・インターセプタは、同じイベントに登録されている場合に互いにリンクされる、システム。
  2. 前記イベント・インターセプタは、当該イベント・インターセプタが含まれるインターセプタ・チェインがストレージイベントに関連付けられている場合に、要求された処理のコミットを禁止する、請求項1に記載のシステム。
  3. 分散データグリッド内のサーバ側イベントモデルを提供するためのシステムであって、
    イベント・ディスパッチャを備え、前記イベント・ディスパッチャは、前記分散データグリッド内のオペレーションに関連付けられる少なくとも1つのイベントをディスパッチするように動作し、前記システムはさらに、
    1つ以上のイベント・インターセプタを備え、前記1つ以上のイベント・インターセプタは前記イベント・ディスパッチャにマッピングされ、前記1つ以上のイベント・インターセプタは、前記イベント・ディスパッチャから前記1つ以上のイベント・インターセプタにディスパッチされる前記少なくとも1つのイベントをハンドリングするように動作し、
    前記分散データグリッドは、前記1つ以上のイベント・インターセプタによる前記少なくとも1つのイベントのハンドリングが完了するまで、前記分散データグリッド内の前記オペレーションの完了を遅らせ、
    前記イベント・インターセプタは、当該イベント・インターセプタが含まれるインターセプタチェーンがストレージイベントに関連付けられている場合に、要求された処理のコミットを禁止する、システム。
  4. 前記分散データグリッドは、イベント・ディスパッチャ処理にイベントをポストすることによって、前記イベント・ディスパッチャと、前記イベント・ディスパッチャによってディスパッチされるイベントをハンドリングするサービス・スレッドとの間で、イベント処理の継続性をサポートする、請求項1から3のいずれかに記載のシステム。
  5. 分散データグリッド内のサーバ側イベントモデルを提供するためのシステムであって、
    イベント・ディスパッチャを備え、前記イベント・ディスパッチャは、前記分散データグリッド内のオペレーションに関連付けられる少なくとも1つのイベントをディスパッチするように動作し、前記システムはさらに、
    1つ以上のイベント・インターセプタを備え、前記1つ以上のイベント・インターセプタは前記イベント・ディスパッチャにマッピングされ、前記1つ以上のイベント・インターセプタは、前記イベント・ディスパッチャから前記1つ以上のイベント・インターセプタにディスパッチされる前記少なくとも1つのイベントをハンドリングするように動作し、
    前記分散データグリッドは、前記1つ以上のイベント・インターセプタによる前記少なくとも1つのイベントのハンドリングが完了するまで、前記分散データグリッド内の前記オペレーションの完了を遅らせ、
    前記分散データグリッドは、イベント・ディスパッチャ処理にイベントをポストすることによって、前記イベント・ディスパッチャと、前記イベント・ディスパッチャによってディスパッチされるイベントをハンドリングするサービス・スレッドとの間で、イベント処理の継続性をサポートする、システム。
  6. 前記分散データグリッドに関連付けられるレジストリをさらに備え、前記1つ以上のイベント・インターセプタは前記レジストリに登録される、請求項1〜5のいずれかに記載のシステム。
  7. 前記少なくとも1つのイベントはイベント階層において定義される、請求項1〜6のいずれかに記載のシステム。
  8. エンドユーザがイベントをハンドリングするためにカスタマイズされたロジックを実装することを可能にするインターフェイスをさらに備える、請求項1〜7のいずれかに記載のシステム。
  9. 前記イベント・ディスパッチャは、前記1つ以上のイベント・インターセプタを、それらが登録されているイベントに対してトリガする、請求項1〜8のいずれかに記載のシステム。
  10. 前記1つ以上のイベント・インターセプタは、それらが前記イベント・ディスパッチャにマッピングされる順序で実行される、請求項1〜9のいずれかに記載のシステム。
  11. 前記分散データグリッド内のパーティションサービスに関連付けられたサービス・スレッドは、すべての受信要求をハンドリングし、かつそれらの実行を調整する役割を果たす、請求項1〜10のいずれかに記載のシステム。
  12. 分散データグリッド内のサーバ側イベントモデルを提供するための方法であって、
    1つ以上のイベント・インターセプタをイベント・ディスパッチャにマッピングするステップを備え、前記イベント・ディスパッチャは、前記分散データグリッド内のオペレーションに関連付けられる少なくとも1つのイベントをディスパッチするように動作し、前記方法はさらに、
    前記1つ以上のイベント・インターセプタを介して、前記イベント・ディスパッチャから前記1つ以上のイベント・インターセプタにディスパッチされる前記少なくとも1つのイベントをハンドリングするステップと、
    前記1つ以上のイベント・インターセプタによる前記少なくとも1つのイベントのハンドリングが完了するまで、前記分散データグリッド内の前記オペレーションの完了を遅らせるステップとを備え、
    前記1つ以上のイベント・インターセプタは、同じイベントに登録されている場合に互いにリンクされる、方法。
  13. 分散データグリッド内のサーバ側イベントモデルを提供するための方法であって、
    1つ以上のイベント・インターセプタをイベント・ディスパッチャにマッピングするステップを備え、前記イベント・ディスパッチャは、前記分散データグリッド内のオペレーションに関連付けられる少なくとも1つのイベントをディスパッチするように動作し、前記方法はさらに、
    前記1つ以上のイベント・インターセプタを介して、前記イベント・ディスパッチャから前記1つ以上のイベント・インターセプタにディスパッチされる前記少なくとも1つのイベントをハンドリングするステップと、
    前記1つ以上のイベント・インターセプタによる前記少なくとも1つのイベントのハンドリングが完了するまで、前記分散データグリッド内の前記オペレーションの完了を遅らせるステップと、
    当該イベント・インターセプタが含まれるインターセプタチェーンが予めコミットされたストレージイベントに関連付けられている場合に、要求された処理のコミットを中止するステップとを備える、方法。
  14. 分散データグリッド内のサーバ側イベントモデルを提供するための方法であって、
    1つ以上のイベント・インターセプタをイベント・ディスパッチャにマッピングするステップを備え、前記イベント・ディスパッチャは、前記分散データグリッド内のオペレーションに関連付けられる少なくとも1つのイベントをディスパッチするように動作し、前記方法はさらに、
    前記1つ以上のイベント・インターセプタを介して、前記イベント・ディスパッチャから前記1つ以上のイベント・インターセプタにディスパッチされる前記少なくとも1つのイベントをハンドリングするステップと、
    前記1つ以上のイベント・インターセプタによる前記少なくとも1つのイベントのハンドリングが完了するまで、前記分散データグリッド内の前記オペレーションの完了を遅らせるステップとを備え、
    前記分散データグリッドは、イベント・ディスパッチャ処理にイベントをポストすることによって、前記イベント・ディスパッチャと、前記イベント・ディスパッチャによってディスパッチされるイベントをハンドリングするサービス・スレッドとの間で、イベント処理の継続性をサポートする、方法。
  15. 請求項12〜14のいずれかに記載の方法をコンピュータに実行させるための、コンピュータプログラム。
JP2014530894A 2011-09-15 2012-09-14 分散データグリッド内のサーバ側イベントモデルをサポートするためのシステムおよび方法 Active JP6189304B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201161535238P 2011-09-15 2011-09-15
US61/535,238 2011-09-15
US13/462,720 2012-05-02
US13/462,719 US9348668B2 (en) 2011-09-15 2012-05-02 System and method for supporting a server-side event model in a distributed data grid
US13/462,720 US9621409B2 (en) 2011-09-15 2012-05-02 System and method for handling storage events in a distributed data grid
US13/462,719 2012-05-02
PCT/US2012/055586 WO2013040463A2 (en) 2011-09-15 2012-09-14 System and method for supporting a server-side event model in a distributed data grid

Publications (3)

Publication Number Publication Date
JP2014526750A JP2014526750A (ja) 2014-10-06
JP2014526750A5 JP2014526750A5 (ja) 2015-09-10
JP6189304B2 true JP6189304B2 (ja) 2017-08-30

Family

ID=47881904

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014530894A Active JP6189304B2 (ja) 2011-09-15 2012-09-14 分散データグリッド内のサーバ側イベントモデルをサポートするためのシステムおよび方法

Country Status (5)

Country Link
US (3) US9348668B2 (ja)
EP (1) EP2756430B1 (ja)
JP (1) JP6189304B2 (ja)
CN (1) CN103827864B (ja)
WO (1) WO2013040463A2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10706021B2 (en) * 2012-01-17 2020-07-07 Oracle International Corporation System and method for supporting persistence partition discovery in a distributed data grid
US8930409B2 (en) 2012-10-15 2015-01-06 Oracle International Corporation System and method for supporting named operations in a distributed data grid
US9063576B1 (en) * 2013-04-04 2015-06-23 Amazon Technologies, Inc. Managing gesture input information
WO2015179092A1 (en) * 2014-05-21 2015-11-26 Oracle International Corporation System and method for supporting a distributed data structure in a distributed data grid
US10250519B2 (en) * 2014-05-21 2019-04-02 Oracle International Corporation System and method for supporting a distributed data structure in a distributed data grid
US10572486B2 (en) 2015-02-26 2020-02-25 Red Hat, Inc. Data communication in a distributed data grid
CN106294116A (zh) * 2015-06-11 2017-01-04 阿里巴巴集团控股有限公司 记录和重现操作过程的方法、装置和系统
US9760376B1 (en) * 2016-02-01 2017-09-12 Sas Institute Inc. Compilation for node device GPU-based parallel processing
US10728186B2 (en) 2017-05-24 2020-07-28 Sap Se Preventing reader starvation during order preserving data stream consumption
CN109426600B (zh) * 2017-12-21 2022-04-22 中国平安人寿保险股份有限公司 数据采集处理方法、装置、设备及可读存储介质
US10922151B2 (en) * 2018-07-03 2021-02-16 Sap Se Unified events framework
CN110830528B (zh) * 2018-08-07 2023-06-02 北京京东尚科信息技术有限公司 一种用于分布式定时开关控制的方法和装置
US10848585B2 (en) * 2018-12-03 2020-11-24 Walmart Apollo, Llc Using a sharded distributed cache as a pipeline integration buffer
CN111897572A (zh) * 2020-08-06 2020-11-06 杭州有赞科技有限公司 一种数据处理方法、系统、计算机设备及可读存储介质
CN112650824B (zh) * 2020-12-24 2024-08-13 启迪城市环境服务集团有限公司 一种环卫作业事件的定位方法
CN113282466B (zh) * 2021-06-22 2023-09-15 北京奇艺世纪科技有限公司 restful风格的接口的监控数据的处理方法及相关设备
US12015540B2 (en) 2021-09-07 2024-06-18 Red Hat, Inc. Distributed data grid routing for clusters managed using container orchestration services
CN117271534B (zh) * 2023-11-23 2024-03-05 长春汽车工业高等专科学校 一种汽车零部件的光谱检测方法及系统
CN117930641A (zh) * 2023-11-29 2024-04-26 中国人民解放军32039部队 一种数据驱动的航天测控调度方法和系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5625821A (en) * 1991-08-12 1997-04-29 International Business Machines Corporation Asynchronous or synchronous operation of event signaller by event management services in a computer system
US7203946B2 (en) * 1999-10-11 2007-04-10 Hewlett-Packard Development Company, L.P. System and method for intercepting, instrumenting and characterizing usage of an application programming interface
US6512519B1 (en) 1999-10-27 2003-01-28 Autodesk, Inc. Infrastructure for shape event handlers
US6519509B1 (en) 2000-06-22 2003-02-11 Stonewater Software, Inc. System and method for monitoring and controlling energy distribution
US20030050983A1 (en) 2001-09-12 2003-03-13 Johnson Paul A. External event processor system and method
US7730446B2 (en) * 2003-03-12 2010-06-01 Microsoft Corporation Software business process model
JP2006146789A (ja) 2004-11-24 2006-06-08 Denso Corp 電子制御装置およびその制御方法ならびにプログラム
KR20070110367A (ko) * 2005-02-24 2007-11-16 제라운드 시스템즈 리미티드 데이터 관리 방법 및 장치
US7624118B2 (en) * 2006-07-26 2009-11-24 Microsoft Corporation Data processing over very large databases
US7861213B2 (en) 2006-09-05 2010-12-28 Oracle International Corporation Mechanism for developing AJax applications using java swing framework and method for using the same
US8458695B2 (en) * 2006-10-17 2013-06-04 Manageiq, Inc. Automatic optimization for virtual systems
JP5104489B2 (ja) 2008-04-03 2012-12-19 日本電気株式会社 分散イベント検出システム、分散イベント検出方法、及び分散イベント検出用プログラム
US9542708B2 (en) 2008-05-20 2017-01-10 Oracle International Corporation Event server using caching
US8285499B2 (en) 2009-03-16 2012-10-09 Apple Inc. Event recognition
US8539171B2 (en) * 2009-10-27 2013-09-17 Microsoft Corporation Analysis and timeline visualization of storage channels
US8453149B2 (en) * 2010-01-21 2013-05-28 International Business Machines Corporation Efficient multi-core processing of events
US8584136B2 (en) * 2011-08-15 2013-11-12 Sap Ag Context-aware request dispatching in clustered environments
US9329899B2 (en) * 2013-06-24 2016-05-03 Sap Se Parallel execution of parsed query based on a concurrency level corresponding to an average number of available worker threads

Also Published As

Publication number Publication date
US20160234057A1 (en) 2016-08-11
CN103827864A (zh) 2014-05-28
CN103827864B (zh) 2018-05-22
JP2014526750A (ja) 2014-10-06
US9621409B2 (en) 2017-04-11
US20130074101A1 (en) 2013-03-21
EP2756430A4 (en) 2016-08-24
US9348668B2 (en) 2016-05-24
US20130074083A1 (en) 2013-03-21
US9602339B2 (en) 2017-03-21
EP2756430A2 (en) 2014-07-23
WO2013040463A3 (en) 2013-07-04
WO2013040463A2 (en) 2013-03-21
EP2756430B1 (en) 2019-09-04

Similar Documents

Publication Publication Date Title
JP6189304B2 (ja) 分散データグリッド内のサーバ側イベントモデルをサポートするためのシステムおよび方法
US8788580B2 (en) Event broker for an improved application server platform for telecom-based applications
US8555242B2 (en) Decentralized system services
US9104715B2 (en) Shared data collections
US7778965B2 (en) Systems and methods for common instance handling of providers in a plurality of frameworks
US7752599B2 (en) Systems and methods extending an existing programming language with constructs
US20070130574A1 (en) Method and system for event-based remote procedure call implementation in a distributed computing system
US20050022164A1 (en) Systems and methods utilizing a workflow definition language
JP6129957B2 (ja) オブジェクト指向プログラミング言語環境においてオブジェクトに対する遅延参照をサポートするためのシステムおよび方法
US8356308B2 (en) Blocking and bounding wrapper for thread-safe data collections
US8972997B2 (en) Work item processing in distributed applications
US9501312B2 (en) Using compensation transactions for multiple one-phase commit participants
JP6283376B2 (ja) クラスタにおけるワークシェアリング多重化をサポートするためのシステムおよび方法
Popovic et al. A solution of concurrent queue on local and distributed Python STM
US11822924B2 (en) System and method for reactive flattening map for use with a microservices or other computing environment
Schaefer An approach for fine-grained web service performance monitoring
US8856792B2 (en) Cancelable and faultable dataflow nodes
Haapakoski IMPLEMENTING ASYNCHRONOUS SAGAS IN A MICROSERVICE ARCHITECTURE
Jin et al. An Integration Rule Processing Algorithm and Execution Environment for Distributed Component Integration
Hunt et al. Stateless Session EJBs
Fongen A tutorial on Tuplespace programming
Birman et al. coMMUNICATION suroRT FoR RELIABLE
Ambrosi et al. Transparent Java threads migration protocol over Peer2Peer

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150723

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150723

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160809

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170417

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170802

R150 Certificate of patent or registration of utility model

Ref document number: 6189304

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250