[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] Perl und hohe Mathematik!?



Thomas Halinka schrieb:
>>> ich möchte hier unsere Replikation überwachen.
>> Was für eine Replikation?
>> Master-Slave?
>> Oder Master-Master?
> Ist ne Master-Slave-Replikation.

Dann ist's vielleicht einfacher, wenn über eine Versionsnummer statt
über einen Timestamp getriggert wird. Versionsnummern sind die
eindeutigere Aussage über den Zustand eines Datensatzes als ein Timestamp.

Zur Versionsnummer kann man aus informellen Gründen noch die jeweilige
Uhrzeit des Senders mit beilegen, aber man sollte sich bei einer
Replikation nicht auf einen Timestamp verlassen.

Uhrzeiten können zwischen zwei Rechnern abweichen.
Nicht berücksichtigte Zeitzonen, verstellte Uhren, Pferde und Apotheken.


>> Je nach Fall kann die timestamp basierte Lösung Shredder spielen.
> Hmm, wie meinst du das? Wie sollte dies Shredder spielen können?
> Ich kann dir da grad nicht folgen.... Ich bitte um Erleuchtung.

Das tritt in einem Master-Master-Umfeld auf und betrifft deinen
Anwendungsfall nicht, aber der Vollständigkeit halber: Man hat drei
Grundoperationen auf einer Replika: INSERT, UPDATE, DELETE. Und wenn
Unteilbarkeit von Transaktionen gefordert ist, dann noch ein BEGIN und
COMMIT zwischen den die drei o.a. Grundoperationen gekapselt werden.

Das ganze in einem Master-Master-Umfeld führt dazu, dass Löschungen erst
einmal als "Löschmarker" in allen Replikas geführt werden müssen.

Würde man das nicht machen, würde eine Löschung einfach als Fehlen eines
Satzes interpretiert werden und der löschende Master würde von dem
anderen Mastern den eigentlich schon gelöschten Satz über ein INSERT
erneut bekommen.

Und wenn man jetzt die geforderten Löschmerker mit timestamp-basierter
Replikation zusammentut, kann man das Desaster schon von weitem riechen. ;-)


t++


Reply to: