使用 DynamoDB,两个独立的客户端尝试同时写入同一个项目,使用条件写入,并尝试更改条件引用的值。显然,这些写入之一注定会因条件检查而失败;没关系。
假设在写入操作期间,发生了一些不好的事情,并且一些不同的 DynamoDB 节点发生故障或失去彼此的连接。我的写操作会发生什么?
它们会阻塞还是失败(牺牲 CAP 定理中的“A”)?他们会不会似乎都成功了,只是后来才发现其中一个实际上被忽略了(牺牲“C”)?或者它们是否会由于 DynamoDB 系统中发生的一些魔法(一致的哈希?)而以某种方式正常工作?
这似乎是一个非常困难的问题,但我找不到任何讨论条件写入可用性问题的可能性(例如,与一致性读取不同,其中可用性降低的可能性是明确的)。