Weekly Commit #015
A shorter one this week. Between the master's and the job, I do not have the free time I used to, so this is a quick update. It was a week about consensus.
Paxos, one phase at a time
In Design and Implementation of Distributed Systems, we are building a replicated application in which every replica has to agree on the order of operations. This week that meant Paxos.
On paper, the first phase looks like preparation for the real work. Building it changed how I see it. It is how a new leader finds out what might already have been decided before it arrived, and it is what stops two leaders from deciding different things. It is easy to underestimate until you are the one writing the code that enforces it.
From one value to a log
Plain Paxos agrees on one value. A real system needs to agree on a sequence of them, so the next step was Multi-Paxos.
The idea is that a stable leader pays the cost of that first phase once, and everything after it becomes much cheaper. The expensive part happens when leadership changes, not on every request. In that role, the first phase is the moment a new leader picks up whatever the previous one may have left half finished.
Smaller things this week
At work I shipped a few small features of my own. After the weeks spent reading, it was good to build something.
In Forensics Cyber-Security, we closed the first stage: following a phishing email to a cloned login page and the files hidden behind it. Now we move on to the suspect's seized machines, with disk images and a memory capture.
Fifteen weeks in
A short week on the blog, but a good one. In Paxos, the step that looks like setup is the one that keeps everything correct. See you next week.
#WeeklyCommit #DistributedSystems #Paxos #SoftwareEngineering
Follow along here or on LinkedIn where I'll be sharing each new commit.