破損したパケットのリカバリ

このトピックでは、パケットの配信に失敗した場合の、受信側と送信側の両方のサイトでの、破損したパケットのリカバリについて説明します。
生成された更新パケットが 1 つ以上の宛先に適用されないケースには、以下のようなものがあります。

syncreplica -export コマンドは、このコマンドで生成された更新パケットが正常に配信されることを前提としています。 例えば、複製 boston_hub が更新を複製 sanfran_hub に送信する場合、syncreplica コマンドは、boston_hub で発生した操作が sanfran_hub 複製にインポートされることを前提とします。 つまりこの場合、この更新パケットに、そのファミリー内の他の複製で発生した操作も含まれる可能性があるという事実は考慮されていません。

パケットが破損した場合、boston_hub は複製 sanfran_hub の状態についての推定値をリセットする必要があります。 この修正を行えば、boston_hub から sanfran_hub へ送信される次の更新パケットには、sanfran_hub に必要な操作が含まれます。

エポック行をリセットする方法は、以下のとおりです。

  1. 受信側の複製、sanfran_hub で、その複製のエポック番号マトリックスを表示します。
    multiutil lsepoch -clan telecomm -site sanfran_hub -family PRODA 
    -user jcole -p secret sanfran_hub
    
    Multiutil: Estimates of the epochs from each site replayed at site
    ’sanfran_hub’ (@goldengate):
    
    BANGALORE: 950
    BOSTON_HUB: 1300
    SANFRAN_HUB: 2000
  2. 送信側の複製、boston_hubchepoch コマンドで、この出力を使用します。 次の例は、sanfran_hubboston_hub エポック番号の推定値を、sanfran_hub エポック番号マトリックスの実際の値に設定します。
    multiutil chepoch -clan telecomm -site boston_hub -family PRODA
    -user bostonadmin -password secret sanfran_hub bangalore=950 
    boston_hub=1300 sanfran_hub=2000
    
    Multiutil: Change the estimate for the epochs of site ‘bangalore’
    replayed at site ‘sanfran_hub’ to 950 [yes|NO|quit]yes
    
    Multiutil: Change the estimate for the epochs of site ‘boston_hub’ 
    replayed at site ‘sanfran_hub’ to 1300 [yes|NO|quit]yes
    
    Multiutil: Change the estimate for the epochs of site ‘sanfran_hub’ 
    replayed at site ‘sanfran_hub’ to 2000 [yes|NO|quit]yes
    
    Multiutil: 3 epoch estimate(s) for site ‘sanfran_hub’ successfully 
    changed; 0 failures.
    
    Multiutil: Estimates of the epochs from each site replayed at site 
    ‘sanfran_hub’ (@goldengate):
    
    BANGALORE: 950
    BOSTON_HUB: 1300
    SANFRAN_HUB: 2000

フィードバック