Amazon Aurora PostgreSQL 新增写透缓存以提升逻辑复制性能

Amazon Aurora PostgreSQL 引入逻辑复制写穿透缓存

Amazon Aurora PostgreSQL 兼容数据库最近引入了逻辑复制写穿透缓存,旨在减少逻辑解码期间的存储 I/O 操作。这一新功能显著降低了复制延迟,改善了读取 I/O 和事务追赶时间。

主要优势

  1. 降低复制延迟:默认配置下,写穿透缓存比上一版本减少了 44% 的复制延迟。如果将缓存大小增加到 2 GB,复制延迟可进一步减少 59%。
  2. 保持高事务处理能力:该功能在显著提升性能的同时,未导致每秒事务处理量(TPS)的下降。
  3. 减少 CPU 开销:通过优化逻辑复制的 CPU 使用,进一步降低了延迟。

工作原理

逻辑复制采用发布/订阅模式,将预写日志(WAL)解码为可被订阅者消费的记录流。写穿透缓存在 Aurora PostgreSQL 集群中,将 WAL 记录同时写入 Aurora 存储和 WAL 缓存。如果缓存已满(由 rds.logical_wal_cache 参数定义),则移除最旧的记录并追加新记录(遵循 FIFO 队列原则)。

应用场景

逻辑复制可用于多种场景,例如:

  • 将数据导出到 AWS 托管服务,如 Database Migration ServiceKinesis
  • 在云迁移项目中,将数据复制到外部数据库。

缓存管理函数

Aurora 提供了三个函数来评估和管理写穿透缓存:

  1. aurora_stat_logical_wal_cache():返回每个插槽的缓存使用信息。
  2. aurora_stat_reset_wal_cache():重置写入实例的指标计数器。
  3. get_oldest_wal_cache_ptr():返回逻辑 WAL 缓存中最旧的页面。

默认启用版本

写穿透缓存默认在以下 Aurora PostgreSQL 版本中启用:

  • 11.17
  • 12.12
  • 13.8
  • 14.5

版本支持变更

AWS 计划于 2024 年 1 月停止对 Aurora PostgreSQL 11.x 版本的支持。由于未提供基于逻辑复制的原生迁移流程,这一决定引发了社区的担忧,特别是关于如何在不中断服务的情况下完成迁移的问题。

总结

Amazon Aurora PostgreSQL 的逻辑复制写穿透缓存通过优化存储 I/O 和降低复制延迟,显著提升了数据库性能。该功能在保持高 TPS 的同时,提供了灵活的缓存管理工具,适用于多种数据迁移和复制场景。然而,即将停止支持 11.x 版本的决定需要用户提前规划迁移策略。

阅读 64
0 条评论