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

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

    2018/10/28 blockchain

  2. Lamport's Logical Clocks 和 Vector Clock

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

    2018/10/24 distributed-programming

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

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

    2018/10/23 distributed-programming

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

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

    2018/10/22 database

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

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

    2018/10/20 distributed-programming

  6. 分布式系统中的通讯模型

    人们在谈及分布式系统的理论时,首先要明确其前置的通讯模型(有的地方也称为时间模型)的约定。比较常见的有同步网络模型、异步网络模型和部分同步网络模型1。 WHAT_WE_TALK_ABOUT_WHEN_WE_TALK_ABOUT_DISTRIBUTED_SYSTE...

    2018/10/19 distributed-programming

  7. 【转】CAP理论十二年回顾:"规则"变了

    本文转自CAP理论十二年回顾:”规则”变了,用以存档。原文链接:CAP Twelve Years Later: How the “Rules” Have Changed

    2018/10/08 distributed-programming

  8. C++11中的name lookup

    identifier C++编译器将文件代码源文件解析后,将代码分解为identifier1、数值、运算符等,其中identifier是由非数字开头、任意字符数字和下划线组成的部分,其用来组成声明、表达式、name和qualified identifier。 I...

    2018/09/29 c++