PolarDB 物理复制刷脏约束问题和解决

💡 原文中文,约2900字,阅读约需7分钟。
📝

内容提要

本文讨论了物理复制中的刷脏约束问题及其解决方案,包括LogIndex和copy page机制、多版本和Aurora引擎。热点页是该问题的主要原因。

🎯

关键要点

  • 物理复制中的刷脏约束问题导致ro节点无法恢复。
  • 热点页是导致刷脏约束的主要原因。
  • 当rw节点的最老页面超过parse buffer大小时,死锁形成。
  • copy_page机制在刷脏时无效,需强行刷脏。
  • 开启多版本LogIndex可以规避刷脏约束问题。
  • LogIndex允许ro节点丢弃parse buffer,避免崩溃。
  • 热点页场景是无法恢复的,且不一定是用户修改的页面。
  • IO延迟影响redo和page的推进速度,导致刷脏约束问题。
  • 多版本和Aurora通过去掉约束2解决了parse buffer满的问题。
  • Aurora可以丢弃buffer pool中的页面,避免脏页积累。
➡️

继续阅读