RocksDB 是怎么工作的:一份 LSM-Tree 的极简笔记
准备面试的时候,我花了点时间,把 RocksDB 的工作原理从头到尾学了一遍——它的存储引擎到底是怎么设计的,数据是怎么写进去、又怎么读出来的。RocksDB(以及它背后的 LSM-Tree)是那种很多人听过、但真要讲清楚就容易卡壳的东西,我自己以前也是。等真的搞懂了,就把里面的核心思路整理成这份笔记,分享给同样想弄明白它的人。 ...
准备面试的时候,我花了点时间,把 RocksDB 的工作原理从头到尾学了一遍——它的存储引擎到底是怎么设计的,数据是怎么写进去、又怎么读出来的。RocksDB(以及它背后的 LSM-Tree)是那种很多人听过、但真要讲清楚就容易卡壳的东西,我自己以前也是。等真的搞懂了,就把里面的核心思路整理成这份笔记,分享给同样想弄明白它的人。 ...
最近在准备 coding 面试,把排序算法又从头捋了一遍。捋的过程里我有点被自己吓到:很多东西五年前我是真的记得的,比如快排的 partition 到底怎么写、为什么会退化,现在却要愣一下才能想起来。等翻到非比较排序那一块——计数排序、基数排序、桶排序——我发现那已经基本是一片空白了。 ...
前段时间我连续看到了几个很火的人格测试项目。 一个是大家已经很熟悉的 MBTI 风格网站,比如 16personalities,整体做得特别完整,看起来很像某种严肃的人格测评产品。另一个是像 SBTI 这种更抽象、更互联网、更适合在社交媒体上传来传去的测试。除此之外,我还看到了一个程序员版的脑洞来源,比如 B 站上有人在玩“程序员 MBTI”的梗,也看了像 cbti-test 这种把测试做成纯前端小产品的项目。 ...
最近我看了不少个人网站,越看越觉得这类站点很有意思。 它们不一定都追求同一种风格,有些非常克制,有些会在交互上放得很开,但共同点是都很有“这个人自己的味道”。我把其中一些自己很喜欢的网站记在这里,也当作以后做自己网站时的一份灵感收藏。 ...
这件事说白了,其实就是“为了买一盘醋,包了一顿饺子”。 之前我碰到了一个特别冷门、也比较难解决的 Bug。Stack Overflow 和 Google 上都翻不出几条真正有用的东西。最后还是硬靠自己一点一点死磕,才终于把问题解决。 ...
之前我们碰到过一个特别有意思的 customer issue。客户那边一用 pg_dump 生成 backup file,任务跑着跑着就会直接报错: pg_dump: error: could not open output file: No space left on device 刚看到这个报错的时候,我心里其实是很放松的。因为这类问题看起来太像标准题了,无非就是磁盘不够大,扩容一下就行。 ...