2016-05-05 16 views
1

Ich habe ein Netzwerk mit vielen verschiedenen Knoten, die jeweils eine andere CouchDB-Instanz ausführen. Jede Instanz verfügt über ein Dokument in der _replicator-Datenbank, um eine fortlaufende (Master-Master-) Replikation mit einigen anderen Knoten des Netzwerks einzurichten. Diese Knoten können für ein nicht definiertes, nicht vorhersehbares Zeitintervall offline gehen. Alles funktioniert gut mit Replikation, aber ich stoße auf ein Problem mit der Zeitüberschreitung, wenn ein Knoten offline geht.CouchDB 1.6 fortlaufende Replikation: Wie konfiguriere ich die Wiederaufnahmezeit nach einem Verbindungsfehler

CouchDB Dokumentation sagt (http://docs.couchdb.org/en/1.6.1/replication/replicator.html)

„Wenn Sie/POST ein Dokument an die _replicator Datenbank PUT, CouchDB versuchen, die Replikation bis zu 10 Mal (konfigurierbar unter [Replikator], Parameter zu starten (max_replication_retry_count). Wenn es bei dem ersten Versuch fehlschlägt, wartet es 5 Sekunden vor einem zweiten Versuch . Wenn der zweite Versuch fehlschlägt, wartet es 10 Sekunden bevor einen dritten Versuch. Wenn der dritte Versuch fehlschlägt, wartet es 20 Sekunden vor dem vierten Versuch (jedes attest mpt verdoppelt die vorherige Wartezeit Zeitraum). "

Wenn ein Replikationszielknoten geht offline (und damit die Replikation schlägt fehl) die Protokolldatei sagt

Replikation in 5 Sekunden neu starten. Neustart der Replikation in 10 Sekunden. Neustart der Replikation in 20 Sekunden. Neustart der Replikation in 40 Sekunden. Neustart der Replikation in 80 Sekunden. Neustart der Replikation in 160 Sekunden. Neustart der Replikation in 320 Sekunden. Neustart der Replikation in 600 Sekunden. Neustart der Replikation in 600 Sekunden ... (600 Sekunden scheint das maximale Timeout zu sein)

Ich muss beschleunigen, wie schnell Replikation nach einer verlorenen Verbindung fortgesetzt wird.

Ist dieser Wert in CouchDB-Quellen fest codiert?

Gibt es einen Parameter, um das 600-Intervall auf etwas anderes neu zu definieren/zu überschreiben?

Antwort

0

In CouchDB 1.x können Sie weder die Anfangsverzögerung noch die maximale Verzögerung ändern. Ihre jeweiligen Werte (2,5 Sekunden [sofort mit 2 multipliziert mit 5 Sekunden] und 600 Sekunden) sind in der Quelldatei couch_replicator_manager.erl fest codiert und können nicht geändert werden, es sei denn, Sie ändern CouchDB selbst.

+0

Das habe ich befürchtet. Danke Samuel, – teo