DynamoDB: Bedingte Schreibvorgänge im Vergleich zum CAP-Theorem

Bei Verwendung von DynamoDB versuchen zwei unabhängige Clients, unter Verwendung von bedingten Schreibvorgängen gleichzeitig auf dasselbe Element zu schreiben und den Wert zu ändern, auf den die Bedingung verweist. Offensichtlich ist einer dieser Schreibvorgänge zum Scheitern verurteilt, wenn die Bedingungsprüfung durchgeführt wird. kein Problem.

Angenommen, während des Schreibvorgangs passiert etwas Schlimmes und einige der verschiedenen DynamoDB-Knoten fallen aus oder verlieren die Konnektivität untereinander. Was passiert mit meinen Schreibvorgängen?

Werden sie beide blockieren oder scheitern (Opfer von "A" im GAP-Theorem)? Werden sie beide Erfolg haben und erst später stellt sich heraus, dass einer von ihnen tatsächlich ignoriert wurde (Opfer von "C")? Oder funktionieren beide irgendwie richtig, weil im DynamoDB-System etwas Magisches (konsistentes Hashing?) Vor sich geht?

Es scheint nur ein wirklich schweres Problem zu sein, aber ich kann nichts finden, das die Möglichkeit von Verfügbarkeitsproblemen mit bedingten Schreibvorgängen diskutiert (anders als zum Beispiel bei konsistenten Lesevorgängen, bei denen die Möglichkeit einer Verfügbarkeitsreduzierung ausdrücklich angegeben ist).

Antworten auf die Frage(1)

Ihre Antwort auf die Frage