mysql - Amazon Aurora 是否为在从节点上运行的只读事务提供可序列化隔离?
问题描述
根据我阅读 Amazon aurora 文档的理解,即使 Aurora 主节点将 WAL 日志同步写入 6 个存储节点中的 4 个。除非主节点切换,否则 Aurora 从节点仅使用直接从主节点发送的异步日志保持同步。
如果这是真的,我会假设客户端可以向主节点写入并提交一个值,然后立即向其中一个从属节点发送只读查询并观察旧值而不是刚刚写入的最新值.
这意味着它只能在从属设备上支持快照隔离模式。
这似乎是一个很大的限制!我想确保这是正确的。
解决方案
可序列化的隔离对于集群来说是一个难题。我不知道有谁真正支持它。如果有一个这样做,我不知道我是否愿意接受随之而来的性能影响。
在极光实例上运行以下命令似乎表明仅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)
由于复制滞后的最终一致性;如果您接收实时数据很重要,那么您应该针对主设备进行读取。
推荐阅读
- node.js - 如何在反应中显示base64图像?
- python - 由于 User-Agent 问题导致 AIOHTTP 客户端超时
- mobile - SQLite 错误没有这样的表:resco 现场服务移动应用程序中的活动指针
- reactjs - React Hooks 与 React-redux
- rdf - 在 Virtuoso 中批量加载 Wikidata 转储
- javascript - OfficeGen如何设置表格数据文字大小?
- php - Wordpress 图片路径正确,但图片未在网站上显示
- swift - Mapbox GeoCoder --> 如何获取附近的餐馆、酒店、购物中心等
- c# - 如何在边界上画一条直线,将其分成两半
- azure-ad-b2c - List all users of AD B2C