最近看了个有趣的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的故障概率和负载。
首先是一些概念:
节点集合 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
两层...