Fastest table sort in the West – Redesigning DuckDB's sort
DuckDB, a free and open-source analytical data management system, has a new highly efficient parallel sorting implementation that can sort much more data than fits in main memory.
Topics /
The most popular blog posts about systems & performance on Hacker News. 6,943 posts.
DuckDB, a free and open-source analytical data management system, has a new highly efficient parallel sorting implementation that can sort much more data than fits in main memory.
This is one post in a series about programming models and languages for distributed computing that I’m writing as part of my history of distributed programming techniques.Relevant ReadingTrill: A h...
Message signaled interrupts or MSIs describe a way to signal an interrupt without a dedicated interrupt request pin (IRQ). One of the most prevalent uses for MSIs is the PCI bus, and the PCI specification defines the MSI and MSI-X standards. The potential benefits may include: (1) reduced number of direct wires from…
This is the story of how we upgraded over 2000 Ubuntu production servers – turning over millions an hour – by installing the operating system in memory, wiping the root disk and reinstalling the OS back on disk from RAM. We did it, there was zero data loss and it saved us lots of time and...
I’ve been working on speeding up AVX-512 vertex decoding in meshoptimizer recently; in the process I stumbled upon two optimizations that I did not end up using but I thought they might be fun to write about! The optimizations that actually made it in require some higher level background / explanations that will have…
This post goes through how to maximize file IO performance on linux using zig with io_uring.
I have reached a good milestone on the SCAMP hardware: it can now execute code! It runs all the way through the test program correctly.
errno(2) values for the AI age
Your Linux Toolbox: a box set of my free zines
Write your first hypervisor from scratch, in 1K LoC.
This is the second part in a series on WebAssembly and what makes it fast. If you haven’t read the others, we recommend starting from the beginning. JavaScript started out ...
In many information systems, we work with arrays of integers. For example, maybe you need to keep track of which records in a database contain a given value. This sort of mapping can be expressed as an array of integers. These arrays can end up taking up a large fraction of your memory or disk … Continue reading…
I’ve done a couple of posts on LLVM itself, mostly on things you can do with LLVM or how LLVM represents particular program features.
Go inside the WAL file with this in-depth look at WAL file Log Sequence Number (LSN), WAL segment positions, WAL file names, and pg_switch_wal.
By now regular readers of this blog are quite familiar with my affection for the 1996 Apple Network Server , Apple's Unix-through-and-thro...
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…
ZFS is a hybrid filesystem and volume manager system that is quite popular recently but has some important and unexpected problems.
Xe Iaso's personal website.
(Adapted from a Quora answer .) OS/2 1.x was a clean-sweep, largely legacy-free OS with only limited backwards compatibility with DOS. OS/2 2.x and later used VMs to do the hard stuff of DOS emulation, because they ran on a chip with hardware-assisted DOS VMs: the 80386s Virtual86 mode.…
This is a follow up to Defining the Web platform post from a year ago. It doesn’t try to answer questions but instead attempts to figure out what are the rig...
Let's start at the beginning: it all started with me trying to boot a system which receives its initial ramdisk over XMODEM.
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
Though most strings online today follow the Unicode standard (e.g., using UTF-8), the Latin 1 standard is still in widespread inside some systems (such as browsers) as JavaScript strings are often stored as either Latin 1, UTF-8 or UTF-16 internally. Latin 1 captures the first 256 characters from the Unicode standard…
disclaimer: this is a technical post aimed at developers being somewhat aware of the problem space. There will be a concluding ‘the day of…’ post aimed at end users where some of …
A door is a "file" descriptor used to describe a procedure in a process and optionally some additional state associated with the procedure. Doors were initially designed as Spring object descriptors used to encapsulate the state and capabilities of C++ objects. A process which obtains a door is free to pass it, along…
Posted by Mark Brand, Truncator of IntegersThis is going to be a quick post, just describing a pa...
An essay that bids farewell to x87 – a computing architecture too long for this world.