Learning to Build Distributed Systems
A common question I get at work is “how do I learn to build big distributed systems?”. I’ve written replies to that many times. Here’s my latest attempt.
Topics /
The most popular blog posts about systems & performance on Hacker News. 287 posts.
A common question I get at work is “how do I learn to build big distributed systems?”. I’ve written replies to that many times. Here’s my latest attempt.
I like to sleep, but more importantly, I like to sleep while my cloud service is running.
Browsers historically have had a single HTTP Cache. This meant that if www.a.example and www.b.example both used cdn.example/jquery-1.2.1.js then JQuery would only be downloaded once. Since it's the same resource regardless of which site initiates the download, a single shared cache is more efficient. [1]…
It's a C test. If you think you know C, take this test. It only has 5 questions.
For the past few years, I've been building and operating a large distributed system: the payments system at Uber [https://eng.uber.com/payments-platform/]. I've learned a lot about distributed architecture concepts…
My story of replacing three servers, across two countries, running two operating systems with a single server running Alpine Linux and Docker.
Today’s blog post is an overview of some common optimization techniques and neat tricks for doing “systems programming” – whatever that means today. We’ll walk through some methods to make your code run faster, be more efficient, and to squeeze just a little more juice from whatever you got.
As a computer engineer who has spent half a decade working with caches at Intel and Sun, I’ve learnt a thing or two about cache-coherency. This was one of the hardest concepts to learn back in coll…
During me being at my parents over the holidays (Christmas 2017) I had the usual IT-support stuff to do, that always happens to tech sa...
A summary of my undying love for LD_PRELOAD.
The issue to stabilize an initial version of async/await in Rust has left final comment period. The feature looks slated to stabilize in an upcoming release, most likely 1.39. This represents the culmination of an enormous amount of work by people all over the Rust community. But it’s also only the beginning of…
Most CPU architectures in use today have an instruction called popcount , short for “population count”. Here’s what it does: it counts the number of set bits in a machine word. For example (assuming 8-bit words for simplicity), popcount(00100110) is 3 and popcount(01100000) is 2 .
The idea of a zero cost abstraction is very important to certain programming languages, like Rust and C++, which intend to enable users to write programs with excellent performance profiles with relatively little effort. Since this idea is fundamental to the design of Rust and my work, I want to investigate, for a…
Was passiert wenn man ein Windows Update durchführt, oder mehrere?.
This post explains techniques to make the physical page table frames accessible to our kernel. It then uses such a technique to implement a function t…
This blog post is one of those things that just blew up. From a tiny observation at work about odd behaviors of spinlocks I spent months trying to find good benchmarks, (still not entirely successf…
The lectures assume no prior knowledge of the Paxos consensus algorithm or of TLA+, the language in which the specifications are written. In fact, the lectures constitute a crash course on TLA+. If you're interested just in the algorithm, you will probably find the specs annoying and will try to read only the…
In software development there are many concepts that at first glance seem useful and sound, but, after considering the consequences of their implementation and use, are actually horrifying. Examples include thread cancellation , variable length arrays , and memory aliasing . GCC’s closure extension to C is another…
Andy attempts to revive his blog by predicting what databases will look like in the year 2065.
Few weeks ago I solved a great KVM escaping challenge from TWCTF hosted by @TokyoWesterns . I have given a writeup on my blog: [Write-up] T...
Hi, I’m SL . You may remember me from my classic appearances in contentious 9fans threads , or maybe you’ve read one of my books .
Created by Lewis Lehe (of Setosa and UC Berkeley Trans. Eng. ) with design and art by Dennys Hess . Thanks to Ian Johnson for good advice. Tools: d3 , Angular Material , Coffeescript , Browserify , Gulp and Five-Hour Energy Drink .
Can using clang-format make your code slower? Kind of.
This is part of a series of posts on the design and technical steps of creating Himblick , a digital signage box based on the Raspberry Pi 4.