The difference between unspecified, undefined, and non-deterministic
There is too much confusion in the “formal methods” computer science literature between these three different terms. Let me start with what this means for a state machine and then move on to...
View ArticleIEEE 1588 PTP is a mess
IEEE 1588 was not designed for modern enterprise computer networks and contains many hacks to make it sort of work. The standard also suffers from being overly explicit on some things and overly...
View ArticleMaking Paxos face facts
Lamport’s “Paxos Made Simple” paper is notoriously hard to understand but at least part of the difficulty is that the algorithm changes radically in the middle of the presentation. The first part of...
View Articlecircularity problems in distributed consensus
Distributed consensus involves organizing a collection of independent agents – processes or network sites – to agree on some value or sequence of values. Many distributed consensus methods depend on a...
View ArticleThe replicated state machine method of fault tolerance
The first time I saw this method was when I went to work for Parallel Computer Systems in the famous tech startup center – Englewood Cliffs, New Jersey. (True story: I applied for the job after finding...
View ArticleDistributed consensus and network reliability
All of the distributed consensus algorithms I have been reviewing recently (Paxos, Raft, Zab, Chang Maxemchuck, Viewstamped, … ) are based on a number of assumptions about the network environment,...
View ArticleData base design criteria: ease of use
Regarding ease-of-use, it’s often struck me when reviewing data systems papers that the evaluation sections are full of performance and correctness criteria, but only rarely is there any discussion of...
View ArticleChang-Maxemchuk atomic broadcast
The Chang-Maxemchuk algorithm (US Patent 4,725,834 ) solves atomic broadcast (and in-order broadcast) problems for distributed networks in a far simpler and more efficient way than some popular...
View ArticleUnderstanding Paxos and Distributed Consensus
(minor wording correction and more complaining added 10/2/2016) Multi-proposer Paxos is a very clever and notoriously slippery algorithm for obtaining distributed consensus. In this note I try to...
View ArticleThe difference between unspecified, undefined, and non-deterministic
There is too much confusion in the “formal methods” computer science literature between these three different terms. Let me start with what this means for a state machine and then move on to...
View Articleundefined behavior and the purpose of C
C undefined behavior. From one of the LLVM developers: This behavior enables an analysis known as “Type-Based Alias Analysis” (TBAA) which is used by a broad range of memory access optimizations in the...
View ArticleThe C standard committee effort to kill C continues
Consider the following code: void f(void) { unsigned char x[1]; /* intentionally uninitialized */ x[0] ^= x[0]; printf("%d\n", x[0]); printf("%d\n", x[0]); return; } In this example, the unsigned char...
View ArticleThe C standard versus C and the mother of all hacks.
The Kafkaesque interaction of the C standard and the main open source C compilers was concisely outlined by one of the main LLVM authors back in 2011: “knowing that INT_MAX+1 is undefined allows...
View ArticleC compiler developers are hostile to C programming
From the LLVM developer mailing list this remarkable exchange in which Chris Lattner of LLVM says that the compiler use of undefined behavior (UB) is so “crappy” that the only solution is to abandon C...
View ArticleBad ideas in type theory
Types as sets and subtypes as subsets. This may be due to confusing usage in mathematical practice where, for example, we often see references to integers as a subset of reals. But in mathematical...
View Articleinformal methods applied to networks and timeouts
Distributed computation involves many interesting issues concerning shared data. Here I want to sketch out what networks look like using applied (informal) mathematics so we can look at some algorithms...
View ArticlePaxos shaken but not stirred
The infamous distributed consensus algorithm, dissected, patented, with miracle ingredients. (minor updates march 5) Download (PDF, 47KB)
View Article