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。

一个方法修改了一个数据库实体对象。该方法本身不是事务性的,而是从事务性上下文中调用的,事务性上下文会将实体上的任何更改持久保存到数据库中。

看起来它正在回滚更改,但它所做的只是覆盖数据。我的猜测是它刚刚覆盖了数据,所以直到有人试图修改它之前我们只是假设它是正确的数据。