代码整洁之道 读书笔记

代码整洁之道 读书笔记
Chapter 1 整洁代码 Lebanc's Law: later equals never. Chapter 2 有意义的命名 Chapter 3 函数 每个函数一个抽象层级 Chapter 4 注释 Chapter 5 格式 Chapter 6 对象和数据结构 Chapter 7 错误处理 Chapter 8 边界 Chapter 9 单元测试 Chapter 10 类 Chapter 11 系统 Chapter 12 迭进 Chapter 13 ...

人月神话 读书笔记

人月神话 读书笔记
最近听到一个度量软件复杂度的概念,叫decoupling level,想起来以前买过一本《人月神话》,这两天把它从书堆里面翻出来了。虽然书有300多页,不过里面大部分观点,我想从业者应该都认可,因此书里的新东西并不多。 Chapter 1: 焦油坑 职业的乐趣:工作的创造性;产品有价值;零件正常运转的魅力;持续学习的快乐。 职业的苦恼:追求完美;他人设定目标;寻找bug是痛苦的。 Chapter 2: 人月神话 在很多项...

Anna KVS中的Lattice是什么?

Anna KVS中的Lattice是什么?

Anna KVS官网对Anna的特性总结得非常到位:1. Crazy Fast, 2. Super-Scalable, 3. Flexibly Consistent。这里只关注Flexibly Consistent这一项,讲讲Anna是怎么实现灵活的consistency的。这篇博客算是论文导读,详细内容读者仍要仔细阅读论文原文 Anna: A KVS For Any Scale。
Lattice是什么,基于格怎么实现灵活的多种一致性,漫谈Consistency和Isolation Level。

蓝眼睛谜题

蓝眼睛谜题
陶哲轩的博客上的一个puzzle。 地址在这里:https://terrytao.wordpress.com/2008/02/05/the-blue-eyed-islanders-puzzle/ 。你可以直接跳过去读原文。 这是发生在一个在虚构的岛上的故事,不过因为这里面的逻辑本身就非常微妙,所以故事描述的时候会稍显啰嗦,我直接摘下来: There is an island upon which a tribe resides. The tribe consists of 1000 people, with various eye colours. Yet, their ...

Spanner: Becoming a SQL System论文阅读笔记

Spanner: Becoming a SQL System论文阅读笔记
  继2012年在OSDI年发表了Spanner论文《Spanner: Google’s Globally-Distributed Database》之后,Google在SIGMODE'17上发表了第二篇关于Spanner的论文《Spanner: Becoming a SQL System》。从整个的数据库系统角度看,2012年那篇讲是的Spanner的下半部分Storage Engine的一些feature:数据自动分区和全球部署、多副本Paxos高可用、支持外部一致性的分布式事务。2017年这篇主要讲是讲数据库的上半部分...

Deep Class

Deep Class

最近看了个有趣的talk:"A Philosophy of Software Design" by John Ousterhout。
如果要选一个概念,贯穿整个计算机系统,应该选哪个呢?
John Ousterhout问过Donald Knuth,Knuth给的答案是layers of abstraction。
John Ousterhout自己觉得是problem decomposition,要注意隔离复杂度。

以史为鉴:数据模型变迁史

以史为鉴:数据模型变迁史
这两天看了篇数据模型的论文,What Goes Around Comes Around。这篇论文是2005年Stonebraker和Hellerstein两位泰斗写的,讲的是数据库的数据模型35年的变迁历史,另外论文还总结了一些经验。 这是一个非常有趣的话题,能够让我们更多地去从市场和产品角度看问题,尤其是考虑到不断迭代的甚至是越来越快地迭代的数据库技术。   数据模型Data Model的9个历史阶段: Hierarchical(IMS): 1960年代末到197...

Quorum System的故障概率和负载

Quorum System的故障概率和负载
最近读到一个有趣的话题:Quorum System的故障概率和负载。   首先是一些概念: 节点集合 V=\{v_1, v_2, .., v_n\} Quorum  Q\subseteq V Quorum System \mathcal{S} \subseteq 2^V,且Q_1 \cap Q2 \neq \emptyset, \forall Q1,Q2 \in\mathcal{S} 故障概率Failure Probability: 假设每个节点故障概率为p,Quorum System  \mathcal{S}的故障概率记为F_p( \mathcal{S})等于每个Quorum都至少有一个节点发...

数据库系统组件

数据库系统组件
  读了Architecture of a Database System这篇经典论文,挑了些不太熟悉的内容做了笔记。 论文内容基本上谈不上是在讲架构吧,基本上就是罗列了下有哪些组件,而且内容基本上针对原来传统数据库的。   主要包括几个组件: Client Communication Manager Process Manager Relational Query Processor Transaction Storage Manager Shared Components and Utilities Client Session Manager 两层...