Stack Overflow: The Architecture – 2016 Edition
This is #1 in a very long series of posts on Stack Overflow’s architecture. Welcome.Previous post (#0): Stack Overflow: A Technical DeconstructionNext post...
Posts that commenters keep linking to, ranked by how many different people have cited them in Hacker News comments. 56 posts.
This is #1 in a very long series of posts on Stack Overflow’s architecture. Welcome.Previous post (#0): Stack Overflow: A Technical DeconstructionNext post...
Posts and writings by Lennart Poettering
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...
Joe Duffy's Blog | Adventures in the high-tech underbelly
Nano How-To explaining how to setup a root file system with only emacs.
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...
As part of the research for my book , I came across an algorithm called Redlock on the Redis website. The algorithm claims to implement fault-tolerant distributed locks (or rather, leases [1]) on top of Redis, and the page asks for feedback from people who are into distributed systems. The algorithm instinctively set…
Go is becoming more and more popular as a programming language and getting more scrutiny from a security point of view. You might remember m...
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 .
One of the key gaps in Rust’s ecosystem has been a strong story for fast and productive asynchronous I/O . We have solid foundations, like the mio library, but they’re very low level: you have to wire up state machines and juggle callbacks directly.
Your browser doesn't seem to support CSS , which this page uses for all styling. Don't be surprised if it looks kinda boring.
In this Jepsen report, we’ll verify RethinkDB’s support for linearizable operations using majority reads and writes, and explore assorted read and write anomalies when consistency levels are relaxed. This work was funded by RethinkDB, and conducted in accordance with the Jepsen ethics policy .
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.
Update (2016-10-07): The official FAQ has an entry for this exact problem now. I'll leave this post as more curiously minded people.
Update: Here's how to get started using Ubuntu on Windows See also Scott Hanselman's blog here I'm in San Francisco this week, attendin...
The goal of Explanations is to try to allow people to play with fun parts of computers. Graphics, compression, audio. The tagline is my biggest inspiration: "Play, don't show", riffing off the typical "Show, don't tell" rule of writers and authors everywhere. Why bother giving a diagram when I give you an inspector…
A high level walkthrough of the basics of video compression techniques used in MPEG, AVC/H.264, codecs.
DTrace for Linux 2016: announcing a major milestone: the final kernel capabilities have merged in Linux 4.9-rc1 to enhanced BPF (eBPF) to provide an advanced programmable dynamic tracer similar to DTrace.
When Windows NT was first being developed, one of the goals was to make the kernel separate from the programming interface. NT was originally intended to be the successor to OS/2 but Microsoft also…
There’s a neat variation on open-addressing based hash tables called Robin Hood hashing . This technique isn’t very well-known, but it makes a huge practical difference because it both improves performance and space utilization compared to other “standard” hash tables (e.g. chaining ). It also eliminates the major…
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…
This sounds unusual. Who ever wants to do this in real life? Normally, we only see code like this as primary school assignments or compiler benchmarks. However, this time it happened in real life.
Introduction My first encounter with docker goes back to early 2015. Docker was experimented with to find out whether it could benefit us. At the time it wasn’t possible to run a container [i…
PostgreSQL scalability on multicore and multisocket machines became a subject of optimization long time ago once such machines became widely used. This blog post shows brief history of vertical scalability improvements between versions 8.0 and 8.4. PostgreSQL 9.2 had very noticeable scalability improvement. Thanks to…
I’ve been thinking about the lessons distributed systems engineers learn on the job. A great deal of our instruction is through scars made by mistakes made in production traffic. These scars are useful reminders, sure, but it’d be better to have more engineers with the full count of their fingers.