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 ArticleOperations and maps on finite sequences
A lot of what I’m trying to do with mathematical models of computer systems involves operations on finite sequences. Define a “finite sequence of length n>0” to be any total map f: {1 … n} → X for...
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 ArticleSynchronous processors
Imagine a processor with no interrupts. We can do a lot better and get rid of most exceptions (e.g. system calls, page faults etc.), most peripheral devices/buses, and even cache misses, but let’s...
View ArticleCutting and pasting about Kodak’s demise
This graph from Peter Diamandis about how Kodak entered the sinkhole is kind of amazing. Diamandis explains Kodak’s failure to swerve in what is I think the orthodox Silicon Valley analysis: [in 1996]...
View Articlestate equations in practice
Let’s step back and think about what a discrete state system looks like. We have a set E of discrete “events” called the event alphabet, The event alphabet defines all the possible events and...
View ArticleMaking Paxos face facts
The 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 the...
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 ArticleTime out of joint
Financial trading venues and trading systems operate so quickly and rely on clocks so deeply that events like the one noted in this FINRA report are more common than many understand The findings stated...
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, minor edits 10/5/2016) Multi-proposer Paxos is a very clever and notoriously slippery algorithm for obtaining distributed consensus. In...
View ArticleCurrent reading
Wadler’s influential “monads” paper for Haskell. It seems like a classic case of making something simple sound profound and mysterious. And companion paper by Hughes on “why functional programming...
View Article