JP2008547130A - メッセージ待ち行列の管理 - Google Patents
メッセージ待ち行列の管理 Download PDFInfo
- Publication number
- JP2008547130A JP2008547130A JP2008519405A JP2008519405A JP2008547130A JP 2008547130 A JP2008547130 A JP 2008547130A JP 2008519405 A JP2008519405 A JP 2008519405A JP 2008519405 A JP2008519405 A JP 2008519405A JP 2008547130 A JP2008547130 A JP 2008547130A
- Authority
- JP
- Japan
- Prior art keywords
- queue
- data
- data structure
- queues
- messages
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5016—Session
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
Abstract
Description
本発明は、メッセージ待ち行列の管理に関する。
一般的な態様では、本発明は、複数の待ち行列へデータを書き込むための方法、ならびに対応するソフトウエアおよびシステムを特徴とし、データのそれぞれの部分は、待ち行列の内の対応する一つへ書き込まれる。本方法は、二つ以上の待ち行列を同時にロックする必要なく、データの対応する部分を書き込むための空間が、それぞれの待ち行列内で利用できるかどうかを判定し、利用できる場合は、待ち行列内にその空間を予約するステップを含む。本方法は、待ち行列の内の対応する一つへそれぞれのデータ部分を書き込むステップを含む。
1 概観
図1Aは、一セットの信頼済みアクセスエンティティ102A〜102Mそれぞれが、待ち行列マネージャ106と直接相互作用するための待ち行列トランザクションモジュール104を備える待ち行列システム100を示す。待ち行列システム100は、一セットの未信頼アクセスエンティティ108A〜108Nをも含み、それぞれのエンティティは、リモート手順呼出し(RPC)マネージャ112を通じて待ち行列マネージャ106と相互作用するための、リモート待ち行列トランザクションモジュール110を含む。
I/Oマネージャ114は、不揮発性メモリ118内の順序付けられた待ち行列データ構造へメッセージを格納する場合、どの特定の書き込みトランザクションに対するメッセージも、待ち行列マネージャ106へ提示された順序で維持する。待ち行列データ構造内に格納されたメッセージの順序は、例えば、現在、待ち行列データ構造の一部となっているディスクページのリンクリストにより判定される。異なる書き込みトランザクションに対するメッセージは、待ち行列データ構造内でインターリーブすることができる。新規の書き込みトランザクションを、前に開始された書き込みトランザクションをコミットした後で開始する場合、新規書き込みトランザクションと関係付けられる全てのメッセージは、前の書き込みトランザクション内のメッセージ全てが待ち行列データ構造内で処理された後に行われる。
図2A〜図2Eは、上記に説明した書き込みバッファ技法の例示を実行している間の、書き込みバッファ120および待ち行列データ構造QUEUE_Aの状態を示す。書き込みバッファ120は、待ち行列レコード(例えば、メッセージレコードおよび書き込みトランザクションの開始を示す「オープン」レコード)に対する一時的な格納である。書き込みバッファ120は、対応するトランザクションがコミットされるか、または書き込みバッファ120が「一杯」になるまで、レコードを保持する。待ち行列マネージャ106は、データの最大量、メッセージの最大数に基づいて、またはデータの量とメッセージの数の組み合わせに基づいて、書き込みバッファ120が一杯になる時間を判定できる。本実施例では、説明のために過ぎないが、書き込みバッファ120は、最大3つのメッセージを保持する。書き込みバッファ120は、メッセージが追加された順序を保存する順序付けデータ構造(例えば、リンクリスト)とともに実装する。書き込みバッファ120および待ち行列データ構造QUEUE_Aを、メッセージがリストの底部の「ヘッド」へ追加されるリストとして示す。
T1」レコード、およびトランザクションT2の開始を示す「OPEN T2」レコードを保持する。書き込みバッファ120は、ヘッダ:「T1:ADD M1」、「T2:ADD
M1」、および「T1:ADD M2」を有するメッセージを保持する。各メッセージのメッセージデータも、対応するメッセージヘッダと併せて書き込みバッファ120内に格納する。本実施例では、書き込みトランザクションT1と関係付けられる二つのメッセージが、書き込みトランザクションT2と関係付けられるメッセージとインターリーブされる。これは、例えば、T1およびT2が異なる発行者により同時に書き込まれたためである。
T1」をメッセージの後でQUEUE_Aへ書き込んで、コミット動作を完了させる。T1メッセージをQUEUE_Aへ移動した後、単一のT2メッセージが書き込みバッファ内に残る(T2はまだコミットされていないので)。
M1」を有するT2の唯一のメッセージM1をQUEUE_Aへ移動した後、書き込みトランザクションT2に対するコミット動作を実行する。次いで、発行者は、新規の書き込みトランザクションT4を開いて、ヘッダ「T4:ADD
M1」を有するメッセージを、最後に残っている書き込みバッファ120のスロット内の待ち行列へ追加する。書き込みトランザクションT1およびT2と関係付けられるメッセージは、当初インターリーブされていたが、インターリーブを解かれて、書き込みバッファ120からQUEUE_Aへの転送の一部として、待ち行列データ構造QUEUE_A内に連続して格納されている。
待ち行列マネージャ106は、待ち行列内のメッセージレコードを順次スキャンし、メッセージヘッダだけを読み出して、それぞれのメッセージがどのトランザクションと関係付けられるかを判定することにより読み出しデータ構造を蓄積する。待ち行列マネージャ106は、読み出しデータ構造を用いて、多数となる可能性のある書き込みトランザクションの経過を追跡する。それぞれの待ち行列に対して、待ち行列マネージャ106は、その待ち行列の各契約者に対する読み出しデータ構造を格納する。
図5を参照して、待ち行列マネージャ106が大規模トランザクションT2を開くと、待ち行列マネージャ106は、不揮発性メモリ格納116内に大規模トランザクションデータ構造(LTDS)122を配置する。大規模トランザクションのメッセージが到着すると、メッセージの連続リストとしてLTDS
122へ直接書き込まれる。大規模トランザクションがコミットされると、待ち行列マネージャ106は、LTDS 122を閉じ、待ち行列データ構造QUEUE_P内の間接メッセージ500内にLTDS 122へのポインタを格納する。間接メッセージ500は、大規模トランザクションT2のトランザクションIDも含む。
122からメッセージを契約者へ直接渡すことができる。大規模トランザクションがコミットされていると自動的に指示されるので、どの大規模トランザクションメッセージも、契約者へ渡す前にスキャンする必要はない。また、スキャンの別の機能、異なるトランザクションからのメッセージの「非インターリーブ化」が不要になる。大規模トランザクションT2内の全てのメッセージを返した後、待ち行列マネージャ106は、待ち行列データ構造へ戻る。
複合コミット動作では、待ち行列マネージャ106は、複数の待ち行列へ書き込む複合トランザクションの追加メッセージ全てが、確実に、永続的に格納されているようにする。複合コミット動作の一部は、これらの待ち行列へコミットレコードを書き込むステップを含む。一つ以上のアクセスエンティティが待ち行列に同時にアクセスでき、その一方で、アクセスエンティティに複合コミット動作へ干渉させずに、複合コミット動作を実行するメカニズムを提供することが有用である。
図7は、コミットレコード書き込み動作700のフロー図を示す。待ち行列マネージャ106は、複合トランザクション内に含まれる各待ち行列をロックする702。図6の実施例では、待ち行列マネージャ106は、QUEUE_AおよびQUEUE_Dをロックする(例えば、ロックフラグを設定することにより)。このロックは、何らかの他のプロセスが、待ち行列データ構造内の利用できる空間を占有するのを防ぐ。
第2手法では、待ち行列マネージャ106は、各待ち行列内の利用できる空間量を、コミットされる複合書き込みトランザクションおよび何らかの未解決トランザクションに対するコミットレコードを書き込むのに用いるであろう空間量と比較する(本明細書で使用しているように、「未解決トランザクション」は、複合トランザクションおよび書き込みトランザクションの両方を含む)。待ち行列データ構造QUEUE_Aは、T2および未解決トランザクションT3に対するコミットレコードを書き込むために予約される記憶装置604のブロックを含む。待ち行列データ構造QUEUE_Bは、T2および未解決トランザクションT3およびT4に対するコミットレコードを書き込むために予約される記憶装置606のブロックを含む。
Do = size_of(1オープンレコード)+size_of(1コミットレコード)×(Ti+1)
利用できる空間がDo以上の場合、待ち行列マネージャ106は、QUEUE_iのロックを外し806、「オープンレコード」を書き込み808、未解決トランザクションの数Tiをインクリメントする810。あるいは、利用できる空間がDo未満の場合、待ち行列マネージャ106は、QUEUE_iのロックを外し812、オープン動作800を中断する814。
Dw = size_of(書き込まれるデータ)+size_of(1コミットレコード)×Ti
ここで、size_of(data)は、適切な単位(例えばバイト)のdataのサイズを返す。利用できる空間がDw以上の場合、待ち行列マネージャ106は、データを書き込み862、待ち行列のロックを外す864。あるいは、利用できる空間がDW未満の場合、待ち行列マネージャ106は、待ち行列のロックを外し866、書き込み動作850を中断する868。本手法では、格納空間をチェックする間、データを書き込む待ち行列である単一の待ち行列だけがロックされる。
図9Aおよび図9Bは、コミットレコード書き込み動作900および関係する書き込み動作950のフロー図を示す。この手法では、待ち行列マネージャ106は、書き込みトランザクションの開始時点で図8Aに示す「オープン動作」800を用いる。コミットレコード書き込み動作900および書き込み動作950は、ともに待ち行列内の利用できる空間をチェックする。また、本手法では、一度には単一の待ち行列しかロックしない。各待ち行列QUEUE_iに対して、待ち行列マネージャ106は、未解決トランザクションの数Tiの経過を追跡する(オープン動作800を用いてTiをインクリメントする)。待ち行列マネージャ106は、Ti個の未解決トランザクションのそれぞれに対するコミットレコードのための十分な空間を、それぞれの待ち行列データ構造が予約するのを確実にする。しかし、本手法では、待ち行列マネージャ106は、データを待ち行列へ書き込む前に空間をチェックするために、「予約モード」状態にある待ち行列をロックするのみである。予約モードは、全ての参加している待ち行列を同時にはロックせずに、コミット動作が進行状態にあるということを示す方法を提供する。
Dc = size_of(1コミットレコード)×Ti
利用できる空間がDc以上の場合、待ち行列マネージャ106は、QUEUE_iのロックを外し910、継続する。あるいは、利用できる空間がDc未満の場合、待ち行列マネージャ106は、QUEUE_iのロックを外し912、コミットレコード書き込み動作900を中断する914。
二つ以上の待ち行列を同時ロックせずに、多数の待ち行列のそれぞれへの、コミットレコードの書き込み成功を保証するコミット動作を管理するための他の手法が可能である。例えば、第3の手法の変形形態では、全ての未解決トランザクションのカウントTiを用いる代わりに、待ち行列マネージャ106は、Dcおよび/またはDWの計算に対して予約モードRi状態の待ち行列の数を用いる。手法によっては、ジャーナルコミットレコードを書き込む前に、待ち行列コミットレコードに対する空間が不足しているためにコミット動作が失敗しても許容される。
本明細書で説明した待ち行列管理機能をコンピュータ上で実行するためにソフトウエアを用いて実装することができる。例えば、ソフトウエアは、一台以上のプログラム済みまたはプログラム可能なコンピューターシステム(分散型、クライアント/サーバ型、またはグリッド型等の各種アーキテクチャから構成できる)上で実行される一つ以上のコンピュータープログラム内の手順を形成する。それぞれのコンピューターシステムは、少なくとも一つのプロセッサ、少なくとも一つのデータ格納システム(揮発性メモリおよび不揮発性メモリおよび/または記憶素子を含む)、少なくとも一つの入力装置またはポート、および少なくとも一つの出力装置またはポートを含む。ソフトウエアは、例えば、計算グラフの設計および構成と関連する他のサービスを提供する、規模の大きなプログラムの内の一つ以上のモジュールを形成してもよい。本明細書で説明するデータ構造を、コンピュータ可読媒体内に格納したデータ構造、またはデータ収納庫内に格納したデータモデルへ準拠する他の体系化したデータ、として実装することができる。
Claims (24)
- 複数の待ち行列へデータを書き込むための方法であって、前記データのそれぞれの部分は前記待ち行列の内の対応する一つへ書き込まれ、前記方法は:
二つ以上の待ち行列を同時にロックする必要なく、それぞれの待ち行列内に、前記データの対応する部分を書き込むための空間が利用できるかどうかを判定し(902)、利用できる場合は、前記待ち行列内に前記空間を予約するステップ;および、
前記データのそれぞれの部分を前記待ち行列の内の対応する一つへ書き込む(920)ステップ;を含む方法。 - 前記データのそれぞれの部分を前記待ち行列の内の対応する一つへ書き込むステップは、前記待ち行列内の前記空間全てを予約した後に行われる、
請求項1の方法。 - 前記データの一部を前記対応する待ち行列内に書き込んだ後、その待ち行列内に書き込まれた前記データの一部のための前記空間の前記予約を開放するステップを更に含む、
請求項1の方法。 - それぞれの待ち行列内に前記空間が利用できるかどうかを判定し、利用できる場合は、前記空間を予約するステップは、多数の前記待ち行列のそれぞれに対して:
前記待ち行列をロックするステップ;
前記空間が前記待ち行列内に利用できるかどうかを判定するステップ;
利用できる場合は前記空間を予約するステップ;および、
前記待ち行列のロックを外すステップ;を含む、
請求項1の方法。 - 前記待ち行列の内の対応する一つへ書き込まれる前記データのそれぞれの部分は、レコードを含む、
請求項1の方法。 - ジャーナルレコードを書き込んでから、前記待ち行列の何れかへ前記レコードを書き込むステップを更に含む、
請求項5の方法。 - 前記待ち行列のそれぞれを不揮発性メモリへ同期してから、前記ジャーナルレコードを書き込むステップを更に含む、
請求項6の方法。 - 前記待ち行列の内の第1のものへ、前記レコードの内の一つ以外の他のデータを書き込む前に、前記第1待ち行列内に空間が予約されている場合、前記他のデータに対して、前記第1待ち行列内に追加空間が利用できるかどうかを判定する間、前記第1待ち行列をロックしてから、前記他のデータを前記第1待ち行列へ書き込むステップを更に含む、
請求項5の方法。 - 前記待ち行列の内の第1のものへ、前記レコードの内の一つ以外の他のデータを書き込む前に、前記第1待ち行列内に空間が未だ予約されていない場合、前記第1待ち行列を必ずしもロックする必要なく、前記データを前記第1待ち行列へ書き込むステップを更に含む、
請求項5の方法。 - それぞれの待ち行列内に、前記データの対応する部分を書き込むための空間が利用できるかどうかを判定するステップは、それぞれの待ち行列内に、前記待ち行列との何れかの未解決トランザクションに対するコミットレコードを書き込むのに十分な空間が利用できることを確実にするステップを含む、
請求項1の方法。 - 前記待ち行列の少なくとも一つに、前記待ち行列との何れかの未解決トランザクションに対するコミットレコードを書き込むのに十分な空間が予約されていないと判定した後、前記複数の待ち行列のそれぞれへ前記対応するコミットレコードを書き込むのを中断するステップを更に含む、
請求項10の方法。 - 前記待ち行列内に前記空間を予約するステップは、それぞれの待ち行列に対応するカウンタをインクリメントするステップを含む、
請求項1の方法。 - 複数の待ち行列へデータを書き込むためのコンピュータ可読媒体上に格納されるソフトウエアであって、前記データのそれぞれの部分を前記待ち行列の内の対応する一つへ書き込み、前記ソフトウエアは:
二つ以上の待ち行列を同時にロックする必要なく、それぞれの待ち行列内に、前記データの対応する部分を書き込むための空間が利用できるかどうかを判定し(902)、利用できる場合は、前記待ち行列内に前記空間を予約するステップ;および、
前記データのそれぞれの部分を前記待ち行列の内の対応する一つへ書き込む(920)ステップ;をコンピューターシステムに実行させるための命令を含むソフトウエア。 - 複数の待ち行列へデータを書き込むためのシステムであって、前記データのそれぞれの部分を前記待ち行列の内の対応する一つへ書き込み、前記システムは:
二つ以上の待ち行列を同時にロックする必要なく、それぞれの待ち行列内に、前記データの対応する部分を書き込むための空間が利用できるかどうかを判定し(902)、利用できる場合は、前記待ち行列内に前記空間を予約するための手段;および、
前記データのそれぞれの部分を前記待ち行列の内の対応する一つへ書き込む(920)ための手段;を含むシステム。 - 待ち行列に対する複数のメッセージを第1データ構造(122)内に格納するステップであって、前記第1データ構造(122)は、前記待ち行列に対する第2データ構造とは別である;
前記メッセージと関係付けられるトランザクションをコミットするステップ;および、
連続するメモリ場所から前記メッセージの少なくとも幾つかを読み出すステップ;を含む方法。 - 前記第2データ構造内に、前記第1データ構造を指すポインタを格納するステップを更に含む、
請求項15の方法。 - 連続するメモリ場所から前記メッセージの少なくとも幾つかを読み出すステップは、前記第1データ構造から前記メッセージの少なくとも幾つかを読み出すステップを含む、
請求項16の方法。 - 前記トランザクションをコミットするステップは、前記第1データ構造から前記第2データ構造へ前記メッセージを移動するステップを含む、
請求項15の方法。 - 連続するメモリ場所から前記メッセージの少なくとも幾つかを読み出すステップは、前記第2データ構造から前記メッセージの少なくとも幾つかを読み出す
ステップを含む、
請求項18の方法。 - 前記第1データ構造を揮発性メモリ内に格納し、前記第2データ構造を不揮発性メモリ内に格納する、
請求項18の方法。 - 前記第1データ構造から第3データ構造へ前記メッセージを移動するステップ;および、
前記第2データ構造内に、前記第3データ構造を指すポインタを格納するステップ;を更に含む、
請求項15の方法。 - 連続するメモリ場所から前記メッセージの少なくとも幾つかを読み出すステップは、前記第3データ構造から前記メッセージの少なくとも幾つかを読み出すステップを含む、
請求項21の方法。 - コンピュータ可読媒体上に格納されるソフトウエアであって:
待ち行列に対する複数のメッセージを第1データ構造(122)内に格納するステップであって、前記第1データ構造(122)は、前記待ち行列に対する第2データ構造とは別である;;
前記メッセージと関係付けられるトランザクションをコミットするステップ;および、
連続するメモリ場所から前記メッセージの少なくとも幾つかを読み出すステップ;をコンピューターシステムに実行させるための命令を含むソフトウエア。 - 待ち行列に対する複数のメッセージを第1データ構造(122)内に格納するための手段であって、前記第1データ構造(122)は、前記待ち行列に対する第2データ構造とは別である;
前記メッセージと関係付けられるトランザクションをコミットするための手段;および、
連続するメモリ場所から前記メッセージの少なくとも幾つかを読み出すための手段;を含むシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/169,074 US7865684B2 (en) | 2005-06-27 | 2005-06-27 | Managing message queues |
US11/169,074 | 2005-06-27 | ||
PCT/US2006/024233 WO2007002245A2 (en) | 2005-06-27 | 2006-06-22 | Managing message queues |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012088219A Division JP5657599B2 (ja) | 2005-06-27 | 2012-04-09 | メッセージ待ち行列の管理 |
JP2015076899A Division JP6046760B2 (ja) | 2005-06-27 | 2015-04-03 | メッセージ待ち行列の管理 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008547130A true JP2008547130A (ja) | 2008-12-25 |
JP5762669B2 JP5762669B2 (ja) | 2015-08-12 |
Family
ID=37568981
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008519405A Active JP5762669B2 (ja) | 2005-06-27 | 2006-06-22 | メッセージ待ち行列の管理 |
JP2012088219A Active JP5657599B2 (ja) | 2005-06-27 | 2012-04-09 | メッセージ待ち行列の管理 |
JP2015076899A Active JP6046760B2 (ja) | 2005-06-27 | 2015-04-03 | メッセージ待ち行列の管理 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012088219A Active JP5657599B2 (ja) | 2005-06-27 | 2012-04-09 | メッセージ待ち行列の管理 |
JP2015076899A Active JP6046760B2 (ja) | 2005-06-27 | 2015-04-03 | メッセージ待ち行列の管理 |
Country Status (8)
Country | Link |
---|---|
US (2) | US7865684B2 (ja) |
EP (1) | EP1913481A4 (ja) |
JP (3) | JP5762669B2 (ja) |
KR (1) | KR101372978B1 (ja) |
CN (3) | CN105404592B (ja) |
AU (1) | AU2006262163B2 (ja) |
CA (2) | CA2834146C (ja) |
WO (1) | WO2007002245A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011141695A (ja) * | 2010-01-06 | 2011-07-21 | Canon Inc | メッセージ処理装置およびメッセージ処理方法 |
Families Citing this family (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2549343C (en) * | 2002-12-17 | 2008-08-19 | Breathablebaby, Llc | Crib shield system and other breathable apparatus |
US8688634B2 (en) * | 2004-02-27 | 2014-04-01 | International Business Machines Corporation | Asynchronous peer-to-peer data replication |
US7490083B2 (en) * | 2004-02-27 | 2009-02-10 | International Business Machines Corporation | Parallel apply processing in data replication with preservation of transaction integrity and source ordering of dependent updates |
GB0519033D0 (en) * | 2005-09-17 | 2005-10-26 | Ibm | Optimistic processing of messages in a messaging system |
US8554846B2 (en) * | 2005-09-27 | 2013-10-08 | Oracle International Corporation | System and method for providing a messaging kernel |
US20070180150A1 (en) | 2005-12-01 | 2007-08-02 | Firestar Software, Inc. | System and method for exchanging information among exchange applications |
US9898517B2 (en) * | 2006-04-21 | 2018-02-20 | Adobe Systems Incorporated | Declarative synchronization of shared data |
EP2038822A4 (en) * | 2006-05-08 | 2011-07-27 | Firestar Software Inc | SYSTEM AND METHOD FOR THE EXCHANGE OF TRANSACTION INFORMATION USING IMAGES |
US7996849B2 (en) * | 2007-02-14 | 2011-08-09 | International Business Machines Corporation | Method, apparatus and software for managing a transactional message queue |
JP5669338B2 (ja) * | 2007-04-26 | 2015-02-12 | 株式会社日立製作所 | 半導体装置 |
US9021503B2 (en) * | 2007-11-16 | 2015-04-28 | Microsoft Technology Licensing, Llc | Coordinating application state and communication medium state |
US8505030B2 (en) * | 2007-11-16 | 2013-08-06 | Microsoft Corporation | Coordinating resources using a volatile network intermediary |
US8719841B2 (en) * | 2007-11-16 | 2014-05-06 | Microsoft Corporation | Dispatch mechanism for coordinating application and communication medium state |
US8037024B1 (en) * | 2008-06-04 | 2011-10-11 | Google Inc. | Data propagation in a multi-shard database system |
TW201032535A (en) * | 2008-10-14 | 2010-09-01 | Ibm | A method of handling a message |
US8572627B2 (en) * | 2008-10-22 | 2013-10-29 | Microsoft Corporation | Providing supplemental semantics to a transactional queue manager |
US8301706B2 (en) | 2009-06-15 | 2012-10-30 | Microsoft Corporation | Routing of pooled messages via an intermediary |
US8549538B2 (en) | 2010-03-18 | 2013-10-01 | Microsoft Corporation | Coordinating communication medium state for subtasks |
US8250234B2 (en) | 2010-04-26 | 2012-08-21 | Microsoft Corporation | Hierarchically disassembling messages |
US20110320530A1 (en) | 2010-06-29 | 2011-12-29 | International Business Machines Corporation | Method for processing a unit of work |
US8516032B2 (en) * | 2010-09-28 | 2013-08-20 | Microsoft Corporation | Performing computations in a distributed infrastructure |
US8724645B2 (en) | 2010-09-28 | 2014-05-13 | Microsoft Corporation | Performing computations in a distributed infrastructure |
US8341134B2 (en) | 2010-12-10 | 2012-12-25 | International Business Machines Corporation | Asynchronous deletion of a range of messages processed by a parallel database replication apply process |
EP2683251B1 (en) | 2011-03-11 | 2021-08-25 | Intercontinental Great Brands LLC | Method of forming multilayer confectionery |
US9015303B2 (en) | 2011-09-12 | 2015-04-21 | Microsoft Corporation | Message queue behavior optimizations |
US9116761B2 (en) | 2011-09-29 | 2015-08-25 | Oracle International Corporation | System and method for preventing single-point bottleneck in a transactional middleware machine environment |
US8832217B2 (en) * | 2011-09-29 | 2014-09-09 | Oracle International Corporation | System and method for supporting different message queues in a transactional middleware machine environment |
US9690638B2 (en) * | 2011-09-29 | 2017-06-27 | Oracle International Corporation | System and method for supporting a complex message header in a transactional middleware machine environment |
CN103136139A (zh) * | 2011-11-30 | 2013-06-05 | 英业达科技有限公司 | 现场可更换单元信息的读取方法及写入方法 |
US8965861B1 (en) * | 2012-06-28 | 2015-02-24 | Amazon Technologies, Inc. | Concurrency control in database transactions |
US10180901B2 (en) * | 2012-10-19 | 2019-01-15 | Oracle International Corporation | Apparatus, system and method for managing space in a storage device |
JP2014085896A (ja) * | 2012-10-25 | 2014-05-12 | International Business Maschines Corporation | トランザクション処理方法、プログラム及びシステム |
US9245053B2 (en) | 2013-03-12 | 2016-01-26 | International Business Machines Corporation | Efficiently searching and modifying a variable length queue |
US9928104B2 (en) * | 2013-06-19 | 2018-03-27 | Nvidia Corporation | System, method, and computer program product for a two-phase queue |
US20150032961A1 (en) * | 2013-07-23 | 2015-01-29 | Lexmark International Technologies S.A. | System and Methods of Data Migration Between Storage Devices |
SG11201603105VA (en) | 2013-10-21 | 2016-05-30 | Ab Initio Technology Llc | Checkpointing a collection of data units |
US9727625B2 (en) | 2014-01-16 | 2017-08-08 | International Business Machines Corporation | Parallel transaction messages for database replication |
WO2015159154A2 (en) * | 2014-04-16 | 2015-10-22 | Societe Bic | Systems and methods for displaying free-form drawing on a contact sensitive display |
US9542239B2 (en) * | 2014-04-30 | 2017-01-10 | International Business Machines Corporation | Resolving write request conflicts in a dispersed storage network |
US9577961B2 (en) * | 2014-06-27 | 2017-02-21 | Amazon Technologies, Inc. | Input/output management in a distributed strict queue |
US9575820B2 (en) * | 2014-06-27 | 2017-02-21 | Amazon Technologies, Inc. | Client control in a distributed strict queue |
US9577878B2 (en) * | 2014-06-27 | 2017-02-21 | Amazon Technologies, Inc. | Geographic awareness in a distributed strict queue |
US9584593B2 (en) * | 2014-06-27 | 2017-02-28 | Amazon Technologies, Inc. | Failure management in a distributed strict queue |
US9571414B2 (en) * | 2014-06-27 | 2017-02-14 | Amazon Technologies, Inc. | Multi-tiered processing using a distributed strict queue |
US9591101B2 (en) * | 2014-06-27 | 2017-03-07 | Amazon Technologies, Inc. | Message batching in a distributed strict queue |
US9577972B1 (en) * | 2014-09-09 | 2017-02-21 | Amazon Technologies, Inc. | Message inspection in a distributed strict queue |
CN104536916B (zh) * | 2014-12-18 | 2018-04-10 | 华为技术有限公司 | 一种多核系统的仲裁方法及多核系统 |
US9634962B2 (en) | 2015-04-14 | 2017-04-25 | International Business Machines Corporation | Pre-staging messages at a remote location |
US11102313B2 (en) * | 2015-08-10 | 2021-08-24 | Oracle International Corporation | Transactional autosave with local and remote lifecycles |
US10582001B2 (en) | 2015-08-11 | 2020-03-03 | Oracle International Corporation | Asynchronous pre-caching of synchronously loaded resources |
US10419514B2 (en) | 2015-08-14 | 2019-09-17 | Oracle International Corporation | Discovery of federated logins |
US10452497B2 (en) | 2015-08-14 | 2019-10-22 | Oracle International Corporation | Restoration of UI state in transactional systems |
US10582012B2 (en) | 2015-10-16 | 2020-03-03 | Oracle International Corporation | Adaptive data transfer optimization |
US9984142B2 (en) * | 2015-11-05 | 2018-05-29 | Oracle International Corporation | Single unit of work |
US11226852B2 (en) * | 2016-11-25 | 2022-01-18 | Genetec Inc. | System for inter-process communication |
CN109144742B (zh) * | 2017-06-15 | 2020-02-07 | 北京忆芯科技有限公司 | 通过队列交换信息的方法和处理队列的系统 |
US10606604B2 (en) | 2017-08-22 | 2020-03-31 | Bank Of America Corporation | Predictive queue control and allocation |
CN108021448B (zh) * | 2017-11-30 | 2021-06-15 | 北京东土科技股份有限公司 | 一种内核空间的优化方法及装置 |
US10541953B2 (en) * | 2017-12-13 | 2020-01-21 | Chicago Mercantile Exchange Inc. | Streaming platform reader |
TWI678087B (zh) * | 2018-11-22 | 2019-11-21 | 財團法人工業技術研究院 | 訊息佇列發佈與訂閱之同步方法及其系統 |
US10990459B2 (en) | 2019-08-30 | 2021-04-27 | Chicago Mercantile Exchange Inc. | Distributed threaded streaming platform reader |
US11178091B1 (en) * | 2020-11-12 | 2021-11-16 | Chicago Mercantile Exchange Inc. | Message ordering buffer |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5958552A (ja) * | 1982-09-28 | 1984-04-04 | Fujitsu Ltd | スロ−ダウン制御方式 |
JP2005025432A (ja) * | 2003-07-01 | 2005-01-27 | Fujitsu Ltd | トランザクション処理方法,トランザクション制御装置およびトランザクション制御プログラム |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4482956A (en) * | 1982-11-04 | 1984-11-13 | International Business Machines Corporation | Parallel queueing method |
US5319773A (en) | 1990-05-16 | 1994-06-07 | International Business Machines Corporation | Asynchronous resynchronization of a commit procedure |
JP2667039B2 (ja) * | 1990-05-18 | 1997-10-22 | 株式会社東芝 | データ管理システムおよびデータ管理方法 |
US5426747A (en) * | 1991-03-22 | 1995-06-20 | Object Design, Inc. | Method and apparatus for virtual memory mapping and transaction management in an object-oriented database system |
US5715447A (en) * | 1991-08-06 | 1998-02-03 | Fujitsu Limited | Method of and an apparatus for shortening a lock period of a shared buffer |
US5504899A (en) * | 1991-10-17 | 1996-04-02 | Digital Equipment Corporation | Guaranteeing global serializability by applying commitment ordering selectively to global transactions |
US5371850A (en) * | 1992-04-20 | 1994-12-06 | Storage Technology Corporation | Interprocess message queue |
US5530848A (en) * | 1992-10-15 | 1996-06-25 | The Dow Chemical Company | System and method for implementing an interface between an external process and transaction processing system |
US5455944A (en) * | 1993-03-16 | 1995-10-03 | International Business Machines Corporation | Method for managing logging and locking of page free space information in a transaction processing system |
JPH07105120A (ja) * | 1993-10-06 | 1995-04-21 | Oki Electric Ind Co Ltd | 入出力制御装置 |
US5586312A (en) * | 1994-10-11 | 1996-12-17 | Unisys Corporation | Method and apparatus for using an independent transaction processing application as a service routine |
US5797005A (en) * | 1994-12-30 | 1998-08-18 | International Business Machines Corporation | Shared queue structure for data integrity |
US5906658A (en) * | 1996-03-19 | 1999-05-25 | Emc Corporation | Message queuing on a data storage system utilizing message queuing in intended recipient's queue |
US5909658A (en) * | 1996-06-18 | 1999-06-01 | International Business Machines Corporation | High speed electron beam lithography pattern processing system |
US5857204A (en) * | 1996-07-02 | 1999-01-05 | Ab Initio Software Corporation | Restoring the state of a set of files |
US5881316A (en) * | 1996-11-12 | 1999-03-09 | Hewlett-Packard Company | Dynamic allocation of queue space using counters |
US6353834B1 (en) * | 1996-11-14 | 2002-03-05 | Mitsubishi Electric Research Laboratories, Inc. | Log based data architecture for a transactional message queuing system |
US7200623B2 (en) * | 1998-11-24 | 2007-04-03 | Oracle International Corp. | Methods to perform disk writes in a distributed shared disk system needing consistency across failures |
US6240479B1 (en) * | 1998-07-31 | 2001-05-29 | Motorola, Inc. | Method and apparatus for transferring data on a split bus in a data processing system |
US6173373B1 (en) * | 1998-10-15 | 2001-01-09 | Compaq Computer Corporation | Method and apparatus for implementing stable priority queues using concurrent non-blocking queuing techniques |
US6557056B1 (en) * | 1998-12-30 | 2003-04-29 | Nortel Networks Limited | Method and apparatus for exchanging data between transactional and non-transactional input/output systems in a multi-processing, shared memory environment |
WO2000057276A1 (en) * | 1999-03-25 | 2000-09-28 | Excelon Corporation | Method and apparatus for pointer relocation optimization for virtual memory mapping and transaction management in a database system |
US6601089B1 (en) * | 1999-06-21 | 2003-07-29 | Sun Microsystems, Inc. | System and method for allocating buffers for message passing in a shared-memory computer system |
US7228549B2 (en) * | 1999-12-02 | 2007-06-05 | Ants Software, Inc. | Method and system for enhanced concurrency in a computing environment |
US6898650B1 (en) * | 2000-08-10 | 2005-05-24 | Novell, Inc. | Queueing method supporting multiple client accesses simultaneously |
US6694388B1 (en) * | 2000-05-31 | 2004-02-17 | 3Com Corporation | Dynamic queuing system incorporating multiple queues sharing a single memory |
US6862595B1 (en) * | 2000-10-02 | 2005-03-01 | International Business Machines Corporation | Method and apparatus for implementing a shared message queue using a list structure |
US7068604B2 (en) * | 2001-08-23 | 2006-06-27 | International Business Machines Corporation | Managing memory resident queues to control resources of the systems using the queues |
US20030182464A1 (en) | 2002-02-15 | 2003-09-25 | Hamilton Thomas E. | Management of message queues |
US20040006633A1 (en) * | 2002-07-03 | 2004-01-08 | Intel Corporation | High-speed multi-processor, multi-thread queue implementation |
GB0215808D0 (en) | 2002-07-09 | 2002-08-14 | Ibm | A system and method for managing transactions in a messaging system |
US7185033B2 (en) * | 2002-08-01 | 2007-02-27 | Oracle International Corporation | Buffered message queue architecture for database management systems with unlimited buffered message queue with limited shared memory |
US7644118B2 (en) | 2003-09-11 | 2010-01-05 | International Business Machines Corporation | Methods, systems, and media to enhance persistence of a message |
-
2005
- 2005-06-27 US US11/169,074 patent/US7865684B2/en active Active
-
2006
- 2006-06-22 CN CN201510686148.XA patent/CN105404592B/zh active Active
- 2006-06-22 CA CA2834146A patent/CA2834146C/en active Active
- 2006-06-22 AU AU2006262163A patent/AU2006262163B2/en active Active
- 2006-06-22 EP EP06773738A patent/EP1913481A4/en not_active Ceased
- 2006-06-22 CN CN201010548569.3A patent/CN101996098B/zh active Active
- 2006-06-22 CN CN200680023379.1A patent/CN101208671B/zh active Active
- 2006-06-22 WO PCT/US2006/024233 patent/WO2007002245A2/en active Application Filing
- 2006-06-22 JP JP2008519405A patent/JP5762669B2/ja active Active
- 2006-06-22 CA CA2613496A patent/CA2613496C/en active Active
- 2006-06-22 KR KR1020077030364A patent/KR101372978B1/ko active IP Right Grant
-
2010
- 2010-12-06 US US12/960,648 patent/US8078820B2/en active Active
-
2012
- 2012-04-09 JP JP2012088219A patent/JP5657599B2/ja active Active
-
2015
- 2015-04-03 JP JP2015076899A patent/JP6046760B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5958552A (ja) * | 1982-09-28 | 1984-04-04 | Fujitsu Ltd | スロ−ダウン制御方式 |
JP2005025432A (ja) * | 2003-07-01 | 2005-01-27 | Fujitsu Ltd | トランザクション処理方法,トランザクション制御装置およびトランザクション制御プログラム |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011141695A (ja) * | 2010-01-06 | 2011-07-21 | Canon Inc | メッセージ処理装置およびメッセージ処理方法 |
Also Published As
Publication number | Publication date |
---|---|
US20060294333A1 (en) | 2006-12-28 |
WO2007002245A2 (en) | 2007-01-04 |
JP5657599B2 (ja) | 2015-01-21 |
JP6046760B2 (ja) | 2016-12-21 |
CN101996098B (zh) | 2014-03-26 |
EP1913481A4 (en) | 2009-12-09 |
KR101372978B1 (ko) | 2014-03-13 |
US8078820B2 (en) | 2011-12-13 |
CN101208671A (zh) | 2008-06-25 |
CN101996098A (zh) | 2011-03-30 |
AU2006262163A2 (en) | 2007-01-04 |
AU2006262163A1 (en) | 2007-01-04 |
CA2834146C (en) | 2017-08-29 |
CN105404592B (zh) | 2019-06-04 |
CN105404592A (zh) | 2016-03-16 |
CA2613496A1 (en) | 2007-01-04 |
CA2834146A1 (en) | 2007-01-04 |
JP2015127981A (ja) | 2015-07-09 |
WO2007002245A3 (en) | 2007-04-26 |
JP2012155740A (ja) | 2012-08-16 |
AU2006262163B2 (en) | 2012-11-15 |
KR20080018212A (ko) | 2008-02-27 |
US7865684B2 (en) | 2011-01-04 |
JP5762669B2 (ja) | 2015-08-12 |
CN101208671B (zh) | 2015-11-25 |
EP1913481A2 (en) | 2008-04-23 |
CA2613496C (en) | 2016-02-02 |
US20110078214A1 (en) | 2011-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6046760B2 (ja) | メッセージ待ち行列の管理 | |
CN110691062B (zh) | 一种数据写入方法、装置及其设备 | |
CN110113420B (zh) | 基于nvm的分布式消息队列管理系统 | |
US9996403B2 (en) | System and method for providing message queues for multinode applications in a middleware machine environment | |
US20050223163A1 (en) | Synchronous message queues | |
US7549151B2 (en) | Fast and memory protected asynchronous message scheme in a multi-process and multi-thread environment | |
US20090132868A1 (en) | Message state maintenance at a message log | |
CN110413689B (zh) | 一种内存数据库的多节点数据同步方法与装置 | |
JP4280306B2 (ja) | トランザクションメッセージキューイングシステムのためのログベースデータアーキテクチャ | |
JP3627619B2 (ja) | 二相コミット回避方式およびそのプログラム記録媒体 | |
CN117149137A (zh) | 一种分布式系统序号发生器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090604 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20100624 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100625 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120110 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20120316 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120404 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20120419 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20121115 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150305 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150403 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150610 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5762669 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |