Topics /
Systems & Performance
The most popular blog posts about systems & performance on Hacker News. 458 posts.
Xen Project Spectre/Meltdown FAQ
Updated to v3 on Dec 12th! Google’s Project Zero announced several information leak vulnerabilities affecting all modern superscalar processors. Details can be found on their blog, and in the Xen Project Advisory 254. To help our users understand the impact and our next steps forward, we put together the
Re-affirming Long-Term Support for Java in Amazon Linux
In light of Oracle’s recent announcement indicating an end to free long-term support for OpenJDK after January 2019, we re-affirm that the OpenJDK 8 and OpenJDK 11 Java runtimes in Amazon Linux 2 will continue to receive free long-term support from Amazon until at least June 30, 2023. We are collaborating and…
FoundationDB community highlights, two weeks in
In two weeks since open sourcing FoundationDB , we’ve had an outpouring of interest.
Fibers are the right solution to improve Ruby performance
The majority of performance improvements in modern processors are due to increased core count rather than increased instruction execution frequency. To maximise hardware utilization, applications need to use multiple processes and threads. Servers that process discrete requests are a good candidate for both…
Long-Term Consequences of Spectre and Its Mitigations
Robert O'Callahan. Christian. Kiwi. Software guy. All content human-authored unless otherwise noted.
TCP is an underspecified two-node consensus algorithm
I recently found myself dealing with TCP load balancing for a project and I've come to think that generic TCP proxies can't be implemented without substantial pain and how it makes TLS terminating proxies a bad idea.
Impala: Scalable Distributed Deep Reinforcement Learning
Deep Reinforcement Learning (DeepRL) has achieved remarkable success in a range of tasks, from continuous control problems in robotics to playing games like Go and Atari. The improvements seen in these domains have so far been limited to individual tasks where a separate agent has been tuned and trained for each task.
A Usable C++ Dialect That Is Safe Against Memory Corruption
Quote: we DID get a perfectly usable C++ dialect which is also 100% safe against memory corruption and against memory leaks. Another Quote: we can (and often...
An extensive ZFS setup on MacOS
DISCLAIMER: If you are in no way familiar or comfortable with the Terminal, this is not for you.
Why code that never goes wrong can still be wrong
The three levels of software, a framework by Jimmy Koppel: runtime, code, and logic, and why code that never fails can still be wrong.
Jepsen: Aerospike 3.99.0.3
Aerospike , formerly Citrusleaf, is a distributed, sharded document store designed for high-throughput, low-latency applications. Each record is a map of keys to values, which may be either primitive types (integers, strings, bytes, etc.) or nested collections like lists and maps. Secondary indices are also available…
A Look at MyRocks Performance
Taking a look at MyRocks performance through some benchmark testing.
Capsicum
I spent a couple of years evangelizing about Capsicum. I wrote many articles about it. So, it is very natural that I would also like to update you on this blog about the progress of the Capsicum project in FreeBSD, because this is what I’m doing in my free time. That said I feel that this blog wouldn’t be completed…
The Art of Picking Intel Registers (2003)
I wrote this article for an online magazine called Scene Zine . Scene Zine caters to the Demo Scene, which is an digital art community dedicated to pushing the limits of computers through a mix of music, art, and computer programming. A particular category of demoscene productions, 4K intros, focus on the final…
How did we end up with containers?
A short case study breaking down the interesting design aspects of containers.
Why DNSFilter replaced InfluxDB with TimescaleDB
Stay informed with the latest updates, trends, and insights on DNS and content filtering. Get useful tips and best practices in network security.
Giving Mono Souper Powers
By virtue of using LLVM, Mono has access to a wide suite of tools and optimization backends. A lot of active research uses LLVM IR. One such research project, Souper, tries to brute-force a search for missed optimizations in our emitted code. The .NET community may have software projects that benefit from using Souper…
Writing a minimal x86-64 JIT compiler in C++, Part 2
Writing a minimal x86-64 JIT compiler in C++ that runs on macOS, Linux and WSL - Part 2
Message-Oriented Programming (2017)
Managing complexity within an application is one of the key challenges for any software developer. Cleanly reconciling new features with existing architectures is something we strive for.
Optimizing Siri on HomePod in Far‑Field Settings
The typical audio environment for HomePod has many challenges — echo, reverberation, and noise. Unlike Siri on iPhone, which operates close…
Amazon EC2 Instance Update – Faster Processors and More Memory
Last month I told you about the Nitro system and explained how it will allow us to broaden the selection of EC2 instances and to pick up the pace as we do so, with an ever-broadening selection of compute, storage, memory, and networking options. This will allow us to give you access to the latest […]
How to Read 100s of Millions of Records per Second from a Single Disk
This article gives an overview of the implementation and performance of two recent additions to LocustDB, an extremely fast open-source analytics database built in Rust. The first addition is suppo…
Building a Distributed Log from Scratch: Scaling Message Delivery
In part two of this series we discussed data replication within the context of a distributed log and how it relates to high availability. Next, we’ll look at what it takes to scale the log such that it can handle non-trivial workloads. Data Scalability A key part of scaling any kind of data-intensive system is the…