RSSAmplifier

Blog

Paul Cavallaro

Recent content on Paul Cavallaro

/RSS feed ↗20 posts

Latest posts

Reading List: A Collection of Technical Resources

A colleague recently asked me for a list of technical books/blogs/resources that are worth reading. I realized that I don’t really have such a list of things – I’ve mostly organically learned by being interested, reading books recommended to me online or in-person, reading technical blogs I’ve learned about from Hacker News, or Reddit, or Twitter, or just following…

tcmalloc's Temeraire: A Hugepage-Aware Allocator

Today’s paper is Beyond malloc efficiency to fleet efficiency: a hugepage-aware memory allocator by A.H. Hunter, Chris Kennelly, Paul Turner, Darryl Gove, Tipp Moseley, and Parthasarathy Ranganathan from OSDI ‘21 . 
 This paper is a great read, less for its key results – a hugepage aware allocator that reduces tlb misses and memory usage – but for its meta-lessons:…

2022 Predictions

Inspired by others who have written predictions in order to keep themselves accountable and to improve their predictive abilities, here are some predictions I have for 2022. 
 They roughly fall into a few categories: cryptocurrency, technology, long-term technology, and fun (i.e. sports). 
 Cryptocurrency Predictions 
 
 80% certain that Bitcoin price will end the year greater than…

The Deadweight Loss of "The Deadweight Loss of Christmas"

Every year as the weather chills, wreaths are hung, hot cocoa is sipped, and stores start playing the sweet dulcet tones of George Michael and Mariah Carey, our thoughts come to focus on Christmas. And like all good analytical worker bees, inevitably someone asks why must we buy presents for others , instead of everyone just buying whatever it is that they want. It’s a reasonable question!…

Facebook&#39;s Tectonic Filesystem:<br>Efficiency from Exascale

Today&rsquo;s paper is Facebook&rsquo;s Tectonic Filesystem: Efficiency from Exascale from FaST &lsquo;21 . The paper covers the Tectonic Filesystem at Facebook, its implementation, and various design decisions they made. I&rsquo;ll summarize the paper and do a deeper dive on some of its highlights. &#xA; While there is a rich history of filesystem papers and systems, it&rsquo;s nice to read this…

Posix Permissions Are Weird

I&rsquo;ve been working on a distributed filesystem recently, which has exposed me to the POSIX permission system in more depth, and whoo , I&rsquo;m convinced that POSIX permissions are weird and bad and can lead to some very surprising 1 behavior. &#xA; Deleting Files &#xA; Quick, tell me what permissions you need to have to delete the file at /home/paul/notes.txt ? &#xA; Well, the surprise here…

Fanouts and Percentiles

&#xA; In today&rsquo;s post we&rsquo;re going to talk about latencies in a common distributed&#xA;system architecture: The root-leaf, or parent-child, fanout architecture. We&rsquo;ll&#xA;try to gain an intuition for what drives tail latency, derive a formula for&#xA;tying together the parent and child latency distributions, and provide a useful&#xA;interactive visualization to help understand…

Common Systems Programming Optimizations & Tricks

Today&rsquo;s blog post is an overview of some common optimization techniques and neat&#xA;tricks for doing &ldquo;systems programming&rdquo; &ndash; whatever that means today. We&rsquo;ll walk&#xA;through some methods to make your code run faster, be more efficient, and to&#xA;squeeze just a little more juice from whatever you got. &#xA; All of the examples we&rsquo;ll go over are also on github…

A Practical Multi-Word Compare-and-Swap Operation

Today&rsquo;s paper is about how to implement an efficient and practical multi-word 1 compare-and-swap operation. The paper is entitled &ldquo;A Practical Multi-Word Compare-and-Swap Operation&rdquo; by Timothy L. Harris, Keir Fraser, and Ian A. Pratt constructs a lock-free, non-blocking, multi-word CAS given just a single word CAS. &#xA; Since the focus is on practicality, the authors write up…

x86 TSO: A Programmer&#39;s Model for x86 Multiprocessors

The paper I&rsquo;m writing about today is x86-TSO: A Rigorous and Usable Programmer&rsquo;s Model for x86 Multiprocessors by Sewell, Sarkar, Owens, Nardelli, and Myreen. The paper tries to provide a framework for systems programmers to reason about the execution of code on x86 multiprocessors. The main focus is being the execution of multi-threaded code on multi-processors, and how we can reason…

