Systemd: The Biggest Myths
Posts and writings by Lennart Poettering
Distributed systems for fun and profit
git , Single page HTML , Kindle .mobi , PDF , .epub , HTML for printing , book cover .
Optimizing Nginx TLS Time To First Byte
TLS is not slow, it's unoptimized. A hands-on tour of optimizing nginx to deliver one-RTT Time To First Byte (TTFB) with TLS.
Memory – Part 4: Intersec’s custom allocators
malloc() is extremely convenient because it is generic. It does not make any assumptions about the context of the allocation and the deallocation. Such allocators may just follow each other, or be separated by a whole job execution. They may take place in the same thread, or not… Since it is generic, each allocation…
Stack Exchange’s Colocation Move: Lessons Learned
Moving about 35 servers, something like 2000 pounds of computer hardware 50 blocks, doesn’t seem like that big of a thing. However, in our geek microcosm moving to a new colocation facility was a year long adventure with lessons learned, arguments, designs and redesigns, a hurricane, and many weekends of preparation…
The cost of dynamic vs. static dispatch in C++
A couple of years ago I wrote an article about the Curiously Recurring Template Pattern in C++ , focusing on the motivation behind it and how to implement it.
Linux 3.8 Released
Summary of the changes and new features merged in the Linux Kernel during the 2.6.x and 3.x development
Bytecode
What is the most commonly used bytecode language in the world? Java (JVM Bytecode)? .NET (CLI)? Flash (AVM1/AVM2)? Nope. There’s a few that you use every day, simply by turning on your computer, or tablet, or even phone. You don’t even have to start an application or visit a webpage.
Beautiful Native Libraries
A guide on writing beautiful native libraries in C or C++ that compile to native code.
Linux memory manager and your big data
Citus gives you all the greatness of Postgres plus the superpowers of distributed tables. By distributing your data and queries, your application gets high performance—at any scale. The Citus database is available as open source and as a managed service on Azure.
MRI's Method Caches
One of MRI's big performance problems is that method cache expiry is global. That is, any time you make a change to any class anywhere, the entire VM's method caches get busted at the same time. This is why you'll frequently hear people saying that "calling Object#extend is bad".
Each socket should have two file descriptors
What if, instead of running a process-data program on this machine, we want to run it on another machine? No problem. We make a TCP connection to a process-data server on the remote machine. On the local machine, we have generate-data writing to the TCP connection, and consume-data reading from the TCP connection…
Real-Time Garbage Collection Is Real
Real-Time Garbage Collection (RTGC) tests the limits of what we typically think is possible in production software. You might hear “Real-Time” and “Garbage Collection” together and think “If you truly need real-time guarantees, why would you use a garbage collected language?” or “How is real-time Garbage Collection…
We Need More Operating Systems
A blog about computer science education. Projects, resources, and ideas for teaching, learning, and using computer science. By a teacher for teachers.
Starbucks Does Not Use Two-Phase Commit (2004)
People often criticize asynchronous messaging solutions as too complicated and cumbersome
Why Cassandra Doesn't Need Vector Clocks
Deepening watsonx capabilities to address enterprise gen AI data needs with DataStax.
The Right Stuff: Breaking the PageSpeed Barrier with Bootstrap
The AppNeta award-winning suite of network monitoring tools allow unparalleled SaaS-based application end-user performance monitoring for 100% delivery confidence.
Systemd is not portable and what this means for our ports
This blog post is the third of a series of posts dealing with the results of the Debian systemd survey . I intend to give a presentation at DebConf 2013, too, so you could either read my posts, or watch the talk, or both :-).
Cache Rules Everything Around Me
Attached Code: https://github.com/iainkfraser/cache_transpose Before we begin, the underlined words are briefly described in the gloss...
Gap between asm.js and native gets narrower with float32 optimizations
asm.js is a simple subset of JavaScript that is very easy to optimize, suitable for use as a compiler target from languages like C and C++. Earlier this year Firefox ...