<script data-pm-proxy="intercept"></script><?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[System Design Primer]]></title><description><![CDATA[Master system design — one concept at a time. System Design Primer breaks down distributed systems, scalability patterns, and real-world architecture decisions into clear, digestible lessons for software engineers at every level. Whether you're preparing ]]></description><link>https://systemdesignprimer.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!yEXT!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsystemdesignprimer.substack.com%2Fimg%2Fsubstack.png</url><title>System Design Primer</title><link>https://systemdesignprimer.substack.com</link></image><generator>Substack</generator><lastBuildDate>Tue, 01 Sep 2026 14:49:00 GMT</lastBuildDate><atom:link href="/__u/systemdesignprimer.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Architecture of Information]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[systemdesignprimer@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[systemdesignprimer@substack.com]]></itunes:email><itunes:name><![CDATA[System Design Primer]]></itunes:name></itunes:owner><itunes:author><![CDATA[System Design Primer]]></itunes:author><googleplay:owner><![CDATA[systemdesignprimer@substack.com]]></googleplay:owner><googleplay:email><![CDATA[systemdesignprimer@substack.com]]></googleplay:email><googleplay:author><![CDATA[System Design Primer]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The Architecture of Information: Storage-Layer Deduplication]]></title><description><![CDATA[A backup job that dedups to 3% of its original size on Monday balloons to 40% by Wednesday.]]></description><link>https://systemdesignprimer.substack.com/p/the-architecture-of-information</link><guid isPermaLink="false">https://systemdesignprimer.substack.com/p/the-architecture-of-information</guid><dc:creator><![CDATA[System Design Primer]]></dc:creator><pubDate>Mon, 31 Aug 2026 08:30:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!H29C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a01d62a-f0fc-412b-b8c5-4ba32a95952c_3800x1600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A backup job that dedups to 3% of its original size on Monday balloons to 40% by Wednesday. Nobody added data. Someone edited one line in a config file. Every chunk boundary after that line shifts, so the engine sees thousands of &#8220;new&#8221; chunks that are the same bytes, one position over.</p><p>Content-addressable storage slices files into chunks, hashes each one, and stores a single copy per hash. Fixed-size chunking &#8212; cut every 8KB &#8212; is brittle: insert one byte and every boundary downstream moves, changing the hash even though the content didn&#8217;t. Content-defined chunking picks boundaries from the bytes themselves using a rolling hash, like scanning for a fingerprint instead of counting to 8192. Only the chunk touching the edit changes; the rest match their old hashes.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!H29C!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a01d62a-f0fc-412b-b8c5-4ba32a95952c_3800x1600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!H29C!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a01d62a-f0fc-412b-b8c5-4ba32a95952c_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!H29C!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a01d62a-f0fc-412b-b8c5-4ba32a95952c_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!H29C!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a01d62a-f0fc-412b-b8c5-4ba32a95952c_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!H29C!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a01d62a-f0fc-412b-b8c5-4ba32a95952c_3800x1600.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!H29C!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a01d62a-f0fc-412b-b8c5-4ba32a95952c_3800x1600.png" width="1456" height="613" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1a01d62a-f0fc-412b-b8c5-4ba32a95952c_3800x1600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:613,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:324417,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://systemdesignprimer.substack.com/i/211546991?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a01d62a-f0fc-412b-b8c5-4ba32a95952c_3800x1600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!H29C!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a01d62a-f0fc-412b-b8c5-4ba32a95952c_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!H29C!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a01d62a-f0fc-412b-b8c5-4ba32a95952c_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!H29C!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a01d62a-f0fc-412b-b8c5-4ba32a95952c_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!H29C!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1a01d62a-f0fc-412b-b8c5-4ba32a95952c_3800x1600.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Do you know whether your backup system uses fixed-size or content-defined chunking?</strong></p><blockquote><p>Most people assume a better dedup ratio just means smaller chunks. The reality: halving chunk size can shrink storage another 20&#8211;30%, but roughly doubles the chunk index &#8212; pushing metadata that once fit in RAM onto disk, and slowing every restore.</p></blockquote><p>The full Deep Dive on content-addressable storage lands Week 7, covering how chunk-size tuning shifts cost across hot, warm, and cold tiers.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://systemdesignprimer.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Log-Structured File Systems]]></title><description><![CDATA[A database team swaps ext4 for a log-structured filesystem and write throughput jumps 4x overnight.]]></description><link>https://systemdesignprimer.substack.com/p/log-structured-file-systems</link><guid isPermaLink="false">https://systemdesignprimer.substack.com/p/log-structured-file-systems</guid><dc:creator><![CDATA[System Design Primer]]></dc:creator><pubDate>Sat, 29 Aug 2026 08:30:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!2WF3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c9c98bd-60ec-4cd6-a000-b62417bdaff1_3800x1600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A database team swaps ext4 for a log-structured filesystem and write throughput jumps 4x overnight. Six months later, at 85% disk utilization, read latency has crept from 2ms to 40ms. Nothing in the app changed. The disk did. Every write here is an append, never an overwrite &#8212; that&#8217;s both the trick and the trap.</p><p>Instead of updating a block in place, the filesystem appends the new version to a running log and marks the old copy dead. Segments fill with a mix of live and dead blocks. A background cleaner finds the deadest segments, copies out what&#8217;s still live, and frees the rest &#8212; cleaning cost climbs fast as the disk fills, since less dead space remains per segment.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!2WF3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c9c98bd-60ec-4cd6-a000-b62417bdaff1_3800x1600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!2WF3!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c9c98bd-60ec-4cd6-a000-b62417bdaff1_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!2WF3!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c9c98bd-60ec-4cd6-a000-b62417bdaff1_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!2WF3!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c9c98bd-60ec-4cd6-a000-b62417bdaff1_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!2WF3!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c9c98bd-60ec-4cd6-a000-b62417bdaff1_3800x1600.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!2WF3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c9c98bd-60ec-4cd6-a000-b62417bdaff1_3800x1600.png" width="1456" height="613" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9c9c98bd-60ec-4cd6-a000-b62417bdaff1_3800x1600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:613,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:284780,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://systemdesignprimer.substack.com/i/211546681?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c9c98bd-60ec-4cd6-a000-b62417bdaff1_3800x1600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!2WF3!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c9c98bd-60ec-4cd6-a000-b62417bdaff1_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!2WF3!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c9c98bd-60ec-4cd6-a000-b62417bdaff1_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!2WF3!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c9c98bd-60ec-4cd6-a000-b62417bdaff1_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!2WF3!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c9c98bd-60ec-4cd6-a000-b62417bdaff1_3800x1600.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Do you know what percentage of your disk is currently marked as dead-but-not-yet-reclaimed?</p><blockquote><p>Most people assume a log-structured filesystem is always faster than an in-place one. Under sustained random writes near capacity, segment cleaning can push effective write amplification to roughly 2 to 6x &#8212; the disk rewrites several bytes for every byte the app actually sent.</p></blockquote><p>This topic is in the Deep Dive queue &#8212; the Scan gives you the tension, the full article gives you the production reality.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://systemdesignprimer.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[NVMe over Fabrics (NVMe-oF)]]></title><description><![CDATA[Yesterday&#8217;s Scan covered eBPF kernel hooks.]]></description><link>https://systemdesignprimer.substack.com/p/nvme-over-fabrics-nvme-of</link><guid isPermaLink="false">https://systemdesignprimer.substack.com/p/nvme-over-fabrics-nvme-of</guid><dc:creator><![CDATA[System Design Primer]]></dc:creator><pubDate>Thu, 27 Aug 2026 08:30:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!UAGe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9050eabc-7652-4d29-bad5-fcb50795f5a0_3800x1600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Yesterday&#8217;s Scan covered eBPF kernel hooks. Today: NVMe over Fabrics &#8212; the layer underneath that.</em></p><p>A local NVMe SSD replies in about 100 microseconds. Route that same read through iSCSI &#8212; SCSI commands wrapped in TCP &#8212; and you&#8217;re paying 1 to 2 milliseconds, ten to twenty times slower. Teams buy all-flash arrays expecting local-SSD speed, then wonder why p99 latency barely moved. The flash was never the bottleneck. The translation layer was.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://systemdesignprimer.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>NVMe was designed for drives sitting next to the CPU, so it skips the layers SCSI needs for tape drives and printers. NVMe-oF puts that same lean command set directly on the wire &#8212; over RDMA, TCP, or Fibre Channel &#8212; instead of repacking it into SCSI first. No translation step, either direction.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!UAGe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9050eabc-7652-4d29-bad5-fcb50795f5a0_3800x1600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!UAGe!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9050eabc-7652-4d29-bad5-fcb50795f5a0_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!UAGe!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9050eabc-7652-4d29-bad5-fcb50795f5a0_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!UAGe!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9050eabc-7652-4d29-bad5-fcb50795f5a0_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!UAGe!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9050eabc-7652-4d29-bad5-fcb50795f5a0_3800x1600.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!UAGe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9050eabc-7652-4d29-bad5-fcb50795f5a0_3800x1600.png" width="1456" height="613" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9050eabc-7652-4d29-bad5-fcb50795f5a0_3800x1600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:613,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:337534,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://systemdesignprimer.substack.com/i/211546367?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9050eabc-7652-4d29-bad5-fcb50795f5a0_3800x1600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!UAGe!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9050eabc-7652-4d29-bad5-fcb50795f5a0_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!UAGe!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9050eabc-7652-4d29-bad5-fcb50795f5a0_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!UAGe!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9050eabc-7652-4d29-bad5-fcb50795f5a0_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!UAGe!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9050eabc-7652-4d29-bad5-fcb50795f5a0_3800x1600.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Diagram note: shows the failure moment (Part 2) as a before/after &#8212; one extra box (SCSI translate) is the entire gap between millisecond and microsecond storage. A flow diagram was chosen over a chart because the win is structural, not statistical: it&#8217;s about a hop disappearing, not a value shifting.</em></p><p>Do you know whether your storage fabric runs native NVMe-oF, or still translates every command back into SCSI at the target?</p><blockquote><p>Most people assume NVMe-oF needs exotic RDMA-capable NICs to be worth it. The reality: NVMe/TCP over ordinary Ethernet now lands within roughly 20-30 microseconds of RDMA in many production stacks &#8212; close enough that most teams skip RDMA entirely.</p></blockquote><p>This topic is in the Deep Dive queue. The Scan gives you the tension. The full article will give you the production reality.</p><p><em>Tomorrow: RDMA and kernel bypass.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://systemdesignprimer.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Block storage vs object storage]]></title><description><![CDATA[A team moves their database&#8217;s write-ahead log to object storage to cut costs, and commit latency jumps from 2ms to 200ms overnight.]]></description><link>https://systemdesignprimer.substack.com/p/block-storage-vs-object-storage</link><guid isPermaLink="false">https://systemdesignprimer.substack.com/p/block-storage-vs-object-storage</guid><dc:creator><![CDATA[System Design Primer]]></dc:creator><pubDate>Tue, 25 Aug 2026 08:30:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YUSL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a1b7e3b-d5b1-4d37-9cab-31553440234b_3800x1600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A team moves their database&#8217;s write-ahead log to object storage to cut costs, and commit latency jumps from 2ms to 200ms overnight. Nothing about the disk changed. What changed is the write contract. Block storage lets you mutate 4KB at a time, in place, at the exact offset you ask for. Object storage doesn&#8217;t have an &#8220;at a time&#8221; &#8212; every write replaces the whole object, no matter how many bytes actually changed.</p><p>That&#8217;s the whole tension. Block storage exposes a raw array of fixed-size blocks, addressed by number, and any block can be overwritten independently &#8212; this is what filesystems and databases are built on. Object storage exposes whole, versioned blobs addressed by key, and there is no partial-overwrite API &#8212; change one byte, and the system writes a brand new object. Think of block storage as a filing cabinet where you open one drawer without touching the rest; object storage is a sealed crate you must fully repack to change anything inside.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!YUSL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a1b7e3b-d5b1-4d37-9cab-31553440234b_3800x1600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!YUSL!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a1b7e3b-d5b1-4d37-9cab-31553440234b_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!YUSL!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a1b7e3b-d5b1-4d37-9cab-31553440234b_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!YUSL!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a1b7e3b-d5b1-4d37-9cab-31553440234b_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!YUSL!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a1b7e3b-d5b1-4d37-9cab-31553440234b_3800x1600.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!YUSL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a1b7e3b-d5b1-4d37-9cab-31553440234b_3800x1600.png" width="1456" height="613" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0a1b7e3b-d5b1-4d37-9cab-31553440234b_3800x1600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:613,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:355929,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://systemdesignprimer.substack.com/i/211546098?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a1b7e3b-d5b1-4d37-9cab-31553440234b_3800x1600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!YUSL!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a1b7e3b-d5b1-4d37-9cab-31553440234b_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!YUSL!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a1b7e3b-d5b1-4d37-9cab-31553440234b_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!YUSL!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a1b7e3b-d5b1-4d37-9cab-31553440234b_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!YUSL!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a1b7e3b-d5b1-4d37-9cab-31553440234b_3800x1600.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Do you know which of your write-heavy paths &#8212; logs, indexes, queues &#8212; are currently landing on object storage instead of block storage?</p><blockquote><p>Most people assume object storage is just &#8220;cheaper, slower disk.&#8221; The reality is that its per-object write latency, roughly 100&#8211;200ms, comes almost entirely from metadata and index updates, not data transfer &#8212; so a workload doing many small updates can run an order of magnitude slower than the identical pattern on block storage, even though object storage&#8217;s raw throughput on large sequential objects is excellent.</p></blockquote><p>This topic is in the Deep Dive queue. The Scan gives you the tension. The full article will give you the production reality.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://systemdesignprimer.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Data locality disaggregated systems]]></title><description><![CDATA[Previously: in &#8220;CXL and the Collapse of the Memory Hierarchy,&#8221; we covered how CXL lets a machine treat another machine&#8217;s memory as its own, and where that pooling starts to leak.]]></description><link>https://systemdesignprimer.substack.com/p/data-locality-disaggregated-systems</link><guid isPermaLink="false">https://systemdesignprimer.substack.com/p/data-locality-disaggregated-systems</guid><dc:creator><![CDATA[System Design Primer]]></dc:creator><pubDate>Sun, 23 Aug 2026 08:30:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!s3KP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27e11fe7-7072-40e6-876e-62e1ff7052d8_3800x2300.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Previously: in &#8220;CXL and the Collapse of the Memory Hierarchy,&#8221; we covered how CXL lets a machine treat another machine&#8217;s memory as its own, and where that pooling starts to leak.</em></p><p>Somebody on your team disaggregates storage and compute. The pitch is simple: scale each independently, save money on idle capacity, stop over-provisioning compute nodes just to keep disks nearby. Three months later, a query that used to take 40 milliseconds is taking 4 seconds, and nobody can find the bug, because there isn&#8217;t one. The system is working exactly as designed. It&#8217;s just answering a question nobody asked: is this workload one where you should send the computation to the data, or the data to the computation?</p><p>For thirty years, the answer was obvious. Data is heavy, code is light. You ship the query to the disk, not the disk to the query. MapReduce built an entire era of big data infrastructure on that one assumption. But disaggregation breaks the assumption it was built on, and most teams don&#8217;t notice until the bill or the latency graph tells them.</p><h2>The Assumption That Stopped Being True</h2><p>&#8220;Move compute to data&#8221; was never really a principle. It was a shortcut, and it only worked because moving data used to be slow. A 1 Gbps top-of-rack switch and a spinning disk made data movement the expensive operation by a wide margin, so you avoided it whenever you could. The rule of thumb calcified into architecture: colocate compute and storage on the same box, keep the network out of the hot path, and if you must talk to another machine, send it a small request and get a small answer back.</p><p>Disaggregated systems remove the box. Compute and storage now live on different machines connected by a fabric &#8212; NVMe over Fabrics (NVMe-oF), RDMA, or increasingly CXL for memory-level access &#8212; and that fabric is no longer the bottleneck it used to be. A modern RDMA link over 100 or 200 Gbps Ethernet moves data at a rate that starts to rival local memory bandwidth. The old shortcut doesn&#8217;t hold. Sometimes shipping the bytes really is cheaper than shipping the job.</p><p>This isn&#8217;t a story about the network getting &#8220;fast.&#8221; It&#8217;s a story about the cost curve for two different operations crossing each other, and the crossing point depending on the shape of the workload, not on some fixed rule you can write once and forget.</p><h2>The Trade You&#8217;re Actually Making</h2><p>Every remote read is really a decision between two paths, and the decision hinges on three things: how much data the operation touches, how selective the operation is, and how fast the fabric between the two sides actually is.</p><p>Path one: ship the function. You send a small piece of logic &#8212; a filter predicate, an aggregation, a scan bound &#8212; to wherever the data lives, and it runs there. Only the result crosses the network. This is what pushdown predicates, storage-side filtering, and &#8220;smart&#8221; SSDs with onboard compute are all doing. The cost is roughly one round trip plus execution time, and the payload over the wire stays tiny no matter how much data the operation touches internally.</p><p>Path two: ship the bytes. You pull the data across the fabric and run the computation wherever your compute pool is elastic that day. The cost is roughly payload size divided by fabric bandwidth, plus setup overhead. For a highly selective read &#8212; one row out of a billion &#8212; this is wasteful. For a large sequential scan or a join that touches most of a table anyway, this can win, because modern fabrics move sequential data fast enough to make the &#8220;expensive network&#8221; assumption obsolete.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!s3KP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27e11fe7-7072-40e6-876e-62e1ff7052d8_3800x2300.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!s3KP!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27e11fe7-7072-40e6-876e-62e1ff7052d8_3800x2300.png 424w, /__u/substackcdn.com/image/fetch/$s_!s3KP!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27e11fe7-7072-40e6-876e-62e1ff7052d8_3800x2300.png 848w, /__u/substackcdn.com/image/fetch/$s_!s3KP!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27e11fe7-7072-40e6-876e-62e1ff7052d8_3800x2300.png 1272w, /__u/substackcdn.com/image/fetch/$s_!s3KP!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27e11fe7-7072-40e6-876e-62e1ff7052d8_3800x2300.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!s3KP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27e11fe7-7072-40e6-876e-62e1ff7052d8_3800x2300.png" width="618" height="373.9409340659341" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/27e11fe7-7072-40e6-876e-62e1ff7052d8_3800x2300.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:881,&quot;width&quot;:1456,&quot;resizeWidth&quot;:618,&quot;bytes&quot;:552143,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://systemdesignprimer.substack.com/i/211545511?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27e11fe7-7072-40e6-876e-62e1ff7052d8_3800x2300.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!s3KP!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27e11fe7-7072-40e6-876e-62e1ff7052d8_3800x2300.png 424w, /__u/substackcdn.com/image/fetch/$s_!s3KP!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27e11fe7-7072-40e6-876e-62e1ff7052d8_3800x2300.png 848w, /__u/substackcdn.com/image/fetch/$s_!s3KP!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27e11fe7-7072-40e6-876e-62e1ff7052d8_3800x2300.png 1272w, /__u/substackcdn.com/image/fetch/$s_!s3KP!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27e11fe7-7072-40e6-876e-62e1ff7052d8_3800x2300.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div>
      <p>
          <a href="/__u/systemdesignprimer.substack.com/p/data-locality-disaggregated-systems">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Erasure coding vs replication ]]></title><description><![CDATA[Triple replication on a 10-petabyte dataset burns roughly 30 petabytes of raw disk.]]></description><link>https://systemdesignprimer.substack.com/p/erasure-coding-vs-replication</link><guid isPermaLink="false">https://systemdesignprimer.substack.com/p/erasure-coding-vs-replication</guid><dc:creator><![CDATA[System Design Primer]]></dc:creator><pubDate>Fri, 21 Aug 2026 08:30:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!J_QF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6ea6c09-d2d7-4494-9787-f0f434421721_3800x1600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p>Triple replication on a 10-petabyte dataset burns roughly 30 petabytes of raw disk. Switch to a (10,4) erasure code and the same data needs around 14 petabytes &#8212; cheaper, but one node failure now triggers a rebuild that reads ten surviving shards to reconstruct a single chunk. That storm is what bites teams during a second failure mid-rebuild.</p><p>Replication keeps full copies of every object &#8212; simple to read, expensive to store. Erasure coding splits an object into k data chunks plus m parity chunks, so any k of the k+m chunks rebuild the original &#8212; close to how RAID 6 survives two disk failures with two extra disks, not a full mirror. Rebuilding one chunk means pulling k chunks over the network, not one replica.</p></blockquote><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!J_QF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6ea6c09-d2d7-4494-9787-f0f434421721_3800x1600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!J_QF!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6ea6c09-d2d7-4494-9787-f0f434421721_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!J_QF!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6ea6c09-d2d7-4494-9787-f0f434421721_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!J_QF!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6ea6c09-d2d7-4494-9787-f0f434421721_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!J_QF!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6ea6c09-d2d7-4494-9787-f0f434421721_3800x1600.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!J_QF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6ea6c09-d2d7-4494-9787-f0f434421721_3800x1600.png" width="1456" height="613" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c6ea6c09-d2d7-4494-9787-f0f434421721_3800x1600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:613,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:301260,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://systemdesignprimer.substack.com/i/211544864?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6ea6c09-d2d7-4494-9787-f0f434421721_3800x1600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!J_QF!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6ea6c09-d2d7-4494-9787-f0f434421721_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!J_QF!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6ea6c09-d2d7-4494-9787-f0f434421721_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!J_QF!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6ea6c09-d2d7-4494-9787-f0f434421721_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!J_QF!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6ea6c09-d2d7-4494-9787-f0f434421721_3800x1600.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Do you know how many shards your storage reads across the network to rebuild one lost chunk right now?</p><blockquote><p>Most people assume erasure coding is unambiguously cheaper to run. The reality: a single node failure in an EC(10,4) scheme can pull around 10x more rebuild traffic than a 3x-replicated system recovering the same data, since reconstruction needs k healthy shards instead of one copy.</p></blockquote><p>The full Deep Dive on data locality in disaggregated systems is coming in Week 6, covering the rebuild-bandwidth math and where the erasure coding break-even point actually sits.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://systemdesignprimer.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Persistent Memory: The Hardware That Refused to Pick a Side]]></title><description><![CDATA[Previously: In CXL, we covered how the industry solved the problem of memory being trapped inside a single server.]]></description><link>https://systemdesignprimer.substack.com/p/persistent-memory-the-hardware-that</link><guid isPermaLink="false">https://systemdesignprimer.substack.com/p/persistent-memory-the-hardware-that</guid><dc:creator><![CDATA[System Design Primer]]></dc:creator><pubDate>Wed, 19 Aug 2026 08:30:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!EqHm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bac6c44-893e-4e74-a57a-e6e4bf399861_3800x2300.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Previously: In CXL, we covered how the industry solved the problem of memory being trapped inside a single server. This lesson covers persistent memory &#8212; the hardware that made engineers rethink what &#8220;durable&#8221; means before CXL ever existed.</em></p><p>You write a value to memory. It&#8217;s there. You pull the power cord. It&#8217;s gone. That&#8217;s the deal you signed up for the day you learned what RAM stood for.</p><p>Persistent memory broke that deal on purpose. For about six years, you could buy a DIMM that plugged into a normal memory slot, ran at close to DRAM speed, and kept your data after a power loss. Intel called it Optane. It promised to close the biggest gap in computing &#8212; the one between how fast your CPU can think and how slow your disk can remember. Then, in 2022, Intel killed it.</p><p>This lesson is about why PMEM mattered enough to build, why it was hard enough to use that most teams never touched it, and why the idea didn&#8217;t actually die &#8212; it just moved into CXL, which is where we left off last time.</p><h2>The 100,000x Gap Nobody Wanted to Admit</h2><p>Here&#8217;s the number that started this whole category of hardware. A DRAM access takes roughly 100 nanoseconds. A flash SSD access, even a fast NVMe one, takes somewhere around 50 to 100 microseconds once you count the driver, the queue, and the device firmware. That&#8217;s a gap of roughly 500 to 1,000x. Spinning disk was worse &#8212; closer to 100,000x.</p><p>Every database, every cache, every distributed log was built to hide that gap. Write-ahead logs batch writes so you fsync less often. Caches try to keep hot data out of the gap entirely. B-trees and LSM-trees, which we covered earlier in this act, exist largely because random access to that slow tier is so expensive that you have to be clever about when you touch it.</p><p>All of that cleverness is a workaround. It assumes the gap is fixed and permanent &#8212; a law of physics you design around, not a problem you solve. PMEM was the first serious attempt to just shrink the gap instead. Optane&#8217;s read latency landed around 300 to 400 nanoseconds &#8212; call it 3 to 4x slower than DRAM, not 500x. Write latency was close to DRAM on writes, because unlike flash, there was no erase-before-write cycle to hide.</p><p>Suddenly the question wasn&#8217;t &#8220;how do I avoid touching slow storage&#8221; &#8212; it was &#8220;what if slow storage was fast enough that I didn&#8217;t have to avoid it.&#8221;</p><h2>How PMEM Lets the CPU Skip the Storage Stack Entirely</h2><p>A normal write to disk goes through a stack: your application calls write(), the kernel copies data into a page cache buffer, the block layer schedules an I/O, the driver talks to the device, and eventually bytes land on flash. Every one of those layers adds latency, and every one exists because the CPU can&#8217;t directly address anything on the other side of a block device.</p><p>PMEM removes the &#8220;block device&#8221; part of that sentence. It sits on the memory bus, addressed by the CPU the same way DRAM is &#8212; you can point a regular pointer at it and dereference it. Intel&#8217;s App Direct mode exposed PMEM as a memory-mapped region: your application <code>mmap()</code>s a file backed by the PMEM device, and from that point on, reading and writing it is a plain load or store instruction. No syscall, no page cache copy, no block layer, no driver queue.</p><p>This is the part that made people excited: you could build a hash table, a log, or a B-tree that lived directly in persistent memory, with no serialization step and no separate &#8220;save to disk&#8221; phase. The data structure and its durable copy were the same bytes.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!EqHm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bac6c44-893e-4e74-a57a-e6e4bf399861_3800x2300.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!EqHm!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bac6c44-893e-4e74-a57a-e6e4bf399861_3800x2300.png 424w, /__u/substackcdn.com/image/fetch/$s_!EqHm!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bac6c44-893e-4e74-a57a-e6e4bf399861_3800x2300.png 848w, /__u/substackcdn.com/image/fetch/$s_!EqHm!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bac6c44-893e-4e74-a57a-e6e4bf399861_3800x2300.png 1272w, /__u/substackcdn.com/image/fetch/$s_!EqHm!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bac6c44-893e-4e74-a57a-e6e4bf399861_3800x2300.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!EqHm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bac6c44-893e-4e74-a57a-e6e4bf399861_3800x2300.png" width="594" height="359.41895604395603" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6bac6c44-893e-4e74-a57a-e6e4bf399861_3800x2300.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:881,&quot;width&quot;:1456,&quot;resizeWidth&quot;:594,&quot;bytes&quot;:429654,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://systemdesignprimer.substack.com/i/210333944?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bac6c44-893e-4e74-a57a-e6e4bf399861_3800x2300.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!EqHm!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bac6c44-893e-4e74-a57a-e6e4bf399861_3800x2300.png 424w, /__u/substackcdn.com/image/fetch/$s_!EqHm!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bac6c44-893e-4e74-a57a-e6e4bf399861_3800x2300.png 848w, /__u/substackcdn.com/image/fetch/$s_!EqHm!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bac6c44-893e-4e74-a57a-e6e4bf399861_3800x2300.png 1272w, /__u/substackcdn.com/image/fetch/$s_!EqHm!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bac6c44-893e-4e74-a57a-e6e4bf399861_3800x2300.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div>
      <p>
          <a href="/__u/systemdesignprimer.substack.com/p/persistent-memory-the-hardware-that">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Sustainable Storage Power Management]]></title><description><![CDATA[A hyperscaler powers down an idle flash array at 2 a.m.]]></description><link>https://systemdesignprimer.substack.com/p/sustainable-storage-power-management</link><guid isPermaLink="false">https://systemdesignprimer.substack.com/p/sustainable-storage-power-management</guid><dc:creator><![CDATA[System Design Primer]]></dc:creator><pubDate>Mon, 17 Aug 2026 08:31:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!is5k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77a52473-c3e5-4385-9f71-b94d538bbc4a_3800x1600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A hyperscaler powers down an idle flash array at 2 a.m. to trim the electricity bill. At 6 a.m. it powers back on &#8212; and read latency spikes to a few hundred milliseconds for the first minute or so. Tickets pour in before the coffee&#8217;s brewed. The drive isn&#8217;t broken. It&#8217;s rebuilding a map it should have kept warm.</p><p>Every SSD keeps a flash translation layer &#8212; a lookup table matching the logical address your OS asks for to the physical NAND cell it actually lives on. That table sits in DRAM for speed. Cut power completely and the table is gone with it. Power back on, and the drive has to replay checkpoint logs off the NAND itself before it can safely serve a single read &#8212; like firing the librarian every night and re-shelving the whole building each morning.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://systemdesignprimer.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!is5k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77a52473-c3e5-4385-9f71-b94d538bbc4a_3800x1600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!is5k!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77a52473-c3e5-4385-9f71-b94d538bbc4a_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!is5k!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77a52473-c3e5-4385-9f71-b94d538bbc4a_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!is5k!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77a52473-c3e5-4385-9f71-b94d538bbc4a_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!is5k!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77a52473-c3e5-4385-9f71-b94d538bbc4a_3800x1600.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!is5k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77a52473-c3e5-4385-9f71-b94d538bbc4a_3800x1600.png" width="1456" height="613" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/77a52473-c3e5-4385-9f71-b94d538bbc4a_3800x1600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:613,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:307183,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://systemdesignprimer.substack.com/i/210333594?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77a52473-c3e5-4385-9f71-b94d538bbc4a_3800x1600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!is5k!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77a52473-c3e5-4385-9f71-b94d538bbc4a_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!is5k!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77a52473-c3e5-4385-9f71-b94d538bbc4a_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!is5k!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77a52473-c3e5-4385-9f71-b94d538bbc4a_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!is5k!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77a52473-c3e5-4385-9f71-b94d538bbc4a_3800x1600.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Do you know how many seconds your storage array takes to reach steady-state latency after a cold power-on?</p><blockquote><p>Most people assume powering off an idle array saves energy. The reality is a full power cycle forces an FTL rebuild plus a garbage-collection catch-up burst &#8212; a spike that can pull more peak power in the first two minutes than the drive&#8217;s low-power idle state, roughly 2&#8211;5mW, would have used over several hours.</p></blockquote><p>This topic is in the Deep Dive queue. The Scan gives you the tension. The full article will give you the production reality.</p><p><br></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://systemdesignprimer.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Cloud Object Storage Metadata]]></title><description><![CDATA[A bucket can hold tens of trillions of objects.]]></description><link>https://systemdesignprimer.substack.com/p/cloud-object-storage-metadata</link><guid isPermaLink="false">https://systemdesignprimer.substack.com/p/cloud-object-storage-metadata</guid><dc:creator><![CDATA[System Design Primer]]></dc:creator><pubDate>Sat, 15 Aug 2026 08:31:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Z0oZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40164841-45d2-4bfb-b6e9-70c081f3e6f1_3800x1600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A bucket can hold tens of trillions of objects. None of them live in a filesystem &#8212; there&#8217;s no folder tree, no inode table, nothing you&#8217;d recognize as a directory. Every one of those objects still needs a name, a size, a location, and a permission check resolved in milliseconds. Put that lookup table in one database and it collapses long before you hit a trillion rows. This is why large object stores &#8212; Mantle-style architectures included &#8212; split the metadata layer away from the bytes entirely.</p><p>The fix is treating metadata as its own sharded, distributed problem, separate from where the actual bytes physically sit. Object keys get hashed and spread across many metadata partitions, each backed by an LSM-tree-style store built for fast writes and range scans. A request first resolves through this metadata layer to find which physical node holds the data, then fetches the bytes as a second, separate step. It&#8217;s like a library catalog sitting apart from the shelves &#8212; you query the catalog, then walk straight to the exact shelf instead of searching every aisle</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Z0oZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40164841-45d2-4bfb-b6e9-70c081f3e6f1_3800x1600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Z0oZ!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40164841-45d2-4bfb-b6e9-70c081f3e6f1_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!Z0oZ!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40164841-45d2-4bfb-b6e9-70c081f3e6f1_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!Z0oZ!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40164841-45d2-4bfb-b6e9-70c081f3e6f1_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Z0oZ!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40164841-45d2-4bfb-b6e9-70c081f3e6f1_3800x1600.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Z0oZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40164841-45d2-4bfb-b6e9-70c081f3e6f1_3800x1600.png" width="1456" height="613" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/40164841-45d2-4bfb-b6e9-70c081f3e6f1_3800x1600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:613,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:318263,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://systemdesignprimer.substack.com/i/210333158?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40164841-45d2-4bfb-b6e9-70c081f3e6f1_3800x1600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!Z0oZ!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40164841-45d2-4bfb-b6e9-70c081f3e6f1_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!Z0oZ!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40164841-45d2-4bfb-b6e9-70c081f3e6f1_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!Z0oZ!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40164841-45d2-4bfb-b6e9-70c081f3e6f1_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Z0oZ!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40164841-45d2-4bfb-b6e9-70c081f3e6f1_3800x1600.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Do you know whether a LIST or rename operation in your object store is O(1), or does it slow down as the bucket grows?</p><blockquote><p>Most people assume renaming an object in cloud storage is instant. The reality: it&#8217;s usually implemented as copy-then-delete under the hood, so renaming a 50GB object can take as long as re-uploading it &#8212; and if the process fails halfway, you can end up paying for both the old and new copies.</p></blockquote><p>The full Deep Dive on metadata sharding at object-store scale is coming in Week 6. It covers how partition splitting and rebalancing work when a single shard gets too hot.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://systemdesignprimer.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Non-Exclusive Memory Tiering]]></title><description><![CDATA[Yesterday&#8217;s Scan covered CXL memory pooling.]]></description><link>https://systemdesignprimer.substack.com/p/non-exclusive-memory-tiering</link><guid isPermaLink="false">https://systemdesignprimer.substack.com/p/non-exclusive-memory-tiering</guid><dc:creator><![CDATA[System Design Primer]]></dc:creator><pubDate>Thu, 13 Aug 2026 08:30:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!NpDf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9100c11a-7e15-4b3b-ade1-d31cd56124c1_3800x1600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Yesterday&#8217;s Scan covered CXL memory pooling. Today: non-exclusive memory tiering &#8212; the mechanism underneath that.</em></p><blockquote><p>A page near your promotion threshold migrates twice in one scan interval &#8212; up to DRAM, back down, up again &#8212; each trip copying it across the interconnect you&#8217;re trying to protect. At roughly 3 accesses per epoch, a page hovering between 2 and 4 migrates almost every cycle. The system built to save bandwidth ends up spending more of it than the workload alone ever would.</p><p>Exclusive tiering treats a page as living in one place &#8212; promoting it evicts the slow-tier copy, so every crossing pays full migration cost. Copy-on-promote copies the page up but leaves the original untouched below for a grace period. If access reverses, the system discards the fast-tier copy and reads the original &#8212; no re-migration.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!NpDf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9100c11a-7e15-4b3b-ade1-d31cd56124c1_3800x1600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!NpDf!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9100c11a-7e15-4b3b-ade1-d31cd56124c1_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!NpDf!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9100c11a-7e15-4b3b-ade1-d31cd56124c1_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!NpDf!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9100c11a-7e15-4b3b-ade1-d31cd56124c1_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!NpDf!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9100c11a-7e15-4b3b-ade1-d31cd56124c1_3800x1600.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!NpDf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9100c11a-7e15-4b3b-ade1-d31cd56124c1_3800x1600.png" width="676" height="284.60714285714283" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9100c11a-7e15-4b3b-ade1-d31cd56124c1_3800x1600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:613,&quot;width&quot;:1456,&quot;resizeWidth&quot;:676,&quot;bytes&quot;:317834,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://systemdesignprimer.substack.com/i/209611541?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9100c11a-7e15-4b3b-ade1-d31cd56124c1_3800x1600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!NpDf!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9100c11a-7e15-4b3b-ade1-d31cd56124c1_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!NpDf!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9100c11a-7e15-4b3b-ade1-d31cd56124c1_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!NpDf!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9100c11a-7e15-4b3b-ade1-d31cd56124c1_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!NpDf!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9100c11a-7e15-4b3b-ade1-d31cd56124c1_3800x1600.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Do you know what fraction of pages promoted in your memory tiers this week were demoted again within a single scan cycle?</p><blockquote><p>Most people assume moving a page to a faster tier is pure upside. The reality: it now occupies capacity in both tiers until reclaimed &#8212; near full capacity, that trades thrashing for memory pressure instead.</p></blockquote><p>The full Deep Dive lands in Week 15, covering the reclaim-rate race that turns this safety net into an OOM risk.</p><p><em>Tomorrow: eBPF kernel observability.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://systemdesignprimer.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Scalable Virtual Address Spaces]]></title><description><![CDATA[Yesterday&#8217;s Scan covered CXL memory pooling.]]></description><link>https://systemdesignprimer.substack.com/p/scalable-virtual-address-spaces</link><guid isPermaLink="false">https://systemdesignprimer.substack.com/p/scalable-virtual-address-spaces</guid><dc:creator><![CDATA[System Design Primer]]></dc:creator><pubDate>Tue, 11 Aug 2026 08:30:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!JYcG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ca83bd-9b0a-4b0b-a0e1-5224d29d9256_3080x1320.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Yesterday&#8217;s Scan covered CXL memory pooling. Today: multi-core address lookups &#8212; the layer underneath that.</em></p><blockquote><p>Take a 128-core box running a thread-heavy service. Page faults spike under load, and throughput doesn&#8217;t scale &#8212; it falls off a cliff around 32 threads. Every core is waiting on the exact same lock, even though they&#8217;re touching completely different parts of memory. You added cores. You didn&#8217;t add concurrency.</p><p>The bottleneck is usually a single lock guarding the whole address space, not the memory itself. A concurrent interval skiplist fixes this by keying each memory region (a VMA &#8212; virtual memory area) as a range in a probabilistically balanced, multi-level list. Threads walk down through skip pointers toward the range they actually need, so two threads touching different regions never fight over the same node. It&#8217;s like a building with express elevators to different floors instead of one lobby line for everyone.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!JYcG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ca83bd-9b0a-4b0b-a0e1-5224d29d9256_3080x1320.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!JYcG!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ca83bd-9b0a-4b0b-a0e1-5224d29d9256_3080x1320.png 424w, /__u/substackcdn.com/image/fetch/$s_!JYcG!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ca83bd-9b0a-4b0b-a0e1-5224d29d9256_3080x1320.png 848w, /__u/substackcdn.com/image/fetch/$s_!JYcG!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ca83bd-9b0a-4b0b-a0e1-5224d29d9256_3080x1320.png 1272w, /__u/substackcdn.com/image/fetch/$s_!JYcG!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ca83bd-9b0a-4b0b-a0e1-5224d29d9256_3080x1320.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!JYcG!,w_2400,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ca83bd-9b0a-4b0b-a0e1-5224d29d9256_3080x1320.png" width="672" height="288" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/88ca83bd-9b0a-4b0b-a0e1-5224d29d9256_3080x1320.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:624,&quot;width&quot;:1456,&quot;resizeWidth&quot;:672,&quot;bytes&quot;:234879,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://systemdesignprimer.substack.com/i/209609730?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ca83bd-9b0a-4b0b-a0e1-5224d29d9256_3080x1320.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-large" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!JYcG!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ca83bd-9b0a-4b0b-a0e1-5224d29d9256_3080x1320.png 424w, /__u/substackcdn.com/image/fetch/$s_!JYcG!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ca83bd-9b0a-4b0b-a0e1-5224d29d9256_3080x1320.png 848w, /__u/substackcdn.com/image/fetch/$s_!JYcG!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ca83bd-9b0a-4b0b-a0e1-5224d29d9256_3080x1320.png 1272w, /__u/substackcdn.com/image/fetch/$s_!JYcG!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F88ca83bd-9b0a-4b0b-a0e1-5224d29d9256_3080x1320.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Do you know whether your runtime or kernel still takes one global lock on every page fault, regardless of which memory range is touched?</p><blockquote><p>Most people assume more cores just means more throughput. The reality is that Linux held a single mmap_lock semaphore for the entire address space on every fault until per-VMA locking landed around kernel 6.4 in 2023 &#8212; before that, threads touching unrelated memory still queued behind each other, so adding cores could make things slower, not faster.</p></blockquote><p>The full Deep Dive on concurrent interval skiplists is coming in Week 14. It covers how range deletion and rebalancing stay lock-free under live traffic.</p><p><em>Tomorrow: eBPF kernel bypass.</em></p><p><strong>What the diagram shows:</strong> the left panel is the failure mode (Part 2) &#8212; every thread converges on one <code>mmap_lock</code>, so contention scales with thread count, not with how much of the address space they&#8217;re actually touching. The right panel is the mechanism (Part 3) &#8212; the skiplist lets threads branch toward their own range and never meet. A before/after layout was chosen because the whole tension of this Scan is &#8220;same threads, same memory, wildly different throughput,&#8221; and that&#8217;s a contrast, not a sequence.</p>]]></content:encoded></item><item><title><![CDATA[Remote Memory Scheduling: The Traffic Cop Nobody Budgeted For]]></title><description><![CDATA[Previously: Lesson 27 covered how CXL lets several hosts pool their memory into one shared resource instead of each machine hoarding its own DRAM.]]></description><link>https://systemdesignprimer.substack.com/p/remote-memory-scheduling-the-traffic</link><guid isPermaLink="false">https://systemdesignprimer.substack.com/p/remote-memory-scheduling-the-traffic</guid><dc:creator><![CDATA[System Design Primer]]></dc:creator><pubDate>Sun, 09 Aug 2026 08:30:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!HCJ_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2427fea5-a0cf-4d5c-af68-dcf6abe6d5ff_3800x2300.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Previously: Lesson 27 covered how CXL lets several hosts pool their memory into one shared resource instead of each machine hoarding its own DRAM.</em></p><p>You solved the capacity problem. Then a new one showed up wearing the same clothes.</p><p>Pool your memory across hosts with CXL and the spreadsheet math looks great. Ten machines, each with 128 GB of local DRAM sitting half-idle, now share a 2 TB pool that any of them can reach. Utilization goes up. Procurement is happy. Then week two arrives, and one host&#8217;s p99 latency triples for no reason anyone can find in its own metrics. It isn&#8217;t out of memory. It isn&#8217;t out of CPU. It&#8217;s waiting &#8212; for a memory controller that three other hosts are also hammering at that exact moment.</p><p>This is the part the CXL pitch decks skip. Pooling memory doesn&#8217;t remove contention, it relocates it. You went from &#8220;my memory is mine&#8221; to &#8220;my memory is a resource other people can starve me out of,&#8221; and now something has to decide, every few microseconds, whose request goes first. That something is the remote memory scheduler, and how it makes that decision is the actual engineering problem hiding behind the marketing term &#8220;disaggregated memory.&#8221;</p><h2>Why More Capacity Didn&#8217;t Buy You More Headroom</h2><p>Local DRAM has one consumer: the CPU socket it&#8217;s wired to. Contention exists, but it&#8217;s bounded &#8212; you&#8217;re fighting your own cores, and the memory controller knows exactly who&#8217;s asking.</p><p>Pooled memory has an unknown number of consumers, and they don&#8217;t coordinate. Host A doesn&#8217;t know Host B just kicked off a batch job that&#8217;s streaming 40 GB through the shared fabric. From Host A&#8217;s point of view, its own workload didn&#8217;t change, its own queries didn&#8217;t change, but its memory access latency just went from roughly 100 nanoseconds to somewhere north of 300. The capacity is there. The bandwidth to reach it, at the moment you need it, is not guaranteed &#8212; it&#8217;s shared, and sharing without arbitration is just contention with better marketing.</p><p>This is the same failure mode you&#8217;d get if ten teams shared one database with no connection pooling, except it happens at the nanosecond timescale of memory access instead of the millisecond timescale of a query. You can&#8217;t put a human in that loop. You need something making the call before the request even leaves the CPU.</p><h2>The Tiering Decision Nobody Sees</h2><p>The scheduler&#8217;s actual job is deciding, continuously, where each page of memory should physically live: in fast local DRAM, or out in the slower shared pool.</p><p>It does this with a hotness signal &#8212; access counters, sampled reference bits, sometimes hardware telemetry from the CXL controller itself &#8212; that estimates which pages get touched often and which sit cold. Hot pages get migrated toward local DRAM, where access is fast and uncontended. Cold pages get pushed out to the remote pool, where latency is worse but nobody&#8217;s paying that latency cost anyway because nobody&#8217;s reading them.</p><p>Layered on top of that is bandwidth arbitration at the fabric level. The CXL switch, or the software layer managing it, partitions the pool&#8217;s available bandwidth across the hosts attached to it &#8212; something like a QoS class per host or per device, so one runaway consumer can&#8217;t starve the rest. Think of it as two separate scheduling problems stacked on each other: one deciding <em>where</em> a page lives, the other deciding <em>how much of the pipe</em> each device gets to reach the pages that live remotely. Get either one wrong and the other one&#8217;s work doesn&#8217;t matter.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!HCJ_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2427fea5-a0cf-4d5c-af68-dcf6abe6d5ff_3800x2300.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!HCJ_!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2427fea5-a0cf-4d5c-af68-dcf6abe6d5ff_3800x2300.png 424w, /__u/substackcdn.com/image/fetch/$s_!HCJ_!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2427fea5-a0cf-4d5c-af68-dcf6abe6d5ff_3800x2300.png 848w, /__u/substackcdn.com/image/fetch/$s_!HCJ_!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2427fea5-a0cf-4d5c-af68-dcf6abe6d5ff_3800x2300.png 1272w, /__u/substackcdn.com/image/fetch/$s_!HCJ_!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2427fea5-a0cf-4d5c-af68-dcf6abe6d5ff_3800x2300.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!HCJ_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2427fea5-a0cf-4d5c-af68-dcf6abe6d5ff_3800x2300.png" width="574" height="347.3173076923077" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2427fea5-a0cf-4d5c-af68-dcf6abe6d5ff_3800x2300.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:881,&quot;width&quot;:1456,&quot;resizeWidth&quot;:574,&quot;bytes&quot;:554061,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://systemdesignprimer.substack.com/i/209607813?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2427fea5-a0cf-4d5c-af68-dcf6abe6d5ff_3800x2300.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!HCJ_!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2427fea5-a0cf-4d5c-af68-dcf6abe6d5ff_3800x2300.png 424w, /__u/substackcdn.com/image/fetch/$s_!HCJ_!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2427fea5-a0cf-4d5c-af68-dcf6abe6d5ff_3800x2300.png 848w, /__u/substackcdn.com/image/fetch/$s_!HCJ_!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2427fea5-a0cf-4d5c-af68-dcf6abe6d5ff_3800x2300.png 1272w, /__u/substackcdn.com/image/fetch/$s_!HCJ_!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2427fea5-a0cf-4d5c-af68-dcf6abe6d5ff_3800x2300.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div>
      <p>
          <a href="/__u/systemdesignprimer.substack.com/p/remote-memory-scheduling-the-traffic">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[CXL Memory Isolation]]></title><description><![CDATA[A CXL 2.0 switch can pool memory across roughly 16 hosts at once, and every one of those hosts trusts the same slab of DRAM to stay separate.]]></description><link>https://systemdesignprimer.substack.com/p/cxl-memory-isolation</link><guid isPermaLink="false">https://systemdesignprimer.substack.com/p/cxl-memory-isolation</guid><dc:creator><![CDATA[System Design Primer]]></dc:creator><pubDate>Fri, 07 Aug 2026 08:31:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!yCjk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b7aad31-a9e5-41f9-b1a0-1ba3192b4638_3800x1600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A CXL 2.0 switch can pool memory across roughly 16 hosts at once, and every one of those hosts trusts the same slab of DRAM to stay separate. The isolation between tenant A&#8217;s data and tenant B&#8217;s data isn&#8217;t burned into silicon &#8212; it&#8217;s a range check performed by a software layer called the Fabric Manager. Security research on CXL pooling has shown that a single misconfigured or racing Fabric Manager can hand out overlapping Device Physical Address ranges to two different hosts. When that happens, tenant B doesn&#8217;t get an error. Tenant B gets tenant A&#8217;s memory.</p><p>CXL pooling works by carving a shared memory device into address ranges, then binding each range to one host through Bind and Unbind commands issued by the Fabric Manager. The switch itself just forwards requests &#8212; it checks whether a request&#8217;s address falls inside the range currently bound to that host. Think of the switch as a mail room that only delivers to the box number it&#8217;s told is yours; it never asks whether the clerk wrote the right number down. If the Fabric Manager&#8217;s bookkeeping is wrong, the switch enforces the wrong boundary with total confidence</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://systemdesignprimer.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!yCjk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b7aad31-a9e5-41f9-b1a0-1ba3192b4638_3800x1600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!yCjk!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b7aad31-a9e5-41f9-b1a0-1ba3192b4638_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!yCjk!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b7aad31-a9e5-41f9-b1a0-1ba3192b4638_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!yCjk!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b7aad31-a9e5-41f9-b1a0-1ba3192b4638_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!yCjk!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b7aad31-a9e5-41f9-b1a0-1ba3192b4638_3800x1600.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!yCjk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b7aad31-a9e5-41f9-b1a0-1ba3192b4638_3800x1600.png" width="636" height="267.7664835164835" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4b7aad31-a9e5-41f9-b1a0-1ba3192b4638_3800x1600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:613,&quot;width&quot;:1456,&quot;resizeWidth&quot;:636,&quot;bytes&quot;:276459,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://systemdesignprimer.substack.com/i/209345484?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b7aad31-a9e5-41f9-b1a0-1ba3192b4638_3800x1600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!yCjk!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b7aad31-a9e5-41f9-b1a0-1ba3192b4638_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!yCjk!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b7aad31-a9e5-41f9-b1a0-1ba3192b4638_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!yCjk!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b7aad31-a9e5-41f9-b1a0-1ba3192b4638_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!yCjk!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4b7aad31-a9e5-41f9-b1a0-1ba3192b4638_3800x1600.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Diagram note: the left panel shows a correctly partitioned CXL memory pool &#8212; two hosts, two non-overlapping Device Physical Address ranges. The right panel shows the failure moment: a Fabric Manager bookkeeping error hands overlapping ranges to both hosts, and the switch enforces that overlap as if it were correct. This is shown visually rather than described in text because the failure is spatial &#8212; you have to see the ranges collide to understand that the switch itself never detects anything wrong.</em></p><p>Do you know whether your CXL pool&#8217;s Fabric Manager runs on hardware-attested firmware, or as an ordinary software process outside your trust boundary?</p><blockquote><p>Most people assume CXL memory isolation is a hardware guarantee, like ECC or a TLB lookup. The reality is that in CXL 2.0 deployments, the entire tenant boundary lives in Fabric Manager software &#8212; hardware-enforced range integrity only arrives with CXL 3.x features that most production pools haven&#8217;t turned on yet.</p></blockquote><p>The full Deep Dive on CXL memory isolation is coming in roughly Week 4. It covers how CXL 3.x&#8217;s hardware-enforced integrity changes the trust model, plus the Fabric Manager audit checklist teams use in production.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://systemdesignprimer.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Zoned Namespace (ZNS) SSDs]]></title><description><![CDATA[Previously: In NVMe-oF, we covered how you can disaggregate storage across a network fabric without giving up the low latency of a local drive.]]></description><link>https://systemdesignprimer.substack.com/p/zoned-namespace-zns-ssds</link><guid isPermaLink="false">https://systemdesignprimer.substack.com/p/zoned-namespace-zns-ssds</guid><dc:creator><![CDATA[System Design Primer]]></dc:creator><pubDate>Wed, 05 Aug 2026 08:31:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!rUI8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47b19125-d50b-43f6-a9e3-f6291ddcc1b9_3800x2300.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Previously: In NVMe-oF, we covered how you can disaggregate storage across a network fabric without giving up the low latency of a local drive.</p><p>Your Kafka broker runs fine for six hours. Then throughput drops by half and P99 latency jumps from 2ms to 40ms. Nothing crashed. No alert fired for disk failure. You check <code>iostat</code> and see the drive is busy &#8212; really busy &#8212; doing work you didn&#8217;t ask it to do.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://systemdesignprimer.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>That work is garbage collection, and it&#8217;s the SSD doing something you can&#8217;t see, on your behalf, whether you want it to or not. Every flash drive you&#8217;ve deployed for logs, write-ahead logs, or LSM-tree storage engines has been quietly fighting this problem. Zoned Namespace SSDs, ZNS for short, are the first mainstream fix that doesn&#8217;t just make the fight faster &#8212; it removes the fight entirely, by handing you control the drive used to keep for itself.</p><p>Here&#8217;s the thesis worth sitting with: ZNS isn&#8217;t a faster SSD. It&#8217;s a narrower one. It trades general-purpose flexibility for a guarantee that matches exactly how append-only systems already write data. That narrowing is what makes it fast, and it&#8217;s also what makes it hard to adopt &#8212; you can&#8217;t just drop it in.</p><h2>The Drive Has Been Lying About Being Empty</h2><p>A normal SSD lets you write to any logical block address at any time, just like a hard drive. Underneath, that&#8217;s a fiction. Flash memory can&#8217;t overwrite a page in place &#8212; it has to erase a whole block first, and erase blocks are much bigger than the pages you write. So the SSD&#8217;s firmware, called the Flash Translation Layer or FTL, maps your logical writes to physical locations, and quietly relocates old data to free up erase blocks. This background relocation is garbage collection, and the ratio of physical bytes written to logical bytes you asked for is the write amplification factor, or WAF.</p><p>For random-write workloads, WAF of 3 to 5 is common. Every byte you write, the drive writes three to five bytes internally. That extra writing burns through flash endurance &#8212; each cell tolerates a few thousand program/erase cycles before it wears out &#8212; and it steals bandwidth from your actual I/O. The FTL doesn&#8217;t coordinate with your application. It doesn&#8217;t know that your LSM-tree compaction just made a huge swath of the drive logically dead. It finds out the slow way, by scanning, and it picks the worst moment to catch up.</p><p>Append-only workloads make this worse, not better, in a subtle way. You&#8217;d think sequential writes would be gentle on an SSD. They are, for the write itself. But deletes in an LSM-tree or a Kafka log aren&#8217;t sequential &#8212; they&#8217;re compaction and retention, deleting old segments while new ones keep landing. The FTL sees a drive that looks randomly fragmented even though your application logic was perfectly orderly.</p><h2>Zones Turn the Drive Into the Log You Already Wanted</h2><p>ZNS restructures the drive&#8217;s address space into zones &#8212; typically 96MB to a few hundred MB each &#8212; and imposes one rule per zone: you can only write sequentially, starting from a write pointer that advances with each write, and you can only reclaim space by resetting the entire zone at once. No random writes within a zone. No partial invalidation. You either haven&#8217;t written to a byte yet, or you&#8217;ve written it and it stays until the whole zone resets</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!rUI8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47b19125-d50b-43f6-a9e3-f6291ddcc1b9_3800x2300.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!rUI8!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47b19125-d50b-43f6-a9e3-f6291ddcc1b9_3800x2300.png 424w, /__u/substackcdn.com/image/fetch/$s_!rUI8!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47b19125-d50b-43f6-a9e3-f6291ddcc1b9_3800x2300.png 848w, /__u/substackcdn.com/image/fetch/$s_!rUI8!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47b19125-d50b-43f6-a9e3-f6291ddcc1b9_3800x2300.png 1272w, /__u/substackcdn.com/image/fetch/$s_!rUI8!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47b19125-d50b-43f6-a9e3-f6291ddcc1b9_3800x2300.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!rUI8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47b19125-d50b-43f6-a9e3-f6291ddcc1b9_3800x2300.png" width="622" height="376.3612637362637" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/47b19125-d50b-43f6-a9e3-f6291ddcc1b9_3800x2300.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:881,&quot;width&quot;:1456,&quot;resizeWidth&quot;:622,&quot;bytes&quot;:603818,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://systemdesignprimer.substack.com/i/209344706?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47b19125-d50b-43f6-a9e3-f6291ddcc1b9_3800x2300.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!rUI8!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47b19125-d50b-43f6-a9e3-f6291ddcc1b9_3800x2300.png 424w, /__u/substackcdn.com/image/fetch/$s_!rUI8!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47b19125-d50b-43f6-a9e3-f6291ddcc1b9_3800x2300.png 848w, /__u/substackcdn.com/image/fetch/$s_!rUI8!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47b19125-d50b-43f6-a9e3-f6291ddcc1b9_3800x2300.png 1272w, /__u/substackcdn.com/image/fetch/$s_!rUI8!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47b19125-d50b-43f6-a9e3-f6291ddcc1b9_3800x2300.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This sounds like a restriction, and it is &#8212; but it&#8217;s a restriction that matches what an LSM-tree, a write-ahead log, or a Kafka segment already does. Your application was writing sequentially and deleting in bulk anyway. ZNS just asks you to say so up front. In exchange, the FTL&#8217;s job collapses. There&#8217;s no indirection table mapping arbitrary logical addresses to arbitrary physical ones, because within a zone, logical and physical order match. There&#8217;s no background garbage collection scanning for dead pages, because you tell the drive exactly when a zone is dead &#8212; you reset it. The drive doesn&#8217;t guess. You decide.</p><p>The practical effect: WAF drops toward 1.0. You write a byte, the drive writes a byte. Endurance goes up because the drive isn&#8217;t multiplying your writes internally. Latency variance drops because there&#8217;s no surprise background compaction competing with your foreground I/O for the same NAND die.</p><h2>The Write Pointer Doesn&#8217;t Forgive Mistakes</h2><p>This is where ZNS stops being a free upgrade and starts being an architecture decision. The sequential-write-only rule doesn&#8217;t live in the drive&#8217;s convenience layer &#8212; it&#8217;s enforced at the protocol level. Try to write out of order within a zone and the command fails. Your application, not the FTL, now owns placement, and that ownership comes with new failure modes nobody warns you about until they hit staging.</p><p>The first one is active zone limits. A drive only supports a limited number of zones open for writing at once &#8212; often somewhere in the dozens, not hundreds. If your storage engine wants to write to more zones concurrently than the drive allows, you queue, or you redesign your write path to batch differently. This is invisible in a small test and very visible under real multi-tenant load.</p><p>The second is the gap between zone capacity and zone size. A zone might be nominally 256MB but only accept 240MB of actual writes &#8212; the difference is reserved for the drive&#8217;s internal parity and reliability mechanisms. Applications that assume the full nominal size overshoot and get write failures at a boundary they didn&#8217;t know existed.</p><p>The third, and the one that causes the most production pain, is that a zone reset is all-or-nothing. You can&#8217;t reclaim 80% of a zone because 80% of its data is dead &#8212; you wait until the whole zone is dead, or you copy the surviving 20% out first. This means your compaction and garbage collection logic, the stuff you already wrote for your LSM-tree, needs a second layer that&#8217;s aware of zone boundaries, not just key ranges. Get this wrong and you either waste capacity holding onto zones that are mostly dead, or you spend write bandwidth copying live data around &#8212; which is exactly the write amplification you adopted ZNS to avoid.</p><h2>What Write Amplification Near 1.0 Actually Looks Like</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!yGlx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4470da5-2b0e-42e8-8f17-e57e7aabf017_3800x2300.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!yGlx!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4470da5-2b0e-42e8-8f17-e57e7aabf017_3800x2300.png 424w, /__u/substackcdn.com/image/fetch/$s_!yGlx!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4470da5-2b0e-42e8-8f17-e57e7aabf017_3800x2300.png 848w, /__u/substackcdn.com/image/fetch/$s_!yGlx!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4470da5-2b0e-42e8-8f17-e57e7aabf017_3800x2300.png 1272w, /__u/substackcdn.com/image/fetch/$s_!yGlx!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4470da5-2b0e-42e8-8f17-e57e7aabf017_3800x2300.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!yGlx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4470da5-2b0e-42e8-8f17-e57e7aabf017_3800x2300.png" width="582" height="352.157967032967" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d4470da5-2b0e-42e8-8f17-e57e7aabf017_3800x2300.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:881,&quot;width&quot;:1456,&quot;resizeWidth&quot;:582,&quot;bytes&quot;:454837,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://systemdesignprimer.substack.com/i/209344706?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4470da5-2b0e-42e8-8f17-e57e7aabf017_3800x2300.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!yGlx!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4470da5-2b0e-42e8-8f17-e57e7aabf017_3800x2300.png 424w, /__u/substackcdn.com/image/fetch/$s_!yGlx!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4470da5-2b0e-42e8-8f17-e57e7aabf017_3800x2300.png 848w, /__u/substackcdn.com/image/fetch/$s_!yGlx!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4470da5-2b0e-42e8-8f17-e57e7aabf017_3800x2300.png 1272w, /__u/substackcdn.com/image/fetch/$s_!yGlx!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd4470da5-2b0e-42e8-8f17-e57e7aabf017_3800x2300.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In production, the signature of a healthy ZNS deployment is boring, and boring is the point. WAF sits close to 1.0 instead of drifting up over the drive&#8217;s lifetime as a traditional SSD fills and fragments. P99 write latency stays flat under sustained load instead of showing periodic spikes every few minutes when garbage collection kicks in &#8212; those spikes on a conventional SSD often show up as latency that&#8217;s 10 to 20 times the median, lasting a few hundred milliseconds at a time. Drive-reported wear leveling metrics, visible through <code>nvme smart-log</code>, show program/erase cycle counts climbing roughly in step with your actual logical writes instead of running well ahead of them.</p><p>On the tooling side, you&#8217;ll be working with <code>libzbc</code> or the Linux kernel&#8217;s native zoned block device support, and if you&#8217;re not writing your own storage engine from scratch, you&#8217;re likely picking up ZNS through something that already speaks it &#8212; RocksDB has a ZenFS backend, and a few Kafka-adjacent log stores have added zoned support. Most teams don&#8217;t hand-roll zone management; they adopt a storage engine that&#8217;s already made the trade-offs described above, and their job becomes choosing zone size and active zone limits that match their write concurrency, not writing an FTL replacement themselves.</p><h2>Where Zones Fit in the Stack You&#8217;re Already Building</h2><p>ZNS is a hardware-level expression of an idea you&#8217;ve already met if you&#8217;ve read the LSM-tree lesson in Act 2: separate sequential writing from random reads, and let compaction do the reorganizing work in bulk instead of in place. ZNS just moves that idea down a layer, so the drive itself refuses to let you violate it. It also pairs naturally with NVMe-oF from the last lesson &#8212; a disaggregated storage target built on zoned drives gets both the network flexibility of shared storage and the endurance profile of a drive that&#8217;s never fighting its own garbage collector.</p><p>The open question worth carrying forward: as more of the storage stack becomes zone-aware by default, does the FTL disappear entirely, or does it just move up into your application, where you now own decisions the drive used to hide from you? Either way, you&#8217;re the one making them now.</p><div><hr></div><p><strong>Next in this series</strong></p><p>RDMA picks up the networking side of the low-latency storage story &#8212; how you read and write memory across a network without the kernel touching every packet, and why that matters once your zoned drives are sitting behind a fabric instead of in the same chassis.</p><p><em>Track A, Act 4, Lesson 6 &#8212; RDMA: Bypassing the Kernel for Microsecond Access &#8212; available now in the paid archive.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://systemdesignprimer.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[ Memory-Disaggregated Key-Value Stores]]></title><description><![CDATA[A memory-disaggregated key-value store keeps your data on a remote memory pool, not on the node serving the request.]]></description><link>https://systemdesignprimer.substack.com/p/memory-disaggregated-key-value-stores</link><guid isPermaLink="false">https://systemdesignprimer.substack.com/p/memory-disaggregated-key-value-stores</guid><dc:creator><![CDATA[System Design Primer]]></dc:creator><pubDate>Mon, 03 Aug 2026 08:30:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!IQjw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c2fee38-dabd-45b5-ace5-9bea9b352253_3800x1600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A memory-disaggregated key-value store keeps your data on a remote memory pool, not on the node serving the request. Lose that pool and every client loses the data in the same instant &#8212; there was only one copy. Teams pool DRAM over CXL or RDMA to cut costs, and skip the part where pooled memory has zero redundancy by default. The fix is writing to independent failure domains before the client gets an ack.</p><p>There&#8217;s no controller routing those writes. The client itself RDMA-writes the same value to two or three remote nodes in parallel, using one-sided operations that skip the remote CPU. It waits for a quorum ack &#8212; say 2 of 3 &#8212; before telling the app the write succeeded. Recovery means picking any surviving node; nobody elects a leader first.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://systemdesignprimer.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!IQjw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c2fee38-dabd-45b5-ace5-9bea9b352253_3800x1600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!IQjw!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c2fee38-dabd-45b5-ace5-9bea9b352253_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!IQjw!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c2fee38-dabd-45b5-ace5-9bea9b352253_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!IQjw!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c2fee38-dabd-45b5-ace5-9bea9b352253_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!IQjw!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c2fee38-dabd-45b5-ace5-9bea9b352253_3800x1600.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!IQjw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c2fee38-dabd-45b5-ace5-9bea9b352253_3800x1600.png" width="1456" height="613" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2c2fee38-dabd-45b5-ace5-9bea9b352253_3800x1600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:613,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:448422,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://systemdesignprimer.substack.com/i/208656692?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c2fee38-dabd-45b5-ace5-9bea9b352253_3800x1600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!IQjw!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c2fee38-dabd-45b5-ace5-9bea9b352253_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!IQjw!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c2fee38-dabd-45b5-ace5-9bea9b352253_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!IQjw!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c2fee38-dabd-45b5-ace5-9bea9b352253_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!IQjw!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2c2fee38-dabd-45b5-ace5-9bea9b352253_3800x1600.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Do you know how many independent failure domains your writes land on before your app gets an ack?</p><blockquote><p>Most people assume disaggregating memory makes recovery harder, since state now lives elsewhere. The reality is recovery gets faster &#8212; a client already holding RDMA connections to 3 nodes can fail over in microseconds, with no coordinator to re-elect first.</p></blockquote><p>This topic is in the Deep Dive queue. The Scan gives the tension; the full article gives the production reality.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://systemdesignprimer.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Tiered Memory Management]]></title><description><![CDATA[A page in your CXL-attached memory tier gets flagged hot, and the kernel starts moving it back to local DRAM.]]></description><link>https://systemdesignprimer.substack.com/p/tiered-memory-management</link><guid isPermaLink="false">https://systemdesignprimer.substack.com/p/tiered-memory-management</guid><dc:creator><![CDATA[System Design Primer]]></dc:creator><pubDate>Sat, 01 Aug 2026 08:30:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9Ioi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe25b8d43-8bc4-4485-94c5-96a7bbb43e24_3800x1600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A page in your CXL-attached memory tier gets flagged hot, and the kernel starts moving it back to local DRAM. Halfway through the copy, another core writes to that exact page. If the write lands in the old location after the pointer has already moved, that write disappears. No error. No crash. Just a value that quietly reverts under load.</p><p>To stop that, the migration is treated like a transaction, not a memcpy. The kernel write-protects the page, so any write during the copy triggers a fault instead of landing silently. It copies the bytes, flips the page table entry to the new location, then replays the faulted write on top of the copy. Every core with that page cached in its TLB (the CPU&#8217;s map of virtual-to-physical addresses) has to be told to drop the old mapping before the swap counts as done.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://systemdesignprimer.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!9Ioi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe25b8d43-8bc4-4485-94c5-96a7bbb43e24_3800x1600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!9Ioi!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe25b8d43-8bc4-4485-94c5-96a7bbb43e24_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!9Ioi!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe25b8d43-8bc4-4485-94c5-96a7bbb43e24_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!9Ioi!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe25b8d43-8bc4-4485-94c5-96a7bbb43e24_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!9Ioi!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe25b8d43-8bc4-4485-94c5-96a7bbb43e24_3800x1600.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!9Ioi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe25b8d43-8bc4-4485-94c5-96a7bbb43e24_3800x1600.png" width="1456" height="613" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e25b8d43-8bc4-4485-94c5-96a7bbb43e24_3800x1600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:613,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:334609,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://systemdesignprimer.substack.com/i/208653469?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe25b8d43-8bc4-4485-94c5-96a7bbb43e24_3800x1600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!9Ioi!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe25b8d43-8bc4-4485-94c5-96a7bbb43e24_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!9Ioi!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe25b8d43-8bc4-4485-94c5-96a7bbb43e24_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!9Ioi!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe25b8d43-8bc4-4485-94c5-96a7bbb43e24_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!9Ioi!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe25b8d43-8bc4-4485-94c5-96a7bbb43e24_3800x1600.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Do you know how many page migrations per second your CXL tier triggers under peak load, and how many of those stall on a write fault?</p><blockquote><p>Most people assume moving a page between memory tiers is basically a fast copy. The reality is that a single migration includes a TLB shootdown across every core touching that page &#8212; a synchronous stop-the-world moment measured in microseconds &#8212; and a hot enough working set can spend more time migrating than it saves by living in fast memory.</p></blockquote><p>The full Deep Dive on CXL tiered memory is coming in Week 14. It covers the hotness-tracking heuristics that decide which pages get migrated in the first place.</p><p><em>Tomorrow&#8217;s Scan continues Act 4 &#8212; Track A. (Forward link omitted &#8212; connection field not provided in inputs.)</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://systemdesignprimer.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Shadow Traffic: Testing in Production Without Anyone Noticing]]></title><description><![CDATA[Previously: In Service Mesh: The Traffic Layer You Didn&#8217;t Know You Needed (Track A, Lesson 3.4), we covered how a sidecar proxy takes over routing decisions that used to live inside your code.]]></description><link>https://systemdesignprimer.substack.com/p/shadow-traffic-testing-in-production</link><guid isPermaLink="false">https://systemdesignprimer.substack.com/p/shadow-traffic-testing-in-production</guid><dc:creator><![CDATA[System Design Primer]]></dc:creator><pubDate>Thu, 30 Jul 2026 08:31:46 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!boaN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd2212b5-7715-4ae3-973d-be213fc3e2ee_3800x2300.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You just rewrote your recommendation service. New language, new data model, half the latency in staging. You have exactly one way to know if it actually works under real load: put it in front of real users. You also have exactly one way to lose your job: put it in front of real users and watch it return garbage to ten thousand of them at once.</p><p>Load testing won&#8217;t save you here. Synthetic traffic is a guess dressed up as a number. It hits the endpoints you remember to test, with payloads you imagined, in a distribution you invented. Real traffic has the malformed header from a five-year-old mobile client someone forgot to deprecate, the request from a user with 40,000 items in their cart, the timezone edge case that only exists twice a year. You cannot invent your way to those inputs. You have to watch them happen.</p><p>Shadow traffic solves this by duplicating real requests and sending the copy somewhere the user never sees. The original request goes through the normal path and gets the normal response. The copy goes to your new service, and its response goes nowhere except a log. The user experiences nothing. You get a live diff between old and new behavior, generated from actual production entropy instead of your imagination.</p><h2>The Gap Between &#8220;Works in Staging&#8221; and &#8220;Works&#8221;</h2><p>Staging lies to you in a specific, predictable way: it has staging traffic. Staging traffic is traffic your team generated on purpose, which means it only exercises the paths your team thought to exercise. Production traffic is generated by everyone else, which means it exercises everything.</p><p>This gap matters more as systems get more stateful and more interconnected. A pure function is easy to test &#8212; give it inputs, check outputs, done. A service that reads from three caches, calls two downstream APIs, and makes a decision based on a feature flag rollout percentage is not a pure function. Its behavior depends on the state of the world at the moment the request arrives, and staging&#8217;s world is not production&#8217;s world. The only traffic that reliably reproduces production&#8217;s world is production&#8217;s traffic.</p><p>Canary deployments get you part of the way there &#8212; route 5% of real users to the new version, watch the error rate. But a canary still puts real users at risk. If your new recommendation service crashes on cart sizes over 10,000, a canary finds that bug by breaking a real customer&#8217;s checkout. Shadow traffic finds the same bug with zero blast radius, because the response from the new service is never returned to anyone.</p><h2>How the Fork Actually Happens</h2><p>The mechanism is simpler than people expect. At the proxy or mesh layer &#8212; the same layer we covered in the last lesson &#8212; a rule intercepts matching requests and fires two copies. The primary copy proceeds normally: it goes to the current production service, and its response goes back to the client on the critical path. The mirror copy goes to the shadow service asynchronously, off the critical path, and its response is discarded or logged for comparison. The client&#8217;s request latency should never include any part of what happens to the mirror.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!boaN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd2212b5-7715-4ae3-973d-be213fc3e2ee_3800x2300.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!boaN!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd2212b5-7715-4ae3-973d-be213fc3e2ee_3800x2300.png 424w, /__u/substackcdn.com/image/fetch/$s_!boaN!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd2212b5-7715-4ae3-973d-be213fc3e2ee_3800x2300.png 848w, /__u/substackcdn.com/image/fetch/$s_!boaN!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd2212b5-7715-4ae3-973d-be213fc3e2ee_3800x2300.png 1272w, /__u/substackcdn.com/image/fetch/$s_!boaN!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd2212b5-7715-4ae3-973d-be213fc3e2ee_3800x2300.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!boaN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd2212b5-7715-4ae3-973d-be213fc3e2ee_3800x2300.png" width="608" height="367.8901098901099" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fd2212b5-7715-4ae3-973d-be213fc3e2ee_3800x2300.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:881,&quot;width&quot;:1456,&quot;resizeWidth&quot;:608,&quot;bytes&quot;:542002,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://systemdesignprimer.substack.com/i/208421621?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd2212b5-7715-4ae3-973d-be213fc3e2ee_3800x2300.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!boaN!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd2212b5-7715-4ae3-973d-be213fc3e2ee_3800x2300.png 424w, /__u/substackcdn.com/image/fetch/$s_!boaN!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd2212b5-7715-4ae3-973d-be213fc3e2ee_3800x2300.png 848w, /__u/substackcdn.com/image/fetch/$s_!boaN!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd2212b5-7715-4ae3-973d-be213fc3e2ee_3800x2300.png 1272w, /__u/substackcdn.com/image/fetch/$s_!boaN!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd2212b5-7715-4ae3-973d-be213fc3e2ee_3800x2300.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div>
      <p>
          <a href="/__u/systemdesignprimer.substack.com/p/shadow-traffic-testing-in-production">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[Circuit Breaking at the Edge]]></title><description><![CDATA[Today: circuit breaking at the edge &#8212; the layer in front of your origin.]]></description><link>https://systemdesignprimer.substack.com/p/circuit-breaking-at-the-edge</link><guid isPermaLink="false">https://systemdesignprimer.substack.com/p/circuit-breaking-at-the-edge</guid><dc:creator><![CDATA[System Design Primer]]></dc:creator><pubDate>Wed, 29 Jul 2026 08:30:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!CXkc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7bee22c-52dd-4123-be82-23a60baa71e7_3800x1600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A checkout service starts timing out at 2am &#8212; maybe 8% of requests. Your CDN edge doesn&#8217;t know that. It forwards everything, retries every failure, and within four minutes your origin fleet eats triple its normal load from retries alone. A minor blip becomes a full outage &#8212; the edge caused it.</p><p>A circuit breaker at the edge watches error rates per PoP (point of presence), not globally. Past a threshold, that PoP flips from closed &#8212; traffic flows &#8212; to open &#8212; requests fail fast &#8212; for a fixed window, usually 5 to 30 seconds. Then it goes half-open and probes with one request before reopening. One guard per entrance, deciding alone.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!CXkc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7bee22c-52dd-4123-be82-23a60baa71e7_3800x1600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!CXkc!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7bee22c-52dd-4123-be82-23a60baa71e7_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!CXkc!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7bee22c-52dd-4123-be82-23a60baa71e7_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!CXkc!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7bee22c-52dd-4123-be82-23a60baa71e7_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!CXkc!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7bee22c-52dd-4123-be82-23a60baa71e7_3800x1600.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!CXkc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7bee22c-52dd-4123-be82-23a60baa71e7_3800x1600.png" width="1456" height="613" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e7bee22c-52dd-4123-be82-23a60baa71e7_3800x1600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:613,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:303928,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://systemdesignprimer.substack.com/i/208421232?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7bee22c-52dd-4123-be82-23a60baa71e7_3800x1600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!CXkc!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7bee22c-52dd-4123-be82-23a60baa71e7_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!CXkc!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7bee22c-52dd-4123-be82-23a60baa71e7_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!CXkc!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7bee22c-52dd-4123-be82-23a60baa71e7_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!CXkc!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7bee22c-52dd-4123-be82-23a60baa71e7_3800x1600.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Do you know whether your edge layer trips per region, or does one slow origin get hammered by every PoP at once?</p><blockquote><p>Most engineers assume circuit breakers share state across your stack. The reality: edge breakers almost always trip per-PoP with no shared state &#8212; one region can stay wide open while others keep hammering a failing origin until config propagates.</p></blockquote><p>The full Deep Dive on edge circuit breaking arrives Week 1. It covers sizing per-PoP thresholds so one region&#8217;s failure doesn&#8217;t get amplified by the rest.</p><p><em>Tomorrow: exactly-once delivery.</em></p>]]></content:encoded></item><item><title><![CDATA[Proxy-Based Data Sharding]]></title><description><![CDATA[Previously: in A2.4, Consistent Hashing, we worked out how to spread keys across nodes without a full reshuffle every time you added one.]]></description><link>https://systemdesignprimer.substack.com/p/proxy-based-data-sharding</link><guid isPermaLink="false">https://systemdesignprimer.substack.com/p/proxy-based-data-sharding</guid><pubDate>Tue, 28 Jul 2026 08:30:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SmoY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6598355-ae82-4a14-92e0-be6fb10f290a_3800x2300.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Every Service Just Learned Where Your Data Lives</h2><blockquote><p>Somewhere in your company there&#8217;s a spreadsheet. It maps tenant IDs to database shards. Someone updates it by hand when a new shard goes live. Every service that talks to the database has a copy of the routing logic baked in &#8212; a <code>if tenant_id % 16 == shard_id</code> buried in a config file, or worse, in application code across forty microservices.</p><p>Then you need to add shard seventeen. Now you&#8217;re not deploying a database change. You&#8217;re coordinating forty deployments, in the right order, hoping nobody ships stale routing logic that sends a write to the wrong place. This is the actual failure mode, not a hypothetical one: a service holds onto an old routing table for six hours after a resharding event, and it quietly writes rows to a shard nobody reads from anymore.</p></blockquote><p>Proxy-based sharding exists to make this someone else&#8217;s problem &#8212; specifically, one dedicated layer&#8217;s problem, instead of every service&#8217;s problem at once.</p><h3>Where Consistent Hashing Stops Helping</h3><blockquote><p>Consistent hashing, which we covered last time, solves the math. It tells you which shard a key belongs to, and it keeps that mapping stable when you add or remove nodes. What it doesn&#8217;t solve is <em>where that logic lives</em>.</p><p>If every client library embeds its own copy of the hash ring, you&#8217;ve distributed a single source of truth across every codebase that touches the database. Each one needs the same ring version, the same shard count, the same virtual node configuration. Drift between them isn&#8217;t a bug you catch in code review &#8212; it&#8217;s a silent data placement error that surfaces weeks later as a customer complaining their data &#8220;disappeared.&#8221;</p><p>A proxy collapses that fan-out. One layer owns the routing table. Every client talks to the proxy the same way it would talk to a single database. The proxy decides, on every single query, which shard actually gets it.</p></blockquote><h3>One Door, All the Shards Behind It</h3><p>Picture a connection pooler that also happens to know your data layout. That&#8217;s roughly what a sharding proxy is. It speaks your database&#8217;s wire protocol &#8212; MySQL&#8217;s protocol, Postgres&#8217;s, whatever your clients already expect &#8212; so nothing upstream needs a new driver or a new SDK.</p><p>When a query comes in, the proxy parses just enough of it to extract the shard key. Usually that&#8217;s a <code>WHERE tenant_id = ?</code> clause, or a value bound to a known parameter position. It runs that key through the same consistent hashing scheme from last lesson, gets back a shard ID, and forwards the query to the right backend connection. The response comes back through the proxy and out to the client, which never learns that a decision got made on its behalf.</p><p>The part worth sitting with: the proxy is now a single, small, well-tested piece of code making a decision that used to live in forty places. When you reshard, you update the proxy&#8217;s routing table. You don&#8217;t touch application code at all.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!SmoY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6598355-ae82-4a14-92e0-be6fb10f290a_3800x2300.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!SmoY!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6598355-ae82-4a14-92e0-be6fb10f290a_3800x2300.png 424w, /__u/substackcdn.com/image/fetch/$s_!SmoY!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6598355-ae82-4a14-92e0-be6fb10f290a_3800x2300.png 848w, /__u/substackcdn.com/image/fetch/$s_!SmoY!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6598355-ae82-4a14-92e0-be6fb10f290a_3800x2300.png 1272w, /__u/substackcdn.com/image/fetch/$s_!SmoY!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6598355-ae82-4a14-92e0-be6fb10f290a_3800x2300.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!SmoY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6598355-ae82-4a14-92e0-be6fb10f290a_3800x2300.png" width="638" height="386.0425824175824" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f6598355-ae82-4a14-92e0-be6fb10f290a_3800x2300.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:881,&quot;width&quot;:1456,&quot;resizeWidth&quot;:638,&quot;bytes&quot;:524681,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://systemdesignprimer.substack.com/i/208420469?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6598355-ae82-4a14-92e0-be6fb10f290a_3800x2300.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!SmoY!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6598355-ae82-4a14-92e0-be6fb10f290a_3800x2300.png 424w, /__u/substackcdn.com/image/fetch/$s_!SmoY!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6598355-ae82-4a14-92e0-be6fb10f290a_3800x2300.png 848w, /__u/substackcdn.com/image/fetch/$s_!SmoY!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6598355-ae82-4a14-92e0-be6fb10f290a_3800x2300.png 1272w, /__u/substackcdn.com/image/fetch/$s_!SmoY!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff6598355-ae82-4a14-92e0-be6fb10f290a_3800x2300.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div>
      <p>
          <a href="/__u/systemdesignprimer.substack.com/p/proxy-based-data-sharding">
              Read more
          </a>
      </p>
   ]]></content:encoded></item><item><title><![CDATA[QUIC Connection Migration]]></title><description><![CDATA[Your phone drops from WiFi to LTE mid-download and the connection doesn&#8217;t die.]]></description><link>https://systemdesignprimer.substack.com/p/day-26-quic-connection-migration</link><guid isPermaLink="false">https://systemdesignprimer.substack.com/p/day-26-quic-connection-migration</guid><dc:creator><![CDATA[System Design Primer]]></dc:creator><pubDate>Sun, 26 Jul 2026 08:30:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RVCu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e3bf7f-d997-4cb0-85d4-ef3bef2f5020_3800x1600.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Your phone drops from WiFi to LTE mid-download and the connection doesn&#8217;t die. That&#8217;s new. Five years ago that same handoff killed the TCP socket, forced a fresh TLS handshake, and cost you a full round trip plus however long the app took to notice and reconnect. QUIC doesn&#8217;t restart the connection when your IP address changes &#8212; it keeps going, mid-stream, with the same keys and the same flow-control state intact.</p><p>The trick: QUIC identifies a connection by a Connection ID, not by your IP and port. Every packet carries this CID, so when your phone jumps networks and gets a new IP, the server sees the same CID arrive from a different address and matches it to the existing session instead of treating it as a new client. Before it trusts that new path with real bandwidth, it fires a random PATH_CHALLENGE value at the new address and waits for that same value to come back in a PATH_RESPONSE &#8212; proof you actually control that endpoint, not someone spoofing it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://systemdesignprimer.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!RVCu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e3bf7f-d997-4cb0-85d4-ef3bef2f5020_3800x1600.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!RVCu!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e3bf7f-d997-4cb0-85d4-ef3bef2f5020_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!RVCu!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e3bf7f-d997-4cb0-85d4-ef3bef2f5020_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!RVCu!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e3bf7f-d997-4cb0-85d4-ef3bef2f5020_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!RVCu!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_webp, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e3bf7f-d997-4cb0-85d4-ef3bef2f5020_3800x1600.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!RVCu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e3bf7f-d997-4cb0-85d4-ef3bef2f5020_3800x1600.png" width="1456" height="613" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/47e3bf7f-d997-4cb0-85d4-ef3bef2f5020_3800x1600.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:613,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:350449,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://systemdesignprimer.substack.com/i/207893670?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e3bf7f-d997-4cb0-85d4-ef3bef2f5020_3800x1600.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!RVCu!, /__u/systemdesignprimer.substack.com/w_424, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e3bf7f-d997-4cb0-85d4-ef3bef2f5020_3800x1600.png 424w, /__u/substackcdn.com/image/fetch/$s_!RVCu!, /__u/systemdesignprimer.substack.com/w_848, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e3bf7f-d997-4cb0-85d4-ef3bef2f5020_3800x1600.png 848w, /__u/substackcdn.com/image/fetch/$s_!RVCu!, /__u/systemdesignprimer.substack.com/w_1272, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e3bf7f-d997-4cb0-85d4-ef3bef2f5020_3800x1600.png 1272w, /__u/substackcdn.com/image/fetch/$s_!RVCu!, /__u/systemdesignprimer.substack.com/w_1456, /__u/systemdesignprimer.substack.com/c_limit, /__u/systemdesignprimer.substack.com/f_auto, /__u/systemdesignprimer.substack.com/q_auto:good, /__u/systemdesignprimer.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47e3bf7f-d997-4cb0-85d4-ef3bef2f5020_3800x1600.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Do you know how many round trips your QUIC-based service spends validating a migrated path before it trusts it with full bandwidth?</p><blockquote><p>Most people assume connection migration is instant. The reality: the server resets the congestion window and caps throughput on every new path until PATH_RESPONSE confirms it &#8212; treating migration like a brand-new, unproven route, not a resumed one.</p></blockquote><p>The full Deep Dive on QUIC Connection Migration is coming in Week 6. It covers what happens when migration is abused for NAT-rebinding attacks and how load balancers keep CID routing consistent across their backend pool.</p><p><em>Tomorrow: consistent hashing under rebalancing.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://systemdesignprimer.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">This Substack is reader-supported. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>