Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 4,390 posts.
Writing a storage engine for Postgres: An in-memory table access method (2023)
Writing a storage engine for Postgres: an in-memory Table Access Method
ZooKeeper: Wait-free coordination for Internet-scale systems
Zookeeper is an Apache project for providing coordination services to distributed systems. ZooKeeper aims to provide a simple kernel (a fil...
Reducing Go execution tracer overhead with frame pointer unwinding
The Go Execution Tracer (aka runtime/trace) was designed to achieve low enough overhead to be usable on “a server in production serving live traffic”. This is achieved by writing events into per-P buffers, using RDTSC for timestamps, and encoding into a relatively efficient binary format.
Untangling Lifetimes: The Arena Allocator
Making performant dynamic manual memory management in C feel almost like garbage collection.
Windows-NT vs. CP/M
Microsoft has come out with a number of benchmarks and comparison papers championing the fact that Windows-NT is much better than Linux. I find such comparisons fascinating, but rather than rehash this argument, I've decided to create my own comparison. Not of Windows-NT vs. Linux, that's been done. But of Windows-NT…
To ECC or Not to ECC
On one of my visits to the Computer History Museum – and by the way this is an absolute must-visit place if you are ever in the San Francisco bay area – I saw an early Google server rack circa 1999 in the exhibits. Not too fancy, right? Maybe even… a
Call me maybe: MongoDB (2013)
Previously in Jepsen , we discussed Redis . In this post, we’ll see MongoDB drop a phenomenal amount of data. See also: followup analyses of 2.6.7 and 3.4.0-rc3 .
Zip Files All the Way Down (2010)
A well-known scientist (some say it was Bertrand Russell) once gave a public lecture on astronomy. He described how the earth orbits around the sun and how the sun, in turn, orbits around the center of a vast collection of stars called our galaxy. At the end of the lecture, a little old lady at the back of the room…
Return-Oriented Programming without Returns (on the x86)
We show that on the x86 it is possible to mount a return-oriented programming attack without using any return instructions. Our new attack instead makes use of certain instruction sequences that behave like a return; we show that these sequences occur with sufficient frequency in large Linux libraries to allow…
Semantic Compression
An introduction to the idea that code should be approached with a mindset towards compressing it semantically, rather than orienting it around objects.
How long does it take to make a context switch? (2010)
That's a interesting question I'm willing to spend some of my time on. Someone at StumbleUpon emitted the hypothesis that with all the impr...
Just give me a simple CPU and some I/O ports
Back when I started programming computers came with circuit diagrams and listings of their firmware. The early machines I used like the Sha...
The Law of Leaky Abstractions (2002)
There’s a key piece of magic in the engineering of the Internet which you rely on every single day. It happens in the TCP protocol, one of the fundamental building blocks of the Internet. TCP…
Slides and notes from my three hour Redis tutorial
These slides and notes were originally written to accompany a three hour Redis tutorial I gave at the NoSQL Europe conference on the 22nd of April 2010.
Ubuntu Server tech lead: The real problem with Java in Linux distros
Java is not a first-class citizen in Linux distributions. We generally have decent coverage for Java libraries, but lots of Java software is not packaged at all, or packaged in alternate repositori…
When App Engine Went Wrong
The High Falls hike was my first with the Vancouver branch of the Alpine Club...
Arbitrary code execution via ldd utility
The `ldd` utility is more vulnerable than you think. It's frequently used by programmers and system administrators to determine the dynamic library dependencies of executables. Sounds pretty innocent, right? Wrong! In this article I am going to show you how to create an executable that runs arbitrary code if it's...
Design Lessons & Advice from Building Large Scale Distributed Systems at Google
Jeff Dean of Google did an excellent keynote talk at LADIS 2009 . Jeff’s talk is up at: http://www.cs.cornell.edu/projects/ladis2009/talks/dean-keynote-ladis2009.pdf and my notes follow: