Knot DNS -
Knot DNS is a high-performance authoritative-only DNS server which supports all key features of the domain name system including zone transfers and DNSSEC.
This review in LWN about the Knot DNS server shows the impressive list of features found on this server, highlighting the performance advantage when compared to other popular servers like BIND or PowerDNS.
Panamax: Docker Management for Humans
Presentation: "The Disruptor: High Performance Inter-Thread Messaging" by Michael Barker
liburcu: user space RCU -
liburcu is a library that implements RCU synchronization in user space. RCU is a synchronization technique very popular by being used at many places in the Linux kernel, where it provides a very simple API.
liburcu “provides read-side access which scales linearly with the number of cores. It does so by allowing multiples copies of a given data structure to live at the same time, and by monitoring the data structure accesses to detect grace periods after which memory reclamation is possible.”. liburcu also provides some lock-free data structures like queues, hash tables and double-linked lists…
Efficient Maximum Flow Algorithms -
For the maximum flow example, suppose we have a graph that represents an oil pipeline network from an oil well to an oil depot. Each arc has a capacity, or maximum number of liters per second that can flow through the corresponding pipe. The goal is to find the maximum number of liters per second (maximum flow) that can be shipped from well to depot. For the minimum cut problem, we want to find the set of pipes of the smallest total capacity such that removing the pipes disconnects the oil well from the oil depot (minimum cut).
Maximum flow algorithms play an important role in computer networks, where bandwidth can be a scarce resource and this kind of optimization can be used for scheduling data transfers. This article show the state of the art in algorithms for solving maximum flow problems.
An overview of the different Linux performance tools and the subsystems they work on.
Go for Pythonistas -
A great introduction to Golang for Python programmers…
Broken by Design: MongoDB Fault Tolerance -
A devastating article about Mongo’s fault tolerance and reliability. See this other article from the same author.
I agree on the main point in the article: Mongo is not designed for fault tolerance at all. Mongo’s replication mechanism is very rudimentary, but it is designed in that way for achieving higher performance. However, the article is based on the assumption that “all data is critical” and I completely disagree with this. Many software designs are built on top of data that can be lost with minimal effects.
Imagine a user notification system that sends emails to users and where delivery reports are stored in a Mongo database. The worst thing that could happen if a delivery report is not properly saved is that the email is sent twice. Is that really important? No if what you want is speed and you care more about sending millions of notifications per minute.
Failures on datacenters -
A collection of papers by Bianca Schroeder on failures in datacenters.
Benchmarking Amazon EC2: The wacky world of cloud performance -
People usually forgets that VMs in the cloud do not provide the same performance as real machines. The same machine can show important variations depending on things like the day of the week, maybe because of your own usage patterns or due to some bad neighbour sharing the physical machine. This variability is one of the reasons why people should design their systems for scaling horizontally: with more instances, the per-instance variations cancel out.