PolarDB 物理复制SMO 同步机制

💡 原文中文,约9500字,阅读约需23分钟。
📝

内容提要

该文章讨论了在mtr中修改多个页面时可能出现的搜索操作错误的问题。通过引入sync_counter机制,可以避免错误,但会导致物理复制效率下降。作者提出了使用smo page queue或LogIndex SMO page queue的方法来解决这个问题,并减少store和restore操作。此外,还讨论了使用LogIndex和bw-tree的方法来解决非smo场景下的冲突问题。最后,作者提出了一些问题和可能的解决方案。

Q&A

sync_counter机制的主要作用是什么?

sync_counter机制主要用于解决在mtr中修改多个页面时可能出现的搜索操作错误问题。

引入sync_counter机制后有什么缺点?

引入sync_counter机制后,物理复制效率下降,并且可能导致频繁的store和restore操作,影响性能。

如何使用SMO page queue来解决问题?

SMO page queue通过传递SMO page ID到RO节点,减少不必要的store和restore操作,从而提高性能。

LogIndex方法是如何工作的?

LogIndex方法通过带上lsn信息来访问指定版本的Page,避免访问到不存在的Page。

bw-tree和LogIndex有什么区别?

bw-tree在内存中保存的是最老版本的Page,而LogIndex则保留最新版本的Page,磁盘中保存最老版本。

在非SMO场景下如何解决冲突问题?

可以使用LogIndex和bw-tree的方法来解决非SMO场景下的冲突问题。

🏷️

标签

➡️

继续阅读