2021.11.21
这两天又在看CRDB的论文和架构文档,似乎对write pipeline和parallel commits的理解加深了一点。我觉得看了这些东西,还是要自己输出一遍才有可能把知识内化。
2021.06.17
去年4月开始了解TIDB,虽然没有仔细看它的文档和博客,但由于看了很多CRDB的文档,所以现在看TIDB的文档感觉相对容易一点。估计后面看和它相关的论文会困难很多。
2021.06.14
现在看CRDB的代码还为时尚早。从去年到现在,已经把BLOG里和设计相关的内容看了一遍。还有架构文档看了几遍。需要花时间看GITHUB上的设计文档,还有官方的使用手册。另外,需要通过各种工具对程序进行观察。假如有时间的话,我觉得可以开始研究TIDB了,方法和CRDB的类似。这样就可以进行对比学习。
2021.05.16
匆匆的把《MySQL技术内幕Innodb存储引擎》看了一遍,感觉总体印象还是有点模糊。接下来将尝试对Innodb进行调试和阅读源码。
2021.05.14
今天在看《MySQL技术内幕Innodb存储引擎》里关于丢失更新的部分,个人觉得关于锁的部分,这本书讲得不是很完整。参考了A beginner’s guide to database locking and the lost update phenomena里的解决方法:调整隔离级别为可串行化,使用select for update,在每一行中加入一个version字段(应用层实现乐观锁)
2021.04.19
sql的查询优化,真的非常抽象,现在看得云里雾里的。
2021.04.18
之前对paxos的算法过程一直一知半解,昨天在youtube上看了几个讲解,感觉基本了解它的算法过程了:Paxos in Pictures: Lamport's Distributed Consensus Algorithm, The Paxos Algorithm, L9: Paxos Simplified
2021.04.16
今天把《MySQL性能调优与架构设计》看完了,条理非常清晰,即使是12年前的书,依然非常有价值。特意在知乎上关注了作者简朝阳。对于查询优化部分,印象非常深刻,这是我以前想了解但一直没能做的事情。
2021.04.15
这几天在看《MySQL性能调优与架构设计》,虽然是12年前的书,但讲的很多东西都没过时。
2021.04.11
今天花了点时间查了一下kafka的消息投递语义(这个翻译可能不准确)。之前一直听说at-most-once,at-least-once,exactly-once这样的术语,总是觉得自己没有完全弄懂。通过google发现linkedin上有博客讲得很清楚:Kafka Consumer Delivery Semantics, Kafka producer delivery semantics。通过kafka本身可以实现producer的三种语义,consumer可以实现at-most-once和at-least-once,要实现exactly-once的话,就需要引入kv store或关系数据库来进行去重。
2021.04.05
昨天读了HLC的论文:《Logical Physical Clocks and Consistent Snapshots in Globally Distributed Databases》,同时也看了一些关于HLC的解读。似乎基本明白它的算法过程。
这个星期用零散的时间看了《Go语言编程入门与实战技巧》,把基本的用法温习了一遍,现在用go来刷题完全没有压力。但后面还得花时间研究它的高级特性。不得不说go既简洁又高效。
2021.03.27
这两天又读了一下CRDB去年发的论文:《CockroachDB: The Resilient Geo-Distributed SQL Database》,似乎还不能领会超过一半。另外,刚开始看《数据库查询优化器的艺术》,一直觉得SQL的处理这块很抽象,不知道什么时候才能啃得这块骨头。
2021.03.13
好久没有记流水账了,最近只是断断续续的读了一些CRDB的博客。因为准备面试的原因,了解了一些和paxos相关的内容。
2021.01.17
昨天读了CRDB的一篇博客:Living Without Atomic Clocks,里面讲了Google Spanner和CRDB是如何解决时钟同步问题的。Spanner通过GPS时钟解决同步问题,这里说的解决并不是绝对同步。分布式环境下不存在绝对的时间同步。但它把不同步程度限制在7ms内。而常用的NTP,它的最大时间偏移一般在100ms~250ms间。CRDB的节点在发现时钟严重不同步时,会自己关闭。这篇文章重点讲了CRDB如何在存在时钟偏移的情况下选择事务的commit timestamp。
今天读了另一篇CRDB的博客:CockroachDB's Consistency Model,这是一篇很长的文章。文章讲了CRDB的consistency model介于serializability和strict serializability之间。理论很多,感觉还没有完全消化。后面应该还要多看几次。
2021.01.02
这几天重读CockroachDB的Architecture Overview,能理解的东西多了一点,后面估计还得读多几次。
2020.12.20
数据库的使用有一定的年限了,今年开始花时间在研习数据库的实现上。实现数据库需要储备大量的知识,因此今年主要是看书和文档,一时半会也没有什么高质量的输出。所以打算记一下流水账。实践是检验真理的唯一标准。我选择了CockroachDB和TiDB作为数据库研习的实践项目,希望在研习的过程中能成为这两个开源项目的贡献者。
2020.12.26
今天重温了一下Bloom Filter。以前收藏的一篇博客讲得很好:大数据算法——布隆过滤器。今天又搜索到一篇讲得不错的:Bloom filters explained
另外,重读了leveldb的文档。leveldb的文档非常简洁,每次都不能掌握其全貌。好在够简短,可以读完一遍又一遍。
2020.12.27
读了《MySQL性能调优与架构设计》第1章,这是一本年代有点久远的书了。
网友评论