← Den Heimserver zerlegen

Zustandsauflösung über Machtstufen

Wie Matrix entscheidet, welcher Zustand gilt, wenn zwei Zweige sich widersprechen.

Laufen zwei Zweige des Raumgraphen auseinander, muss bestimmt werden, welcher Zustand gilt. Das Verfahren sortiert zunächst die steuernden Ereignisse — Machtstufen, Beitrittsregeln, Sperren — in einer rückwärts topologischen Ordnung über die Kette der Autorisierungsereignisse und wendet sie an; danach folgen die übrigen Zustandsereignisse nach den so festgelegten Machtstufen. Bei Gleichstand entscheidet zuerst die höchste Machtstufe, dann der ältere Zeitstempel, zuletzt die Ereigniskennung in alphabetischer Reihenfolge. Das ist deterministisch, aber es ist das komplexeste Stück der Spezifikation und schwer unabhängig korrekt umzusetzen. Der Gegenentwurf vermeidet diese Klasse von Problemen, indem er Konflikte durch die Wahl der Datentypen gar nicht erst entstehen lässt — und Rechte aus dem replizierten Zustand heraushält.

Quelle

Geprüft gegen die veröffentlichte Matrix-Dokumentation: https://matrix.org/docs/older/stateres-v2/