首页 > 解决方案 > Amazon Aurora 是否为在从节点上运行的只读事务提供可序列化隔离?

问题描述

根据我阅读 Amazon aurora 文档的理解,即使 Aurora 主节点将 WAL 日志同步写入 6 个存储节点中的 4 个。除非主节点切换,否则 Aurora 从节点仅使用直接从主节点发送的异步日志保持同步。

如果这是真的,我会假设客户端可以向主节点写入并提交一个值,然后立即向其中一个从属节点发送只读查询并观察旧值而不是刚刚写入的最新值.

这意味着它只能在从属设备上支持快照隔离模式。

这似乎是一个很大的限制!我想确保这是正确的。

标签: mysqlamazon-web-servicesisolation-levelamazon-auroratransaction-isolation

解决方案


可序列化的隔离对于集群来说是一个难题。我不知道有谁真正支持它。如果有一个这样做,我不知道我是否愿意接受随之而来的性能影响。

在极光实例上运行以下命令似乎表明仅REPEATABLE-READ支持。

mysql> SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @@GLOBAL.tx_isolation, @@tx_isolation;
+-----------------------+-----------------+
| @@GLOBAL.tx_isolation | @@tx_isolation  |
+-----------------------+-----------------+
| REPEATABLE-READ       | REPEATABLE-READ |
+-----------------------+-----------------+
1 row in set (0.00 sec)
mysql> SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT @@GLOBAL.tx_isolation, @@tx_isolation;
+-----------------------+-----------------+
| @@GLOBAL.tx_isolation | @@tx_isolation  |
+-----------------------+-----------------+
| REPEATABLE-READ       | REPEATABLE-READ |
+-----------------------+-----------------+
1 row in set (0.00 sec)

由于复制滞后的最终一致性;如果您接收实时数据很重要,那么您应该针对主设备进行读取。


推荐阅读