Cwinux源码解析(七)

Cwinux源码解析(七)

Cwinux是如何实现框架功能的。使用Cwinux时,需要先继承AppFramework,并实现AppFramework的noticeXXX和onXXX两种类型的函数。本文描述什么是框架,noticeXXX和onXXX是如何实现的。

漫谈复制状态机的几个有趣的问题

漫谈复制状态机的几个有趣的问题
读过Paxos等论文的读者,应该对复制状态机(Replicated State Machine)的概念并不陌生。复制状态机在分布式系统中是一个很简单却很强大的模型,也是一种很有价值的思想。 模型一句话描述就是:多个节点上,从相同的初始状态开始,执行相同的一串命令,产生相同的最终状态。 这里有几个有趣的问题。   复制状态机保持一致是什么意思? 实际上,与其说是一致,其实可以泛化为分布式的两个节点状态存在某种...

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年这篇主要讲是讲数据库的上半部分...

再读GFS论文

再读GFS论文

再读GFS的一些笔记。主要涉及GFS架构、Chunk大小选择的一些折中考量、元数据管理及锁、写数据流程、GFS一致性模型的理解、快照的实现原理、过期失效副本检测等几个问题。

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,要注意隔离复杂度。