AWS RDS 显示多 AZ 实例的过时数据 (MySQL)
AWS RDS showing outdated data for Multiple AZ instance (MySQL)
我的 RDS 实例暂时显示过时的数据。
我 运行 对我的数据进行 SELECT
查询。然后我 运行 查询从 table 中删除数据,另一个查询向 table 添加新数据。我 运行 一个 SELECT
查询,它显示的是旧数据。
我 运行 再次查询 SELECT
然后它终于向我展示了新数据。
为什么会这样?我在本地或我的普通非 AZ 实例上从未遇到过这些问题。有没有办法避免这种情况发生?
我是运行MySQL5.6.23
根据 Amazon RDS Multi-AZ FAQs,这可能是预料之中的。
具体来说:
You may observe elevated latencies relative to a standard DB Instance deployment in a single Availability Zone as a result of the synchronous data replication performed on your behalf.
当然,这取决于您观察到的延迟频率以及您看到的增加的延迟是多少,但如果问题经常重现,可以选择联系 AWS 支持。
尽管这很尴尬……这是我们 Spring Java 代码中的一个问题, 不是 AWS。
一个方法修改了一个数据库实体对象。该方法本身不是事务性的,而是从事务性上下文中调用的,事务性上下文会将实体上的任何更改持久保存到数据库中。
看起来它正在回滚更改,但它所做的只是覆盖数据。我的猜测是它刚刚覆盖了数据,所以直到有人试图修改它之前我们只是假设它是正确的数据。
我的 RDS 实例暂时显示过时的数据。
我 运行 对我的数据进行 SELECT
查询。然后我 运行 查询从 table 中删除数据,另一个查询向 table 添加新数据。我 运行 一个 SELECT
查询,它显示的是旧数据。
我 运行 再次查询 SELECT
然后它终于向我展示了新数据。
为什么会这样?我在本地或我的普通非 AZ 实例上从未遇到过这些问题。有没有办法避免这种情况发生?
我是运行MySQL5.6.23
根据 Amazon RDS Multi-AZ FAQs,这可能是预料之中的。
具体来说:
You may observe elevated latencies relative to a standard DB Instance deployment in a single Availability Zone as a result of the synchronous data replication performed on your behalf.
当然,这取决于您观察到的延迟频率以及您看到的增加的延迟是多少,但如果问题经常重现,可以选择联系 AWS 支持。
尽管这很尴尬……这是我们 Spring Java 代码中的一个问题, 不是 AWS。
一个方法修改了一个数据库实体对象。该方法本身不是事务性的,而是从事务性上下文中调用的,事务性上下文会将实体上的任何更改持久保存到数据库中。
看起来它正在回滚更改,但它所做的只是覆盖数据。我的猜测是它刚刚覆盖了数据,所以直到有人试图修改它之前我们只是假设它是正确的数据。