What's the big deal about embedded key-value databases?
What's the big deal about key-value databases like FoundationDB and RocksDB?
Improving NGINX Performance with Kernel TLS and SSL_sendfile
Deliver modern applications with NGINX. Explore high-performance load balancing, API gateways, and web server solutions trusted by top global enterprises.
Cranelift, Part 4: A New Register Allocator
This post is the fourth part of a three-part series 1 describing work that I have been doing to improve the Cranelift compiler. In this post, I'll describe the work that went into regalloc2 , a new register allocator I developed over the past year. The allocator started as an effort to port IonMonkey's register…
Lz_xor
If LZ compression is compilation , what other instructions are useful to add? I've spent the last several years, off and on, trying to figur...
Going where BeOS NetPositive hasn't gone before: NetPositive+
BeOS browser : TLS apocalypse Won't keep it off line. (How do you pronounce BeOS ?) This is a real 133MHz BeBox running otherwise s...
Making Your Game Go Fast by Asking Windows Nicely
How to stop Windows throttling your game, set DPI awareness programatically, use Application Manifests in Rust and prefer discrete GPUs to integrated in OpenGL.
SIMD accelerated sorting in Java – how it works and why it was 3x faster
In this post I explain a little about how to use Java’s Vector APIs, attempt to explain how they turn out fast, and then use them to implement a sorting algorithm 3x faster than Arrays.sort . I then explain some problems I found, and how I resolved them. Supporting code is published here .
We are splitting our database into Main and CI
We are splitting our database into Main and CI to improve the scalability and reliability of GitLab.com.
The AMD Branch (Mis)Predictor Part 2: Where No CPU Has Gone Before
In this blog post, OSS Security Researcher Pawel Wieczorkiewicz shares his journey from trying to save one byte of code to the discovery of two new cases of Straight-Line-Speculation (SLS) which affect the Zen1 and Zen2 microarchitectures of AMD CPUs. Using the findings presented in his earlier blog on the AMD branch…
PostgreSQL used fsync incorrectly for 20 years (2019) [video]
About a year ago the PostgreSQL community discovered that fsync (on Linux and some BSD systems) may not work the way we always thought it is, with possibly disastrous consequences for data durability/consistency (which is something the PostgreSQL community really values).
We used Elixir's Observer to hunt down bottlenecks
Learn how to use Elixir's Observer to chase down bottlenecks and fix runtime issues.
The cult of Amiga and SGI, or why workstations matter
I’m considered to be a server guy. I had access to some really awesome server machines. Still, when computers come up in discussions, we are almost exclusively talk about workstations. Even if servers are an important part of my life, that’s “just” work. I loved the SGI workstations I had access to during my…
Falsehoods programmers believe about undefined behavior
All kinds of reasonable-sounding beliefs about undefined behavior are wrong. Let's go through them.
Optimizing compilers reload vector constants needlessly
Modern processors have powerful vector instructions which allow you to load several values at once, and operate (in one instruction) on all these values. Similarly, they allow you to have vector constants. Thus if you wanted to add some integer (say 10001) to all integers in a large array, you might first load a…
The James Webb Space Telescope – making 300 points of failure reliable
The JWST must perform a bewildering array of tasks — unfurling panels, mirrors and more — how can engineers trust telescope’s reliability?
The Great Renaming 1985 – 1988 (2000)
The Great Renaming FAQ
Making Code Faster
I’ve enjoyed writing software for 40+ years now. Lots of activities fall into that “writing software” basket, and here’s my favorite: When you have a body of code with a decent unit-test suite and you need to make it go faster. This part of the Quamina diary is a case study of making a piece of the library faster.
ZFS on a single core RISC-V hardware with 512MB
Is this feasible? Yes it is! OpenZFS on Linux compiled from sources for RISC-V, it will work with less than 250MB of RAM for a nearly fully filled 2TB zfs volume with 225.000 files! Even stressing the system and run in parallel (via Wifi): a…
Why does zsh start so slowly?
I’m serious about shell startup speed. I use tmux to open and close tmux splits all day every day, so I need zsh to start quickly. I used to use frameworks like oh-my-zsh or prezto and while I was happy with the functionality they provided I wasn’t happy with their impact on my shell’s startup speed. So, what do we do…
The Linux kernel can spawn processes on its own
While investigating the aftermath of a potential security breach, I came across a somewhat "odd" process looking like this:
We upgraded an old, 3PB large, Elasticsearch cluster without downtime
Back in 2018, now five years ago, we published a blog post describing our 400+ node Elasticsearch cluster. In that post we brought up an important topic: So far, we have elected to not upgrade the cluster. We would like to, but so far there have been more urgent tasks. How we actually perform the upgrade is undecided…
Congestion Control Arrives in Tor 0.4.7-stable
Tor has released 0.4.7.7, the first stable Tor release with support for congestion control. Congestion control will result in significant performance improvements in Tor, once Exit relays upgrade. Relay operators: please read!
I hope distributed is not the new default
I miss people. :-(
Finally fixed my PC’s persistent graphics and audio stutters
I experienced intermittent stuttering when my PC ran Linux and Windows. A mix of hardware, firmware, and driver issues created a difficult to diagnose problem.