根据我阅读amazonaurora文档的理解,即使aurora主节点同步地将wal日志写入6个存储节点中的4个。除非有主节点的切换,否则aurora slave只能通过直接从主节点进行异步日志传送来保持同步。
如果这是真的,我会假设客户机可以将一个值写入并提交到主节点,然后立即向其中一个从节点发送一个只读查询,并观察旧值,而不是刚刚写入的最新值。
这意味着它只能在从属服务器上支持快照隔离模式。
这似乎是一个很大的限制!我想确定这是正确的。
根据我阅读amazonaurora文档的理解,即使aurora主节点同步地将wal日志写入6个存储节点中的4个。除非有主节点的切换,否则aurora slave只能通过直接从主节点进行异步日志传送来保持同步。
如果这是真的,我会假设客户机可以将一个值写入并提交到主节点,然后立即向其中一个从节点发送一个只读查询,并观察旧值,而不是刚刚写入的最新值。
这意味着它只能在从属服务器上支持快照隔离模式。
这似乎是一个很大的限制!我想确定这是正确的。
2条答案
按热度按时间vyu0f0g11#
相对于非aurora读取副本,aurora的副本延迟非常小,但仍然是一个非零值,您可以使用cloudwatch metric来监视它
AuroraBinlogReplicaLag
以及AuroraReplicaLag
-更广泛地记录在https://docs.aws.amazon.com/amazonrds/latest/aurorauserguide/aurora.monitoring.html. 针对您的问题,aurora不会同步写入存储的所有6个拷贝—只有4个。有关此存储系统如何工作的4部分超级深入博客,请访问https://aws.amazon.com/blogs/database/amazon-aurora-under-the-hood-quorum-and-correlated-failure,我鼓励大家去读。您还可以阅读更多有关aurora复制的信息,网址为https://docs.aws.amazon.com/amazonrds/latest/aurorauserguide/aurora.replication.html. 但是史蒂夫布佐纳斯是正确的-如果你需要保证读后写SERIALIZABLE
读取,然后需要从writer示例终结点读取:https://docs.aws.amazon.com/amazonrds/latest/aurorauserguide/aurora.overview.endpoints.htmlpgx2nnw82#
可串行化隔离对于集群来说是一个难题。我不知道有谁真正支持它。如果真的有人这么做了,我不知道我是否愿意接受随之而来的性能影响。
在aurora示例上运行以下命令似乎表明
REPEATABLE-READ
支持。由于复制延迟的最终一致性;如果接收实时数据很重要,则应对照主数据进行读取。