Topics /
Systems & Performance
The most popular blog posts about systems & performance on Hacker News. 6,943 posts.
Compiler Performance and LLVM
I have always wanted the Cone compiler to be fast. Faster build times make it easier and more pleasant for the programmer to iterate and experiment quickly. Compilers built for speed, such as Turbo Pascal, D and Go, win praise and loyalty. Languages that struggle more with this, like C++ or Rust, get regular…
Spotify's Kafka-Based Event Delivery System
Whenever a user performs an action in the Spotify client—such as listening to a song or searching for an artist—a small piece of information, an event, is sent to our servers. Event delivery, the process of making sure that all events gets transported safely from clients all over the world to our central processing…
Everything you never wanted to know about file locking
1. Nobody really knows how to do it 2. If you think you have a reliable system for doing it, you're probably doing the computer's job -- "...
Aquila: A unified, low-latency fabric for datacenter networks
Dan Gibson, Hema Hariharan, Eric Lance, Moray McLaren, Behnam Montazeri, Arjun Singh, Stephen Wang, Hassan M. G. Wassel, Zhehua Wu, Sunghwan Yoo, Raghuraman Balasubramanian, Prashant Chandra, Michael Cutforth, Peter Cuy, David Decotigny, Rakesh Gautam, Alex Iriza, Milo M. K. Martin, Rick Roy, Zuowei Shen, Ming Tan, Ye…
Breaking the limits of TLA+ model checking
Graphing TLA+ state spaces for fun and profit.
RISC-V isn’t as interesting as you think
I had wrote this before the Unleashed was revealed, so some of the bits on economics have changed. As of writing this, I still stand by my other beliefs. One of the most hyped things in hardware design is RISC-V,… Continue reading →
Horrible Code, Clean Performance
A short tale of how horrible code yields clean performance.
Using gRPC for (local) inter-process communication (2021)
Using a full-featured RPC framework for IPC seems like overkill when the processes run on the same machine. However, if your project anyway exposes RPCs for public APIs or would benefit from a schema-based serialisation layer it makes sense to use only one tool that combines these—also for IPC. Microservices for…
High Sierra's Disk Utility does not recognize unformatted disks
unless you click View > Show All Devices, quit Disk Utility, then relaunch it (thanks to xenadu02 for the workaround !)
The most stupid C bug ever
I have been programming for a number of years already. I have seen others introduce bugs, and I have also introduced (and solved!) many bugs while coding. Off-by-one, buffer-overflow, treating pointers as pointees, different behaviors or the same function (this is specially true for cross-platform applications), race…
Faster Linux 2.5G Networking with Realtek RTL8125B
Since the Raspberry Pi Compute Module 4 was introduced last year, I've been testing a variety of PCI Express NICs with it. One of the main types of NIC I'm interested in is cheap 2.5 Gigabit Ethernet adapters. 2.5 Gigabits is about the highest reasonable bandwidth you can get through the PCI Express Gen 2.0 x1 lane on…
Inside OS/2 (1987)
A 1987 technical introduction to OS/2, covering its architecture, multitasking capabilities, API, and kernel system services.
Deploying Transformers on the Apple Neural Engine
An increasing number of the machine learning (ML) models we build at Apple each year are either partly or fully adopting the Transformer…
Traits of Serverless Architecture
Whenever new technologies emerge, the first priority for a technologist is to understand the implication of adopting it. Serverless architecture is a case in point.
Io_submit and Linux AIO – An epoll alternative
The Linux AIO is designed for, well, Asynchronous disk IO! They are not network sockets, but is it possible to use Linux AIO API with network sockets? The answer is a strong YES!
YOLOv5 on CPUs: Sparsifying to Achieve GPU-Level Performance
From live events to hands-on product demos to deep technical research, see what we're doing with AI at Red Hat.
MySQL transactions per second vs. fsyncs per second (2020)
Just wondering how many transactions or writes per second MySQL can handle? While it depends on many factors, fundamentally, about as many transactions as MySQL can commit to disk per second. A modern disk can do ~1000 fsyncs per second , but MySQL will group multiple writes with each fsync. An okay rule-of-thumb…
Database Isolation Is Broken and You Should Care
The database zeitgeist has decided that ANSI SQL '92 isn't enough. We need something better.
Rust Threads on the GPU
At VectorWare , we are building the first GPU-native software company . Today, we are excited to announce that we can successfully use Rust's std::thread on the GPU. This milestone marks a significant step towards our vision of enabling developers to write complex, high-performance applications that leverage the full…
Io_uring Without Readahead
Someone opened a PR to implement readahead in Turso. It was a throwaway implementation, but a good excuse to measure io_uring and understand more about it.
A Review of Consensus Protocols
The consensus problem is a fundamental problem in multi-agent systems which requires a group of processes (or agents) to reliably and timely agree on a single data value. Although extensively discussed in the context of distributed computing it’s not exclusive to this field, also being present in our society in a…
Intel 286 secrets: ICE mode and F1 0F 04
With some recent interest in undocumented opcodes and microcode on modern Intel chips, I decided to do a proper writeup on what I found out while researching and playing around with the venerable 80286 ("Beige Unlock"?).
Zabbix, Time Series Data and TimescaleDB
Every monitoring system has to deal with three kinds of performance-related challenges. Firstly, a good monitoring system must receive, process and record incoming data very quickly. Every microsecond counts here. This may not seem obvious from the start but when your system becomes large enough all the tiny fractions…
Testing Memory Allocators: ptmalloc2 vs. tcmalloc vs. hoard vs. jemalloc
Quote: if you DO want to get performance from changing mallocs, make sure to test them with your own app Another Quote: in our humble opinion, overall winner...