<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Paul Cavallaro&#39;s Blog on Paul Cavallaro</title>
    <link>/blog/</link>
    <description>Recent content in Paul Cavallaro&#39;s Blog on Paul Cavallaro</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 25 Jul 2025 10:00:00 -0500</lastBuildDate>
    <atom:link href="/blog/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>tcmalloc&#39;s Temeraire: A Hugepage-Aware Allocator</title>
      <link>/blog/tcmalloc-temeraire-hugepage-aware-allocator/</link>
      <pubDate>Fri, 25 Jul 2025 10:00:00 -0500</pubDate>
      <guid>/blog/tcmalloc-temeraire-hugepage-aware-allocator/</guid>
      <description>&lt;p&gt;Today&amp;rsquo;s paper is &lt;a href=&#34;https://research.google/pubs/pub50370/&#34;&gt;Beyond &lt;span style=&#34;font-family:monospace&#34;&gt;malloc&lt;/span&gt; efficiency to fleet efficiency: a hugepage-aware memory allocator&lt;/a&gt; by A.H. Hunter, Chris Kennelly, Paul Turner, Darryl Gove, Tipp Moseley, and Parthasarathy Ranganathan from &lt;a href=&#34;https://www.usenix.org/conference/osdi21&#34;&gt;OSDI &amp;lsquo;21&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This paper is a great read, less for its key results &amp;ndash; a hugepage aware allocator that reduces tlb misses and memory usage &amp;ndash; but for its meta-lessons: measure the entire system, invest in tooling, build a process to experiment confidently, profile globally act locally.&lt;/p&gt;</description>
    </item>
    <item>
      <title>2022 Predictions</title>
      <link>/blog/2022-predictions/</link>
      <pubDate>Sun, 02 Jan 2022 00:30:00 -0400</pubDate>
      <guid>/blog/2022-predictions/</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;&#xA;&lt;p&gt;They roughly fall into a few categories: cryptocurrency, technology, long-term technology, and fun (i.e. sports).&lt;/p&gt;&#xA;&lt;h2 id=&#34;cryptocurrency-predictions&#34;&gt;Cryptocurrency Predictions&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;80% certain that Bitcoin price will end the year greater than $10,000, and less than $150,000.&lt;/li&gt;&#xA;&lt;li&gt;80% certain that Ethereum price will end the year greater than $500, and less than $10,000.&lt;/li&gt;&#xA;&lt;li&gt;80% certain that Solana price will end the year greater than $20, and less than $1,000.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;These predictions are all part of my thesis that cryptocurrency will continue to exist for at least the rest of my lifetime as a new asset class for believers, grifters, and speculators. Only outlawing or strict regulation could really change this prediction. My basic theses is that as technologists have had increasingly larger holding of wealth, the tech subculture that enjoys crypto can in prepetuity continue to pump money into it. Another theory I only slightly believe is that as the world economy continues to grow, I predict there will be more and more fragmented subcultures that can be propelled forever by their own true believers and the FOMO of others. A trillion dollars really isn&amp;rsquo;t what it used to be anymore.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Deadweight Loss of &#34;The Deadweight Loss of Christmas&#34;</title>
      <link>/blog/the-deadweight-loss-of-the-deadweight-loss-of-christmas/</link>
      <pubDate>Mon, 06 Dec 2021 10:00:00 -0400</pubDate>
      <guid>/blog/the-deadweight-loss-of-the-deadweight-loss-of-christmas/</guid>
      <description>&lt;p&gt;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 &lt;em&gt;others&lt;/em&gt;, instead of everyone just buying whatever it is that &lt;em&gt;they&lt;/em&gt; want. It&amp;rsquo;s a reasonable question! It&amp;rsquo;s tough to know what your father-in-law wants, and you really can only buy so many scarves for your mother before everyone catches on that you just can&amp;rsquo;t think of anything to get her.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Facebook&#39;s Tectonic Filesystem:&lt;br&gt;Efficiency from Exascale</title>
      <link>/blog/facebook-tectonic-filesystem/</link>
      <pubDate>Sun, 25 Jul 2021 10:00:00 -0400</pubDate>
      <guid>/blog/facebook-tectonic-filesystem/</guid>
      <description>&lt;p&gt;Today&amp;rsquo;s paper is &lt;a href=&#34;https://www.usenix.org/system/files/fast21-pan.pdf&#34;&gt;Facebook&amp;rsquo;s Tectonic Filesystem: Efficiency from Exascale&lt;/a&gt; from &lt;a href=&#34;https://www.usenix.org/conference/fast21&#34;&gt;FaST &amp;lsquo;21&lt;/a&gt;. The paper covers the Tectonic Filesystem at Facebook, its implementation, and various design decisions they made. I&amp;rsquo;ll summarize the paper and do a deeper dive on some of its highlights.&lt;/p&gt;&#xA;&lt;p&gt;While there is a rich history of filesystem papers and systems, it&amp;rsquo;s nice to read this Tectonic paper, since many of the oft-quoted papers are getting a bit long in the tooth. &lt;a href=&#34;https://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf&#34;&gt;The Google File System (2003)&lt;/a&gt; paper is almost two decades old but is cited more than &lt;a href=&#34;https://www.billmurraystory.com&#34;&gt;Bill Murray in the wild.&lt;/a&gt;&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; There are some more modern papers, mostly from Microsoft like &lt;a href=&#34;https://sigops.org/s/conferences/sosp/2011/current/2011-Cascais/printable/11-calder.pdf&#34;&gt;Windows Azure Storage (2011)&lt;/a&gt; and &lt;a href=&#34;https://dl.acm.org/doi/pdf/10.1145/3035918.3056100&#34;&gt;Azure Data Lake Store (2017)&lt;/a&gt;, but it&amp;rsquo;s nice to see something from a different company.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Posix Permissions Are Weird</title>
      <link>/blog/posix-permissions-are-weird/</link>
      <pubDate>Sat, 13 Mar 2021 10:00:00 -0400</pubDate>
      <guid>/blog/posix-permissions-are-weird/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been working on a distributed filesystem recently, which has exposed me to the POSIX permission system in more depth, and &lt;em&gt;whoo&lt;/em&gt;, I&amp;rsquo;m convinced that POSIX permissions are weird and bad and can lead to some very surprising&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; behavior.&lt;/p&gt;&#xA;&lt;h2 id=&#34;deleting-files&#34;&gt;Deleting Files&lt;/h2&gt;&#xA;&lt;p&gt;Quick, tell me what permissions you need to have to delete the file at &lt;code&gt;/home/paul/notes.txt&lt;/code&gt; ?&lt;/p&gt;&#xA;&lt;p&gt;Well, the surprise here is that you need absolutely zero permissions on the file itself. All you need are:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fanouts and Percentiles</title>
      <link>/blog/fanouts-and-percentiles/</link>
      <pubDate>Sun, 26 Jul 2020 12:00:00 -0500</pubDate>
      <guid>/blog/fanouts-and-percentiles/</guid>
      <description>&lt;script src=&#34;https://d3js.org/d3.v3.min.js&#34;&gt;&lt;/script&gt;&#xA;&lt;p&gt;In today&amp;rsquo;s post we&amp;rsquo;re going to talk about latencies in a common distributed&#xA;system architecture: The root-leaf, or parent-child, fanout architecture. We&amp;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 tail latency in these systems.&lt;/p&gt;&#xA;&lt;h3 id=&#34;root-leaf-fanout-architecture&#34;&gt;Root-Leaf Fanout Architecture&lt;/h3&gt;&#xA;&lt;p&gt;When dealing with distributed systems, it&amp;rsquo;s a common pattern to have a root&#xA;aggregator node that fans-out requests to many leaf nodes that do work in&#xA;parallel, then send back their response to the root node to aggregate and&#xA;create a final response. Usually the API of the system is exposed through the&#xA;root-aggregator nodes, so the latency of these root nodes is what matters.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Common Systems Programming Optimizations &amp; Tricks</title>
      <link>/blog/common-systems-programming-optimizations-tricks/</link>
      <pubDate>Mon, 26 Aug 2019 10:00:00 -0400</pubDate>
      <guid>/blog/common-systems-programming-optimizations-tricks/</guid>
      <description>&lt;p&gt;Today&amp;rsquo;s blog post is an overview of some common optimization techniques and neat&#xA;tricks for doing &amp;ldquo;systems programming&amp;rdquo; &amp;ndash; whatever that means today. We&amp;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.&lt;/p&gt;&#xA;&lt;p&gt;All of the examples we&amp;rsquo;ll go over are also on github at&#xA;&lt;a href=&#34;https://github.com/paulcavallaro/systems-programming&#34;&gt;paulcavallaro/systems-programming&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;cache-lines--false-sharing&#34;&gt;Cache Lines &amp;amp; False Sharing&lt;/h2&gt;&#xA;&lt;p&gt;False sharing is a fairly well-understood problem in optimizing multi-threaded&#xA;code on modern SMP systems. The problem has been&#xA;&lt;a href=&#34;https://software.intel.com/en-us/articles/avoiding-and-identifying-false-sharing-among-threads&#34;&gt;written&lt;/a&gt;&#xA;&lt;a href=&#34;https://mechanical-sympathy.blogspot.com/2011/07/false-sharing.html&#34;&gt;about&lt;/a&gt;&#xA;&lt;a href=&#34;https://dzone.com/articles/false-sharing&#34;&gt;fairly&lt;/a&gt;&#xA;&lt;a href=&#34;https://herbsutter.com/2009/05/15/effective-concurrency-eliminate-false-sharing/&#34;&gt;extensively&lt;/a&gt;,&#xA;but the basic idea is that physical memory on a machine isn&amp;rsquo;t infinitely&#xA;granular, i.e. you can&amp;rsquo;t just read a byte.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; Instead, when you want to read a&#xA;single byte of memory, the processor will pull in and cache not just that byte,&#xA;but the surrounding data as well, on the assumption that it will likely be used&#xA;too. This unit of data that gets read and cached is called a &amp;ldquo;cache line&amp;rdquo;, and&#xA;is essentially the smallest piece of memory that can be accessed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A Practical Multi-Word Compare-and-Swap Operation</title>
      <link>/blog/a-practical-multi-word-compare-and-swap-operation/</link>
      <pubDate>Sun, 17 Jun 2018 12:00:00 -0400</pubDate>
      <guid>/blog/a-practical-multi-word-compare-and-swap-operation/</guid>
      <description>&lt;p&gt;Today&amp;rsquo;s paper is about how to implement an efficient and practical multi-word&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; compare-and-swap operation. The paper is entitled &lt;a href=&#34;https://www.cl.cam.ac.uk/research/srg/netos/papers/2002-casn.pdf&#34;&gt;&amp;ldquo;A Practical Multi-Word Compare-and-Swap Operation&amp;rdquo;&lt;/a&gt; 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.&lt;/p&gt;&#xA;&lt;p&gt;Since the focus is on practicality, the authors write up their algorithms in almost-real pseudo C code, with a minimum of hand-waving. As an example, here is their definition of CAS1, assuming the entire function operates atomically.&lt;/p&gt;</description>
    </item>
    <item>
      <title>x86 TSO: A Programmer&#39;s Model for x86 Multiprocessors</title>
      <link>/blog/x86-tso-a-programmers-model-for-x86-multiprocessors/</link>
      <pubDate>Sun, 28 Jan 2018 17:00:00 -0500</pubDate>
      <guid>/blog/x86-tso-a-programmers-model-for-x86-multiprocessors/</guid>
      <description>&lt;p&gt;The paper I&amp;rsquo;m writing about today is &lt;a href=&#34;https://www.cl.cam.ac.uk/~pes20/weakmemory/cacm.pdf&#34;&gt;x86-TSO: A Rigorous and Usable Programmer&amp;rsquo;s Model for x86 Multiprocessors&lt;/a&gt; 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 about its many possible executions.&lt;/p&gt;&#xA;&lt;p&gt;Prior to learning about x86 processors, I had assumed (like most?) that non-synchronized code execution proceeded as an arbitrary interleaving of assembly instructions, where writes from one thread were immediately readable by all others. This still leaves lots of possible total execution orderings, but unfortunately this view is even too simplified.&lt;/p&gt;</description>
    </item>
    <item>
      <title>New Year, New Resolution</title>
      <link>/blog/new-year-new-resolution/</link>
      <pubDate>Sun, 21 Jan 2018 21:54:15 -0500</pubDate>
      <guid>/blog/new-year-new-resolution/</guid>
      <description>&lt;p&gt;So I had a resolution last year to read and write a blog post about &lt;a href=&#34;/blog/new-years-resolution&#34;&gt;26 papers in 52 weeks&lt;/a&gt;. I managed to write about &lt;a href=&#34;/series/comp-sci-papers&#34;&gt;5 papers&lt;/a&gt; in 2017, which isn&amp;rsquo;t 26, but also isn&amp;rsquo;t 0. I&amp;rsquo;m chalking that up as a win, and I definitely ended up reading more interesting papers last year than I had previously.&lt;/p&gt;&#xA;&lt;h2 id=&#34;12-months-12-papers&#34;&gt;12 Months, 12 Papers&lt;/h2&gt;&#xA;&lt;p&gt;So for 2018 I&amp;rsquo;m aiming for the more manageable, but certainly aspirational, 12 papers in 12 months. My next post will be on a cool paper that presents a programming model for how x86 multiprocessors work. So if you&amp;rsquo;ve ever broken out into a cold sweat about what guarantees there are from your hardware when writing or debugging multi-threaded code, then this is the post for you.&lt;/p&gt;</description>
    </item>
    <item>
      <title>System Software</title>
      <link>/blog/system-software/</link>
      <pubDate>Sun, 17 Dec 2017 22:33:25 -0500</pubDate>
      <guid>/blog/system-software/</guid>
      <description>&lt;p&gt;There&amp;rsquo;s a quote I love from &lt;a href=&#34;https://lwn.net/Articles/276782/&#34;&gt;Ian Lance Taylor&amp;rsquo;s series on&#xA;linkers&lt;/a&gt; about the complexity that creeps into&#xA;them.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;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 optimizations can be implemented is the linker. &lt;strong&gt;Each such&#xA;optimizations makes the linker a little more complicated.&lt;/strong&gt; At the same time,&#xA;of course, the linker has to run as fast as possible, since nobody wants to&#xA;sit around waiting for it to finish. Today I’ll talk about a classic small&#xA;optimization implemented by the linker.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Teams, Communication, and Code</title>
      <link>/blog/teams-communication-and-code/</link>
      <pubDate>Tue, 10 Oct 2017 12:30:00 -0400</pubDate>
      <guid>/blog/teams-communication-and-code/</guid>
      <description>&lt;p&gt;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&amp;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&amp;rsquo;s perceived constraints, versus the &lt;em&gt;actual&lt;/em&gt; constraints, you won&amp;rsquo;t make the correct choice.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;d posit that some recent Software Engineering concepts have risen out from this insight: mainly &lt;a href=&#34;https://martinfowler.com/articles/microservices.html&#34;&gt;Microservices&lt;/a&gt;. The biggest improvement Microservices promises is not cleaner code, or ease of development (I&amp;rsquo;d argue that it hurts both), but that it allows individual teams to make progress on their product independently of other teams. Microservices enables us to actually make progress in a world where nobody knows the whole system, but everybody knows some small piece.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Optimizing Function Placement with Call-Chain Clustering</title>
      <link>/blog/optimizing-function-placement-with-call-chain-clustering/</link>
      <pubDate>Sun, 09 Jul 2017 12:00:00 -0400</pubDate>
      <guid>/blog/optimizing-function-placement-with-call-chain-clustering/</guid>
      <description>&lt;p&gt;Today&amp;rsquo;s paper is from Facebook&amp;rsquo;s HHVM team: &lt;a href=&#34;https://research.fb.com/publications/optimizing-function-placement-for-large-scale-data-center-applications-2/&#34;&gt;Optimizing Function Placement for Large-Scale Data-Center Applications&lt;/a&gt;. The paper describes two ways to improve code layout, aimed specifically at very large applications.&lt;/p&gt;&#xA;&lt;p&gt;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 many times, we&amp;rsquo;d want B to be placed near A so that it&amp;rsquo;s more likely that the instructions for B will already be in the instruction cache.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Bw-Tree</title>
      <link>/blog/the-bw-tree/</link>
      <pubDate>Sun, 25 Jun 2017 12:00:00 -0400</pubDate>
      <guid>/blog/the-bw-tree/</guid>
      <description>&lt;p&gt;Today&amp;rsquo;s paper is &lt;a href=&#34;https://www.microsoft.com/en-us/research/publication/the-bw-tree-a-b-tree-for-new-hardware/&#34;&gt;The Bw-Tree: A B-tree for New Hardware Platforms&lt;/a&gt;. The paper describes the &lt;strong&gt;B&lt;/strong&gt;uzz&lt;strong&gt;w&lt;/strong&gt;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.&lt;/p&gt;&#xA;&lt;p&gt;The Bw-tree focuses on improving performance on current and future hardware. For the Bw-tree this means optimizing for multi-core scalability, cpu cache usage, and flash storage. This paper in particular focuses on the novel techniques used to optimize the in-memory aspects of the Bw-tree, largely ignoring the flash storage layer.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hashed and Hierarchical Timing Wheels</title>
      <link>/blog/hashed-and-hierarchical-timing-wheels/</link>
      <pubDate>Tue, 28 Feb 2017 17:25:23 -0500</pubDate>
      <guid>/blog/hashed-and-hierarchical-timing-wheels/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.cs.columbia.edu/~nahum/w6998/papers/sosp87-timing-wheels.pdf&#34;&gt;Today&amp;rsquo;s paper&lt;/a&gt; was written in 1987 by George Varghese and Tony Lauck from Digital Equipment Corporation (!), and has withstood the test of time. It&amp;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 these timers efficiently is quite important.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Flexible Paxos</title>
      <link>/blog/flexible-paxos/</link>
      <pubDate>Sun, 29 Jan 2017 23:15:00 -0500</pubDate>
      <guid>/blog/flexible-paxos/</guid>
      <description>&lt;p&gt;Today we&amp;rsquo;re going to talk about a new development in the world of consensus protocols called &lt;a href=&#34;https://arxiv.org/abs/1608.06696&#34;&gt;Flexible Paxos&lt;/a&gt; from Heidi Howard, Dahlia Malkhi, and Alexander Spiegelman. Flexible Paxos builds off of &lt;a href=&#34;https://en.wikipedia.org/wiki/Paxos_(computer_science)&#34;&gt;Paxos&lt;/a&gt;, 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 that there is a follow up paper by Leslie Lamport called &lt;a href=&#34;http://research.microsoft.com/en-us/um/people/lamport/pubs/paxos-simple.pdf&#34;&gt;Paxos Made Simple&lt;/a&gt; which, while still being easier to understand than the original paper, is still difficult to follow. There has been other work on consensus protocols like &lt;a href=&#34;http://dl.acm.org/citation.cfm?id=1529978&#34;&gt;Zab&lt;/a&gt; which powers &lt;a href=&#34;https://zookeeper.apache.org/&#34;&gt;ZooKeeper&lt;/a&gt;, and more recently &lt;a href=&#34;https://raft.github.io/&#34;&gt;Raft&lt;/a&gt; which powers &lt;a href=&#34;https://www.consul.io/&#34;&gt;Consul&lt;/a&gt;, &lt;a href=&#34;https://coreos.com/etcd/docs/latest/&#34;&gt;etcd&lt;/a&gt;, and others. That said, Paxos is still the grandaddy of them all, and powers lots of important infrastructure.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Write-Behind Logging</title>
      <link>/blog/write-behind-logging/</link>
      <pubDate>Sun, 15 Jan 2017 10:12:00 -0500</pubDate>
      <guid>/blog/write-behind-logging/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.vldb.org/pvldb/vol10/p337-arulraj.pdf&#34;&gt;This paper&lt;/a&gt; by Joy Arulraj, Matthew Perron, and Andy Pavlo describes a new way to rethink the DBMS Write Ahead Log (WAL) for NVM technology.&lt;/p&gt;&#xA;&lt;p&gt;NVM stands for Non Volatile Memory which means that it won&amp;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 read/write latency, and have much larger storage capacity than DRAM. Compared to NAND flash Intel claims their new 3D XPoint will be &lt;a href=&#34;https://en.wikipedia.org/wiki/3D_XPoint&#34;&gt;10x lower latency, 4x write throughput, 3x read throughput&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>New Year&#39;s Resolution</title>
      <link>/blog/new-years-resolution/</link>
      <pubDate>Wed, 04 Jan 2017 22:59:21 -0500</pubDate>
      <guid>/blog/new-years-resolution/</guid>
      <description>&lt;h1 id=&#34;52-weeks-26-papers&#34;&gt;52 Weeks, 26 Papers&lt;/h1&gt;&#xA;&lt;p&gt;This year I had a few New Year&amp;rsquo;s resolutions, and one of them was to read and write up a short summary of one academic paper every two weeks.&lt;/p&gt;&#xA;&lt;p&gt;If I succeed, by the end of 2017 I&amp;rsquo;ll have blog posts covering twenty six different papers. I&amp;rsquo;d say that&amp;rsquo;d be a pretty successful year. We&amp;rsquo;ll see how it turns out.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
