读《DDIA》 log replication 过程思考

44 阅读2分钟

《DDIA》之前在网络上看不少人推荐过,前年也就看过一遍,只不过是走马观花粗读一遍,稍微记住了些概念,收获并不大,最近半年的工作涉及数据表报相关,又有兴趣去在读一遍,打算细读,弄懂其中的一些重要概念,放慢脚步,扩大收益。在为了读懂书中 第五章 - 复制 的过程中,有些感悟,来和大家分享下,欢迎指正。

整个过程分为三个阶段:看山不是山;看山就是山;看山还是山,知道此山不简单。

看山不是山

第二遍细看时,看到第五章就卡住了,什么是 Leader 和 Follower,什么日志复制,还分同步异步。这些字都能看得懂,就是不知道干嘛,为啥这么干,更别提更复杂点的多Leaders 复制和无 Leader 复制了。书上写了,看不懂咋办,是自己太笨吗,可能是,得挽救啊。我觉得是因为作者得level高我太多,写书的时候没有太顾及我这种菜鸟的理解能力。然后我去查维基百科,依然不是太明白,因为还是一些概念性的陈述,没有解释 Why。

看山就是山

在反复看第五章时,Write-ahead log 这个词勾起了我一丝回忆,好像在《高性能MySQL》看到过,于是去翻了翻这本书,发现 MySQL 的主从复制机制和《DDIA》中描述的很相似,或者说 《DDIA》举例介绍了 MySQL 的复制流程,只是写的没有《高性能MySQL》细致。于是我找到了突破口,我去看看各个分布式数据库是怎样做复制的,那理解起来是不是更好了。于是我看 redis 、es 的数据复制机制。看完之后,有种拨开云雾见真山的感觉。这个时候,我对 log replication 有了认同感,可以说是在宏观实现上找到了例子,这个时候能看见整个山的大概形状了,但是只是在应用上有了认同感,log replication 的细节还不知道,就像还只是在外面看,没走进大山,不知道山里的情况。

看山还是山,知道此山不简单。