Wie wird die State-Synchronisation in einer Multi-Region-Aktive-Aktive-Konfiguration von Azure Cosmos DB unter Berücksichtigung von Conflict Resolution Policies gelöst?
In einer Multi-Region-Aktive-Aktive-Konfiguration synchronisiert Azure Cosmos DB den State über eine Multi-Master-Replikation. Schreibvorgänge werden lokal in der jeweiligen Region ausgeführt und anschließend asynchron an alle anderen konfigurierten Regionen propagiert. Da dies zu Konflikten führen kann, wenn dasselbe Dokument zeitgleich in verschiedenen Regionen aktualisiert wird, kommen Conflict Resolution Policies zum Einsatz.
Wir unterscheiden hierbei primär zwei Ansätze zur Konfliktlösung:
- Last Write Wins (LWW): Dies ist die Standardkonfiguration. Das System nutzt eine numerische Eigenschaft (standardmäßig
_ts), um den neuesten Schreibvorgang zu identifizieren. Der Datensatz mit dem höchsten Zeitstempel überschreibt alle anderen Versionen. - Custom Conflict Resolution: Hierbei wird eine benutzerdefinierte Stored Procedure hinterlegt. Diese Logik wird aufgerufen, sobald ein Konflikt erkannt wird, und erlaubt es, Datenfelder zu mergen oder spezifische Business-Regeln anzuwenden, um den finalen State zu bestimmen.
Die technische Umsetzung lässt sich wie folgt zusammenfassen:
| Policy | Steuerungsmechanismus | Anwendungsfall |
|---|---|---|
| Last Write Wins (LWW) | System-Zeitstempel (_ts) | Einfache Überschreibungen, maximale Performance |
| Custom | JavaScript Stored Procedure | Komplexe Geschäftslogik, Datenzusammenführung |
Zusätzlich bietet Cosmos DB einen Conflict Feed. Dokumente, die über eine Custom Policy nicht automatisch gelöst werden konnten, landen in diesem Feed und können manuell oder über externe Prozesse bereinigt werden. Diese Architektur ist ein zentraler Bestandteil moderner Data Engineering Strategien, um globale Latenzen zu minimieren und eine hohe Verfügbarkeit zu gewährleisten.
Die Wahl der Policy beeinflusst direkt die Konsistenzgarantien. Während LWW eine schnelle Lösung bietet, führt sie bei hoher Schreiblast auf dasselbe Dokument zu Datenverlusten (Lost Updates), da ältere Schreibvorgänge ohne Prüfung verworfen werden. Custom Policies hingegen erhöhen die Rechenlast auf dem Server, sichern jedoch die Datenintegrität durch eine gezielte Zusammenführung der Zustände.
Wir empfehlen für geschäftskritische Anwendungen konsequent den Einsatz von Custom Conflict Resolution Policies, da LWW in verteilten Systemen zu unvorhersehbaren Datenverlusten führt, die im Nachgang nicht mehr rekonstruierbar sind.
Andere Fragen in dieser Kategorie
Wie wird die Performance von Microsoft Teams in VDI-Umgebungen durch die technische Konfiguration von Media Optimization und UDP-Port-Freischaltungen maximiert?
Wie wird die technische Implementierung von Microsoft Purview Information Protection in Kombination mit Azure Information Protection (AIP) für automatisierte Labeling-Workflows orchestriert?
Andere Nutzer suchten auch nach:
Diese Fragen könnten Sie ebenfalls interessieren.
Welche Auswirkungen hat die Aktivierung von TLS 1.3 auf die Latenzzeiten von Cloud-nativen Application Load Balancern im Vergleich zu TLS 1.2?
cloud-digital-workplaceWelche Konfigurationen von Intune App Protection Policies (MAM) gewährleisten die Datentrennung auf unmanaged Devices ohne vollständige MDM-Registrierung?
cloud-digital-workplaceWelche Konfigurationsoptimierungen für die JVM-Garbage-Collection sind für hochperformante Microservices in Kubernetes-Containern unter Berücksichtigung von Cgroup-Limits notwendig?
cloud-digital-workplaceWelche Konfigurationsparameter sind entscheidend für die Optimierung von FSLogix Cloud Cache in Azure Virtual Desktop bei global verteilten User-Profilen?
cloud-digital-workplaceWelche Konfigurationsparameter von Azure App Service Environment (ASE) v3 sind entscheidend für die Isolation von Netzwerkverkehr in hochregulierten Branchen?