1. 谈谈理论与实践

    一晃之间已经工作很多年了,参与了很多项目,也旁观了很多项目。有的做成了,有的做黄了,有的做畸形了,还有的一遍一遍地重构难产了。后来细想,失败的项目多归因于理论不足。理论知识对工程师至关重要。

    2018/11/18 program

  2. 探究golang数据竞态检测器

    _

    2018/11/15 go

  3. 分布式系统中的 lease(租约)机制

    编:lease还是非常容易理解的一个概念,但是为了不全知识地图,还是有必要写一下。

    2018/10/29 distributed-programming

  4. 使用PBFT和Vector Clock解决区块链时序问题

    背景 如果用区块链来记账,就会涉及到一个分布式时序的问题。当交易在不同区块时,我们很容易依赖各自相关的块高度来判断时序问题。但是为了提高区块链的吞吐,就必须进行批出来,这样一来,出块的间隔就会增大,如果相关的两个事件,事件间隔特别短,出现在同一个块内时,如果判断时序问题?因为通常的P2P传播很...

    2018/10/28 blockchain

  5. Lamport's Logical Clocks 和 Vector Clock

    编:关于Vector Clock之前看过几眼,但是多数讲解地都不是很清楚,一直没太弄清楚。直到有一天,又看了看,终于弄明白了。

    2018/10/24 distributed-programming

  6. 分布式系统中的 safety 和 liveness

    在分布式系统的算法和设计中,safety和liveness是2个非常重要的属性,这个概念最早由L. Lamport1提出。这2个属性是非常基础的属性,系统中的其他属性都可以被分解为safety和liveness。 Proving the Correctness ...

    2018/10/23 distributed-programming

  7. LSM-TREE 存储结构的空间放大

    log structured merge tree1已经是现代数据库常用的一种数据结构,其优点就是能够将全部操作都转化为写入,从而使磁盘的连续写入优势发挥最大等。但是会带来写放大和空间放大。但是读放大、写放大和空间放大是一对矛盾体2 3 4。因此,由于有着不同的取舍,就有了不同的compact...

    2018/10/22 database

  8. 分布式系统中的故障模型

    在分布式系统的设计中,一个很重要的属性就是容错。要容错那一定要先知道在分布式系统中通常存在哪些错误模型,以及他们之间的关系1。 FAILURE MODES IN DISTRIBUTED SYSTEMS ↩

    2018/10/20 distributed-programming