JP4880668B2 - 冗長データストアにおける非同期データを識別するための、およびそれを再同期させるための装置および方法 - Google Patents
冗長データストアにおける非同期データを識別するための、およびそれを再同期させるための装置および方法 Download PDFInfo
- Publication number
- JP4880668B2 JP4880668B2 JP2008501889A JP2008501889A JP4880668B2 JP 4880668 B2 JP4880668 B2 JP 4880668B2 JP 2008501889 A JP2008501889 A JP 2008501889A JP 2008501889 A JP2008501889 A JP 2008501889A JP 4880668 B2 JP4880668 B2 JP 4880668B2
- Authority
- JP
- Japan
- Prior art keywords
- database
- row
- data
- identified
- hash
- 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
Links
- 238000000034 method Methods 0.000 title claims description 106
- 230000010076 replication Effects 0.000 claims description 48
- 230000007246 mechanism Effects 0.000 claims description 47
- 230000001360 synchronised effect Effects 0.000 claims description 31
- 239000003550 marker Substances 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 23
- 230000009471 action Effects 0.000 claims description 19
- 230000008859 change Effects 0.000 claims description 19
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 230000006399 behavior Effects 0.000 claims description 2
- 238000004891 communication Methods 0.000 claims description 2
- 230000004044 response Effects 0.000 claims 3
- 230000003190 augmentative effect Effects 0.000 claims 1
- 230000003362 replicative effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 41
- 230000000694 effects Effects 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 5
- 238000012790 confirmation Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000007689 inspection Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000002950 deficient Effects 0.000 description 2
- 238000007429 general method Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 238000013474 audit trail Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2097—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
- G06F11/1662—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Description
本発明は、一般に、電子データストレージに関する。特に、本発明は、同一のデータを維持することになっている2つの異なるコンピュータネットワーク位置における非同期データを識別するための技術に関する。さらに、本発明は、識別された非同期データを再同期させることに関する。
多くの企業が、2以上の位置に同じ電子データを格納する。その理由には、停電によるコンピュータの停止、故障、または災害の場合におけるこの情報のセキュリティおよび可用性と同様に、多数のエンティティおよびアプリケーションが独立して同じ情報を管理する能力を向上させることが含まれる。結果として、1つのデータソースにおいてデータが変更された場合には、それを、データ複製を始めとする様々な可能な機構を介して、1つまたは複数の2次データソースにコピーする必要があることが多い。データ複製に関連する多くの難問がある。たとえば、複製機構が正確であることを独立して検証できることが重要である。すなわち、ある位置から別の位置にコピーされるべきデータが実際にコピーされたことを確認することが重要である。データソースが同期外れ(out of synchronization)(すなわち非同期)である場合には、それらをできる限り効率的に再同期させることが重要である。これらの比較および再同期アクティビティは、次の制約がある状況で実行する必要がある。すなわち、データソースにおける変更の高アクティビティ/レート、静的な比較を実行するためにアプリケーションまたはデータベースをターンオフする機会がない動的環境、およびデータソース間の限られた帯域幅を伴う地理的分離である。
本発明には、データベースを比較するための実行可能命令を備えたコンピュータ可読媒体が含まれる。実行可能命令は、最初に条件同期外れ状態を確立するために、第1のデータベースのセグメントが、第2のデータベースの対応するセグメントと条件同期外れである場合を識別するように構成されている。実行可能命令は、この最初の時の後、第1のデータベースおよび第2のデータベースに変更がなされる待ち時間(latency period)を割り当てる。実行可能命令はまた、待ち時間の後に、第1のデータベースのセグメントが、第2のデータベースの対応するセグメントと同期しているかどうかを決定する。
図1は、本発明のある実施形態に従って構成されたコンピュータネットワーク100を示す。ネットワーク100には、第1のコンピュータ102、第2のコンピュータ104および第3のコンピュータ106が含まれる。コンピュータ102、104および106は、伝送媒体108によって連結されているが、この伝送媒体108は、任意の有線または無線ネットワークであってもよい。
− 行の特定のサブセット(ユニークキーによって定義されるような)が、TABLE1において「ソース」と指定され、TABLE2において「ターゲット」と指定される一方で、行の別のサブセットが、TABLE2において「ソース」として指定され、TABLE1において「ターゲット」と指定される
− どちらの表も、任意の行を修正することができ、次に、その行は、他のシステムにコピーされる
などである。
− 一方の表における全ての行が、ユニークキーによって識別されて(対応する行として)、もう一方の表で見つけることができる
− 各行内の全ての列が、もう一方の表における対応する行における全ての列と一致する
1.PRODUCT1における行1および2は、PRODUCT2における行1および3に一致する(ユニークキー「製品番号」はそれぞれにおいて一致し、他の列も同様に一致する)
2.PRODUCT1の行4のための対応するエントリが、PRODUCT2内にはなく、その結果、行は同期外れである(製品番号400は、PRODUCT2では見つけることができない)
3.PRODUCT2の行2のための対応するエントリが、PRODUCT1内にはない(製品番号150は見つけられない)−その行は同期外れである
4.製品番号300は、両方の表で見つけられる(PRODUCT1行3、PRODUCT2行4)−しかし車輪数が異なる−その行は同期外れである
− 同期外れ行が、「同期外れ可能性キュー(maybe out of sync queue)」(MOOSQ)に順に蓄積される
○ 比較される行のキーおよびハッシュが格納される
○ 比較がいつ実行されたかのタイムスタンプが格納される
○ MOOSQは、行が同期外れだと分かったときに、行比較データを格納するためのメモリキュー、ファイルまたは等価な機構とすることができる
− 最初に、STおよびTTの両方から行が検索される
− 次に、STからもTTからも利用可能な行がなくなるまで、比較は、以下のループを実行する
○ 現在行は、row(ST)またはrow(TT)と表される
○ 次行(現在の次)は、next row(ST)またはnext row(TT)である
○ 現在行のユニークキーは、key(ST)またはkey(TT)である
○ 現在行のハッシュは、hash(ST)またはhash(TT)である
○ key(ST)がkey(TT)より小さいか、またはTTからの利用可能な行がこれ以上ない場合には
■ 「欠落挿入(missing insert)」動作としてrow(ST)をMOOSQへキューイングする(以下を参照)−これは、表を同期させるために、row(ST)がTTに挿入されなければならないことを意味する
■ row(ST)はnext row(ST)になる
○ key(ST)がkey(TT)より大きいか、またはSTからの利用可能な行がこれ以上ない場合には
■ 「欠落削除(missing delete)」動作としてrow(TT)をMOOSQへキューイングする−表を同期させるために、row(TT)が削除されなければならない
■ row(TT)はnext row(TT)になる
○ key(ST)がkey(TT)に等しい場合には
■ hash(ST)がhash(TT)と異なる場合には、
● 「欠落更新(missing update)」動作としてrow(ST)をMOOSQへキューイングする−表を同期させるために、row(ST)がrow(TT)に取って替わらなければならない
■ hash(ST)がhash(TT)に等しい場合には
● 何も行なわない、行は同期している
■ 両方のケースで、row(ST)はnext row(ST)になり、row(TT)はnext row(TT)になる
− 重複列のケース
− 重複行のケース
− マップされたデータのケース
− 異種データストア
を始めとする前述の重複表シナリオに適用することができる。
− BASEBALL_TEAMS表では、地域が「西」に等しい行だけを選択する
− WEST_TEAMS表では、チームタイプが野球に等しい行だけを選択する
− 数
− 日付
− 後続スペースを有する文字列
− 先行ゼロを切り捨てる
− 小数点の右まで末尾のゼロを切り捨てる
− 4桁の年、続く2桁の月、続く2桁の日にち(YYYYMMDD)
− 比較1:姓が「A」と「M」との間にある行をSTおよびTTの両方から選択する
− 比較2:姓が「N」と「Z」との間にある行をSTおよびTTの両方から選択する
「分割比較」が同時に実行される場合には、行範囲「A」〜「M」および「N」〜「Z」の検索は、分割比較によって異なるディスクドライブがアクセスされるので、並行して行なうことができる。分割比較を実行するためには、パーティションは同一である必要がないことに留意されたい。
− ユーザによって検討されるレポート
− 行ごとに表を再同期させるプログラムなどの別の機構によって処理できる、同期外れ行および同期外れの可能性がある行のリストを含むキューまたはファイル(同期外れ確認キュー、すなわちCOOSQ)
○ また、COOSQを別のCOOSプロセスへの入力として用いて、どの行が、別の期間後かまたは再同期化ステップが適用された後で、同期外れのままであるかを確かめることができる。
− 「永続的な同期外れ」−行は、行ハッシュ比較が行なわれて以来更新されず、したがって、同期外れであると考えられ得ることを意味する
− 「インフライト」−行ハッシュステップで同期外れだった行が、その後更新されたこと、したがって、複製または他の機構により、この行に対して作業が実行されたが、しかし、それらの行が同期したことは確認されなかったことを意味する
− 「同期」−ソース行が、複製機構を介してターゲットに適用されたことを意味する
− 行を同期に維持するための別のアクティブな機構があること(たとえばデータベース複製)−一般的には「複製機構」として知られている
− 複製機構が、(「複製待ち時間」として周知の)ある時間窓内で、一方の表における変更の適用例をもう一方の表に適用する高い確率があること
○ この待ち時間は、複製機構からの待ち時間統計を検討することによってプログラムで、または機構がない状態ではユーザが手動で、決定することができる
− 処理すべきMOOSQレコードが残されている間
○ MOOSQから次のレコードを得る
○ 同期外れ動作タイプ(optype)が
■ 「欠落削除」の場合
● key(TT)を用いて、TTから完全なrow(TT)を選択する
● row(TT)が見つからない場合には、状態は「同期」になり、そうでなければ、row(TT)は、「永続的な同期外れ」である
■ 「欠落挿入」の場合
● key(ST)を用いて、TTから完全なrow(TT)を選択する
● row(TT)が見つからない場合には、状態は「永続的な同期外れ」になり
● row(TT)が見つかった場合には、hash(TT)を計算する
○ hash(TT)がhash(ST)と同じである場合には、状態は「同期」になる
○ hash(TT)がhash(ST)と異なる場合には、状態は「インフライト」になる
■ 「欠落更新」の場合
● hash(TT)を計算する
● hash(ST)がhash(TT)に等しい場合には、状態は「同期」になる
● hash(ST)がhash(TT)に等しくない場合には
○ 古いhash(TT)を新しいhash(TT)と比較する
■ 同じ場合には、状態は「永続的な同期外れ」になる
■ 異なる場合には、状態は「インフライト」になる(ハッシュが変化した場合には、それは、ターゲット行値が変化したこと、およびデータベース複製機構(もしあれば)が、行を更新し、作動しているらしいが、データが同じである点は確認されていないことを意味する)
○ 永続的な同期外れである行、そしてオプションとしてインフライトである行に対しては
■ COOSは、key(TT)を用いて、row(TT)のための全ての対応する列値を探索し、key(ST)を用いて、row(ST)のための全ての対応する列値を探索することができる
● MOOSQではキーおよびハッシュだけが利用可能だったので、全体の行イメージを見るために、これは必要なステップである
● 探索は、SQL SELECT...WHEREなどの標準データベースアクセス方式を用いて行なわれる
− MOOSQレコード1を検索する
○ 現在時間(8:33:33)が、比較時間+待ち時間(8:33:32+60)を超えるまで待って、動作を施す機会を複製に与える
○ 150のターゲット行キー値を用いて、ターゲット表への探索を実行する
○ ターゲットレコードが見つからないので、削除が適用されたと仮定する
○ 今は「同期」として動作をマークする
− MOOSQレコード2を検索する
○ 現在時間(8:35:11)が、比較時間+待ち時間(8:34:10+60)を超えるまで待って、動作を施す機会を複製に与える
○ 300のターゲット行キー値を用いて、ターゲット表への探索を実行する
○ ターゲットレコードを見つける。ターゲット表で行ハッシュ(新ハッシュ)を計算する
○ ソース行のハッシュを、ターゲット行の新ハッシュと比較する。それらは同じである
○ 今は「同期」として動作をマークする
− MOOSQレコード3を検索する
○ 現在時間(8:38:59)が、比較時間+待ち時間(8:38:58+60)を超えるまで待って、動作を施す機会を複製に与える
○ 400のソース行キー値を用いて、ターゲット表への探索を実行する
○ ターゲットレコードが見つからないので、欠落挿入が適用されなかったと仮定する
○ 「永続的な同期外れ」として動作をマークする
− MOOSQレコード4を検索する
○ 現在時間(8:40:01)が、比較時間+待ち時間(8:39:00+60)を超えるまで待って、動作を施す機会を複製に与える
○ 500のターゲット行キー値を用いて、ターゲット表への探索を実行する
○ ターゲットレコードを見つける。ターゲット表で行ハッシュ(新ハッシュ)を計算する
○ ソース行のハッシュを、ターゲット行の新ハッシュと比較する。それらは異なっているが、しかし新ハッシュは、最初の比較以来、ターゲット行において変化したので、行は、最初の比較以来、変化したはずであり、その結果として、動作は「インフライト」とマークされる
1.不良バッチ決定
2.行詳細フェッチおよび比較
一旦これらの段階が完了すれば、MOOSQは、(行ハッシュ技術と同様に)「同期外れ可能性」の行セットを保持する。そこから、前述の同期外れ確認(COOS)ステップを実行して、基礎となるデータベースが変化し続ける間であっても、永続的に同期外れのままである行セットを決定する。
− 行ハッシュ技術と同様に、行は、ユニークキー順にソース表から検索される
− 理想的には、ソースおよびターゲット表からの行検索は、HS1(たとえばDB1・118)およびHS2(たとえばDB2・138)において並行して行われる。
− 「ソースバッチサイズ」のために定数N(たとえば10行)が選択される
− HS1の行読み出しバッファにおける最初のN行が、以下の方法で「バッチ行レコード」にパックされる
○ 開始キー列値(行1)
○ 終了キー列値(行N)
○ 行ハッシュ技術において示したハッシュ技術(たとえばCRC)を用い、N行における全ての列(または選択された列)に関して計算されたハッシュ
− バッチ行レコードが、バッチハッシュブロックへキューイングされる
− これが、行N+1〜2N、2N+1〜3N等に対して繰り返される
○ 最後のバッチは特別なケースであり、また最終ソースバッチ行レコードは、「エンドオブファイル」と示された終了キー値を有する
− バッチハッシュブロックが満杯のときはいつでも、またはローカル行読み出しバッファが一杯もしくはほぼ一杯のときには、バッチハッシュブロックは、HS2プロセスに送られる
○ 満杯、またはいつ行読み取りバッファが一杯もしくはほぼ一杯になるかは、設定可能であり、典型的には、ネットワークにおいてデータの最大スループットを達成するように、最適化される
○ ブロックは、さらなる効率のために圧縮してもよい
− HS2は、ターゲット表のための行データをユニークキー順に読み出す
− 各バッチ行レコードは、HS1からの着信メッセージから、非ブロック化される
− HS1から来る各バッチ行レコードに対して
○ HS2は、バッチ行比較の境界、すなわちソースバッチ行レコードと一致する必要のある、HS2における行セットを決定する
■ ターゲットバッチ行レコードの開始行は、ターゲット表(TT)からの最初の利用可能な行である
■ ターゲットバッチ行レコードの終了行は、ソースバッチ行レコードの最後の行より小さいかまたは等しいキーを備えた行である
■ HS2はまた、その行セットにおける全ての行に関してハッシュを計算する
○ 次に、HS2は、ソースバッチ行レコードのハッシュを、ターゲットバッチ行レコードのハッシュと比較する
○ それらが異なっている場合には、バッチは「不良」と宣言される−これは、基礎となる行セットの少なくとも1つ、おそらくはより多くの行が同期外れであることを意味する。次に、不良バッチレコードが作成されるが、このレコードは、以下のものからなる。
■ ソースおよびターゲットバッチ行レコードを開始するキーの「小さいほう」−開始不良バッチ値
■ ソースおよびターゲットバッチ行レコードを終了するキーの「大きいほう」−終了不良バッチ値(これは、常に、ソースバッチ行レコードの終了キー値と同じでなければならないことに留意されたい)
■ ソースバッチ行レコードが、終了キー値として「エンドオブファイル」を示す場合には、ターゲットバッチ行レコードもまた、その終了キー値として「エンドオブファイル」を示さなければならない
○ 不良バッチレコードは、CCプロセスに送られる(または送信のためにバッファされる)
− 不良バッチが、CCによって検索される
− CCは、ソース(HS1)およびターゲット(HS2)の両方に、基礎となる行詳細(各行の列)を要求する
− 各HSプロセスは、不良バッチレコードの範囲にある各行を返すための問い合わせを定式化する。たとえば、不良バッチレコードが、キー「B」を備えた開始レコードおよびキー「E」を備えた終了レコードを有する場合には、これらのキー値間(これらのキー値を含む)の全てが返される(たとえばB、C、D、E)
○ 代替として、同じHSプロセスが、バッチ検索ステップおよび行詳細フェッチステップの両方で用いられる場合には、HSプロセスは、詳細が要求される可能性があることを予想して、バッチ検索中に詳細な行データをキャッシュすることができる
− 行は、CCに返される
− CCは、行ハッシュステップにおけるように、各行を比較する。行が一致しない場合には、CCは、不良行値をMOOSQへ出力する
バッチサイズ=3
ブロック化=1不良バッチレコード(簡略化のため)
− 開始キー列値−A
− 終了キー列値−C
− hash(1、2、3)
− TTから第1の行(キー=A)を読み出し、それを、HS2からの不良バッチ行の終了キー値(C)と比較する−それが終了キーC以下であるので、その行は、ターゲットのための現在のバッチに含まれる
− TTから第2の行(キー=C)を読み出す−それが終了キーC以下であるので、この行がまた含まれる
− TTから第3の行(キー=D)を読み出す−これを、次のバッチ比較のために保存する
− レコードA、Cに関してハッシュを計算する−これ(hash(1、3))は、ソースバッチ行レコードハッシュと異なる。なぜなら、ソースに存在した行(キー=B)が、ターゲットバッチでは欠けているからである
− A、Cを含むバッチ行レコードが、不良バッチキュー(BBQ)に出力される
− 開始キー=D
− 終了キー=G
− hash(4、5、6)
− 前のバッチに入らなかった、TTからの残りの行(キー=D)を用いる
− HS2がソースバッチレコードからの終了キーを超える行(キー=H)を見つけるまで、行を蓄積する。ターゲットバッチ行レコードにおけるGまで(Gを含む)の全ての行が含まれる
− ソースバッチ行レコードハッシュと一致するターゲット行ハッシュ−hash(4、5、6)−を計算し、このバッチが「良」であると決定する
− 開始キー=H
− 終了キー=EOF
− hash(7)
− どの行を同期させるべきかを決定すること(データ駆動規則を用いて行ごとにか、または全行)−「再同期行セット」として知られている
− 再同期行セットにおける各行のために、どちらの表が変更情報の真のソースかを決定すること(これは、行ごとにか、データ駆動の規則でか、または一方向に流れる全行に基づいて行なってもよい)
− 変更情報をソースからターゲットへ実際に移動させるか、または個別の行を同期させながら移動をトリガすること
− OOSQにおける各レコードに対して
○ 地域が東の場合には、変更の方向は、ALL_CITIES_EASTからALL_CITIES_WESTへである
○ 地域が西の場合には、変更の方向は、ALL_CITIES_WESTからALL_CITIES_EASTへである
○ 地域が他の場合には、どの方向にも変更を適用しない
− 地域が東かつOOSQ動作が欠落削除でないか、または都市がニューヨークである場合には、ALL_CITIES_WESTに変更を適用する
システムはまた、規則自体によって決定されない行のために手動検査および決定を可能にする、規則明細特性(the rules specification capabilities)を拡張するオプションを提供することができる。上記の例を用いると、規則は、以下のように指定し得る。
− OOSQにおける各レコードに対して
○ 地域が東の場合には、変更の方向は、ALL_CITIES_EASTからALL_CITIES_WESTへである
○ 地域が西の場合には、変更の方向は、ALL_CITIES_WESTからALL_CITIES_EASTへである
○ 地域が他の場合には、手動で決定する
− 各意図した変更のためにRQを読み出す
− 列値、キー情報および動作タイプを用い、そのデータベース用に利用可能な固有の方法を用いて、ソースまたはターゲット表を更新する
− 欠落挿入のために、以下のシンタックスを構成する
○ insert into <table>(<colunm1>[,<column2>...])values(<column value1>[,<column value2>...])
○ 例:insert into PRODUCT(名前、価格) values(’自動車’、32000)
− 欠落更新のために、以下のシンタックスを構成する
○ update <table> set <column1>=<column value1>[,<column2>=<column value2>] where <key column1>=<key column1 value>[and<key column2>=<key column2 value>
○ 例:update PRODUCT set 価格=32000 where 名前=’自動車’
− 欠落削除のために、以下のシンタックスを構成する
○ delete from <table> where <key column1>=<key column1 value>[and<key column2>=<key column2 value>
○ 例:delete from PRODUCT 名前=’自動車’
<colunm 1>...<colunm n>は、(それらの値が、最初の比較ステップで利用可能であった)、表における列のリストである。<colunm value 1>...<colunmn value n>は、対応する列値である。
<key column 1>...<key column n>は、比較において用いられるユニークキーを含む列のリストである。<key value 1>...<key value n>は、対応する列値である。
− SQL文シンタックスを構成する
− SQL文をデータベースのSQLエグゼキュータ(SQL executor)へ送る
− 独立にかまたは動作のより大きなグループの一部として各動作をコミットする
− 同期外れである行のキーをRQから得る
− キー値を用いて、その行における全ての列を、それら自身へ更新する
− これによって、データベースは、現在の行値をデータベーストランザクションログまたは類似の機構(トリガによって維持される変更ログなど)にログするようにトリガされる
− 続いて、複製システムは、変更のイベントを読み出して解釈し、変更をターゲットデータベースに複製する
− 再同期イベントは、常に、(値をそれら自身へ設定する)行に対する更新である。したがって、複製機構は、行がターゲットに実際に存在するか否かを検出し、かつそれがターゲットに存在しない場合には、挿入として行を適用できなければならない。
− 欠落削除レコードは、ソース行の更新によっては再作成することができない−したがって、削除の実施および処理のためには別の機構が必要である
− 行の更新は、データベーストリガなどの他の意図しないイベントを引き起こす場合がある
− 再同期機構によって引き起こされたアクティビティと、ソースエンドにおける適用によってかまたはターゲットにおける複製による適用によって引き起こされたアクティビティとの間で線引きする容易な方法がない
− 同期外れの行のためのキーを(RQから)得る
− 動作タイプが、欠落挿入または欠落更新である場合には
○ ソース行をロックしている間に、キー値を用いて、そのソース行から列の全てを選択する(例として、SELECT FOR UPDATEまたはREAD WITH LOCKを用いる)
○ 最低限、表名および動作タイプと共に列値をRESYNC_MARKER表に記録する
− 動作が欠落削除である場合には
○ ソース行をロックしている間に、キー値を用いて、そのソース行から列の全てを選択する(例として、SELECT FOR UPDATEまたはREAD WITH LOCKを用いる)
○ 行が存在する場合には、何もしない
○ 行が存在しない場合には、最低限、表名、動作タイプまたは現在時刻と共にキー列値をRESYNC_MARKER表に記録する
− (個別にかまたは再同期動作のグループで)データベーストランザクションをコミットする
− 選択されたか、又はロックしたまま読み出された任意の行をアンロックする
− 表内に作成された行は、データベーストランザクションログまたは均等物(複製変更データソース)にログされなければならない−トランザクションログは、基礎となるソース表によって用いられるトランザクションログと同じでなければならない
− この表は、異なる表構造のためのデータを格納することができる−それは、ソース表の列値を1つの大きな列につなぎ合わせるなど、何らかの方法でソース表の列値を格納できる限り、基礎となる1つまたは複数のソース表と同じ構造である必要がない
− それは、RESYNC_MARKER表になされた変更を追跡しなければならない
− それは、RESYNC_MARKER表の目的を知り、この表の内容を、他の表を解釈するのとは異なって、解釈しなければならない−すなわち、それは、各RESYNC_MARKER行(たいがい、単一列への多数の列のパッキング)の内容を、適切なソース表フォーマットに翻訳する(意図された多数の列に単一列をアンパックする)
− それは、各RESYNC_MARKER行の内容を理解し、対応する行/列値および等価の変更レコードを内部で再構成できなければならない
− それは、RESYNC_MARKER表における削除行を処理する必要がない
− RESYNC_MARKER行がフェッチされる
− 行データが解釈され、基礎となるソース行に似るように変換される
− ターゲット行が、更新される
− 同じデータベーストランザクションの文脈内で、RESYNC_APPLY_MARKER行が、ターゲットデータベースに作成される(その唯一の目的は、再同期アクティビティによってもたらされたものとして、トランザクションを識別することである)
1.RESYNC_APPLY_MARKER表自体を見ることによって
2.ターゲットデータベーストランザクションログからトランザクションデータを調べることによって。RESYNC_APPLY_MARKER表に対する動作はトランザクションに現われるので、トランザクションにおける全ての他の動作は、再同期アクティビティによって生成されたに違いないと仮定することができる
Claims (18)
- 第1のデータベースの行バッチを含む前記第1のデータベースの領域を識別するステップと、
前記第1のデータベースの前記行バッチを圧縮するステップと、
前記第1のデータベースの圧縮された前記行バッチにおいて、非キーデータと、開始キー値および終了キー値を含むキーデータとを識別するステップと、
第1のハッシュデータを作成するよう、識別された前記非キーデータにハッシュを実行するステップと、
第2のデータベースの対応する領域を識別するよう、少なくとも識別された前記開始キー値と識別された前記終了キー値とを処理するステップと、
第2のハッシュデータを作成するよう、前記第2のデータベースの識別された対応する前記領域の少なくとも一部にハッシュを実行するステップと、
第1の時点での条件同期外れ状態を確認するために、作成された前記第1のハッシュデータが作成された前記第2のハッシュデータに対応していない場合を識別するように、作成された前記第1のハッシュデータと、作成された前記第2のハッシュデータとを比較するステップと、
前記第1の時点の後に、前記第1のデータベースおよび前記第2のデータベースが既存の同期機構を介して同期するために、待ち時間を割り当てるステップと、
前記待ち時間後に、前記第1のデータベースの識別された前記領域が、前記第2のデータベースの識別された対応する前記領域と同期しておらず、待ち時間後同期外れ状態を形成していると判断するステップと、
前記待ち時間後同期外れ状態に応答して、前記第1のデータベースおよび前記第2のデータベースの動的な動作の間に、前記第1のデータベースの識別された前記領域を前記第2のデータベースの識別された対応する前記領域と再同期させるステップと、をコンピュータに実行させるためのプログラム。 - 前記プログラムは、前記コンピュータに、前記第1のデータベースの前記領域と、前記第2のデータベースの対応する前記領域とのための共通フォーマットを確立させる、請求項1に記載のプログラム。
- 前記プログラムは、前記コンピュータに、重複列、重複行、マップされたデータおよび異種データストアの少なくとも1つに対処する、前記第1のデータベースと前記第2のデータベースとの間の前記共通フォーマットを確立させ、前記第1または第2のデータベースの重複列の各々における各データは同じであり、前記重複行の各々における各データは同じであり、前記マップされたデータは前記第1および第2のデータベースの一方から検索され、前記異種データストアは互いに異なる態様で同じデータを格納する、請求項2に記載のプログラム。
- 前記プログラムは、さらに、前記コンピュータに、作成された前記第1のハッシュデータとユーザ指定された非キーデータとをデータブロックに含めるために、作成された前記第1のハッシュデータを前記ユーザ指定された非キーデータで増強するステップを実行させる、請求項1に記載のプログラム。
- 前記プログラムは、さらに、前記コンピュータに、前記第1のデータベースの前記領域が、前記第2のデータベースの対応する前記領域の対応する行または列と少なくとも部分的に重複する行または列を含むかどうかを確認するステップを実行させる、請求項1に記載のプログラム。
- 前記プログラムは、さらに、前記コンピュータに、前記第1のデータベースの前記領域のうちの部分領域を、前記第2のデータベースの対応する部分領域と並行して比較するステップを実行させる、請求項1に記載のプログラム。
- 前記プログラムは、さらに、前記コンピュータに、識別された前記開始キー値および識別された前記終了キー値を用い、前記第1のデータベースおよび前記第2のデータベース内で、前記第1の時点で条件同期外れ状態である前記第1のデータベースの識別された前記領域と、前記第2のデータベースの識別された前記領域とに対応する行セットを識別するステップを実行させる、請求項1に記載のプログラム。
- 前記プログラムは、さらに、前記コンピュータに、前記行セットの個別行を比較して、条件同期外れである行を識別するステップを実行させる、請求項7に記載のプログラム。
- 再同期化が、
前記第1のデータベースの識別された前記領域から値を検索することと、
前記第1のデータベースの識別された前記領域をロックすることと、
前記第1のデータベースに関連するマーカ表に、前記第1のデータベースの識別された前記領域からの、検索された前記値を格納することとを含む、請求項1に記載のプログラム。 - 前記プログラムは、さらに、前記コンピュータに、複製機構を用いて、前記マーカ表から前記第2のデータベースの識別された対応する前記領域へ、格納された検索された前記値を伝えるステップを実行させる、請求項9に記載のプログラム。
- 前記プログラムは、さらに、前記コンピュータに、前記複製機構を用いて、前記第1のデータベースに対する変更を順序付けるステップを実行させる、請求項10に記載のプログラム。
- 前記再同期させるステップは、同期外れデータベース領域に関する情報を特定する同期外れキューにアクセスすることを含む、請求項1に記載のプログラム。
- 前記再同期させるステップは、データ方向性フローを決定することを含む、請求項12に記載のプログラム。
- 前記再同期させるステップは、前記第1のデータベースまたは前記第2のデータベースのどちらかに関連する固有の方法に依存する直接適用技術を介して再同期させることを含み、前記直接適用技術は、
各意図した変更のために再同期キュー(RQ)を読み出すことと、
列値、キー情報および動作タイプを用い、前記第1のデータベースまたは前記第2のデータベース用に利用可能な固有の方法を用いて、ソースまたはターゲット表を更新することとを含む、請求項1に記載のプログラム。 - 前記再同期させるステップは、複製マーカを用いて再同期させることを含み、前記複製マーカは、
同期外れの行のためのキーを再同期キュー(RQ)から得るステップと、
動作タイプが、欠落挿入または欠落更新である場合には、
ソース行をロックしている間に、キー値を用いて、当該ソース行から列の全てを選択するステップ、および、
最低限、表名および動作タイプと共に列値をRESYNC_MARKER表に記録するステップと、
前記動作タイプが欠落削除である場合に、
ソース行をロックしている間に、キー値を用いて、当該ソース行から列の全てを選択するステップと、
行が存在する場合には、何もせず、
行が存在しない場合には、最低限、表名、動作タイプまたは現在時刻と共にキー列値をRESYNC_MARKER表に記録するステップと、
データベーストランザクションをコミットするステップと、
選択されたか、又はロックしたまま読み出された任意の行をアンロックするステップとを含む、請求項1に記載のプログラム。 - 前記再同期を行うステップは、ソース行更新技術を用いて再同期させることを含み、
前記ソース行更新技術は、
同期外れである行のキーを再同期キュー(RQ)から得ることと、
キー値を用いて、その行における全ての列を、それら自身へ更新することと、
現在の行値をデータベーストランザクションログにログするようにデータベースをトリガすることと、
続いて複製システムが、変更のイベントを読み出して解釈しすることと、
変更をターゲットデータベースに複製することとを含む、請求項1に記載のプログラム。 - コンピュータシステムにおいて、第1のデータベースの行バッチを含む前記第1のデータベースの領域を識別するステップと、
前記第1のデータベースの前記行バッチを圧縮するステップと、
前記第1のデータベースの圧縮された前記行バッチにおいて、非キーデータと、開始キー値および終了キー値を含むキーデータとを識別するステップと、
第1のハッシュデータを作成するよう、前記非キーデータにハッシュを実行するステップと、
第2のデータベースの対応する領域を識別するよう、少なくとも識別された前記開始キー値と識別された前記終了キー値とを処理するステップと、
第2のハッシュデータを作成するよう、前記第2のデータベースの識別された対応する前記領域の少なくとも一部にハッシュを実行するステップと、
第1の時点での条件同期外れ状態を確認するために、前記第1のデータベースの識別された前記領域が前記第2のデータベースの識別された対応する前記領域と条件同期外れであることを識別するように、作成された前記第1のハッシュデータを作成された前記第2のハッシュデータと比較するステップと、
前記第1の時点の後に、前記第1のデータベースおよび前記第2のデータベースが既存の同期機構を介して同期するために、待ち時間を割り当てるステップと、
前記待ち時間後に、前記第1のデータベースの識別された前記領域が、前記第2のデータベースの識別された対応する前記領域と同期しておらず、待ち時間後同期外れ状態を形成していると判断するステップと、
前記待ち時間後同期外れ状態に応答して、前記第1のデータベースおよび前記第2のデータベースの動的な動作の間に、前記第1のデータベースの識別された前記領域を前記第2のデータベースの識別された対応する前記領域と再同期させるステップとを含む、方法。 - プロセッサと、前記プロセッサと通信するメモリとを含むコンピュータシステムであって、前記メモリは、内部に前記コンピュータシステムによって実行可能なコンピュータコードを有しており、前記コンピュータコードは、
第1のデータベースの行バッチを含む前記第1のデータベースの領域を識別するための実行可能命令と、
前記第1のデータベースの前記行バッチを圧縮するための実行可能命令と、
前記第1のデータベースの圧縮された前記行バッチにおいて、非キーデータと、開始キー値および終了キー値を含むキーデータとを識別するための実行可能命令と、
第1のハッシュデータを作成するよう、識別された前記非キーデータにハッシュを実行するための実行可能命令と、
第2のデータベースの対応する領域を識別するよう、少なくとも識別された前記開始キー値と識別された前記終了キー値とを処理するための実行可能命令と、
第2のハッシュデータを作成するよう、前記第2のデータベースの識別された対応する前記領域の少なくとも一部にハッシュを実行するための実行可能命令と、
第1の時点での条件同期外れ状態を確認するために、前記第1のデータベースの識別された前記領域が前記第2のデータベースの対応する前記領域と条件同期外れであることを識別するように、作成された前記第1のハッシュデータを作成された前記第2のハッシュデータと比較するための実行可能命令と、
前記第1の時点の後の、前記第1のデータベースおよび前記第2のデータベースのための待ち時間により、既存の同期機構を介して同期することを可能にするための実行可能命令と、
前記待ち時間後に、前記第1のデータベースの識別された前記領域が、前記第2のデータベースの識別された対応する前記領域と同期しておらず、待ち時間後同期外れ状態を形成していると判断するための実行可能命令と、
前記待ち時間後同期外れ状態に応答して、前記第1のデータベースおよび前記第2のデータベースの動的な動作の間に、前記第1のデータベースの識別された前記領域を前記第2のデータベースの識別された対応する前記領域と再同期させるための実行可能命令とを含む、コンピュータシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/084,855 | 2005-03-18 | ||
US11/084,855 US7788225B2 (en) | 2005-03-18 | 2005-03-18 | Apparatus and method for identifying asynchronous data in redundant data stores and for re-synchronizing same |
PCT/US2006/005702 WO2006101633A2 (en) | 2005-03-18 | 2006-02-21 | Apparatus and method for identifying asynchronous data in redundant data stores and for re-synchronizing same |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2008533612A JP2008533612A (ja) | 2008-08-21 |
JP2008533612A5 JP2008533612A5 (ja) | 2010-04-22 |
JP4880668B2 true JP4880668B2 (ja) | 2012-02-22 |
Family
ID=37011611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008501889A Active JP4880668B2 (ja) | 2005-03-18 | 2006-02-21 | 冗長データストアにおける非同期データを識別するための、およびそれを再同期させるための装置および方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7788225B2 (ja) |
EP (1) | EP1859363B1 (ja) |
JP (1) | JP4880668B2 (ja) |
CN (1) | CN101176090B (ja) |
AU (1) | AU2006227918B2 (ja) |
CA (1) | CA2598584C (ja) |
WO (1) | WO2006101633A2 (ja) |
Families Citing this family (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7627776B2 (en) * | 2004-11-16 | 2009-12-01 | Petruzzo Stephen E | Data backup method |
US7822715B2 (en) * | 2004-11-16 | 2010-10-26 | Petruzzo Stephen E | Data mirroring method |
US7814052B2 (en) * | 2006-11-03 | 2010-10-12 | Salesforce.Com, Inc. | Implementing formulas for custom fields in an on-demand database |
US7805403B2 (en) | 2007-01-07 | 2010-09-28 | Apple Inc. | Synchronization methods and systems |
US9552571B2 (en) | 2007-02-02 | 2017-01-24 | Blackberry Limited | Electronic device and method of meeting notification |
US20080186807A1 (en) * | 2007-02-02 | 2008-08-07 | Research In Motion Limited | Electronic device and method of controlling an electronic device for calendar event updates |
EP1956499A1 (en) | 2007-02-09 | 2008-08-13 | Research In Motion Limited | System and method for managing databases associated with respective personal information manager service accounts |
US20080195619A1 (en) * | 2007-02-09 | 2008-08-14 | Jain Rohit Rocky | Electronic device and method of sharing calendar-event information |
US20080195455A1 (en) * | 2007-02-09 | 2008-08-14 | Research In Motion Limited | Electronic device and method of scheduling calendar events |
US7849056B2 (en) | 2007-02-09 | 2010-12-07 | Research In Motion Limited | System and method for managing databases associated with respective personal information manager service accounts |
US20080191896A1 (en) * | 2007-02-09 | 2008-08-14 | Jain Rohit Rocky | Electronic device and method of adding parties to a calendar event |
US8615798B2 (en) * | 2007-06-29 | 2013-12-24 | International Business Machines Corporation | Optimizing a data deduplication system using client authentication information |
JP2009282772A (ja) * | 2008-05-22 | 2009-12-03 | Hitachi Ltd | 監査証跡ファイル作成方法及びその実施装置 |
EP2377294B1 (en) * | 2008-12-18 | 2017-05-17 | Scality, SA | Multipurpose storage system based upon a distributed hashing mechanism with transactional support and failover capability |
US8224933B2 (en) * | 2009-02-26 | 2012-07-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for case-based service composition |
US8082235B1 (en) | 2009-04-09 | 2011-12-20 | Google Inc. | Self healing system for inaccurate metadata |
US8843440B2 (en) | 2011-01-21 | 2014-09-23 | Microsoft Corporation | Synchronizing database projects with partner projects |
US8510267B2 (en) * | 2011-03-08 | 2013-08-13 | Rackspace Us, Inc. | Synchronization of structured information repositories |
US9396242B2 (en) * | 2011-04-11 | 2016-07-19 | Salesforce.Com, Inc. | Multi-master data replication in a distributed multi-tenant system |
US9600513B2 (en) | 2011-06-09 | 2017-03-21 | International Business Machines Corporation | Database table comparison |
US8903831B2 (en) * | 2011-09-29 | 2014-12-02 | International Business Machines Corporation | Rejecting rows when scanning a collision chain |
US9020976B2 (en) * | 2012-01-31 | 2015-04-28 | Bank Of America Corporation | System and method for processing data in diverse storage systems |
US9286162B2 (en) * | 2012-02-02 | 2016-03-15 | Netapp, Inc. | System and method for guaranteeing consistent data synchronization from a volatile data source |
US9053153B2 (en) * | 2012-06-18 | 2015-06-09 | Sap Se | Inter-query parallelization of constraint checking |
WO2014000825A1 (en) * | 2012-06-29 | 2014-01-03 | Data2Knowledge Gmbh | A method for maintaining one or more table values for a number of tables in a database system |
US9667470B2 (en) | 2012-09-07 | 2017-05-30 | Oracle International Corporation | Failure handling in the execution flow of provisioning operations in a cloud environment |
US9253113B2 (en) | 2012-09-07 | 2016-02-02 | Oracle International Corporation | Customizable model for throttling and prioritizing orders in a cloud environment |
US10521746B2 (en) | 2012-09-07 | 2019-12-31 | Oracle International Corporation | Recovery workflow for processing subscription orders in a computing infrastructure system |
US9203866B2 (en) | 2012-09-07 | 2015-12-01 | Oracle International Corporation | Overage framework for cloud services |
US10148530B2 (en) | 2012-09-07 | 2018-12-04 | Oracle International Corporation | Rule based subscription cloning |
US9621435B2 (en) | 2012-09-07 | 2017-04-11 | Oracle International Corporation | Declarative and extensible model for provisioning of cloud based services |
CN103929763A (zh) * | 2013-01-11 | 2014-07-16 | 阿尔卡特朗讯 | 一种用于比较和重构地理冗余的数据库的方法 |
US9749408B2 (en) * | 2013-07-30 | 2017-08-29 | Dropbox, Inc. | Techniques for managing unsynchronized content items at unlinked devices |
US10091249B2 (en) * | 2013-11-22 | 2018-10-02 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system for synchronization of two databases in a lawful interception network by comparing checksum values |
TWI514811B (zh) * | 2013-11-28 | 2015-12-21 | Synology Inc | 網路系統的操作方法 |
US10831528B2 (en) | 2013-12-19 | 2020-11-10 | International Business Machines Corporation | Replication of batch jobs of computing systems |
US9514013B2 (en) | 2014-06-27 | 2016-12-06 | International Business Machines Corporation | Maintaining inactive copy relationships for secondary storages of active copy relationships having a common primary storage for use in case of a failure of the common primary storage |
US10164901B2 (en) | 2014-08-22 | 2018-12-25 | Oracle International Corporation | Intelligent data center selection |
US20160063050A1 (en) * | 2014-08-28 | 2016-03-03 | Joerg Schoen | Database Migration Consistency Checker |
KR101960339B1 (ko) * | 2014-10-21 | 2019-03-20 | 삼성에스디에스 주식회사 | 파일 동기화 방법 |
US9928281B2 (en) | 2015-03-20 | 2018-03-27 | International Business Machines Corporation | Lightweight table comparison |
US9397985B1 (en) | 2015-04-14 | 2016-07-19 | Manifold Technology, Inc. | System and method for providing a cryptographic platform for exchanging information |
CN106156165A (zh) | 2015-04-16 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 异构数据源之间的数据同步方法和装置 |
US11023492B2 (en) * | 2015-05-20 | 2021-06-01 | Guidewire Software, Inc. | Deferred synchronization for work unit-related data |
US9727243B2 (en) | 2015-06-30 | 2017-08-08 | International Business Machines Corporation | Using inactive copy relationships to resynchronize data between storages |
US9921764B2 (en) | 2015-06-30 | 2018-03-20 | International Business Machines Corporation | Using inactive copy relationships to resynchronize data between storages |
WO2017069874A1 (en) * | 2015-10-21 | 2017-04-27 | Manifold Technology, Inc. | Event synchronization systems and methods |
US10949309B2 (en) * | 2015-12-28 | 2021-03-16 | Netapp Inc. | Snapshot creation with synchronous replication |
CN107291710B (zh) * | 2016-03-30 | 2020-07-03 | 杭州海康威视数字技术股份有限公司 | 一种用于分布式数据库系统的更新数据的方法及装置 |
US10382544B2 (en) | 2016-04-08 | 2019-08-13 | International Business Machines Corporation | Establishing reverse paths between servers in a copy environment |
US10262053B2 (en) * | 2016-12-22 | 2019-04-16 | Palantir Technologies Inc. | Systems and methods for data replication synchronization |
US10430437B2 (en) | 2017-02-08 | 2019-10-01 | Bank Of America Corporation | Automated archival partitioning and synchronization on heterogeneous data systems |
US10922296B2 (en) * | 2017-03-01 | 2021-02-16 | Sap Se | In-memory row storage durability |
CN106997378B (zh) * | 2017-03-13 | 2020-05-15 | 上海摩库数据技术有限公司 | 基于Redis的数据库数据聚合同步的方法 |
US11899632B1 (en) | 2017-04-28 | 2024-02-13 | Verato, Inc. | System and method for secure linking and matching of data elements across independent data systems |
GB201812375D0 (en) * | 2018-07-30 | 2018-09-12 | Ibm | Updating a table using incremental and batch updates |
US11132339B2 (en) | 2018-11-13 | 2021-09-28 | Netapp Inc. | Synchronous replication for synchronous mirror copy guarantee |
US10776038B2 (en) | 2018-11-26 | 2020-09-15 | Bank Of America Corporation | Systems and methods for defining replication of data |
US11379498B2 (en) | 2020-03-06 | 2022-07-05 | Dropbox, Inc. | Live data conversion and migration for distributed data object systems |
US11907260B2 (en) * | 2020-04-19 | 2024-02-20 | International Business Machines Corporation | Compare processing using replication log-injected compare records in a replication environment |
US11372885B2 (en) * | 2020-05-13 | 2022-06-28 | Sap Se | Replication of complex augmented views |
US11829334B2 (en) | 2020-06-12 | 2023-11-28 | International Business Machines Corporation | Per row database resynchronization |
US20230060702A1 (en) * | 2021-08-30 | 2023-03-02 | International Business Machines Corporation | Large object data type support for column-based database system |
US11526491B1 (en) * | 2022-02-21 | 2022-12-13 | Clari Inc. | Method and system for collecting data from data sources with commit lag to maintain data consistency in a data store |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07302218A (ja) * | 1994-04-20 | 1995-11-14 | Microsoft Corp | レプリケーションの検証 |
US5765172A (en) * | 1996-01-23 | 1998-06-09 | Dsc Communications Corporation | System and method for verifying integrity of replicated databases |
US6321236B1 (en) * | 1997-05-27 | 2001-11-20 | Arkona, Inc. | Distributing database differences corresponding to database change events made to a database table located on a server computer |
US6449622B1 (en) * | 1999-03-08 | 2002-09-10 | Starfish Software, Inc. | System and methods for synchronizing datasets when dataset changes may be received out of order |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5884325A (en) * | 1996-10-09 | 1999-03-16 | Oracle Corporation | System for synchronizing shared data between computers |
US6304882B1 (en) | 1998-05-05 | 2001-10-16 | Informix Software, Inc. | Data replication system and method |
DE60039033D1 (de) * | 2000-05-25 | 2008-07-10 | Hitachi Ltd | Speichersystem zur Bestätigung der Datensynchronisierung während des asynchronen Fernkopierens |
US20020059299A1 (en) * | 2000-07-14 | 2002-05-16 | Frederic Spaey | System and method for synchronizing databases |
US6718348B1 (en) * | 2000-08-25 | 2004-04-06 | Telefonaktiebolaget Lm Ericsson (Publ) | Non-time dependent synchronization of databases |
US20020055939A1 (en) * | 2000-11-06 | 2002-05-09 | Joseph Nardone | System for a configurable open database connectivity conduit |
US7929562B2 (en) * | 2000-11-08 | 2011-04-19 | Genesis Telecommunications Laboratories, Inc. | Method and apparatus for optimizing response time to events in queue |
US6745209B2 (en) * | 2001-08-15 | 2004-06-01 | Iti, Inc. | Synchronization of plural databases in a database replication system |
US7162596B2 (en) * | 2002-01-11 | 2007-01-09 | Hewlett-Packard Development Company, L.P. | Remote mirrored disk pair resynchronization monitor |
US7024528B2 (en) * | 2002-08-21 | 2006-04-04 | Emc Corporation | Storage automated replication processing |
US7415467B2 (en) * | 2003-03-06 | 2008-08-19 | Ixion, Inc. | Database replication system |
US7363431B1 (en) * | 2003-09-19 | 2008-04-22 | Emc Corporation | Message-based distributed synchronization in a storage system |
US7478112B2 (en) * | 2004-12-16 | 2009-01-13 | International Business Machines Corporation | Method and apparatus for initializing data propagation execution for large database replication |
US8037056B2 (en) * | 2005-02-18 | 2011-10-11 | International Business Machines Corporation | Online repair of a replicated table |
US7885922B2 (en) * | 2005-10-28 | 2011-02-08 | Oracle International Corporation | Apparatus and method for creating a real time database replica |
CA2652115C (en) * | 2006-05-12 | 2015-11-17 | Goldengate Software, Inc. | Apparatus and method for read consistency in a log mining system |
WO2007134250A2 (en) * | 2006-05-12 | 2007-11-22 | Goldengate Software, Inc. | Method for forming homogeneous from heterogeneous data |
US8650155B2 (en) * | 2008-02-26 | 2014-02-11 | Oracle International Corporation | Apparatus and method for log based replication of distributed transactions using globally acknowledged commits |
-
2005
- 2005-03-18 US US11/084,855 patent/US7788225B2/en active Active
-
2006
- 2006-02-21 WO PCT/US2006/005702 patent/WO2006101633A2/en active Application Filing
- 2006-02-21 CA CA2598584A patent/CA2598584C/en active Active
- 2006-02-21 AU AU2006227918A patent/AU2006227918B2/en active Active
- 2006-02-21 JP JP2008501889A patent/JP4880668B2/ja active Active
- 2006-02-21 EP EP06735390.4A patent/EP1859363B1/en active Active
- 2006-02-21 CN CN2006800088181A patent/CN101176090B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07302218A (ja) * | 1994-04-20 | 1995-11-14 | Microsoft Corp | レプリケーションの検証 |
US5613079A (en) * | 1994-04-20 | 1997-03-18 | Microsoft Corporation | System for verifying the proper operation of a replication facility |
US5765172A (en) * | 1996-01-23 | 1998-06-09 | Dsc Communications Corporation | System and method for verifying integrity of replicated databases |
US6321236B1 (en) * | 1997-05-27 | 2001-11-20 | Arkona, Inc. | Distributing database differences corresponding to database change events made to a database table located on a server computer |
US6449622B1 (en) * | 1999-03-08 | 2002-09-10 | Starfish Software, Inc. | System and methods for synchronizing datasets when dataset changes may be received out of order |
Also Published As
Publication number | Publication date |
---|---|
US20060212465A1 (en) | 2006-09-21 |
EP1859363A2 (en) | 2007-11-28 |
CN101176090A (zh) | 2008-05-07 |
AU2006227918B2 (en) | 2011-04-28 |
US7788225B2 (en) | 2010-08-31 |
CA2598584A1 (en) | 2006-09-28 |
CN101176090B (zh) | 2010-09-01 |
WO2006101633A2 (en) | 2006-09-28 |
EP1859363A4 (en) | 2010-09-01 |
EP1859363B1 (en) | 2017-08-02 |
JP2008533612A (ja) | 2008-08-21 |
CA2598584C (en) | 2015-05-12 |
AU2006227918A1 (en) | 2006-09-28 |
WO2006101633A3 (en) | 2008-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4880668B2 (ja) | 冗長データストアにおける非同期データを識別するための、およびそれを再同期させるための装置および方法 | |
US6615223B1 (en) | Method and system for data replication | |
WO2020029932A1 (zh) | 数据存储方法及系统、设备和存储介质 | |
US20220019575A1 (en) | System And Method For Augmenting Database Applications With Blockchain Technology | |
US10642696B2 (en) | Copying compressed pages without uncompressing the compressed pages | |
US7383293B2 (en) | Database backup system using data and user-defined routines replicators for maintaining a copy of database on a secondary server | |
US6873995B2 (en) | Method, system, and program product for transaction management in a distributed content management application | |
KR20200100173A (ko) | 데이터베이스 시스템 내의 데이터 복제 및 데이터 장애 조치 | |
US9672244B2 (en) | Efficient undo-processing during data redistribution | |
EP2746971A2 (en) | Replication mechanisms for database environments | |
CN109710388A (zh) | 数据读取方法、装置、电子设备以及存储介质 | |
CN106933703A (zh) | 一种数据库数据备份的方法、装置及电子设备 | |
CN113868028A (zh) | 一种在数据节点上回放日志的方法、数据节点及系统 | |
US20240346010A1 (en) | Data processing method, distributed database system, electronic device and storage medium | |
US7945538B2 (en) | Method and arrangements for node recovery | |
JP2001034518A (ja) | 分散データベースシステムにおける主従関係情報同期方式 | |
US7600149B2 (en) | Failure transparency for update applications under single-master configuration | |
US12019611B1 (en) | Method and apparatus for comparing two database tables without regard to an original order of rows in either database table | |
US11886387B2 (en) | Replication of tags in global scale systems | |
US20230259527A1 (en) | Creating keys for replication of tags in global scale systems | |
JP2004302919A (ja) | レプリケーションシステム及びレプリケーションシステム用プログラム | |
JP2001229062A (ja) | 分散ファイル管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090219 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100302 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20110720 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110726 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20110720 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111026 |
|
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: 20111122 |
|
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: 20111201 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4880668 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141209 Year of fee payment: 3 |
|
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 |
|
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 |