New Year, New Resolution

So I had a resolution last year to read and write a blog post about 26 papers in 52 weeks . I managed to write about 5 papers in 2017, which isn&rsquo;t 26, but also isn&rsquo;t 0. I&rsquo;m chalking that up as a win, and I definitely ended up reading more interesting papers last year than I had previously. &#xA; 12 Months, 12 Papers &#xA; So for 2018 I&rsquo;m aiming for the more manageable, but…

System Software

There&rsquo;s a quote I love from Ian Lance Taylor&rsquo;s series on&#xA;linkers about the complexity that creeps into&#xA;them. &#xA; &#xA; As we’ve seen, what linkers do is basically quite simple, but the details can&#xA;get complicated. The complexity is because smart programmers can see small&#xA;optimizations to speed up their programs a little bit, and somtimes the only&#xA;place those…

Teams, Communication, and Code

It seems almost an accepted wisdom in Software Engineering today that small, empowered, cross-functional teams are the best way to build software and products. You can&rsquo;t have design be separate from product be separate from engineering. Good products are about making the correct choice on hundreds, if not thousands, of tradeoffs. If you solve for your silo&rsquo;s perceived constraints,…

Optimizing Function Placement with Call-Chain Clustering

Today&rsquo;s paper is from Facebook&rsquo;s HHVM team: Optimizing Function Placement for Large-Scale Data-Center Applications . The paper describes two ways to improve code layout, aimed specifically at very large applications. &#xA; The first method is to optimize function layout, i.e., where functions, after inlining is performed, are placed inside the binary. If function A calls function B…

The Bw-Tree

Today&rsquo;s paper is The Bw-Tree: A B-tree for New Hardware Platforms . The paper describes the B uzz w ord Tree, a new B-tree variant. B-trees and their modern successor the B+ trees are heavily used inside DBMSes for indexes, making them performance critical. &#xA; The Bw-tree focuses on improving performance on current and future hardware. For the Bw-tree this means optimizing for multi-core…

Hashed and Hierarchical Timing Wheels

Today&rsquo;s paper was written in 1987 by George Varghese and Tony Lauck from Digital Equipment Corporation (!), and has withstood the test of time. It&rsquo;s about how to efficiently implement a timer facility that allows you to start a fixed length timer and perform some action once it has expired. The ability to set timeouts on requests or operations is almost a given, so being able to handle…

Flexible Paxos

Today we&rsquo;re going to talk about a new development in the world of consensus protocols called Flexible Paxos from Heidi Howard, Dahlia Malkhi, and Alexander Spiegelman. Flexible Paxos builds off of Paxos , which is the foundational consensus protocol invented by Leslie Lamport and has been written about extensively. Paxos is notoriously difficult to understand and reason about, so much so…

Write-Behind Logging

This paper by Joy Arulraj, Matthew Perron, and Andy Pavlo describes a new way to rethink the DBMS Write Ahead Log (WAL) for NVM technology. &#xA; NVM stands for Non Volatile Memory which means that it won&rsquo;t lose the data written to it when it loses power, unlike DRAM. The reason NVM is such a big deal is that it promises to provide read/write latency around 2-8x of DRAM, have good random…

New Year&#39;s Resolution

52 Weeks, 26 Papers &#xA; This year I had a few New Year&rsquo;s resolutions, and one of them was to read and write up a short summary of one academic paper every two weeks. &#xA; If I succeed, by the end of 2017 I&rsquo;ll have blog posts covering twenty six different papers. I&rsquo;d say that&rsquo;d be a pretty successful year. We&rsquo;ll see how it turns out.

About Me

Hi there! I&rsquo;m Paul. This is my website, where I write mostly about software engineering. I&rsquo;ve also been known to create stupid websites , but I&rsquo;m trying to cut down on that. &#xA; Some of my work I&rsquo;m proud of &#xA; &#xA; &#xA; Gorilla &#xA; Gorilla, an in-memory time series database I helped build, that got written up in a VLDB paper. &#xA; &#xA; &#xA; Common Systems…