The hunt for a cluster-killer Erlang bug (2021)
A 20 minute Kafka outage brought down our entire Erlang cluster for hours. How could this happen? Follow this fascinating investigation!
The latest blog posts to take off on Hacker News. 582 posts.
A 20 minute Kafka outage brought down our entire Erlang cluster for hours. How could this happen? Follow this fascinating investigation!
We've been working on the development of rust-minidump. The first in this two-part series explains what minidumps are and how we made rust-minidump.
The UNIX fork() system call seems like an elegant way to process tasks in parallel. It creates a copy of the current process, allowing tasks to read the same memory, without needing fine-grained synchronization. Unfortunately, you need to use it extremely carefully in large programs because fork in a multi-threaded…
LUMI is the first pre-exascale supercomputer of the EuroHPC Joint Undertaking and is now Europe’s most powerful supercomputer. It will be inaugurated on Monday 13 June 2022 in Kajaani. LUMI offers European researchers a world-class tool for understanding complicated phenomena, such as climate change. LUMI serves as a…
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.
While investigating the aftermath of a potential security breach, I came across a somewhat "odd" process looking like this:
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 .
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…
In 1988, the anthropologist Joseph Tainter published a book called The Collapse of Complex Societies. In it, he described the rise and fall of great…
When I started thinking about writing a post about web font loading my intention was to propose relatively sophisticated ideas that I've...
OpenBSD's share/misc/airport file and a day trip to Lublin
There is no pre-set maximum size, but that null might be coming from somewhere else.
An increasing number of the machine learning (ML) models we build at Apple each year are either partly or fully adopting the Transformer…
I really wanted to make this article short … but I failed miserably. At least I tried to organize it well so one may get back to it after ‘some’ reading because its not a short le…
Yesterday, Apple did release RosettaLinux as part of the macOS Ventura preview. Let’s take a first quick look…
The OS/2 Museum has made available the first version of a display driver disk for Windows 9x running on VirtualBox . The driver uses a linear framebuffer and supports 8/16/24/32bpp modes with resolutions up to 1920×1200 pixels (see more below). The driver is not accelerated but tends to be very speedy on modern…
Linked lists are often overused in introductory algorithmics courses, due to a heavy focus on theorical complexities. Unfortunatly, in practice, computers are complex beasts. They don’t execute instructions sequentially 1 with the same cost 2 . This means that a data structure with faster theorical complexities does…
I unlocked Hypervisor.framework on my jailbroken phone and modified UTM, a popular QEMU port for iOS, to run arm64 Linux in a VM at full native speed. …for the clickbait - and to show iPhone’s untapped potential.
Guest Post: TCPLS takes advantage of decades of performance optimizations made to TCP and has also a few other tricks up its sleeves.
Fallacies of distributed systems are a set of assertions made by L Peter Deutsch and others at Sun Microsystems describing false assumptions that programmers new to distributed applications invariably make.
We're sharing open source code that can sort arrays of numbers about ten times as fast as the C++ std::sort
A large C++ codebase meets a new linker: The good, the bad and the performance improvements <a class="more-link" href="https://www.productive-cpp.com/using-the-mold-linker-for-fun-and-3x-8x-link-time-speedups/">... Read More</a>
Pipes are ubiquitous in Unix --- but how fast can they go on Linux? In this post we'll iteratively improve a simple pipe-writing benchmark from 3.5GiB/s to 65GiB/s, guided by Linux `perf`.
Let's start at the beginning: it all started with me trying to boot a system which receives its initial ramdisk over XMODEM.
In this month’s episode of the Functional Futures podcast, our guest is Bernard Kolobara – the creator of Lunatic, an Erlang-inspired runtime for WebAssembly. Listen to the episode to find out how Erlang's guiding principles helped Bernard create a runtime that's fast, robust, and scalable.
Floodgap has had a T1 line since I moved into this house in 2011. I'm one of those weirdos who runs my own hardware and prefers to avoid ...
The Threading library Starting in Emacs 26 some very ambitious changes were added. Basic thread support was enabled, laying the groundwork for a future concurrent emacs. The docs layout this possibility: Emacs Lisp provides a limited form of concurrency, called threads. All the threads in a given instance of Emacs…