1. debug cacheline 竞争和伪共享

    体系架构 现在常见服务都是NUMA1架构,这种架构使得跨节点访问内存的代价大大增加,通常是访问本地内存的两到三倍以上: 非均匀访存模型 ↩

    2018/11/20 linux tool perf

  2. 谈谈理论与实践

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

    2018/11/18 program

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

    _

    2018/11/15 go

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

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

    2018/10/29 distributed-programming

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

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

    2018/10/28 blockchain

  6. Lamport's Logical Clocks 和 Vector Clock

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

    2018/10/24 distributed-programming

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

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

    2018/10/23 distributed-programming

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

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

    2018/10/22 database