Amazon RDS for PostgreSQL 17.4
a year ago
- #Amazon RDS
- #PostgreSQL
- #Database Isolation
- PostgreSQL采用MVCC实现事务隔离,其中'读未提交'和'读已提交'实际均为读已提交级别,'可重复读'提供快照隔离,而'可序列化'确保真正的可序列化隔离。
- Amazon RDS for PostgreSQL作为托管服务,自动处理实例配置、复制和备份等任务,其多可用区部署通过同步复制实现高容错能力。
- RDS提供主节点与只读节点端点:主节点支持所有隔离级别,但从节点不支持可序列化隔离,其最强一致性级别仅限快照隔离。
- 测试采用适配Jepsen框架的工作负载,针对RDS集群执行整数列表事务操作,通过数据流依赖关系检测隔离异常。
- Amazon RDS for PostgreSQL在所有测试版本(13.15至17.4)中均出现违反快照隔离的G非相邻循环异常,包括长分叉异常。
- 这些异常表明RDS可能提供的是并行快照隔离(弱于单节点PostgreSQL的强快照隔离),可能影响事务一致性。
- 建议用户审查存在长分叉风险的事务结构,或将安全性关键操作限制在主节点端点以规避异常。
- Jepsen的研究结论属于实验性质,虽能证明缺陷但无法验证绝对正确性,且该独立分析未收取任何形式补偿。