Samstag, 17. September 2011

Die Lichtgeschwindigkeit und Synchrone Replikation

Welche Strecke legt das Licht in einem Takt zurück?

Wir erinnern uns:

Die Lichtgeschwindigkeit sind rund 300 Tausend km/s.
Das macht 3 * 10⁸ m/s.

Rechner haben eine Frequenz von 3 GHz.
Das sind rund 3 * 10⁹ Takte.

Wieviel Meter legt jetzt das Licht in einem Takt zurück?

3 * 10⁸  m/s : 3 * 10⁹ Hz = 0,1 m = 10 cm

Da das rund gerechnet ist kann man auch sagen 10 cm sind 4 Zoll.

Two Phase Commit

Beim Two Phase Commit wird ...

       1.1. ein Prepare gesendet
       1.2. ein Ready zurückgesendet
       2.1. ein Commit gesendet
       2.2. ein ACK zurückgesendet

Das sind vier Wege - die zurückgelegt werden.

10 cm : 4 Wege = 2,5 cm/Weg oder auch rund 1 Zoll.

Eine CPU hat üblicher Weise 1" x 1" im Quadrat. 

Quelle: Kristian Köhntopp auf der PHP Unconference in Hamburg 2011
Eine verdammt kurze Strecke oder?

Synchrone Replikation

Hier gibt es zwei Theorien:
  1. ACK wird erst dann zurückgesendet, wenn die Daten garantiert permanent auf der anderen Seite gespeichert sind
  2. ACK wird schon dann zurückgesendet, wenn die Daten auf der anderen Seite angekommen sind.
Ein Datentransfer kann nicht schneller sein, als die Lichtgeschwindigkeit (noch nicht). In der ersten Theorie kommt daneben noch die mechanische Trägheit der Festplatte als Bremse hinzu.

Wie oben gezeigt, legt das Licht während eines Taktes nur 10 cm zurück.

Hier müssten mindestens zwei Wege zurückgelegt werden:
  1. Die Daten senden
  2. ACK zurücksenden
10 cm : 2 = 5 cm

Wenn der Replikationsserver 15000 km entfernt steht - müssten 30000 km zurückgelegt werden.

Lichtgeschwindigkeit: 3 * 10⁵ km/s

3 * 10⁵ km/s : 3 * 10⁴ km = 10 Transaktionen pro Sekunde

Bei 150 km Entfernung kommt man so auf 1000 Transaktionen pro Sekunde.

Aber alles nur in der Theorie - weil in der Praxis noch andere Faktoren das ganze ausbremsen.

Die Frage die sich daraus ergibt:

Will man wirklich synchrone Replikation oder ist asynchrone Replikation ausreichend?

Keine Kommentare:

Kommentar veröffentlichen