JP4491254B2 - 複製コマンド配布のシステムおよび方法 - Google Patents

複製コマンド配布のシステムおよび方法 Download PDF

Info

Publication number
JP4491254B2
JP4491254B2 JP2004043508A JP2004043508A JP4491254B2 JP 4491254 B2 JP4491254 B2 JP 4491254B2 JP 2004043508 A JP2004043508 A JP 2004043508A JP 2004043508 A JP2004043508 A JP 2004043508A JP 4491254 B2 JP4491254 B2 JP 4491254B2
Authority
JP
Japan
Prior art keywords
command
replication
distributor
commit
transaction
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
JP2004043508A
Other languages
English (en)
Other versions
JP2004252986A (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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2004252986A publication Critical patent/JP2004252986A/ja
Application granted granted Critical
Publication of JP4491254B2 publication Critical patent/JP4491254B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F16/275Synchronous replication
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H75/00Storing webs, tapes, or filamentary material, e.g. on reels
    • B65H75/02Cores, formers, supports, or holders for coiled, wound, or folded material, e.g. reels, spindles, bobbins, cop tubes, cans, mandrels or chucks
    • B65H75/34Cores, formers, supports, or holders for coiled, wound, or folded material, e.g. reels, spindles, bobbins, cop tubes, cans, mandrels or chucks specially adapted or mounted for storing and repeatedly paying-out and re-storing lengths of material provided for particular purposes, e.g. anchored hoses, power cables
    • B65H75/38Cores, formers, supports, or holders for coiled, wound, or folded material, e.g. reels, spindles, bobbins, cop tubes, cans, mandrels or chucks specially adapted or mounted for storing and repeatedly paying-out and re-storing lengths of material provided for particular purposes, e.g. anchored hoses, power cables involving the use of a core or former internal to, and supporting, a stored package of material
    • B65H75/40Cores, formers, supports, or holders for coiled, wound, or folded material, e.g. reels, spindles, bobbins, cop tubes, cans, mandrels or chucks specially adapted or mounted for storing and repeatedly paying-out and re-storing lengths of material provided for particular purposes, e.g. anchored hoses, power cables involving the use of a core or former internal to, and supporting, a stored package of material mobile or transportable
    • B65H75/406Cores, formers, supports, or holders for coiled, wound, or folded material, e.g. reels, spindles, bobbins, cop tubes, cans, mandrels or chucks specially adapted or mounted for storing and repeatedly paying-out and re-storing lengths of material provided for particular purposes, e.g. anchored hoses, power cables involving the use of a core or former internal to, and supporting, a stored package of material mobile or transportable hand-held during use
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H2402/00Constructional details of the handling apparatus
    • B65H2402/50Machine elements
    • B65H2402/51Joints, e.g. riveted or magnetic joints
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B65CONVEYING; PACKING; STORING; HANDLING THIN OR FILAMENTARY MATERIAL
    • B65HHANDLING THIN OR FILAMENTARY MATERIAL, e.g. SHEETS, WEBS, CABLES
    • B65H2701/00Handled material; Storage means
    • B65H2701/30Handled filamentary material
    • B65H2701/33Hollow or hose-like material

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Advance Control (AREA)
  • Retry When Errors Occur (AREA)
  • Medicines Containing Antibodies Or Antigens For Use As Internal Diagnostic Agents (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Studio Devices (AREA)

Description

本発明は、コンピューティング分野に関し、詳細には、トランザクション複製(transactional replication)の分野に関する。
複製は、あるデータベースから別のデータベースへ、データをコピーし、またそのデータに対する変更内容をコピーする機能である。図1は、従来のトランザクション複製の概要を示す図である。パブリッシャ(Publisher)200は、サーバまたはデータベースであり、そのデータを別のサーバまたはデータベースに送る。パブリッシャ200は、サブスクライバ(subscriber)サーバまたはデータベースに送られる1つまたは複数のアーティクル(article)の集合体である1つまたは複数のパブリケーション(publication)を含むことができる。トランザクション複製では、アーティクルは、複製される内容であり、テーブル全体でも、あるテーブルの選択行でも、テーブルまたはストアドプロシージャ(stored procedure)の指定された列でもよい。
ディストリビュータ(Distributor)202は、複製システム(replication system)によってデータの流れを管理する。ディストリビュータ202は、パブリッシャ200から複製する必要がある(パブリケーションに対する)変更を追跡する配布データベース(distribution database)を含む。パブリッシャ200は、それ自体のディストリビュータ202の役割を果たすことができ、またはその配布データベースを保持するために、遠隔データベースサーバを使用することができる。
サブスクライバ204は、パブリッシャ200または他のデータベースからデータを受け取るサーバまたはデータベースである。サブスクリプション(subscription)とは、サーバまたはデータベース204が受け取るデータの集合体である。これは、1つまたは複数のパブリケーションであり得る。プッシュおよびプルのサブスクリプションがある。プッシュサブスクリプションは、パブリッシュ側(publishing)のサーバが、サブスクライブ側(subscribing)のサーバに、トランザクションを定期的に送り出す場合のサブスクリプションである。プルサブスクリプションは、サブスクライブ側のサーバが配布データベースに定期的に接続し、情報を引き出す場合のサブスクリプションである。
図1に示すように、従来のトランザクション複製では一般に、複製されたコマンドは、単一の接続203を介してサブスクライバ上で適用される。単一の接続によって、トランザクションがパブリッシャ上で発生する通りの順序で、サブスクライバ上でトランザクションが適用されるようになるが、この方法では、特に、要求が非常に負荷のかかったパブリッシャからのものである場合に、パフォーマンスロス(performance loss)が生じる。
さらに、従来の複製技術では、挿入、更新、または削除操作が発生した場合には、パブリッシュされたテーブルに対する変更を追跡するためにトリガ(trigger)を使用する。これでは、トリガのためにパブリッシャ200に追加のオーバヘッドが加わることになる。
したがって、オーバヘッドコストを削減し、トランザクションが確実にサブスクライバ上で正確に適用されるようにしながらも、トランザクション複製システムのパフォーマンスを向上させることが求められている。本発明は、こうした解決策を提供する。
本発明は、複製コマンド(replication command)を適用する際に、ディストリビューションプロセス内の複数のトランザクションキューを使用することによって、従来技術の限界を有利に克服する。本発明の一態様によれば、複製コマンドを配布(distribute)するためのシステムが提供される。このシステムは、パブリッシャから複製コマンドを受け取る、コマンドキューを含むディストリビュータを備える。ディストリビュータは、複製コマンドをサブスクライバに伝達する(communicate)ための複数の接続を含む。複数のコマンドバケットは、ディストリビュータからコマンドを受け取る。それぞれのコマンドバケットは、複数の接続のうちの1つを介してディストリビュータと通信し、同じハッシュキーをもつ複製コマンドだけを受け取る。受信された各複製コマンドは、単一行(an unique row)の識別子を含む。
このシステムのある特徴によれば、パブリッシャは、それぞれの複製コマンドに、操作を受ける(be operated upon)テーブルの行の主キーのハッシュを付加(decorate)する。複製コマンドは、主キーのハッシュに従って対応するコマンドバケットにソートされる。
別の特徴によれば、ディストリビュータは、コミットの準備が完了しているそれぞれのバケットをマークし、それぞれのバケット内の複製コマンドを、実質上同時にサブスクライバに適用する。それぞれのバケットの実行プログラムは、ディストリビュータに、コミットが完了したことを通知し、それによってディストリビュータが処理を再開する。
別の特徴によれば、それぞれの接続がコミットに成功したかどうか判断するために、再試行機構を用いる。接続がコミットに失敗した場合、複製コマンドの論理シーケンス番号に従って、最初に失敗した点からコミット処理を再開し、コミットが成功するように、ある複製コマンドの最後の論理シーケンス番号よりも新しい論理シーケンス番号をもつ複製コマンドを適用する。
本発明の別の態様によれば、サブスクライバ、ディストリビュータおよびパブリッシャを含むシステム上で、複製コマンドを配布するための方法を提供する。この方法は、パブリッシャ上で、複製コマンドに、それが操作を受ける行の単一識別子(an unique identifier)を付加すること、コマンドキューに複製コマンドを格納すること、ディストリビュータに複製コマンドを転送すること、コマンドキューに複製コマンドを格納すること、および複製コマンドを複数のコマンドバケットに転送することを含み、この複数のコマンドバケットのそれぞれは、ディストリビュータとの接続を含む。それぞれのコマンドバケットは、単一行の単一識別子に従ってサブスクライバ上のテーブルの単一行に適用される複製コマンドを受け取る。
本発明の追加の特徴および利点は、添付の図面を参照して行う以下の例示的な実施形態についての詳細な説明から明らかであろう。
前述の要約および後述の好ましい実施形態の詳細な説明は、添付の図面と併せ読めばより深く理解されよう。本発明の説明のため、図面に本発明の例示的な構成を示す。しかし、本発明は、開示する特定の方法および手段に限定されるものではない。
例示的なコンピューティング環境
図2および以下の説明は、本発明を実施することができる適切なコンピューティング環境の概要について簡潔に述べるためのものである。しかし、ハンドヘルド(handheld)、携帯、および全ての種類の他のコンピューティング装置を本発明とともに使用することが考慮されている。汎用コンピュータについて以下に述べるが、これは一例にすぎず、本発明では、ネットワークサーバとの相互運用および相互作用が可能なシンクライアント(thin client)だけが必要となる。したがって、本発明は、非常に少ないまたは最小のクライアントリソースが関係するネットワーク化されたホストサービス(hosted services)の環境、たとえば、クライアント装置が単にブラウザまたはワールドワイドウェブとのインターフェイスとして働くネットワーク環境で実施することができる。
必須ではないが、本発明は、開発者によって使用されるAPIを用いて実施することができ、かつ/またはネットワークブラウザソフトウェア内に含めることができる。これについては、クライアントワークステーション、サーバ、他の装置など1つまたは複数のコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明する。一般に、プログラムモジュールは、特定のタスクを実施し、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造体などを含む。一般に、プログラムモジュールの機能は、様々な実施形態で望まれるように、組み合わせまたは分散することができる。さらに、本発明は、他のコンピュータシステム構成で実施できることが当業者には理解されよう。本発明とともに使用するのに適し得る他の周知のコンピューティングシステム、環境および/または構成には、これだけには限らないが、パーソナルコンピュータ(PC)、現金自動預け払い機、サーバコンピュータ、ハンドヘルドまたはラップトップの装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラマブルな家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどが含まれる。本発明は、通信ネットワークまたは他のデータ伝送媒体を介してリンクされた遠隔処理装置によってタスクが実施される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含めて、ローカルと遠隔の両方のコンピュータ記憶媒体に置くことができる。
したがって、図2に、本発明を実施することができる適切なコンピューティングシステム環境100の例を示したが、上記で明確にしたように、コンピューティングシステム環境100は適切なコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲についての限定を示唆するためのものではない。コンピューティング環境100は、例示的なコンピューティング環境100に示したコンポーネントのうちのいずれか1つまたはその組合せに関して依存関係も要件も有するものと解釈すべきでない。
図2を参照すると、本発明を実施するための例示的なシステムが、コンピュータ110の形の汎用コンピューティング装置を含んでいる。コンピュータ110のコンポーネントは、それだけには限らないが、処理装置120、システムメモリ130およびシステムバス121を含むことができ、このシステムバスは、システムメモリを含めて様々なシステムコンポーネントを処理装置120に結合する。システムバス121は、様々なバスアーキテクチュアのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バスおよびローカルバスを含めて複数のタイプのバス構造のいずれかとすることができる。限定のためではなく、例を挙げると、こうしたアーキテクチュアには、ISA(業界標準アーキテクチュア)バス、MCA(マイクロチャネルアーキテクチュア)バス、EISA(ビデオ電子標準協会)ローカルバス、PCI(周辺コンポーネント相互接続)バス(メザニンバスとも称される)が含まれる。
コンピュータ110は一般に、様々なコンピュータ読取り可能媒体を含む。コンピュータ読取り可能媒体は、コンピュータ110からアクセスできるいずれの使用可能な媒体とすることもでき、揮発性媒体と不揮発性媒体の両方、取外し可能な媒体と取外し不可能な媒体の両方を含む。限定のためではなく、例を挙げると、コンピュータ読取り可能媒体には、コンピュータ記憶媒体および通信媒体が含まれ得る。コンピュータ記憶媒体は、コンピュータ読取り可能命令、データ構造体、プログラムモジュール、他のデータなどの情報を格納するための任意の方法または技術で実装される揮発性媒体と不揮発性媒体の両方、取外し可能な媒体と取外し不可能な媒体の両方が含まれる。コンピュータ記憶媒体には、それだけには限らないが、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD ROM、DVD(digital versatile disks:デジタル多用途ディスク)または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは所望の情報を格納するために使用することができ、コンピュータ110からアクセスすることができる他のどんな媒体も含まれる。通信媒体は一般に、搬送波や他のトランスポート機構などの変調されたデータ信号の形で、コンピュータ読取り可能命令、データ構造体、プログラムモジュールまたは他のデータを実施し、任意の情報伝達媒体を含む。用語「変調されたデータ信号」は、情報を信号に符号化するような方法で特性の1つまたは複数が設定または変更された信号を意味する。限定のためではなく、例を挙げると、通信媒体には、有線ネットワークや直接有線接続などの有線媒体、および音波、RF、赤外線、他の無線媒体などの無線媒体が含まれる。上記のいずれかの組合せもコンピュータ読取り可能媒体の範囲内に含まれるべきである。
システムメモリ130は、ROM(read only memory:読出し専用メモリ)131やRAM(random access memory:ランダムアクセスメモリ)132など揮発性および/または不揮発性メモリの形態のコンピュータ記憶媒体を含む。BIOS(basic input/output system:基本入出力システム)133は、始動時などにコンピュータ110内の要素間で情報を転送する助けをする基本ルーチンを含み、一般にROM131に格納される。RAM132は一般に、処理装置120によって直ぐにアクセスされ、かつ/またはそれによる操作を現在受けているデータおよび/またはプログラムモジュールを含む。限定のためではなく、例として、図2に、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136およびプログラムデータ137を示す。
コンピュータ110は、他の取外し可能/取外し不可能、揮発性/不揮発性のコンピュータ記憶媒体を含むこともできる。例としてのみ、図2に、取外し不可能な不揮発性磁気媒体からの読出しまたはそれへの書込みを行うハードディスクドライブ141、取外し可能な不揮発性磁気ディスク152からの読出しまたはそれへの書込みを行う磁気ディスクドライブ151、およびCD ROMや他の光メディアなど取外し可能な不揮発性光ディスク156からの読出しまたはそれへの書込みを行う光ディスクドライブ155を示す。例示的なオペレーティング環境で使用できる他の取外し可能/取外し不可能、揮発性/不揮発性のコンピュータ記憶媒体には、それだけには限らないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM(solid state RAM)、ソリッドステートROM(solid state ROM)などが含まれる。ハードディスクドライブ141は一般に、インターフェイス140などの取外し不可能なメモリインターフェイスを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は一般に、インターフェイス150などの取外し可能なメモリインターフェイスを介してシステムバス121に接続される。
上記で論じ、また図2に示したドライブおよびそれに関連するコンピュータ記憶装置が、コンピュータ読取り可能命令、データ構造体、プログラムモジュール、およびコンピュータ110用の他のデータの格納を行う。たとえば図2では、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146およびプログラムデータ147を格納する。こうしたコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136およびプログラムデータ137と同じでも、異なっていてもよいことに留意されたい。本明細書では、それらが少なくとも異なるコピーであることを示すために、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146およびプログラムデータ147には異なる番号を付けてある。ユーザは、入力装置、たとえばキーボード162や一般にマウス、トラックボール、タッチパッドなどと称されるポインティング装置161を介して、コンピュータ110にコマンドおよび情報を入力することができる。他の入力装置(図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ(satellite dish)、スキャナなどが含まれ得る。こうしたおよび他の入力装置はしばしば、システムバス121に結合されたユーザ入力インターフェイス160を介して処理装置120に接続されるが、パラレルポート、ゲームポート、USB(universal serial bus:ユニバーサルシリアルバス)によって接続することもできる。
モニタ191または他のタイプの表示装置もビデオインターフェイス190などのインターフェイスを介してシステムバス121に接続される。ノースブリッジ(Northbridge)などのグラフィックスインターフェイス182をシステムバス121に接続することもできる。ノースブリッジは、CPUすなわちホスト処理装置120と通信するチップセットであり、AGP(accelerated graphics port:アクセラレーテッドグラフィックスポート)通信の責任を担う。1つまたは複数のGPU(graphics processing unit:グラフィックス処理装置)184が、グラフィックスインターフェイス182と通信することができる。この点について、GPU184は一般に、レジスタ記憶装置などのオンチップメモリ記憶装置を含み、またGPU184は、ビデオメモリ186と通信する。しかし、GPU184は、コプロセッサの一例にすぎず、したがって、様々なコプロセッシング装置をコンピュータ110に含めることができる。モニタ191または他のタイプのディスプレイ装置もまた、ビデオインターフェイス190などのインターフェイスを介してシステムバス121に接続され、このビデオインターフェイスは、ビデオメモリ186と通信することができる。モニタ191に加えて、コンピュータは、スピーカ197やプリンタ196などの他の周辺出力装置を含むこともでき、これらの装置は、出力周辺インターフェイス195を介して接続することができる。
コンピュータ110は、遠隔コンピュータ180などの1つまたは複数の遠隔コンピュータとの論理接続を用いるネットワーク環境で動作することができる。遠隔コンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置(peer device)または一般的な他のネットワークノードとすることができ、図2では、メモリ記憶装置181だけが示されているが、一般にはコンピュータ110に関する前述の要素の多くまたは全てを含む。図2では、論理接続は、LAN(local are network:ローカルエリアネットワーク)171およびWAN(wide are network:広域ネットワーク)173を含むが、他のネットワークを含むこともできる。こうしたネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、インターネットでは一般的である。
LANネットワーキング環境で使用する場合、コンピュータ110は、ネットワークインターフェイスまたはアダプタ170を介してLAN171に接続される。WANネットワーキング環境で使用する場合、コンピュータ110は一般に、モデム172、またはインターネットなどのWAN173を介して通信を確立する他の手段を含む。モデム172は、内部にあっても外部にあってもよく、ユーザ入力インターフェイス160や他の適切な機構を介してシステムバス121に接続することができる。ネットワーク環境では、コンピュータ110またはその一部に関して示したプログラムモジュールを、遠隔メモリ記憶装置に格納することができる。限定のためでなく、例として、図2に、メモリ装置181に常駐する遠隔アプリケーションプログラム185を示す。示したネットワーク接続は例示的なものであり、コンピュータ間で通信リンクを確立する他の手段も使用できることが理解されよう。
コンピュータ110および他のクライアント装置は、コンピュータネットワークの一部として配置できることが当業者には理解されよう。この点について、本発明は、任意の数のメモリまたは記憶装置、および任意の数のアプリケーションを含むコンピュータシステム、ならびに任意の数の記憶装置またはボリュームにまたがって発生する処理に関するものである。本発明は、遠隔またはローカルの記憶装置を含むネットワーク環境にサーバコンピュータおよびクライアントコンピュータが配置されている環境に適用することができる。本発明は、プログラミング言語の機能、変換および実行能力を有するスタンドアロンコンピューティング装置に適用することもできる。
本発明のトランザクション複製の例示的な実施形態
図3は、トランザクション複製システムのトポロジをさらに詳しく示す図である。本発明は、複製コマンド適用のためサブスクライバ上で複数のトランザクションキューを使用することにより、従来技術の限界を有利に克服する。パブリッシャ300は、トランザクションログ301内の複製されるそれぞれのコマンド(すなわち更新、削除、挿入など)に、そのコマンドが適用される行の主キーのハッシュを付加する。当技術分野で周知のように、トランザクションログ301は、全てのコマンドのリストを保持し、それによって変更取消しのためロールバックをデータベースに適用することができる。
付加後のコマンドは、パブリッシャ300によってディストリビュータ302に転送され、このディストリビュータは、コマンドをコマンドキュー312に格納する。後述するように、コマンドキュー312は、サブスクライバへ転送するためコマンドを格納する。ディスパチャスレッド314は、それぞれのコマンドにハッシュされた主キーに基づいてコマンドキュー312を読み出してソートし、単一の行についてのコマンドを、接続316のうちの1つを介してその特定の行に関連する単一バケット(an uniquebucket)318、320または322に送信する。本発明は,3つの接続316および3つのバケットに限定されるものではなく、任意の数の接続およびバケットを使用することができる。たとえば、行1に適用される全てのコマンドは、その接続を介してバケット318に渡され、行2はその行に対応する接続を介してバケット320へ渡され、以下同様である。パブリッシャ300上で主キーによるハッシュを行うことによって、複製された各コマンドが単一の行に適用され、そのデータ行についてのコマンドが適切なバケット318、320または322に渡されるようになる。さらに、これによって、バケット318、320および322内のコマンドの順序が、パブリッシャ300上で発生した元の順序に維持されるようになる。
複数の接続316は、本発明による「調整されたコミット」を実施し、後述のように、それぞれのバッチが成功して終了したときに、トランザクションの整合性が確保されるようになる。ディスパチャスレッド314は、それぞれのバケット318、320および322に、コミット準備完了のマークを付け、コマンドバケットへの追加コマンドの送信を中止する。コミットコマンドを受信すると、それぞれのバケット上で実行される実行プログラムのスレッドにはコミットのためマークが付けられ、それに関連するコマンドバケットから変更を読み出し、それをサブスクライバに適用する。本発明によれば、すべての実行プログラムは実質上同時にコミットして、それぞれに対応する行にコマンドを適用する。ディスパチャスレッド314は、実行プログラムからのコミット処理完了を知らせるイベントを待ってから、通常の処理を再開することができる。
調整されたコミット処理によって、コミットする前に書込みおよび準備のステップを要する2フェーズコミット処理(two phase commit operation)に伴う伝達およびロギング上のオーバヘッドが有利に回避される。この機能は、高パフォーマンスの配布のために最適化されているものの、従来の2フェーズコミットにある準備およびコミットの段階が存在しないので、トランザクションの整合性をもつことができる。したがって、いずれかの実行プログラムがコミットに失敗した場合、コミット済みの実行プログラムをロールバックすることはできない。整合性を確保するために、本発明は、再試行論理を実装し、この再試行論理によって、コミットに成功した接続と、コミットに失敗した接続の混在に対処することがここでは企図されている。本発明によれば、シリアル化されたコマンドキュー312内の複製されたコマンドを、コミットレコード(commit record)の論理シーケンス番号(Logical Sequence Number:LSN)でソートする。次いでコマンドは、主キーのハッシュ値に基づいて複数の接続にディスパッチされるので、同じトランザクション内のコマンドが、異なる接続316を介してサブスクライバ304に到達することができる。
ある特定の接続がコミットに失敗した場合、再試行論理が最初に失敗した点から再開し、コマンドキュー312を再度取り出し、コミット済みのトランザクションによってどのコマンドがうまく適用されたか、またどのコマンドを再度適用する必要があるかを識別する。この機能を実施するために、本発明は、すべての接続について、最後にコミットされたLSNを追跡し、最初にコミットされたコマンドから再開し、それぞれのコマンドのLSNを、(ハッシュ値によって識別された)接続上でコミットされた最後のLSNと照合する。関連する最後のLSNよりも新しいLSNが付いたコマンドだけを再度適用する。この手法によって、バッチが成功して終了したときには、サブスクライバ上でトランザクションの整合性がとれている状態になる。
したがって、コマンドを複数の接続に配布すると、末端のサブスクライバでのトランザクションの整合性を損なわずにパフォーマンスを向上させるのに役立つことが、上記の説明から当業者には理解されよう。
本発明を、様々な図の好ましい実施形態に関して説明したが、他の類似の実施形態を使用することができ、また上記に説明した実施形態に対して本発明と同じ機能を実施するための修正および追加を、それから逸脱せずに行うことができることも理解されたい。たとえば、本願で説明した本発明を、有線であれ無線であれ、どんなコンピューティング装置または環境にも適用することができ、また通信ネットワークを介して接続され、ネットワーク全体にわたって相互作用する、任意の数のこうしたコンピューティング装置にも適用できることが当業者には理解されよう。さらに、特に無線ネットワーク装置の数が増加し続けているので、ハンドヘルド装置のオペレーティングシステムおよびアプリケーションに特有の他のオペレーティングシステムを含めた様々なコンピュータプラットフォームが企図されることを強調しておく。さらに、本発明は、複数の処理チップまたは装置上で、あるいはそれらにまたがって実施することができ、格納も同様に、複数の装置にまたがって行うことができる。したがって、本発明は、どんな単一の実施形態にも限定されるべきではなく、添付の特許請求の範囲に定める範囲において解釈すべきである。
従来のトランザクション複製システムのトポロジを示す図である。 本発明を実施することができる例示的なコンピューティング環境を示す図である。 本発明のトランザクション複製システムの例示的なトポロジを示す図である。
符号の説明
100 コンピューティングシステム環境/コンピューティング環境
110 コンピュータ
120 処理装置
121 システムバス
130 システムメモリ
131 ROM
132 RAM
133 BIOS
134 オペレーティングシステム
135 アプリケーションプログラム
136 他のプログラムモジュール
137 プログラムデータ
140 取外し不可能なメモリインターフェイス
141 ハードディスクドライブ
144 オペレーティングシステム
145 アプリケーションプログラム
146 他のプログラムモジュール
147 プログラムデータ
150 取外し可能なメモリインターフェイス
151 磁気ディスクドライブ
152 取外し可能な不揮発性磁気ディスク
155 光ディスクドライブ
156 取外し可能な不揮発性光ディスク
160 ユーザ入力インターフェイス
161 ポインティング装置
162 キーボード
170 ネットワークインターフェイスまたはアダプタ
171 LAN
172 モデム
173 WAN
180 遠隔コンピュータ
181 メモリ記憶装置
182 グラフィックスインターフェイス
184 GPU
185 遠隔アプリケーションプログラム
186 ビデオメモリ
190 ビデオインターフェイス
191 モニタ
195 出力周辺インターフェイス
196 プリンタ
197 スピーカ
200 パブリッシャ
202 ディストリビュータ
203 接続
204 サブスクライバ/サーバまたはデータベース
300 パブリッシャ
301 トランザクションログ
302 ディストリビュータ
304 サブスクライバ
312 コマンドキュー
314 ディスパチャスレッド
316 接続
318 バケット
320 バケット
322 バケット

Claims (12)

  1. パブリッシャから複数のトランザクション複製コマンドを受信してサブスクライバに配布するディストリビュータを備えたシステムであって、
    前記ディストリビュータは、
    操作を受けるテーブル内で、トランザクション複製コマンドが適用される行の主キーのハッシュが付加された複数の当該複製コマンドを前記パブリッシャから受信して格納するコマンドキューと、
    前記トランザクション複製コマンドを前記サブスクライバに伝達するための複数の接続のうち、各複製コマンドおよび単一の行にそれぞれ関連付けられた接続を介して前記サブスクライバのテーブルの単一行に適用されるトランザクション複製コマンドだけを受信する、複数のコマンドバケットと
    前記コマンドキューに格納された複数のトランザクション複製コマンドをコミットレコードの論理シーケンス番号でソートし、各々のコマンドに関連付けられた接続を介して前記コマンドバケットに送信し、当該トランザクション複製コマンドを送信した前記コマンドバケットにコミット準備完了のマークを付けるディスパッチャと、を備え、
    前記コミットレコードの論理シーケンス番号は、前記トランザクション複製コマンドのうちのどれが、コミットが失敗したために再適用されることを必要としているかを識別でき、
    それぞれのコマンドバケット内の前記トランザクション複製コマンドは、実質上同時に前記サブスクライバに適用され、
    前記ディスパッチャは、前記マークが付されたコマンドバケットへ前記トランザクション複製コマンドを送信しない
    ことを特徴とするシステム。
  2. それぞれのコマンドバケットの実行プログラムは、前記ディストリビュータに、コミットが完了したことを通知し、それによって前記ディストリビュータは処理を再開することを特徴とする請求項に記載のシステム。
  3. 前記接続のそれぞれはコミットに成功したかどうかを判断するための再試行機構をさらに含むことを特徴とする請求項に記載のシステム。
  4. ある接続がコミットに失敗した場合に、前記再試行機構は前記トランザクション複製コマンドの論理シーケンス番号に従って最初に失敗した点から前記コミット処理を再開し、コミットが成功するように、あるトランザクション複製コマンドの最後の論理シーケンス番号よりも新しい論理シーケンス番号が付いた前記複製コマンドを適用することを特徴とする請求項に記載のシステム。
  5. サブスクライバ、ディストリビュータおよびパブリッシャを含むシステムにおいて、前記ディストリビュータがパブリッシャから複数のトランザクション複製コマンドを受信してサブスクライバに配布するための方法であって、
    前記パブリッシャ前記トランザクション複製コマンドが適用される行の主キーのハッシュを当該複製コマンドに付加するステップと、
    前記パブリッシャが、前記ハッシュが付加されたトランザクション複製コマンドを前記ディストリビュータに転送するステップと、
    前記ディストリビュータが、コマンドキューに前記転送されたトランザクション複製コマンドを格納するステップと、
    前記ディストリビュータが、前記コマンドキューに格納された複数のトランザクション複製コマンドをコミットレコードの論理シーケンス番号でソートするステップと、
    前記ディストリビュータが、前記トランザクション複製コマンドを複数のコマンドバケットに送信するステップと、
    前記ディストリビュータが、前記トランザクション複製コマンドを送信したコマンドバケットにコミット準備完了のマークを付けるステップと、を含み、
    前記複数のコマンドバケットのそれぞれは、前記ディストリビュータおよびサブスクライバそれぞれ複数の接続を備えており、同じハッシュキーの付いたトランザクション複製コマンドを受信してサブスクライバに転送し、
    前記コミットレコードの論理シーケンス番号は、前記トランザクション複製コマンドのうちのどれが、コミットが失敗したために再適用されることを必要としているかを識別でき、
    それぞれのコマンドバケット内の前記トランザクション複製コマンドは、実質上同時に前記サブスクライバに適用され、
    前記ディスパッチャは、前記マークが付されたコマンドバケットへ前記トランザクション複製コマンドを送信しない
    ことを特徴とする方法。
  6. 前記ディストリビュータに、それぞれのコマンドバケットがコミット処理を完了したことを通知するステップと、
    前記ディストリビュータ上で処理を再開するステップとをさらに含むことを特徴とする請求項5に記載の方法。
  7. それぞれのコマンドバケット内の前記トランザクション複製コマンド、前記サブスクライバ上で、コミットに成功したかどうかを判断するステップをさらに含むことを特徴とする請求項5に記載の方法。
  8. 前記コミット処理を、前記論理シーケンス番号に従って最初に失敗した点から再開するステップと、
    コミットに成功するように、あるトランザクション複製コマンドの最後の論理シーケンス番号よりも新しい論理シーケンス番号の付いた前記複製コマンドを適用するステップとをさらに含むことを特徴とする請求項7に記載の方法。
  9. サブスクライバ、ディストリビュータおよびパブリッシャを含むシステムにおいて、前記ディストリビュータがパブリッシャから複数のトランザクション複製コマンドを受信してサブスクライバに配布するための方法を実施するためのコンピュータ実行可能命令を含むコンピュータ読取り可能媒体であって、前記方法は、
    前記パブリッシャ前記トランザクション複製コマンドが適用される行の主キーのハッシュを当該複製コマンドに付加するステップと、
    前記パブリッシャが、前記ハッシュが付加されたトランザクション複製コマンドを前記ディストリビュータに転送するステップと、
    前記ディストリビュータが、コマンドキューに前記転送されたトランザクション複製コマンドを格納するステップと、
    前記ディストリビュータが、前記コマンドキューに格納された複数のトランザクション複製コマンドをコミットレコードの論理シーケンス番号でソートするステップと、
    前記ディストリビュータが、前記トランザクション複製コマンドを複数のコマンドバケットに送信するステップと、
    前記ディストリビュータが、前記トランザクション複製コマンドを送信したコマンドバケットにコミット準備完了のマークを付けるステップと、を含み、
    前記複数のコマンドバケットのそれぞれは、前記ディストリビュータおよびサブスクライバそれぞれ複数の接続を備えており、同じハッシュキーの付いたトランザクション複製コマンドを受信してサブスクライバに転送し、
    前記コミットレコードの論理シーケンス番号は、前記トランザクション複製コマンドのうちのどれが、コミットが失敗したために再適用されることを必要としているかを識別でき、
    それぞれのコマンドバケット内の前記トランザクション複製コマンドは、実質上同時に前記サブスクライバに適用され、
    前記ディスパッチャは、前記マークが付されたコマンドバケットへ前記トランザクション複製コマンドを送信しない
    ことを特徴とするコンピュータ読取り可能媒体。
  10. それぞれのコマンドバケットコミット処理完了したことを前記ディストリビュータに通知するための命令と、
    前記ディストリビュータ上で処理を再開するための命令と
    をさらに含むことを特徴とする請求項に記載のコンピュータ読取り可能媒体。
  11. それぞれのコマンドバケット内の前記トランザクション複製コマンド、前記サブスクライバ上で、コミットに成功したかどうかを判断するための命令をさらに含むことを特徴とする請求項に記載のコンピュータ読取り可能媒体。
  12. 前記コミット処理を、前記トランザクション複製コマンドの論理シーケンス番号に従って最初に失敗した点から再開するための命令と、
    コミットに成功するように、あるトランザクション複製コマンドの最後の論理シーケンス番号よりも新しい論理シーケンス番号の付いた前記トランザクション複製コマンドを適用するための命令と
    をさらに含むことを特徴とする請求項11に記載のコンピュータ読取り可能媒体。
JP2004043508A 2003-02-19 2004-02-19 複製コマンド配布のシステムおよび方法 Expired - Fee Related JP4491254B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/370,389 US7707181B2 (en) 2003-02-19 2003-02-19 System and method of distributing replication commands

Publications (2)

Publication Number Publication Date
JP2004252986A JP2004252986A (ja) 2004-09-09
JP4491254B2 true JP4491254B2 (ja) 2010-06-30

Family

ID=32736443

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004043508A Expired - Fee Related JP4491254B2 (ja) 2003-02-19 2004-02-19 複製コマンド配布のシステムおよび方法

Country Status (7)

Country Link
US (1) US7707181B2 (ja)
EP (1) EP1450270B1 (ja)
JP (1) JP4491254B2 (ja)
KR (1) KR101099227B1 (ja)
CN (1) CN1523523B (ja)
AT (1) ATE394743T1 (ja)
DE (1) DE602004013475D1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7167893B1 (en) * 2001-10-03 2007-01-23 Bellsouth Intellectual Property Corp. Methods and systems for processing a plurality of errors
US8005802B2 (en) * 2002-08-01 2011-08-23 Oracle International Corporation Partial evaluation of rule sets
US7613741B2 (en) * 2002-08-01 2009-11-03 Oracle International Corporation Utilizing rules in a distributed information sharing system
US8365193B2 (en) * 2003-08-14 2013-01-29 Oracle International Corporation Recoverable asynchronous message driven processing in a multi-node system
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
WO2006057061A1 (ja) * 2004-11-29 2006-06-01 Fujitsu Limited 分散トランザクション処理方法、装置、及びプログラム
US7818386B2 (en) * 2004-12-30 2010-10-19 Oracle International Corporation Repeatable message streams for message queues in distributed systems
US20070061379A1 (en) * 2005-09-09 2007-03-15 Frankie Wong Method and apparatus for sequencing transactions globally in a distributed database cluster
US8856091B2 (en) * 2005-09-09 2014-10-07 Open Invention Network, Llc Method and apparatus for sequencing transactions globally in distributed database cluster
US7680795B2 (en) * 2007-03-16 2010-03-16 International Business Machines Corporation Shared disk clones
US7979393B2 (en) * 2008-02-22 2011-07-12 Microsoft Corporation Multiphase topology-wide code modifications for peer-to-peer systems
US8676749B2 (en) * 2008-07-31 2014-03-18 Sybase, Inc. Statement logging in databases
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
CN102662946B (zh) * 2012-02-20 2015-10-07 北京地拓科技发展有限公司 一种自动监测数据库中记录变化的方法和系统
US9727625B2 (en) 2014-01-16 2017-08-08 International Business Machines Corporation Parallel transaction messages for database replication
KR102377726B1 (ko) * 2015-04-17 2022-03-24 한국전자통신연구원 분산 파일 시스템에서의 파일 복제 제어 장치 및 방법
US10642860B2 (en) * 2016-06-03 2020-05-05 Electronic Arts Inc. Live migration of distributed databases
US10540217B2 (en) 2016-09-16 2020-01-21 Oracle International Corporation Message cache sizing
US20180316726A1 (en) * 2017-04-28 2018-11-01 Honeywell International Inc. Replication of identity-derived primary keys without range restrictions
CN110196759B (zh) * 2018-06-20 2022-12-06 腾讯科技(深圳)有限公司 分布式事务处理方法和装置、存储介质及电子装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4648031A (en) * 1982-06-21 1987-03-03 International Business Machines Corporation Method and apparatus for restarting a computing system
US4949251A (en) * 1988-07-18 1990-08-14 Digital Equipment Corporation Exactly-once semantics in a TP queuing system
US5701480A (en) * 1991-10-17 1997-12-23 Digital Equipment Corporation Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing
US5452445A (en) * 1992-04-30 1995-09-19 Oracle Corporation Two-pass multi-version read consistency
US5799305A (en) * 1995-11-02 1998-08-25 Informix Software, Inc. Method of commitment in a distributed database transaction
US5781910A (en) * 1996-09-13 1998-07-14 Stratus Computer, Inc. Preforming concurrent transactions in a replicated database environment
US5970231A (en) * 1996-11-27 1999-10-19 Pen Industries, Inc. Electronic newspaper and electronic publishing medium
US6549932B1 (en) * 1998-06-03 2003-04-15 International Business Machines Corporation System, method and computer program product for discovery in a distributed computing environment
US6144983A (en) * 1998-06-09 2000-11-07 Oracle Corporation Method and apparatus for dynamic lock granularity escalation and de-escalation in a computer system
US6243702B1 (en) * 1998-06-22 2001-06-05 Oracle Corporation Method and apparatus for propagating commit times between a plurality of database servers
US6510421B1 (en) * 1998-12-29 2003-01-21 Oracle Corporation Performing 2-phase commit with presumed prepare
US6463532B1 (en) * 1999-02-23 2002-10-08 Compaq Computer Corporation System and method for effectuating distributed consensus among members of a processor set in a multiprocessor computing system through the use of shared storage resources
US6708206B1 (en) * 1999-06-15 2004-03-16 Nokia Corporation Apparatus, and associated method, for providing a client with messages
US6438558B1 (en) * 1999-12-23 2002-08-20 Ncr Corporation Replicating updates in original temporal order in parallel processing database systems
US6658540B1 (en) * 2000-03-31 2003-12-02 Hewlett-Packard Development Company, L.P. Method for transaction command ordering in a remote data replication system
DE60142368D1 (de) 2000-04-07 2010-07-22 Network Appliance Inc Verfahren und Gerät zur Gruppenführer-Auswahl
US6718361B1 (en) * 2000-04-07 2004-04-06 Network Appliance Inc. Method and apparatus for reliable and scalable distribution of data files in distributed networks
US6782398B1 (en) * 2000-06-14 2004-08-24 Microsoft Corporation Method for executing commands on multiple computers of a network
CN1339748A (zh) * 2000-08-21 2002-03-13 叶柯 信息的发布、分拣和访问的方法
US20020165724A1 (en) * 2001-02-07 2002-11-07 Blankesteijn Bartus C. Method and system for propagating data changes through data objects
US7406486B1 (en) * 2002-04-10 2008-07-29 Oracle International Corporation Transforming transactions to increase parallelism when replicating
US7181642B1 (en) * 2003-01-17 2007-02-20 Unisys Corporation Method for distributing the processing among multiple synchronization paths in a computer system utilizing separate servers for redundancy

Also Published As

Publication number Publication date
US7707181B2 (en) 2010-04-27
EP1450270B1 (en) 2008-05-07
DE602004013475D1 (de) 2008-06-19
JP2004252986A (ja) 2004-09-09
KR101099227B1 (ko) 2011-12-27
CN1523523B (zh) 2010-05-26
ATE394743T1 (de) 2008-05-15
EP1450270A3 (en) 2005-06-22
KR20040074627A (ko) 2004-08-25
US20040162859A1 (en) 2004-08-19
CN1523523A (zh) 2004-08-25
EP1450270A2 (en) 2004-08-25

Similar Documents

Publication Publication Date Title
JP4491254B2 (ja) 複製コマンド配布のシステムおよび方法
CN112204513B (zh) 多租户存储系统中的基于组的数据复制
US20230100223A1 (en) Transaction processing method and apparatus, computer device, and storage medium
US7548898B1 (en) Parallel migration of data between systems
US20070043726A1 (en) Affinity-based recovery/failover in a cluster environment
US8468313B2 (en) Asynchronous replication with write concurrency grouping
JP4833590B2 (ja) 同時トランザクション(concurrenttransactions)とページ同期(pagesynchronization)
JP4791051B2 (ja) 任意数のバックアップ・コンポーネント用のシステム・アーキテクチャのための方法、システム、およびコンピュータ・プログラム
TWI470459B (zh) 由在遠端複本對之主要磁碟與次要磁碟之間通信而作為遠端複本對運作之儲存控制系統、方法、資料載體及電腦程式產品
US7743036B2 (en) High performance support for XA protocols in a clustered shared database
US20080301199A1 (en) Failover Processing in Multi-Tier Distributed Data-Handling Systems
US20130246379A1 (en) System and method for supporting application interoperation in a transactional middleware environment
WO2018014650A1 (zh) 分布式数据库数据同步方法、相关装置及系统
US20090157766A1 (en) Method, System, and Computer Program Product for Ensuring Data Consistency of Asynchronously Replicated Data Following a Master Transaction Server Failover Event
US20070239758A1 (en) Loosely Coupled Log Sequence Identifiers
JP2010117869A (ja) メモリ制御装置、プログラム及び方法
GB2515501A (en) Replication for on-line hot-standby database
US11157195B2 (en) Resumable replica resynchronization
KR20080102622A (ko) Dbms에서의 데이터 복제 방법 및 시스템
US10303700B1 (en) Preventing pauses in algorithms requiring pre-image information concerning modifications during data replication
CN105938446B (zh) 基于rdma和硬件事务性内存支持的数据复制容错方法
JPH10307732A (ja) メッセージ伝送方法
JP6626976B2 (ja) 高スループット、高信頼性のデータ処理システム
CN114816682A (zh) 分布式事务处理方法、系统及装置
US11522966B2 (en) Methods, devices and systems for non-disruptive upgrades to a replicated state machine in a distributed computing environment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100215

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

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

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

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140409

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees