Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Modus „Schreiben in eine beliebige Region“ (keine Primärregion)
Der Schreibmodus „In eine beliebige Region schreiben“, der in der folgenden Abbildung dargestellt wird, ist vollständig aktiv/aktiv und enthält keine Einschränkungen, wo ein Schreibvorgang ausgeführt werden kann. Jede Region kann jederzeit eine Schreibanfrage annehmen. Dies ist der einfachste Modus. Er kann jedoch nur mit einigen Arten von Anwendungen verwendet werden. Dieser Modus ist für alle MRSC-Tabellen geeignet. Er ist auch für MREC-Tabellen geeignet, wenn alle Schreiboperationen idempotent sind. Idempotent bedeutet, dass sie sicher wiederholbar sind, sodass gleichzeitige oder wiederholte Schreibvorgänge in verschiedenen Regionen nicht miteinander in Konflikt geraten, z. B. wenn ein Benutzer seine Kontaktdaten aktualisiert. Es eignet sich auch gut für Datensätze, bei denen es sich ausschließlich um Anfügevorgänge handelt, bei denen es sich bei allen Schreibvorgängen um eindeutige Einfügungen unter einem deterministischen Primärschlüssel handelt, was ein Sonderfall von idempotent ist. Schließlich eignet sich dieser Modus für MREC, wo das Risiko widersprüchlicher Schreiboperationen akzeptabel ist.

Der Modus Schreiben in eine beliebige Region ist die am einfachsten zu implementierende Architektur. Die Weiterleitung ist einfacher, da jede Region jederzeit Schreibziel sein kann. Ein Failover ist einfacher, da bei MRSC-Tabellen die Elemente immer synchronisiert werden und bei MREC-Tabellen alle kürzlich durchgeführten Schreibvorgänge beliebig oft in einer beliebigen sekundären Region wiedergegeben werden können. Wenn möglich, sollten Sie diesen Schreibmodus vorsehen.
Beispielsweise verwenden mehrere Video-Streaming-Dienste globale Tabellen, um Lesezeichen, Rezensionen, Statuskennzeichnungen usw. zu verfolgen. Diese Bereitstellungen verwenden MREC-Tabellen, da sie Replikate benötigen, die auf der ganzen Welt verstreut sind, wobei jedes Replikat Lese- und Schreibvorgänge mit niedriger Latenz ermöglicht. Diese Bereitstellungen können den Modus „Schreiben in jede Region“ verwenden, sofern sie sicherstellen, dass jeder Schreibvorgang idempotent ist. Dies ist der Fall, wenn bei jeder Aktualisierung — z. B. beim Einstellen eines neuen aktuellen Zeitcodes, beim Zuweisen einer neuen Bewertung oder beim Festlegen eines neuen Überwachungsstatus — der neue Status des Benutzers direkt zugewiesen wird und der nächste korrekte Wert für ein Element nicht von seinem aktuellen Wert abhängt. Wenn die Schreibanforderungen des Benutzers zufällig an verschiedene Regionen weitergeleitet werden, bleibt der letzte Schreibvorgang bestehen und der globale Status wird entsprechend der letzten Zuweisung ausgeglichen. Lesevorgänge in diesem Modus werden irgendwann konsistent, und zwar verzögert um den neuesten ReplicationLatency
Wert.
In einem anderen Beispiel verwendet ein Finanzdienstleistungsunternehmen globale Tabellen als Teil eines Systems, um eine laufende Aufstellung der Debitkartenkäufe für jeden Kunden zu führen und die Cashback-Prämien des Kunden zu berechnen. Sie möchten einen RunningBalance
Artikel pro Kunde behalten. Dieser Schreibmodus ist von Natur aus nicht idempotent, da bei eingehenden Transaktionen der Saldo geändert wird, indem ein ADD
Ausdruck verwendet wird, bei dem der neue korrekte Wert vom aktuellen Wert abhängt. Durch die Verwendung von MRSC-Tabellen können sie immer noch in jede Region schreiben, da jeder ADD
Aufruf immer mit dem allerneuesten Wert des Elements ausgeführt wird.
Ein drittes Beispiel betrifft ein Unternehmen, das Online-Werbeplatzierungsdienste anbietet. Dieses Unternehmen entschied, dass ein geringes Datenverlustrisiko akzeptabel wäre, um die Designvereinfachungen des Modus „Schreiben in eine beliebige Region“ zu erreichen. Wenn sie Anzeigen schalten, haben sie nur wenige Millisekunden Zeit, um genügend Metadaten abzurufen, um zu bestimmen, welche Anzeige geschaltet werden soll, und dann die Anzeigenimpressionen aufzuzeichnen, damit sie dieselbe Anzeige nicht bald wiederholen. Sie verwenden globale Tabellen, um sowohl Lesevorgänge mit niedriger Latenz für Endbenutzer auf der ganzen Welt als auch Schreibvorgänge mit niedriger Latenz durchzuführen. Sie zeichnen alle Anzeigenimpressionen für einen Nutzer in einem einzigen Element auf, das als wachsende Liste dargestellt wird. Sie verwenden ein Element, anstatt es an eine Elementsammlung anzuhängen, sodass sie ältere Anzeigenimpressionen als Teil jedes Schreibvorgangs entfernen können, ohne für einen Löschvorgang bezahlen zu müssen. Dieser Schreibvorgang ist nicht idempotent. Wenn derselbe Endnutzer Anzeigen sieht, die in mehreren Regionen ungefähr zur gleichen Zeit geschaltet werden, besteht die Möglichkeit, dass ein Schreibvorgang für eine Anzeigenimpression einen anderen überschreibt. Das Risiko besteht darin, dass ein Nutzer eine Anzeige gelegentlich wiederholt sieht. Sie haben entschieden, dass dies akzeptabel ist.