【发布时间】:2022-10-13 03:36:56
【问题描述】:
我们有一个设置了读取池的 AlloyDB 实例。在我们的应用程序中,我们将数据库查询路由到主节点或读取池,具体取决于操作本身是否为 SELECT。这一直运作良好;但是,我们偶尔会遇到似乎是更改未复制到读取池的结果的错误。具体来说:
- 我们使用到主节点的连接插入一条记录,并获取插入记录的主键。
- 我们尝试使用读取池使用主键获取插入的记录。
- 后一个查询返回 0 行。
- 我们可以在事后检查数据库并查看记录确实存在。
我的理解是,副本会等到处理完任何相关的 WAL 日志后再处理查询,以确保它们的状态始终与主节点同步。是否存在读取池状态可能过时或与主节点不同步的情况?我们想了解什么可以解释我们所看到的行为以及我们可以做些什么来补救它。
【问题讨论】: