Topics /
Systems & Performance
The most popular blog posts about systems & performance on Hacker News. 250 posts.
Size cost of C++ exception handling on embedded platforms
Introduction There is a common stereotype, that C++ exception handling code will significantly increase binary image size ("up to 100kb")...
Distributed Systems in Haskell
I recently completed UT Austin's Distributed Computing class, taught by Lorenzo Alvisi. My project partner Pato and I decided to give it a go in Haskell, and ended up using Haskell for all project assignments (Chandy-Lamport, Paxos, and Bayou).
Jepsen: RethinkDB 2.2.3 reconfiguration
In the previous Jepsen analysis of RethinkDB , we tested single-document reads, writes, and conditional writes, under network partitions and process pauses. RethinkDB did not exhibit any nonlinearizable histories in those tests. However, testing with more aggressive failure modes, on both 2.1.5 and 2.2.3, has…
Postgres full-text search is Good Enough (2015)
When you have to build a web application, you are often asked to add search. The magnifying glass is something that we now add to wireframes without even knowing what we are going to search.
Stack Overflow: The Hardware – 2016 Edition
This is #2 in a very long series of posts on Stack Overflow’s architecture.Previous post (#1): Stack Overflow: The Architecture - 2016 EditionNext post (#3...
Getting Started with Tokio
If you're interested in writing servers in Rust, Tokio is a project that should definitely be on your radar. It promises to leverage the exciting new work on futures in Rust to make it easy to build extremely efficient networked servers with natural, composable code.
Scalability, but at what cost? (2015)
Michael Isard, Derek Murray, and I recently sent in a HotOS submission (it’s not blind, so no harm talking about it, we think). The subject is hinted at from...
Reducing the maximum latency of a bound buffer in Erlang
Recently I came across two great articles on the Pusher blog: Low latency, large working set, and GHC’s garbage collector: pick two of three and Golang’s Real-time GC in Theory and Practice . The articles tell the story of how Pusher engineers reimplemented their message bus. The first take was done in Haskell. During…
UEFI boot: how does that actually work, then? (2014)
AdamW on Linux and more
How many x86 instructions are there?
It’s surprisingly hard to give a good answer (the question was raised in this article). It depends on how you count, and the details are interesting (to me anyway). To not leave you hanging: …
Using the OS X 10.10 Hypervisor Framework: A Simple DOS Emulator
Since Version 10.10 (Yosemite), OS X contains Hypervisor.framework, which provides a thin user mode abstraction of the Intel VT features. It enables apps to use virtualization without the need of a kernel extension (KEXT) – which makes them compatible with the OS X App Store guidelines.
Write a toy strace and gdb
Being able to peek into a process is a very helpful thing when we want to fully understand how a program behaves.
How to allocate memory
Many programmers use malloc() and free() and pay no more mind to "allocating memory", but I often find 2-20× speed improvements by rethinking memory usage, so it is something I usually want to examine when joining a distressed project.
Hotpatching a C Function on x86
In this post I’m going to do a silly, but interesting, exercise that should never be done in any program that actually matters. I’m going write a program that changes one of its function definitions while it’s actively running and using that function. Unlike last time , this won’t involve shared libraries, but it will…
You Can't Always Hash Pointers in C
Occasionally I’ve needed to key a hash table with C pointers. I don’t care about the contents of the object itself — especially if it might change — just its pointer identity. For example, suppose I’m using null-terminated strings as keys and I know these strings will always be interned in a common table. These…
Fedora/RISC-V reaches initial goal
Ha ha only joking. However when we started out on building Fedora on the free RISC-V architecture, the goal we decided on was to get every package in the Fedora @Core group built. I’m happy t…