分类 论文阅读 下的文章

worse is better 文章

两种设计思想:

  • “正确” 的设计 : 优先用户接口的简洁性。正确性,一致性,完整性 优于 实现简洁性
  • ”worse-is-better“ 设计:实现简洁性优于一切,为此可以牺牲一致性 和 完整性

"worse is better" 的设计,例如 C 和 unix,可以满足 50%-80% 的需求 ,由于实现简洁因此便于移植。因此 C 和 unix 迅速占领了 50% 的用户。作者称 C 和 unix 是 ”终极电脑病毒“。

在此后人们会有更强的动力去完善 ”worse is better“ 的设计,最终将此类系统完善到 90%,使其接近 ”正确“ 的设计。

而一个 ”正确“ 的系统,可能需要花费 80% 的时间实现 20% 的功能,因此需要花费大量时间开发,同时可能只能在最复杂的设备上得到满意的结果。

发表于 sosp2003,经典系统工作 GFS

GFS 包括单个 master 节点。若干 chunkserver,被多个 client 同时访问

将文件分为大小固定的 chunk,每个 chunk 有一个全局唯一的 64位,由 master 在 chunk 创建时分配。
chunkserver 在本地以 linux 文件存储 chunk。每个 chunk 默认存储三个副本。

一篇关于 GPU 虚拟化 的 survey 文章,发表于 ACM Computing Surveys

Background 里面一段比较有意思的话:

On the contrary, the design of conventional processors is optimized
for reducing the execution time of sequential code on each core, thus adding complexity
to each core at the cost of offering fewer cores in the processor package. Conventional
processors typically use sophisticated control logic and large cache memories to efficiently
deal with conditional branches, pipeline stalls, and poor data locality.

传统处理器的目标是尽可能加速每个核心的串行执行时间,因此每个核心有大量处理分支预测,流水线延迟,data locality 相关的资源。代价是核心数量较少