New
The latest blog posts to take off on Hacker News. 6,949 posts.
The speed of BGP network propagation
At the end of March 2019 I did a talk at the INEX’s (Ireland’s biggest internet exchange point) Annual General Meeting. I was supposed to record it, however in a brief panic due to HDMI not working on my laptop I forgot to start a recording of it. Since people found it interesting I figured I would turn it into a blog…
Distributed consensus revised
Distributed consensus revised Howard, PhD thesis Welcome back to a new term of The Morning Paper! To kick things off, I’m going to start by taking a look at Dr Howard’s PhD thesis, ‘Distributed con…
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…
Introducing Windows Terminal
We are beyond excited to announce Windows Terminal! Windows Terminal is a new, modern, fast, efficient, powerful, and productive terminal application for
Shipping a Linux Kernel with Windows
Beginning with Windows Insiders builds this Summer, we will include an in-house custom-built Linux kernel to underpin the newest version of the Windows
Announcing WSL 2
WSL 2 is a new architecture that allows for dramatic file system performance and full system call compatibility in WSL using a Linux kernel.
Optimizing Magic Pocket for cold storage
Dash knows your context, your team, and your work, so your team can stay organized, easily find and share knowledge, and keep projects secure, all from one place.
How C array sizes become part of the binary interface of a library
We explain how C array sizes become part of the binary interface of a library and examine ways to avoid ABI compatibility issues.
How to Understand Systems
Solving problems by identifying underlying systems
eBPF Can't Count?
It is unlikely we can tell you anything new about the extended Berkeley Packet Filter, eBPF for short, if you've read all the great man pages, docs, guides, and some of our blogs out there. But we can tell you a war story, who doesn't like those?
On lists, cache, algorithms, and microarchitecture
Lists are rather hardware-unfriendly data structure. However, having a closer look at why is that and what can be done to improve this can provide an interesting insight into how high-level algorithms performance is affected by the processor microarchitecture.
Use mmap with care
When we implemented the git portion of Sublime Merge , we chose to use mmap for reading git object files. This turned out to be considerably more difficult than we had first thought. Using mmap in desktop applications has some serious caveats, and here's why:
An Introduction to Vectorization
Your CPU has a 32-bit addition instruction that computes the sum of two 32-bit integers x and y, producing a 32-bit result. (The 33rd bit of the sum, the "carry bit", is usually thrown away.)
Anatomy of an ELF executable
Almost every one of you must have written a program, compiled it and then ran it to see the fruits of your hard labour. It feels good to finally see your program working, isn’t it? But to make all of this work, we have someone else to thankful too. And that is your compiler (of course, assuming that you are working in…
Fedora 30
It seems like it was just six months ago that we announced Fedora 29, and here we are again. Today, we announce our next operating system release. Even though it went so quickly, a lot has happened in the last half year, and you’ll see the results in Fedora 30. If you’re impatient, go to […]
Stop Memsetting Structures
TL;DR: Use C99’s designated initializers instead. Because it’s 2019! Edit: This post was discussed on Hacker News, Lobste.rs and /r/c_programming. It has been updated to address some of the concerns raised by commenters. One of the little things that annoy me when reading code is the unnecessary use of memset() to…
PostgreSQL Features to Try
pgDash is an in-depth monitoring solution designed specifically for PostgreSQL deployments. pgDash shows you information and metrics about every aspect of your PostgreSQL database server, collected using the open-source tool pgmetrics.
Writing an OS in Rust: Testing
This post explores unit and integration testing in no_std executables. We will use Rust’s support for custom test frameworks to execute test functions…
When setting an environment variable gives you a 40x speedup
Today, we'd like to share some of our recent work on Sherlock that allowed a pretty significant speedup when listing files in directories with a lot of entries. > Unlike our usual announcements, this post is more of a behind-the-scenes...
Technical Challenges Developing a Distributed SQL Database
Here is an outline of some of architectural issues addressed as we build YugabyteDB, our high-performance distributed SQL database.
Xdpcap: XDP Packet Capture
Our servers manage heaps of network packets, from legit traffic to big DDoS attacks. For top efficiency, we adopted eXpress Data Path (XDP), a Linux kernel tool for swift, low-level packet handling.