JP5744898B2 - 情報システムにおける変換データの高スループット・高信頼性の複製 - Google Patents

情報システムにおける変換データの高スループット・高信頼性の複製 Download PDF

Info

Publication number
JP5744898B2
JP5744898B2 JP2012541446A JP2012541446A JP5744898B2 JP 5744898 B2 JP5744898 B2 JP 5744898B2 JP 2012541446 A JP2012541446 A JP 2012541446A JP 2012541446 A JP2012541446 A JP 2012541446A JP 5744898 B2 JP5744898 B2 JP 5744898B2
Authority
JP
Japan
Prior art keywords
target
source
log record
log
key
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
JP2012541446A
Other languages
English (en)
Other versions
JP2013513147A (ja
Inventor
ラファエル、ロジャー
タイラー、ポール、シャーウッド
デシュムク、ハリシュ
ヘイズ、フランク、カール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2013513147A publication Critical patent/JP2013513147A/ja
Application granted granted Critical
Publication of JP5744898B2 publication Critical patent/JP5744898B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/278Data partitioning, e.g. horizontal or vertical partitioning
    • 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
    • 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

Description

本発明の実施形態は、情報システムにおける変換データの高スループット、高信頼性の複製に関する。
情報は、組織内の、企業内の、またはさらにより大域的に複数の企業にわたる、複数の場所に存在することが多い。多くの場合、この情報は、ローカル・アプリケーションにとって最適な方法で提示され、通常、組織内の、企業内の、またはさらにより大域的に複数の企業にわたるすべてのアプリケーションが、存在する情報のすべてを必要とするわけでもなく、使用するわけでもなく、さらには当該情報へのアクセスを望みもしくは許可されているわけでもない。しかしながら、ローカル・アプリケーションにおいてこの情報がますます共有され利用されることが次第に一般的になってきている。その情報の共有、変換、およびローカルな使用は、データの一貫した表示を可能にし、組み合わせ販売の計画を可能にし、著しいビジネス最適化および新たなビジネスチャンスを見出すことを可能にする基礎的な機能である。
従来のシステムは高い実行コストをもたらし、これは多くの場合、ローカル・アプリケーションを実行している1つのローカル・ソース・システムを、何らかの他のターゲット・システムに整合する試みのすべての展開において被るものである。ローカル・ターゲット・コールは、そのターゲット・システムに対して非常に特異的になり、多くの場合、そのターゲット・システムの構成に対して非常に特定的になる傾向がある。複製およびデータ変換に使用される従来のシステムは、データ変換から導出されるパラメータ値を使用してローカル・ターゲット・コールと整合するにはいたらない。これは、従来のシステム内でローカル・ターゲット・コールを実行および整合するコストに起因して、ローカル・ターゲット・コールをプログラムするコストを高める結果となる。この高いコストの結果として、これらの種類のプロジェクトの多くが、特に企業レベルにおいて、最初に資金供給されることが可能でなく、実行、テスト、および展開するのに多大な時間がかかるようになっている。
高度なデータ整合性を必要とする従来のシステムは、ときにはデータ整合性を確実にするために2つのシステムの間の二相コミットさえ使用する、全体的な作業負荷の従来のトランザクションのシリアライゼーションに依拠する。このシリアライゼーションは、ソース・システム・トランザクション(現在では分散トランザクションになっている)内にもたらされるレイテンシに起因する、ソース・システムおよびターゲット・システムの両方に対する重大な実行結果を有する。このレイテンシは、全体的なスループットを低減する、より長い継続時間にわたってより多くのロックがかけられていることに起因して、増大したシリアライゼーションが発生していることを意味する。全体的なシステムが、全体的なシステム全体が常に利用可能であることに依存しているため、これによって高可用性に対する影響もある。従来のシステムは、ターゲット・システム上での実行を順序付けるためのソース・トランザクションのシリアライゼーションに依拠しており、したがって、高パフォーマンスのクラスタを利用するために完全に並列化することが不可能である。
高スループットの複製(複数のロケーションに起因する)、変換(データの「ローカルな」表現、およびそのデータに対して実行するアプリケーションに起因する)に対する需要、およびデータ整合性(一貫して信頼できる企業規模のデータ)に対する需要が存在する。したがって、情報システムにおける変換データの高スループット・高信頼性の複製が必要とされている。
ソース・オブジェクトがローカル・トランザクションによって変更されることに応答して、ログ記録を生成するための方法、コンピュータ・プログラム製品、およびシステムが提供され、ログ記録のそれぞれは、シーケンス識別子、ソース・システム・エンティティ修正タイムスタンプ、ターゲット・キー、ターゲット・パーティション識別子、およびソース特性の値を含み、ソース特性はターゲット・キー指示子を使用して識別される。処理するためのログ記録は、各ログ記録のフェーズ値に基づいて選択され、フェーズ値は、提出済み、送信中、およびソース・システム・エンティティ状態変更完了のうちの1つである。1つまたは複数の互いに同じものでは無いパーティション(disjoint partition:以下、非同一パーティションまたは素パーティションと記載)、が、複数の処理インスタンスのそれぞれに割り当てられる。複数の処理インスタンスのそれぞれの制御下で、上記処理インスタンスに割り当てられる1つまたは複数の非同一パーティション内のログ記録を送信するか否かが判断され、ログ記録を送信すべきであるという判断に基づいて、ログ記録が送信される。
ここで例示のみを目的として、添付の図面を参照して本発明の実施形態を説明する。
特定の実施形態によるコンピューティング・アーキテクチャを示す。 特定の実施形態による動作の流れを示す。 特定の実施形態による構造を示す。 特定の実施形態による処理を示す。 特定の実施形態による、ログ記録を生成するためのロジックを示す。 特定の実施形態による、ログ記録を生成するためのロジックを示す。 特定の実施形態による、ログ記録の非回復処理のためのロジックを示す。 特定の実施形態による回復処理のためのロジックを示す。 特定の実施形態による、ログをターゲット・システム記録に送信するためのロジックを示す。 特定の実施形態による、ログをターゲット・システム記録に送信するためのロジックを示す。 特定の実施形態による、ログをターゲット・システム記録に送信するためのロジックを示す。 特定の実施形態による、ログ記録を送信するための詳細なロジックを示す。 特定の実施形態によるスケールアップされたシステムを示す。 特定の実施形態によるスケールアウトされたシステムを示す。 特定の実施形態に従って使用することができるシステム・アーキテクチャを示す。
以下の記載において、本記載の一部を形成するとともに本発明のいくつかの実施形態を説明する添付の図面を参照する。他の実施形態を利用することができ、本発明の範囲から逸脱することなく、構造的および動作上の変更を為すことができることが理解される。
実施形態は、ローカル・コールがどのように為されるか、およびいつ為されるかにおいて、全体的なデータおよびトランザクション整合性を保持する高度な並列性を可能にすることによって、拡張性メカニズムを提供し、システム整合性を維持し、スループットを向上させる。
実施形態によって提供される機能は、フレームワークであって、当該フレームワークのユーザにとってプログラミングを最小限にする結果をもたらすフレームワークにおいて実装される。フレームワークの主要部の設計自体も、このフレームワークの効果的な実装および最適化を可能にするために、本明細書において記載される。
図1は、特定の実施形態によるコンピューティング・アーキテクチャを示す。コンピューティング・デバイス100は、ログ生成コンポーネント110と、ログ・コンシューマ・コンポーネント120と、ログ最適化コンポーネント130と、ターゲット・システム変換コンポーネント140と、ログ150とを含む。1つまたは複数のソース・システム160および1つまたは複数のターゲット・システム170が、コンピューティング・デバイス100に結合される。特定の実施形態において、コンピューティング・デバイス100はマスタ・コンテンツ・サーバである。特定の実施形態において、少なくとも1つのソース・システム160は企業コンテンツ管理(Enterprise Content Management、ECM)システムである。特定の実施形態において、少なくとも1つのターゲット・システム170はマスタ・データ管理(Master Data Management、MDM)システムである。
ソース・システム160は、トランザクション(たとえば、tx1、tx2、tx3・・・txn)を受信し、当該トランザクションをコンピューティング・デバイス100へルーティングする。ソース・システム160にあるソース・ローカル・アプリケーションがトランザクションを発行する。トランザクションはデータ(例えば、ソース・システム160上のソース・オブジェクト)を変更する。コンピューティング・デバイス100は、160と標識されるソース・システムおよび170と標識されるターゲット・システムによって表されているような情報システム間の変換データの高スループット・高信頼性の複製を実行する。ログ生成コンポーネント110は、変更されたデータを使用して、ログ150によって表されているようなログにおいてデータを生成する。ログ150の構造定義の詳細が図3に記載されている。ログ最適化コンポーネント130は、ログ150を処理および最適化して、ログ150内に追加のデータを生成する。ターゲット・システム変換コンポーネント140は、データ変換を実行して、変換されたデータをターゲット・システム170にルーティングし、ターゲット・システムもログ150内に追加のデータを生成する。その後、トランザクション(例えば、tx11・・・txp)は変換されたデータを使用することができる。このように、データはソース・システム160によって変更され、変更されたデータがコンピューティング・デバイス100にあるターゲット・システム変換コンポーネント140によって変換される。
特定の実施形態において、1度に1つのソース・データ変更がある。各変更は、ソース・トランザクション識別子を用いてタグ付けされる。さらに、各変更は、ソース・トランザクションの命令コード(すなわち、挿入、更新または消去)を用いてタグ付けされる。特定の実施形態において、ソース・データ変更内に複数の行が存在し、その行のそれぞれが複数の属性を有する。
ソース・トランザクション内に、実行されるべき複数の命令文が存在する場合があり、複数の命令文のそれぞれに対してデータ変更が存在する場合がある。実施形態は、ソース・トランザクション識別子を有するソース・トランザクションに対してデータ変換を適用する。1つのトランザクション当たりに1つまたは複数のソース・データ変更が存在する場合がある。特定の実施形態において、単一のデータ変換内に関数実行順序が(すなわち、主キー/外部キー関係の確立/維持において介在する例外を回避するために)与えられる。
特定の実施形態において、図1において例示されているシステムは、高信頼性でかつ正確に順序付けされた様式で、ソース・システム160内の差分の検出から始まり、抽出、変換、ターゲット・システム170への配信へと続く複製パイプラインとして説明されることができる。
図2は、特定の実施形態による動作の流れを示す。図2において、凡例200によれば、実線の矢印はラベルを示し、破線の矢印はデータ・フローを示し、点線の矢印は制御フローを示す。ソース・システム・エンティティ・インスタンス210がコンピューティング・デバイスに結合されており、コンピューティング・デバイスはターゲット・システム・エンティティ・インスタンス290に結合されている。コンピューティング・デバイス、詳細なシステム情報、データ・フロー、および制御フロー200が一点鎖線内に示されている。コンピューティング・デバイス200は、コンピューティング・デバイス100(図1)のインスタンスである。ソース・システム・エンティティ・インスタンス210は、ソース・システム160(図1)のインスタンスである。ターゲット・システム・エンティティ・インスタンス290は、ターゲット・システム170(図1)のインスタンスである。特定の実施形態では、コンピューティング・デバイス200はマスタ・コンテンツ・サーバであり、ソース・システム・エンティティ・インスタンス210は企業コンテンツ管理システムであり、ターゲット・システム・エンティティ・インスタンス290はマスタ・データ管理システムである。
ソース・システム・エンティティ・インスタンス210は、ソース文書モデル(例えば、D3)およびプロキシ・ターゲット・フラット・モデル(例えば、M3)にアクセスすることができる。プロキシ・ターゲット・フラット・モデルは、現実のインスタンス・データを有しない、ソース・システム上のターゲット・データ・モデルのフラット化されたエミュレーションとして説明されることができる。これは、マップ・テーブルの内容とともに、実施の便宜上、および強力なシステム・メタデータ有効性検証チェックのために使用される。たとえば、D3は、運転免許証、パスポート、または出生証明書のような身分証明書を表すスキャンされた画像のためのメタデータ文書モデルであることができる。このメタデータ文書モデルは、ソース・システムのデータ・モデル化機能において実装される。ECMシステムにおいては、これは、オブジェクトベースのデータ・モデルであることができる。例えば、M3は、データベース管理システム(DataBase Management System、DBMS)内のD3内に格納されているものと同じかもしくは類似の情報のフラットな関係表現であることができ、またはD3は、拡張可能マークアップ言語(eXtensible Markup Language、XML)、もしくはターゲット・システムによってサポートされる何らかの他のデータ・モデル表現であることができる。特定の実施形態において、ソース文書モデルはオブジェクト・モデルであり、プロキシ・ターゲット・フラット・モデルは関係モデルである。D3−インスタンス(D3−Instance)は、ソース・トランザクションを介してD3−インスタンス’(D3−Instance’)に変更される。トランザクションのために、イベント・ハンドラ224は文書モデル、状態220由来のそのトランザクションのための状態情報、およびマップ222由来の行(ラベルを付された「マップ」)にアクセスする。イベント・ハンドラ224は文書モデル、状態情報、および行をログ・ジェネレータ226に転送する。ログ・ジェネレータ226はマップ222にアクセスして、マップ222由来の行を使用してソース文書モデルを中間モデルに変換し、データをイベント・ハンドラ224に返す。イベント・ハンドラ224は、ログ240に書き込む。ログ・プロセッサ250は、ログを処理する。ターゲット型ハンドラ260は、マップ222を使用して(中間からターゲットへ)データ変換を完了させる。ターゲット・インタフェース(複数の場合もあり)(interface、I/F)262は、適切なパラメータを用いてアプリケーション・プログラミング・インタフェース(Application Programming Interface、API)を呼び出すための1つまたは複数のインタフェースを提供する。完了したデータ変換からのデータ値は、適切なアプリケーション・プログラミング・インタフェースに対するパラメータとして使用される。
特定の実施形態において、ログ生成コンポーネント110(図1)の機能は、イベント・ハンドラ224、ログ・ジェネレータ226、状態220、およびマップ222を用いて実施される。特定の実施形態において、ログ最適化コンポーネント130(図1)の機能は、ログ・プロセッサ250において実施される。特定の実施形態において、ターゲット・システム変換コンポーネント140(図1)の機能は、ターゲット型ハンドラ260およびターゲットI/F(複数の場合もあり)262において実施される。
図3は、特定の実施形態による構造300を示す。特定の実施形態において、構造300は状態220内に格納される。構造300は、ターゲット・システム・エンティティ・テーブル310と、ソース・システム・エンティティ・リンク・テーブル320と、ログ・テーブル330と、マップ・テーブル340とを含む。エンティティは或る型(例えば、文書モデル)である。ソース・システムのインスタンスは複数のソース・システム・エンティティを有することができ、ターゲット・システムのインスタンスは複数のターゲット・システム・エンティティを有することができる。
構造300は、二相コミットを必要とすることなく、高いデータ整合性を与える。さらに、ターゲット・システム・エンティティ・テーブル310およびソース・システム・エンティティ・リンク・テーブル320は、処理の初期段階において重複を認識することによってメッセージおよびコード・パスを低減する。
ターゲット・システム・エンティティ・テーブル310は、ターゲット・キー、ターゲット・ハンドル、ソース・システム・エンティティ参照カウント、およびソース・システム・エンティティ修正タイムスタンプのための属性を含む。
ソース・システム・エンティティ・リンク・テーブル320は、リンク識別子、ソース・キー、およびターゲット・キーのための属性を含む。リンク識別子は、リンクに与えられる一意の番号として説明される場合がある。ソース・データ・モデル要約インスタンス(例えば、文書)とターゲット・データ・モデル要約インスタンスとの間にリンクが形成される。実施形態によれば、ソース・データ・モデル要約インスタンス(例えば、文書)とソース・システム・エンティティ・リンク・テーブル320との間に1対1の関連性が存在し、ターゲット・システム・エンティティ・テーブル310とリンク・テーブル320との間に1対多の関連性が存在する。
ログ記録に対する命令コードが挿入される場合、リンクが追加され(すなわち、ソース・システム・エンティティ・リンク・テーブル320に行が追加され)、ソース・システム・エンティティ参照カウントがインクリメントされる。命令コードが消去される場合、リンクが削除され(すなわち、ソース・システム・エンティティ・リンク・テーブル320から対応する行を消去することによる)、ソース・システム・エンティティ参照カウントがデクリメントされる。命令コードが更新される場合、ソース・システム・エンティティ・リンク・テーブル320またはソース・システム・エンティティ参照カウントに対する変更は必要とされない。
特定の実施形態において、ログ240はログ・テーブル330として実装される。ログ・テーブル330は、シーケンス番号(ソース・システム・エンティティ・インスタンス210上でトランザクションが完了される順序を識別する)、トランザクション識別子、命令コード(すなわち、挿入、更新または消去)、ソース・システム・エンティティ修正タイムスタンプ(ソース・オブジェクトが最後に修正された時刻を示す)、ターゲット型、ターゲット・キー、ターゲット・パーティション識別子、中間型ペイロード(中間型において送信されるべき値を有する)、フェーズ値、フェーズ・タイムスタンプ、および処理状況(例えば、「送信成功」、「送信失敗」または「未送信」)のための属性を含む。特定の実施形態において、単調原子シーケンス番号ジェネレータがシーケンス番号を生成する。特定の実施形態において、ターゲット型はM3モデルのためのターゲット・データ型インスタンスである。例えば、文書が身分証明書の場合、名前のような特定の特性が、ターゲットM3モデルにおいて特定の型を用いて表されることができる。これは、単純な文字列型、固定長文字列、または、ファースト・ネーム、ミドル・ネーム(またはミドル・ネームの頭文字)、およびラストネームのための構造であり得る。フェーズ値は、ログ記録ライフサイクルにおける、提出済み、送信中、ソース・システム・エンティティ状態変更完了、および完了(すなわち、ターゲット・システム・エンティティ状態変更完了)のフェーズを反映する。システムがコールド・スタートした後、フェーズ値によって識別されるフェーズに基づいて処理を開始することができる。特定の実施形態において、ログ・テーブル330は、ソース・オブジェクトから取得される(例えば、上書きされる)ソース・キーをも含み、ソース・キーを生成するために使用されるべきソース特性を決定するためにソース・キー識別子が使用される。
特定の実施形態において、マップ222はマップ・テーブル340として実装される。マップ・テーブル340は、マップ識別子、ソース型、ソース特性識別子、ソース・メソッド識別子、ソース・キー識別子、ターゲット型、ターゲット特性識別子、ターゲット・メソッド識別子、およびターゲット・キー識別子のための属性を含む。マップ・テーブル340の各行は、特性変換指定を表す。特定の実施形態において、マップ・テーブルは、ソース・エンティティ・特性の選択およびそのターゲット・エンティティ・特性との関連付けを容易にする何らかの視覚化ツール、およびシステムの目標を達成するための必須のメソッドを使用するかまたはしないかのいずれかのマッピングによって、システムの所与のインスタンス向けに事前にデータ投入されている。
実施形態によれば、ターゲット・キーは、ターゲット・システム170の主キーである。
実施形態は、エンティティ関数マッピングを実行する。特定の実施形態において、マッピングはシステム(例えば、図1)構成時に定義される。マップ222は、ターゲット関数、およびそれらのターゲット関数のためのターゲット・パラメータを定義する。マップ222は、ソース関数および変換されたデータ・インスタンス(例えば、型および方式)を定義する。マップ222は、ソース関数がどのようにターゲット関数にマッピングするかを定義する。マップ222は、変換されたデータ・インスタンスがどのようにターゲット関数パラメータにマッピングするかを定義する。マップは、動的結合を通じて実行されるべきターゲット関数コードを定義する。
実施形態は、各ソース関数/値をターゲット関数/パラメータにマッピングする。所与のターゲット関数のためのターゲット・パラメータは共にグループ化され、それによって、1つのターゲット関数実行が適用されることができる。任意の残りの割り当てられていないパラメータに対して、初期値、空値、エラーの生成または他の技法が使用される。いくつかの実施形態においては、割り当てられていないパラメータに対して一般的なドメイン整合性規則を使用することができる。
図4は、特定の実施形態による処理を示す。ブロック400において、ソース・システム160上で実行しているローカル・トランザクションによってソース・オブジェクトが変更されることによって、制御が開始する。ブロック402において、ログ生成コンポーネント110がログ記録を生成し、ログ記録のそれぞれは、シーケンス識別子、ソース・システム・エンティティ修正タイムスタンプ、ターゲット・キー、ターゲット・パーティション識別子、およびソース特性の値を含み、ソース特性はターゲット・キー指示子を使用して識別される。ブロック404において、ログ・コンシューマ・コンポーネント120が、各ログ記録のフェーズ値に基づいて処理するためのログ記録を選択し、フェーズ値は、提出済み、送信中、およびソース・システム・エンティティ状態変更完了のうちの1つである。ブロック406において、ログ・コンシューマ・コンポーネント120は、1つまたは複数の素パーティションを複数の処理インスタンスのそれぞれに割り当てる。ブロック408において、複数の処理インスタンスのそれぞれの制御下で、ログ最適化コンポーネント130は、上記処理インスタンスに割り当てられる1つまたは複数の素パーティション内のログ記録を送信するか否かを判断し、ログ記録を送信すべきであるという判断に基づいて、ログ記録を送信する。
図5および図6は、特定の実施形態による、ログ記録を生成するためのロジックを示す。ブロック500において、ソース・オブジェクトが変更される(すなわち、挿入される(すなわち、作成される)、更新される(すなわち、修正される)または消去される)ことによって、制御が開始する。たとえば、ソース・オブジェクトは図3におけるD3である。ブロック502において、ログ生成コンポーネント110が、ソース・オブジェクトのソース型を識別する。ブロック504において、ログ生成コンポーネント110が、識別されたソース型を使用してマップ・テーブル340内の行グループを識別し、各行グループは同じターゲット型を有する。ブロック506において、ログ生成コンポーネント110は、最初の行グループから開始して、次の行グループを選択する。特定の実施形態において、ソース型を有する行がマップ・テーブル340内で識別されると、行はターゲット型によってソートされ、行グループが形成される。各行グループ内で、行は昇順のマップ識別子によってソートされる。次いで、ログ生成コンポーネント110は、最初の行グループから開始して、特性変換指定を表す各行を処理する。
ブロック508において、ログ生成コンポーネント110は選択された行グループ内の行のそれぞれのターゲット・キー指示子を使用してソース特性を識別し、ターゲット・キー識別子は、ターゲット・キーを生成するために使用されるべきソース特性(すなわち、キー・ソース特性)、およびターゲット・キーを生成するために使用されないソース特性(すなわち、非キー・ソース特性)を指示する。例えば、ターゲット・キー指示子は、ソース特性のセットのそれぞれに対して1ビットを提供することができ、当該ビットが「真」にセットされると、関連付けられるソース特性の値がターゲット・キーを生成するために使用される。
ブロック510において、ログ生成コンポーネント110がソース・オブジェクトから識別されたソース特性の値を抽出し、抽出された値を、選択されたグループ内の行のそれぞれの中のマップ識別子によって指定される順序でバッファ内に格納する。処理は、ブロック510(図5)からブロック512(図6)に続く。
ブロック512において、ログ生成コンポーネント110が、キー・ソース特性の値をハッシュしてターゲット・キーを生成し、当該ターゲット・キーをバッファに追加する。この時点において、バッファは、キー・ソース特性の値、非キー・ソース特性の値、およびターゲット・キーを格納している。ブロック514において、ログ生成コンポーネント110が、ターゲット・キーをハッシュしてターゲット・パーティション識別子を生成し、当該ターゲット・パーティション識別子をバッファに追加する。特定の実施形態において、パーティションの数は事前定義(「N」)であり、ブロック514において使用されるハッシュは0〜(N−1)の範囲内のターゲット・パーティション識別子を生成する。
ブロック516において、ログ生成コンポーネント110が、ソース・メソッドがそのために存在する各ソース特性に対してソース・メソッドを実行し、バッファ内のソース特性の値を、実行されたソース・メソッドによって返される結果値に置き換える。すなわち、ソース・メソッドは、特定のソース特性のためには存在しない。
この時点において、バッファは、キー・ソース特性の値、非キー・ソース特性の値、ターゲット・キー、およびターゲット・パーティション識別子を格納している。キー・ソース特性の値および非キー・ソース特性の値が中間型ペイロードを形成する。ブロック518において、ログ生成コンポーネント110が、バッファ内に格納されている値、シーケンス番号、トランザクション識別子、命令コード、ソース・システム・エンティティ修正タイムスタンプ、ターゲット型、提出済みのフェーズ値を示すフェーズ値、フェーズ・タイムスタンプ、および処理状態をログ記録内に書き込むことによって、ログ記録を生成する。いくつかの実施形態では、シーケンス番号は、十分に精度の高い原子単調シーケンス番号ジェネレータに従って生成される。
ブロック520において、ログ生成コンポーネント110が、すべてのグループが選択されたか否かを判断する。そうである場合、処理が完了し、そうでない場合、処理はブロック506に続いて同じターゲット型を有する別の行グループが選択される。
図7は、特定の実施形態による、ログ記録の非回復処理のためのロジックを示す。図7の処理は、「通常」(すなわち、非回復)処理と称される場合がある。制御は、ブロック600において、ログ・コンシューマ・コンポーネント120が、提出済みフェーズにあるログ記録(すなわち、提出済みのフェーズ値を有するログ記録)を、ソース・システム・エンティティ修正タイムスタンプの順にプルすることによって開始する。ブロック602において、ログ・コンシューマ・コンポーネント120が、プルされたログ記録をディスパッチ・テーブル内にプッシュする。特定の実施形態において、ディスパッチ・テーブルは複数のバケットを有するハッシュ・テーブルであり、プルされた記録のそれぞれが、そのログ記録のターゲット・キーに基づいてバケットのうちの1つの中に格納される。ブロック604において、ログ・コンシューマ・コンポーネント120が、プッシュされたログ記録のそれぞれのフェーズ値を送信中に更新する。特定の他の実施形態において、バケットは、永続記憶装置内のログ記録の順序付けされた待ち行列であり、当該順序付けは、ログ記録のシーケンス番号およびソース・システム・エンティティ修正タイムスタンプに基づく。
図8は、特定の実施形態による回復処理のためのロジックを示す。制御は、ブロック700において、ログ・コンシューマ・コンポーネント120が、送信中フェーズ、またはソース・システム・エンティティ状態変更完了フェーズにあるログ記録(すなわち、送信中またはソース・システム・エンティティ状態変更完了のフェーズ値を有するログ記録)を、ソース・システム・エンティティ修正タイムスタンプの順にプルすることによって開始する。他の実施形態において、ログ・コンシューマ・コンポーネント120は、シーケンス番号の順にログ記録をプルすることができる。ブロック702において、ログ・コンシューマ・コンポーネント120が、プルされたログ記録をディスパッチ・テーブル内にプッシュする。例えば、前回のクラッシュによる再起動からのコールド・スタートがあった場合、ログ記録のうちのいくつかは完了フェーズにある(例えば、それらが送信中またはソース・システム・エンティティ状態変更完了のフェーズのうちの1つにある)場合もあるし、ない場合もあり、これらのログ記録は未完了フェーズを完了させて記録を適切に完了フェーズにする処理のためにプルされる。従来技術であれば、二相コミットが実行されていたであろう。他方、格納されているフェーズ情報を用いてデータ整合性を提供することによって、二相コミットを使用することが回避される。
特定の実施形態において、トランザクションの所与のセットについて、ログ・コンシューマ・コンポーネント120は、ソース内で同じキー値を修正するトランザクションを見つけるか、または1つまたは複数のパラメータについて同じパラメータ値を有する同じターゲットを実行するトランザクションを見つける。これらの識別されたトランザクションは、元のトランザクションの順序で順次実行される。他のトランザクションは任意の順序で実行されることができる。
図9〜図11は、特定の実施形態による、ログ記録をターゲット・システム170に送信するためのロジックを示す。制御は、ブロック800において、ログ最適化コンポーネント130が、ディスパッチ・テーブルから未処理バケットを選択することによって開始する。ブロック802において、ログ最適化コンポーネント130が、バケットを処理済みとしてマーキングする。特定の実施形態において、バケットは処理済みまたは未処理のいずれかとしてマーキングされることができる。ブロック804において、ログ最適化コンポーネント130は、ログ記録を、バケットからメモリに移動させて、メモリ内ログ記録を作成する。ブロック806において、最適化コンポーネント130が、最初のメモリ内ログ記録から始まる、次のメモリ内ログ記録を選択し、メモリ内ログ記録は、先入れ先出し(First−In, First−Out、FIFO)順に処理される。ブロック808において、ログ最適化コンポーネント130が、すべてのメモリ内ログ記録が選択されたか否かを判断する。そうである場合、処理はブロック832に続き、そうでない場合、処理はブロック810(図10)に続く。
ブロック832において、ログ最適化コンポーネント130が、バケット内に新たなログ記録が存在するか否かを判断する。そうである場合、処理はブロック804に続き、そうでない場合、処理はブロック834に続く。ブロック834において、ログ最適化コンポーネント130が、ディスパッチ・テーブルからバケットを消去する。
従って、バケットが消去されると、ログ最適化コンポーネント130は図9〜図11に従う処理のために別のバケットを選択する。このように、ログ最適化コンポーネント130は、バケットを1つずつ処理する。
ブロック810(図10)において、ログ最適化コンポーネント130が、ターゲット・システム・エンティティ・テーブル310内にターゲット・キーが存在するか否かを判断する。そうである場合、処理はブロック820に続き、そうでない場合、処理はブロック812に続く。すなわち、ターゲット・キーがターゲット・システム・エンティティ・テーブル310内に存在する場合、ログ最適化コンポーネント130はこのログ記録を送信すべきか否かを判断する追加の処理を実行する。ターゲット・キーがターゲット・システム・エンティティ・テーブル310内に存在しない場合、ログ最適化コンポーネント130はこのログ記録を送信すべきであると判断する。
ブロック812において、ログ最適化コンポーネント130が、選択されたメモリ内ログ記録のために、ターゲット・システム・エンティティ・テーブル310内にターゲット・キーを有する新たな行を作成する。ブロック814において、ログ最適化コンポーネント130が、ソース・システム・エンティティ・リンク・テーブル320内に新たな行を作成し、ターゲット・システム・エンティティ・テーブル内のソース・システム・エンティティ参照カウントをインクリメントする。ブロック814から、処理はブロック816(図11)に続く。
ブロック816において、ログ最適化コンポーネント130は、選択されたメモリ内ログ記録のフェーズ値を、ソース・システム・エンティティ完了に変更する。ブロック818において、ログ最適化コンポーネント130が、選択されたログ記録をターゲット・システム170に送信する。ブロック818の処理のさらなる詳細は、図12を参照して記載されている。ブロック820において、ログ最適化コンポーネント130は、選択されたメモリ内ログ記録のフェーズ値を完了に変更し、選択されたメモリ内ログ記録の処理状況を、送信が成功したかまたは失敗したかに応じて「送信成功」または「送信失敗」に変更する。ブロック820から、処理はブロック806(図9)に続く。
図10に戻って、ブロック822において、ログ最適化コンポーネント130が、ターゲット・システム・エンティティ・テーブル310内のソース・システム・エンティティ修正タイムスタンプが、選択されたメモリ内ログ記録のソース・システム・エンティティ修正タイムスタンプよりも小さい(すなわち、「<」)か否かを判断する。そうである場合、処理はブロック824に続き、そうでない場合、処理はブロック826に続く。ブロック824において、ログ最適化コンポーネント130が、ターゲット・システム・エンティティ・テーブル310内のソース・システム・エンティティ修正タイムスタンプを、選択されたメモリ内ログ記録のソース・システム・エンティティ修正タイムスタンプに更新する。ブロック824から、処理はブロック816(図11)に続く。
ブロック826において、ログ最適化コンポーネント130が、選択されたメモリ内ログ記録が送信されるべきであると指示する規則が存在するか否かを判断する。そうである場合、処理はブロック816(図11)に続き、そうでない場合、処理はブロック828に続く。ブロック828において、ログ最適化コンポーネント130が、選択されたメモリ内ログ記録はターゲット・システム170に送信すべきでないと判断する。ブロック830において、ログ最適化コンポーネント130は、選択されたメモリ内ログ記録のフェーズ値を完了に変更し、選択されたメモリ内ログ記録の処理状況を、「未送信」に変更する。
一例として、ソース・システム160におけるソース・ローカル・アプリケーションは、身分証明、書式、請求または何らかの他のアーティファクトに使用される文書を変更するトランザクションを発行する。この例について、図5および図6は、トランザクションを発行するソース・ローカル・アプリケーションからどのようにデータが収集されるかを示し、図7は、どのように正確な順序付けが維持され、従って身分証明、書式、請求または他のアーティファクトのためのソース・ローカル文書整合性がターゲット・システム170内で維持されるかを示し、図8は、たとえシステム障害の場合であっても、どのようにデータ整合性が維持され、障害が修正された後に動作を再開することができるかを示し、図9〜図11は、最適化がどのように機能するか(例えば、複製身分証明書(例えば、運転免許証、パスポートなど)は、細部においては異なるが、全く同じものとして取り扱われるおそれがあり、送信される必要がない場合がある)を示し、図12を参照すると、ターゲット・システム170は、自動的に呼び出すことができるAPI(例えば、「パーティを追加する」のような機能の周辺のウェブサービスベースのAPI)を有することができる。
図12は、特定の実施形態による、ログ記録を送信するための詳細なロジックを示す。制御はブロック900において、ターゲット・メソッドがそのために存在するバッファ内の各特性に対して、ターゲット・システム変換コンポーネント140を用いてターゲット・メソッドを実行し、ターゲット・特性の値を、実行されたターゲット・メソッドによって返される結果値に置き換えてターゲット・バッファを作成することによって開始する。このようにして、ソース特性の値が変換される。ブロック902において、各ターゲット型について、ターゲット・システム変換コンポーネント140が、ログ記録内の命令コード、ターゲット型、およびターゲット特性識別子に基づいてコード・ブロックを識別する。ブロック904において、ターゲット・システム変換コンポーネント140が、コード・ブロックを線形化して線形化コードを形成する。コード・ブロックはターゲット・インタフェースとして説明される場合もある。ブロック906において、ターゲット・システム変換コンポーネント140が、線形化コードを実行して、変換されたソース特性を有するログ記録をターゲット・システム170に配信する。特定の実施形態において、この実行はターゲット・システムAPIを使用してログ記録を配信する。例えば、ターゲット・システム変換コンポーネント140は線形化コードまで分岐して実行を開始することができる。ブロック908において、ターゲット・システム変換コンポーネント140が、ターゲット・システム170に対してコミット・コード・ブロックを実行する。ブロック910において、ターゲット・システム変換コンポーネント140が、ターゲット・システム170から確認応答を受け取る。ブロック912において、ターゲット・システム変換コンポーネント140が、ターゲット・システム・エンティティ・テーブル310内にターゲット・ハンドルを格納する。
このようにして、ターゲット・システム変換コンポーネント140は、識別されたパラメータを用いて、生成された線形化コードを実行する。ターゲット・システム変換コンポーネント140はいくつかの拡張点を提供し、当該拡張点は、データ変換が適用されることだけでなく、変換されたデータを用いて、ターゲット・システム160に対する正しいローカル・コールが呼び出されることも確実にするために提供される。それらのローカル・コールは、適用されるべき任意のプログラム動作が、ローカル整合性およびローカル最適化を維持するためにフロー全体に正確に投入されることができることを確実にする。
ターゲット・インタフェース(すなわち、コード・ブロック)を含むこと、および変換された値をパラメータ(すなわち、特性)に当てはめることによって、これは、そうでなければ実行しなければならないであろうプログラミングを最小限に抑える。
図13は、特定の実施形態によるスケールアップされたシステムを示す。特定の実施形態において、ログ150はソース・システム160データベース1000内に格納されている。特定の実施形態において、ログ・コンシューマ・コンポーネント120は、単一の待ち行列コンシューマ・スレッドおよびユーザが構成可能な複数の待ち行列ワーカ・スレッドを用いて構築される。待ち行列コンシューマ・スレッドは、ディスパッチ・テーブル(例えば、メモリ内ハッシュ・テーブル)にデータを投入する。特定の実施形態において、システムの処理インスタンスは、待ち行列コンシューマ・スレッド、複数の待ち行列ワーカ・スレッド、およびディスパッチ・マップを含むものとして説明される場合がある。
ディスパッチ・テーブルは、それぞれがキーを用いて直接アドレス指定されることができる多数のハッシュ・バケットを有する。使用されるキーは、ログ記録ターゲット・キー値である。ハッシュ・バケットは、単一の順序付けされた待ち行列を含む。バケット内の各順序付けされた待ち行列は、特定のターゲット・キーに関連付けられる。各順序付けされた待ち行列は、すべて同じターゲット・キーを有する多数のメモリ内ログ記録エントリを有することができる。これらのエントリは順番に保持される。これらの待ち行列内の各メモリ内ログ記録は、ターゲット・システム160に配信可能なログ行である。待ち行列内のメモリ内ログ記録は、シーケンス番号またはソース・システム・エンティティ修正タイムスタンプのいずれかによって順序付けされる。特定の実施形態において、ディスパッチ・テーブルに対して固定されるバケット数は設定可能である。1つまたは複数の待ち行列ワーカ・スレッドは、ディスパッチ・マップ内のハッシュ・バケットからメモリ内記録を順番にかつ並列に消費し、図12に記載されるフローを使用してのメモリ内ログ記録のターゲット・システム160への配信に進み、その後、エラー有りまたはエラー無しの完了フェーズにあるとしてログ行をマーキングする。
特定の実施形態において、ターゲット・システム170にディスパッチされるログ150は、ターゲット・システム170がトランザクションを処理するべき順序で単一のスレッドに入れられる。ターゲット・システム型ハンドラがハンドルを返すと、待ち行列ワーカ・スレッドはログ150を完了フェーズにマーキングする。
図14は、特定の実施形態によるスケールアウトされたシステムを示す。論理的に区分化されたログ・テーブル1100が、データベース1000内に格納されている。特定の実施形態において、各待ち行列コンシューマ・スレッドは互いに素なパーティション・セットを割り当てられる。すなわち、待ち行列コンシューマよりも多くのパーティションが存在する場合がある。Nは、達成可能な並列性に関するノード機能の立地因子および実際のターゲット・システム160のスループットを考慮に入れて、製品を焼くときにまたは製品の展開/インストール時に設定することができる。図14において、複数の処理インスタンスが存在し、処理インスタンスのそれぞれは1つまたは複数のパーティションを割り当てられる。実施形態は、システムのデータ整合性を損なうことなくトランザクションを順序付けし直すことを可能にすることによって、順序または整合性を損なうことなく、より良好な並列性を可能にする。これは、図6におけるブロック512および514の結果として達成される。ブロック512および514の処理は、その後図14において使用されるパーティション識別子を生成する。図14において、パーティションは並列処理インスタンスの間で分散される。従って、実施形態はブロック512および514に記載されるハッシュ値に基づいてパーティションを使用し、その後、パーティションは、図14に記載される並列スレッドにわたって分散される。その上、トランザクションを順序付けし直すことによって、そうしない場合に通常発生するよりも多くのパーティションにわたって作業負荷を分散させることが可能になり、これはより良好な並列性をもたらす。
スケールアップおよびスケールアウトに関して、ターゲット・システム170は、同じターゲット・キーによる操作に対して冪等である。
実施形態は、情報の共有、変換、およびローカル使用の根本的な機能を達成する効率的で高信頼性の方法を可能にする技術であることを認めるものである。実施形態は、(ローカル・アプリケーションについてデータがどのように表現されるかのローカル最適化を維持するための)データ変換におけるアプリケーションまたは展開に特有の拡張性をプログラムする能力を提供する。
実施形態によれば、ソース・システム160からターゲット・システム170へとデータが変換され、ここで、各エンティティは関連付けられるキーを有すると想定されている。特定の実施形態において、ソース・キーとターゲット・キーとは同じである。これによって、型変換またはより高度なデータ・モデル変換を単純化することができる。特定の実施形態において、特定のシステムによって提供される基礎的で非標準的なデータ・モデルに起因して必要とされるものは、型変換とデータ・モデル変換との両方の組み合わせである可能性がある。実施形態によれば、特定の変換技法は、拡張可能スタイルシート言語変換(eXtensible Stylesheet Language Transformation、XSLT)を含む、現行の技術で利用可能な技法を含むことができる。実施形態は、設計時に1つまたは複数の変換を指定する技法が提供され、かつ実行時に効率的に変換を適用する技法が存在することを想定している。
実施形態は、従来のシステムでは利用可能でない効率的な並列性を可能にしながら、依然として強いデータ整合性をもたらす、データ変換が適用される順序を最適化する能力を提供する。
実施形態によれば、完全に最適化された並列性を有する、新たなトランザクションがソース・システム160上で検出される。これは、ソース・システム160の末端に内蔵されている特性であり、ソース・システム160の末端上のアプリケーションに特別にユーザがカスタマイズする必要はない。実施形態は、トランザクションは、必ずしもソース・システム160の元の変更順序ではなく、ターゲット・キー値の順に適用されるべきであることを認識している。
例えば、ソース・システム・エンティティ・インスタンス210が、その一時的な順で実行されている2つのトランザクションS1、S2を有していると仮定し、ここで、S1はソース・システム・エンティティ・インスタンス210を特性値P1=「a」、P2=「b」を用いて更新し、S2は同じソース・システム・エンティティ・インスタンス210を特性値P1=「b」、P2=「d」を用いて更新しているものとする。ターゲット・システム・エンティティ・インスタンス290が、P1をターゲット・システム・エンティティ・インスタンス290の主キーにマッピングする、P1に対する変換を使用する場合、この事例において、実施形態は任意のターゲット・トランザクションの順序でターゲット・システム・トランザクションR1およびR2を適用する。これは、S1、S2は同じソース・システム・エンティティ・インスタンス210に影響を及ぼすが、ターゲット・トランザクションは本質的には独立したターゲット・システム・エンティティ・インスタンスに影響を及ぼすことになるため、許容される。しかしながら、S1およびS2が両方ともP1=「a」に更新されるとすると、ターゲット・システム・トランザクションR1、R2はソース・システム・エンティティ・インスタンス210の順序において適用される。これは、ターゲット・トランザクションが同じターゲット・システム・インスタンス290に影響を与えているためである。
別の例では、2つの独立したソース・システム・エンティティ・インスタンス上でランダムに発生する2つのトランザクションS1およびS2が存在し、ここで、第1のソース・システム・エンティティ・インスタンスにおいてP1=「a」かつP2=「b」であり、第2のソース・システム・エンティティ・インスタンスにおいてP1=「a」かつP2=「c」であり、この場合、ターゲット・システム・トランザクションR1およびR2は、S1およびS2がソース・システム・エンティティ・インスタンス内で実際に発生したものと同じ自然な順序に従う。これは、2つのソース・システム・エンティティ・インスタンスが同じターゲット・システム・エンティティ・インスタンスに影響を及ぼしたためである。
実施形態は、ターゲット・トランザクションを順序付けるとともに、高度な設計基準に基づいて、いずれが独立しているかを判断することが可能ないくつかの技法を提供する。これらの技法は、スケールアップおよびスケールアウトの手法を要求するシステム全体に対して必要とされるスループット要件に応じて変化する。
実施形態によれば、拡張可能変換プロシージャを実行することによって取得される変換データを使用してトランザクションが適用される。実施形態は、ログ150(いずれの関数が呼び出すのに適切であるかを判断するためのデータ指向型テーブルである場合がある)を使用する。この関数は、実行時にリンクされることができ、アプリケーションまたは展開に特有であることができる。
実施形態は、一般的な情報管理(例えば、DBMS)シナリオに適用可能であり、ここでは、複製およびトランザクションの文脈におけるエンティティおよびモデルの変換は共通である。例えば、データ・ウェアハウスの構築またはターゲット・システム160の構築は、本明細書において開示されている実施形態の別の応用形態である。
実施形態は、必要とされるサーバをより少なくし、それらのサーバの必要とされるモニタリングおよび管理を抑えることを可能とし、必要な場合には適用されるサーバをより多くすることを可能とする。
追加の実施形態の詳細
当業者には明らかであろうように、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化することができる。したがって、本発明の諸態様は、本明細書においてはすべて包括的に「回路」、「モジュール」または「システム」と称する場合がある、全体がハードウェアの実施形態、全体がソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、または、ソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形態を取り得る。さらに、本発明の諸態様は、その上にコンピュータ可読プログラム・コードを具現化される1つまたは複数のコンピュータ可読媒体内で具現化されるコンピュータ・プログラム製品の形態を取り得る。
1つまたは複数のコンピュータ可読媒体の任意の組み合わせを利用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体とすることができる。コンピュータ可読記憶媒体はたとえば、電子、磁気、光学、電磁、赤外線、もしくは半導体のシステム、装置、もしくはデバイス、または上記の任意の適切な組み合わせとすることができるが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例(非排他的なリスト)は、以下の:1つまたは複数のワイヤを有する電気接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(random access memory、RAM)、読み出し専用メモリ(read−only memory、ROM)、消去可能プログラマブル読み出し専用メモリ(erasable programmable read−only memory、EPROMまたはフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読み出し専用メモリ(compact disc read−only memory、CD−ROM)、光学記憶デバイス、磁気記憶デバイス、または上記の任意の適切な組み合わせを含むであろう。本明細書の文脈においては、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスによって、またはそれらと関連して使用するためのプログラムを含むか、または記憶することができる任意の有形媒体とすることができる。
コンピュータ可読信号媒体は、その中にコンピュータ可読プログラム・コードを具現化されている、たとえばベースバンド内かまたは搬送波の一部としての伝播データ信号を含むことができる。このような伝播信号は、電磁、光学、またはそれらの任意の適切な組み合わせを含むが、これらには限定されない様々な形態のいずれかを取ることができる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行システム、装置、またはデバイスによって、またはそれらと関連して使用するためのプログラムを通信、伝播、または伝送することができる任意のコンピュータ可読媒体とすることができる。
コンピュータ可読媒体上に具現化されるプログラム・コードは、無線、有線、光ファイバ・ケーブル、RFなど、または上記の任意の適切な組み合わせを含むが、これらには限定されない任意の適切な媒体を使用して伝送することができる。
本発明の諸態様のための動作を実行するためのコンピュータ・プログラム・コードは、Java(R)、Smalltalk(R)、C++などのようなオブジェクト指向プログラミング言語、および、「C」プログラミング言語または同様のプログラミング言語のような従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで書くことができる。プログラム・コードは、その全体をユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上でかつ部分的にリモート・コンピュータ上で、またはその全体をリモート・コンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(local area network、LAN)もしくは広域ネットワーク(wide area network、WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続することができるか、または、接続は外部コンピュータに対して(たとえば、インターネット・サービス・プロバイダを使用してインターネットを通じて)為されてもよい。
本発明の実施形態による、方法、装置(システム)およびコンピュータ・プログラム製品のフローチャートの図、もしくはブロック図またはその両方を参照して、本発明の諸態様を下記に記載する。フローチャートの図もしくはブロック図またはその両方の各ブロック、および、フローチャートの図もしくはブロック図またはその両方の中の複数のブロックの組み合わせは、コンピュータ・プログラム命令によって実施することができることは理解されよう。これらのコンピュータ・プログラム命令は、汎用コンピュータ、専用コンピュータ、またはマシンを生成する他のプログラマブル・データ処理装置のプロセッサに提供されることができ、それによって、コンピュータまたは他のプラグラマブル・データ処理装置のプロセッサを通じて実行する命令は、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックにおいて指定される機能/操作を実施するための手段を作り出す。
これらのコンピュータ・プログラム命令は、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに特定の様式で機能するように指示することができるコンピュータ可読媒体内に格納することもでき、当該様式によって、コンピュータ可読媒体内に格納される命令が、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックにおいて指定される機能/操作を実施する命令を含む製造品を作り出す。
コンピュータ・プログラム命令は、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされて、一連の動作ステップが、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行されるようにして、コンピュータで実施されるプロセスを生成することもでき、それによって、コンピュータまたは他のプログラマブル装置上で実行する命令が、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックにおいて指定される機能/操作を実施するためのプロセスを提供する。
記載されている操作を実施するコードはさらに、ハードウェア・ロジックまたは回路(例えば、集積回路チップ、プログラマブル・ゲート・アレイ(Programmable Gate Array、PGA)、特定用途向け集積回路(Application Specific Integrated Circuit、ASIC)などにおいて実施されることができる。
図15は、特定の実施形態に従って使用することができるシステム・アーキテクチャ1200を示す。コンピューティング・デバイス100、ソース・システム160もしくはターゲット・システム170またはそれらの組み合わせが、システム・アーキテクチャ1200を実装することができる。システム・アーキテクチャ1200はプログラム・コードの格納もしくは実行またはその両方に適しており、システム・バス1220を通じてメモリ要素1204に直接的にまたは間接的に結合される少なくとも1つのプロセッサ1202を含む。メモリ要素1204は、プログラム・コードの実際の実行の間に利用されるローカル・メモリ、大容量記憶装置、および、実行中に大容量記憶装置からコードを取り出さなければならない回数を低減するために少なくともいくらかのプログラム・コードの一時記憶を提供するキャッシュ・メモリを含むことができる。メモリ要素1204は、オペレーティング・システム1205と、1つまたは複数のコンピュータ・プログラム1206とを含む。
入出力(Input/Output、I/O)デバイス1212、1214(キーボード、ディスプレイ、ポインティング・デバイスなどを含むが、これらには限定されない)を、直接に、または、介在するI/Oコントローラ1210を通じてのいずれかでシステムに結合することができる。
ネットワーク・アダプタ1208も、データ処理システムが、介在するプライベート・ネットワークまたはパブリック・ネットワークを通じて他のデータ処理システムまたは遠隔のプリンタもしくは記憶デバイスに結合されることを可能にするように、システムに結合することができる。モデム、ケーブル・モデム、およびEthernet(R)カードは、現在利用可能なタイプのネットワーク・アダプタ1208のほんの一部に過ぎない。
システム・アーキテクチャ1200は、ストレージ1216(例えば、磁気ディスク・ドライブ、光ディスク・ドライブ、またはテープ・ドライブのような不揮発性記憶領域など)に結合することができる。ストレージ1216は、内部記憶デバイスまたは付属のもしくはネットワーク・アクセス可能なストレージを含むことができる。ストレージ1216内のコンピュータ・プログラム1206は、メモリ要素1204内に読み出されて当該技術分野において既知の様式でプロセッサ1202によって実行されることができる。
システム・アーキテクチャ1200は、例示されているものよりも少数の構成要素、本明細書には例示されていない追加の構成要素、または例示されている構成要素および追加の構成要素の何らかの組み合わせを含んでもよい。システム・アーキテクチャ1200は、メインフレーム、サーバ、パーソナル・コンピュータ、ワークステーション、ラップトップ、ハンドヘルド・コンピュータ、電話技術デバイス、ネットワーク・アプライアンス、仮想化デバイス、ストレージ・コントローラなどのような、当該技術分野において既知の任意のコンピューティング・デバイスを含んでもよい。
図面内のフローチャートおよびブロック図は本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実施態様のアーキテクチャ、機能、および動作を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、指定される論理機能(複数の場合もあり)を実施するための1つまたは複数の実行可能命令を含むモジュール、セグメント、またはコードの一部を表すことができる。いくつかの代替的な実施態様では、ブロック内に記載されている機能は、図面内に記載されている順序から外れて行われる場合があることにも留意すべきである。たとえば、連続して示されている2つのブロックは実際には実質的に同時に実行される場合があり、またはこれらのブロックは、関与する機能に応じて、時として逆の順序で実行される場合がある。ブロック図もしくはフローチャートの図またはその両方の各ブロック、およびブロック図もしくはフローチャートの図またはその両方のブロックの組み合わせは、指定される機能もしくは操作を実行する専用ハードウェア・ベースのシステム、または専用ハードウェアとコンピュータ命令との組み合わせによって実施することができることにも留意されよう。
本発明の実施形態の上記の記載は、例示および説明の目的で提示されてきた。排他的であることも、実施形態を開示された正確な形態に限定することも意図されてはいない。上記の教示を考慮して多くの改変および変更が可能である。この詳細な説明ではなく、本明細書に添付される特許請求の範囲の範囲によって、実施形態の範囲が限定されることが意図される。上記の明細書、例およびデータは実施形態の構成の製造および使用の完全な記載を提供する。本実施形態の精神および範囲から逸脱することなく多くの実施形態をなすことができるため、本実施形態は、以下に添付される特許請求の範囲、または後に提出される任意の特許請求の範囲、およびその均等物のうちに存する。

Claims (18)

  1. 方法であって、
    ローカル・トランザクションによってソース・オブジェクトが変更されることに応答して、
    ログ記録を生成するステップであって、前記ログ記録のそれぞれは、シーケンス識別子、ソース・システム・エンティティ修正タイムスタンプ、ターゲット・キー、ターゲット・パーティション識別子、およびソース特性の値を含み、前記ソース特性はターゲット・キー指示子を使用して識別される、生成するステップと、
    各ログ記録のフェーズ値に基づいて処理するための前記ログ記録を選択するステップであって、前記フェーズ値は、提出済み、送信中、およびソース・システム・エンティティ状態変更完了のうちの1つである、選択するステップと、
    前記ターゲット・パーティション識別子によって識別されるログ記録の1の部分または複数の部分を、複数の処理インスタンスのそれぞれに割り当てるステップと、
    前記複数の処理インスタンスのそれぞれの制御下で、
    前記処理インスタンスに割り当てられた前記ログ記録の1の部分または複数の部分を送信するか否かを判断するステップと、
    前記ログ記録の1の部分または複数の部分を送信すべきであるとの判断に応答して、前記ログ記録を送信するステップとを含む、方法。
  2. 前記ターゲット・キー指示子を使用して前記ソース特性の中のキー・ソース特性を識別するステップであって、前記ターゲット・キー指示子は、前記ソース特性のうちのいずれがターゲット・キーを生成するのに使用されるキー・ソース特性であるかを指示する、識別するステップと、
    前記キー・ソース特性を使用して前記ターゲット・キーを生成するステップと、
    前記ターゲット・キーを使用して前記ターゲット・パーティション識別子を生成するステップと
    をさらに含む、請求項1に記載の方法。
  3. 前記ソース特性の値をバッファ内に格納するステップと、
    ソース・メソッドがそのために存在する前記ソース特性のそれぞれに対して、前記ソース・メソッドを実行するとともに、前記ソース特性の値を、前記実行されたソース・メソッドによって返される結果値に置き換えるステップと
    をさらに含む、請求項1または2に記載の方法。
  4. 前記処理インスタンスのそれぞれは、待ち行列コンシューマ・スレッド、複数の待ち行列ワーカ・スレッド、およびディスパッチ・マップを含み、前記複数の待ち行列ワーカ・スレッドは前記ディスパッチ・マップ内の前記ログ記録を順番に、および並行して消費する、請求項1〜3のいずれか一項に記載の方法。
  5. 提出済みの前記フェーズ値を有するログ記録をプルするステップと、
    前記プルされたログ記録を、前記ターゲット・キーに基づいてディスパッチ・テーブルの複数のバケットのうちの1つの中にプッシュするステップと、
    前記プルされたログ記録のそれぞれの前記フェーズ値を、送信中の前記フェーズ値に更新するステップと
    をさらに含む、請求項1〜4のいずれか一項に記載の方法。
  6. 送信中またはソース・システム・エンティティ状態変更完了の前記フェーズ値を有するログ記録をプルするステップと、
    前記プルされたログ記録を、前記ターゲット・キーに基づいてディスパッチ・テーブルの複数のバケットのうちの1つの中にプッシュするステップと
    によって、回復処理を実行するステップ
    をさらに含む、請求項1〜5のいずれか一項に記載の方法。
  7. 前記ログ記録を送信するか否かを判断するステップは、
    前記ログ記録の前記ターゲット・キーがターゲット・システム・エンティティ・テーブル内にないという判断に応答して、前記ログ記録をターゲット・システムに送信するステップと、
    前記ログ記録の前記ターゲット・キーが前記ターゲット・システム・エンティティ・テーブル内にあるという判断、および、前記ターゲット・システム・エンティティ・テーブル内のソース・システム・エンティティ修正タイムスタンプが、前記ログ記録内のソース・システム・エンティティ修正タイムスタンプよりも小さいという判断に応答して、前記ログ記録を前記ターゲット・システムに送信するステップと、
    前記ターゲット・システム・エンティティ・テーブル内の前記ソース・システム・エンティティ修正タイムスタンプが、前記ログ記録内の前記ソース・システム・エンティティ修正タイムスタンプ以上であるという判断、および、前記ソース特性に基づいて前記ログ記録を送信すべきであることを指示する規則が存在するという判断に応答して、前記ログ記録を前記ターゲット・システムに送信するステップと
    をさらに含む、請求項1〜6のいずれか一項に記載の方法。
  8. 前記ログ記録を送信するステップは、
    ターゲット・メソッドがそのために存在する前記ソース特性のそれぞれに対して、前記ターゲット・メソッドを実行するとともに、前記ソース特性の値を、前記実行されたターゲット・メソッドによって返される結果値に置き換えるステップであって、前記ソース特性は変換される、実行するとともに置き換えるステップと、
    複数のターゲット型のそれぞれについて、実行されるべきコード・ブロックを識別するステップと、
    前記変換されたソース特性を有する前記ログ記録をターゲット・システムに配信するために、識別された各コード・ブロックを実行するステップと
    をさらに含む、請求項1〜7のいずれか一項に記載の方法。
  9. システムであって、
    動作を実行するための回路を備え、前記回路は、
    ローカル・トランザクションによってソース・オブジェクトが変更されることに応答して、
    ログ記録を生成するための手段であって、前記ログ記録のそれぞれは、シーケンス識別子、ソース・システム・エンティティ修正タイムスタンプ、ターゲット・キー、ターゲット・パーティション識別子、およびソース特性の値を含み、前記ソース特性はターゲット・キー指示子を使用して識別される、生成するための手段と、
    各ログ記録のフェーズ値に基づいて処理するための前記ログ記録を選択するための手段であって、前記フェーズ値は、提出済み、送信中、およびソース・システム・エンティティ状態変更完了のうちの1つである、選択するための手段と、
    前記ターゲット・パーティション識別子によって識別されるログ記録の1の部分または複数の部分を、複数の処理インスタンスのそれぞれに割り当てるための手段と、
    前記複数の処理インスタンスのそれぞれの制御下で、
    前記処理インスタンスに割り当てられた前記ログ記録の1の部分または複数の部分を送信するか否かを判断するための手段と、
    前記ログ記録の1の部分または複数の部分を送信すべきであるとの判断に応答して、前記ログ記録を送信するための手段と
    を備える、システム。
  10. 前記回路は、
    前記ターゲット・キー指示子を使用して前記ソース特性の中のキー・ソース特性を識別するための手段であって、前記ターゲット・キー指示子は、前記ソース特性のうちのいずれがターゲット・キーを生成するのに使用されるキー・ソース特性であるかを指示する、識別するための手段と、
    前記キー・ソース特性を使用して前記ターゲット・キーを生成するための手段と、
    前記ターゲット・キーを使用して前記ターゲット・パーティション識別子を生成するための手段と
    をさらに備える、請求項9に記載のシステム。
  11. 前記回路は、
    前記ソース特性の値をバッファ内に格納するための手段と、
    ソース・メソッドがそのために存在する前記ソース特性のそれぞれに対して、前記ソース・メソッドを実行するとともに、前記ソース特性の値を、前記実行されたソース・メソッドによって返される結果値に置き換えるための手段と
    をさらに備える、請求項9または請求項10に記載のシステム。
  12. 前記処理インスタンスのそれぞれは、待ち行列コンシューマ・スレッド、複数の待ち行列ワーカ・スレッド、およびディスパッチ・マップを含み、前記複数の待ち行列ワーカ・スレッドは前記ディスパッチ・マップ内の前記ログ記録を順番に、および並行して消費する、請求項9〜11のいずれか一項に記載のシステム。
  13. 前記回路は、
    提出済みの前記フェーズ値を有するログ記録をプルするための手段と、
    前記プルされたログ記録を、前記ターゲット・キーに基づいてディスパッチ・テーブルの複数のバケットのうちの1つの中にプッシュするための手段と、
    前記プルされたログ記録のそれぞれの前記フェーズ値を、送信中の前記フェーズ値に更新するための手段と
    をさらに備える、請求項9〜12のいずれか一項に記載のシステム。
  14. 前記回路は、
    回復処理を実行するための手段であって、
    送信中またはソース・システム・エンティティ状態変更完了の前記フェーズ値を有するログ記録をプルするための手段と、
    前記プルされたログ記録を、前記ターゲット・キーに基づいてディスパッチ・テーブルの複数のバケットのうちの1つの中にプッシュするための手段と
    を備える、回復処理を実行するための手段
    をさらに備える、請求項9〜13のいずれか一項に記載のシステム。
  15. 前記ログ記録を送信するか否かを判断するための前記手段は、
    各行グループについて作成される前記ログ記録のために、以下の手段;
    前記ログ記録の前記ターゲット・キーがターゲット・システム・エンティティ・テーブル内にないという判断に応答して、前記ログ記録をターゲット・システムに送信するための手段と、
    前記ログ記録の前記ターゲット・キーが前記ターゲット・システム・エンティティ・テーブル内にあるという判断、および、前記ターゲット・システム・エンティティ・テーブル内のソース・システム・エンティティ修正タイムスタンプが、前記ログ記録内のソース・システム・エンティティ修正タイムスタンプよりも小さいという判断に応答して、前記ログ記録を前記ターゲット・システムに送信するための手段と、
    前記ターゲット・システム・エンティティ・テーブル内の前記ソース・システム・エンティティ修正タイムスタンプが、前記ログ記録内の前記ソース・システム・エンティティ修正タイムスタンプ以上であるという判断、および、前記ソース特性に基づいて前記ログ記録を送信すべきであることを指示する規則が存在するという判断に応答して、前記ログ記録を前記ターゲット・システムに送信するための手段と
    によって前記ログ記録を前記ターゲット・システムに送信するか否かを判断するための手段、
    をさらに備える、請求項9〜14のいずれか一項に記載のシステム。
  16. 前記ログ記録を送信するための前記手段は、
    ターゲット・メソッドがそのために存在する前記ソース特性のそれぞれに対して、前記ターゲット・メソッドを実行するとともに、前記ソース特性の値を、前記実行されたターゲット・メソッドによって返される結果値に置き換えるための手段であって、それによって、前記ソース特性を変換する、置き換えるための手段と、
    複数のターゲット型のそれぞれについて、実行されるべきコード・ブロックを識別する手段と、
    前記変換されたソース特性を有する前記ログ記録をターゲット・システムに配信するために、識別された各コード・ブロックを実行するための手段と
    をさらに備える、請求項9〜15のいずれか一項に記載のシステム。
  17. 請求項1〜8の何れか1つに記載の方法の各ステップをコンピュータに実行させる、コンピュータ・プログラム。
  18. 請求項17記載の前記コンピュータ・プログラムをコンピュータ可読記録媒体に記録した、記録媒体。
JP2012541446A 2009-12-04 2010-11-29 情報システムにおける変換データの高スループット・高信頼性の複製 Active JP5744898B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/631,641 2009-12-04
US12/631,641 US8244686B2 (en) 2009-12-04 2009-12-04 High throughput, reliable replication of transformed data in information systems
PCT/EP2010/068438 WO2011067214A2 (en) 2009-12-04 2010-11-29 High throughput, reliable replication of transformed data in information systems

Publications (2)

Publication Number Publication Date
JP2013513147A JP2013513147A (ja) 2013-04-18
JP5744898B2 true JP5744898B2 (ja) 2015-07-08

Family

ID=44083000

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012541446A Active JP5744898B2 (ja) 2009-12-04 2010-11-29 情報システムにおける変換データの高スループット・高信頼性の複製

Country Status (7)

Country Link
US (2) US8244686B2 (ja)
JP (1) JP5744898B2 (ja)
CN (1) CN102640151B (ja)
DE (1) DE112010004652B4 (ja)
GB (1) GB2489357B (ja)
TW (1) TWI479341B (ja)
WO (1) WO2011067214A2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8244686B2 (en) * 2009-12-04 2012-08-14 International Business Machines Corporation High throughput, reliable replication of transformed data in information systems
JP5460486B2 (ja) * 2010-06-23 2014-04-02 インターナショナル・ビジネス・マシーンズ・コーポレーション データをソートする装置及び方法
AU2012202173B2 (en) * 2011-04-18 2013-09-05 Castle Bookkeeping Wizard Pty Ltd System and method for processing a transaction document including one or more financial transaction entries
US9423983B2 (en) * 2012-01-19 2016-08-23 Syncsort Incorporated Intelligent storage controller
US8805777B2 (en) 2012-04-13 2014-08-12 International Business Machines Corporation Data record collapse and split functionality
CN102693312B (zh) * 2012-05-28 2014-05-28 清华大学 一种键值库数据存储中柔性事务管理方法
US10706009B2 (en) * 2013-03-14 2020-07-07 Oracle International Corporation Techniques to parallelize CPU and IO work of log writes
US10268727B2 (en) 2013-03-29 2019-04-23 Hewlett Packard Enterprise Development Lp Batching tuples
US9652491B2 (en) 2013-04-15 2017-05-16 International Business Machines Corporation Out-of-order execution of strictly-ordered transactional workloads
US9465649B2 (en) 2013-04-15 2016-10-11 International Business Machines Corporation Executing distributed globally-ordered transactional workloads in replicated state machines
CN104346373B (zh) * 2013-07-31 2017-12-15 华为技术有限公司 分区日志队列同步管理方法及设备
US10235382B2 (en) 2013-11-12 2019-03-19 Red Hat, Inc. Transferring objects between different storage devices based on timestamps
US10296371B2 (en) 2014-03-17 2019-05-21 International Business Machines Corporation Passive two-phase commit system for high-performance distributed transaction execution
US10157108B2 (en) 2014-05-27 2018-12-18 International Business Machines Corporation Multi-way, zero-copy, passive transaction log collection in distributed transaction systems
EP3835969A1 (en) * 2014-06-26 2021-06-16 Amazon Technologies, Inc. Multi-database log with multi-item transaction support
GB2533086A (en) 2014-12-08 2016-06-15 Ibm Controlling a multi-database system
US10592494B2 (en) * 2015-04-14 2020-03-17 Microsoft Technology Licensing, Llc Collection record for overlapping data stream collections
US9959137B2 (en) 2015-04-14 2018-05-01 Microsoft Technology Licensing, Llc Transaction redo using skip element for object
US10102251B2 (en) 2015-04-14 2018-10-16 Microsoft Technology Licensing, Llc Lockless open collection data structure
US10133768B2 (en) 2015-04-14 2018-11-20 Microsoft Technology Licensing, Llc Latest external dependee entity in transaction record
US10031814B2 (en) 2015-04-14 2018-07-24 Microsoft Technology Licensing, Llc Collection record location as log tail beginning
US11294864B2 (en) * 2015-05-19 2022-04-05 Vmware, Inc. Distributed transactions with redo-only write-ahead log
US10585876B2 (en) 2016-04-07 2020-03-10 International Business Machines Corporation Providing snapshot isolation to a database management system
US10747626B2 (en) 2016-10-16 2020-08-18 International Business Machines Corporation Method and technique of achieving extraordinarily high insert throughput
US11157831B2 (en) 2017-10-02 2021-10-26 International Business Machines Corporation Empathy fostering based on behavioral pattern mismatch
US11170000B2 (en) * 2017-10-20 2021-11-09 Intuit Inc. Parallel map and reduce on hash chains
US20210240516A1 (en) * 2020-02-05 2021-08-05 International Business Machines Corporation Distributed transaction management
US20210342317A1 (en) 2020-04-29 2021-11-04 Oracle International Corporation Techniques for efficient migration of key-value data
CN113553373B (zh) * 2021-06-11 2023-11-21 北京旷视科技有限公司 数据同步方法及装置、存储介质及电子设备

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5280611A (en) * 1991-11-08 1994-01-18 International Business Machines Corporation Method for managing database recovery from failure of a shared store in a system including a plurality of transaction-based systems of the write-ahead logging type
US6018723A (en) * 1997-05-27 2000-01-25 Visa International Service Association Method and apparatus for pattern generation
CA2281331A1 (en) * 1999-09-03 2001-03-03 Cognos Incorporated Database management system
EP1317715A1 (en) * 2000-08-04 2003-06-11 Infoglide Corporation System and method for comparing heterogeneous data sources
US6795868B1 (en) * 2000-08-31 2004-09-21 Data Junction Corp. System and method for event-driven data transformation
JP2002099451A (ja) * 2000-09-26 2002-04-05 Kawaju Techno Service Corp データ連携システム及びデータ連携方法
EP1407386A2 (en) * 2001-06-21 2004-04-14 ISC, Inc. Database indexing method and apparatus
US7398263B2 (en) * 2002-02-26 2008-07-08 International Business Machines Corporation Sequenced modification of multiple entities based on an abstract data representation
US20030204516A1 (en) * 2002-04-24 2003-10-30 Jorg Klosterhalfen Determination of relevant figures for database recovery processes
US7647354B2 (en) * 2002-05-24 2010-01-12 Oracle International Corporation High-performance change capture for data warehousing
WO2004025475A1 (ja) * 2002-09-10 2004-03-25 Annex Systems Incorporated データベースの再編成システム、並びに、データベース
US6976022B2 (en) * 2002-09-16 2005-12-13 Oracle International Corporation Method and mechanism for batch processing transaction logging records
US7222343B2 (en) * 2003-01-16 2007-05-22 International Business Machines Corporation Dynamic allocation of computer resources based on thread type
US7801851B2 (en) * 2003-06-30 2010-09-21 Gravic, Inc. Method for ensuring referential integrity in multi-threaded replication engines
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
GB0414291D0 (en) * 2004-06-25 2004-07-28 Ibm Methods, apparatus and computer programs for data replication
US8812433B2 (en) * 2005-02-07 2014-08-19 Mimosa Systems, Inc. Dynamic bulk-to-brick transformation of data
US7653650B2 (en) * 2005-12-13 2010-01-26 International Business Machines Corporation Apparatus, system, and method for synchronizing change histories in enterprise applications
WO2007083371A1 (ja) 2006-01-18 2007-07-26 Fujitsu Limited データ統合装置、方法、プログラムを記録した記録媒体
US9361137B2 (en) * 2006-03-10 2016-06-07 International Business Machines Corporation Managing application parameters based on parameter types
US9430552B2 (en) * 2007-03-16 2016-08-30 Microsoft Technology Licensing, Llc View maintenance rules for an update pipeline of an object-relational mapping (ORM) platform
US7730044B2 (en) * 2007-04-02 2010-06-01 Bmc Software, Inc. Log data store and assembler for large objects in database system
US8190646B2 (en) * 2008-01-02 2012-05-29 International Business Machines Corporation Associative object model for composite entity information
JP5136200B2 (ja) * 2008-05-16 2013-02-06 富士通株式会社 ログ記録システム
US8301593B2 (en) * 2008-06-12 2012-10-30 Gravic, Inc. Mixed mode synchronous and asynchronous replication system
US8244686B2 (en) * 2009-12-04 2012-08-14 International Business Machines Corporation High throughput, reliable replication of transformed data in information systems

Also Published As

Publication number Publication date
TW201140350A (en) 2011-11-16
JP2013513147A (ja) 2013-04-18
CN102640151B (zh) 2014-04-30
DE112010004652B4 (de) 2019-09-05
GB201211781D0 (en) 2012-08-15
US9002802B2 (en) 2015-04-07
TWI479341B (zh) 2015-04-01
US8244686B2 (en) 2012-08-14
WO2011067214A2 (en) 2011-06-09
CN102640151A (zh) 2012-08-15
GB2489357A (en) 2012-09-26
US20120278288A1 (en) 2012-11-01
US20110137864A1 (en) 2011-06-09
DE112010004652T5 (de) 2012-10-31
WO2011067214A3 (en) 2012-02-23
GB2489357B (en) 2016-02-17

Similar Documents

Publication Publication Date Title
JP5744898B2 (ja) 情報システムにおける変換データの高スループット・高信頼性の複製
US10891305B2 (en) Synchronization of data between systems
CN107577427B (zh) 用于区块链系统的数据迁移方法、设备和存储介质
CN110334075B (zh) 基于消息中间件的数据迁移方法及相关设备
US9092230B2 (en) Configuration of componentized software applications
EP3049968B1 (en) Master schema shared across multiple tenants with dynamic update
US8799230B2 (en) Method and system for centralized issue tracking
WO2011108695A1 (ja) 並列データ処理システム、並列データ処理方法及びプログラム
US8489547B2 (en) System and method for transforming configuration data items in a configuration management database
US20200364185A1 (en) Method for data replication in a data analysis system
CN105956166A (zh) 数据库读写方法和读写装置
US10474698B2 (en) System, method, and program for performing aggregation process for each piece of received data
US20160048703A1 (en) Securing integrity and consistency of a cloud storage service with efficient client operations
WO2017032170A1 (zh) 镜像文件的导入方法及装置
US10089385B2 (en) Method and apparatus for asynchroinzed de-serialization of E-R model in a huge data trunk
CN107766354A (zh) 一种用于保证数据正确性的方法与设备
JP2009110061A (ja) 版数管理システムおよび版数管理方法
US20190087238A1 (en) Incremental workflow execution
US10956512B2 (en) Document link migration
JP2009122949A (ja) Xmlデータ構造の復元システム、xmlデータ構造の復元方法、およびxmlデータ構造の復元プログラム
US20120330983A1 (en) Data processing system
TWI484355B (zh) 作業系統/電子裝置與檔案之存取方法
JP2011186853A (ja) データ処理装置及びシステム及び方法及びプログラム
WO2013046360A1 (ja) オブジェクト管理装置、およびオブジェクト管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130905

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140408

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140924

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20141104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20141105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141219

TRDD Decision of grant or rejection written
RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20150407

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150407

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150430

R150 Certificate of patent or registration of utility model

Ref document number: 5744898

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150