Is sequential IO dead in the era of the NVMe drive?
I always worry that hardware &quot;locks in&quot; software.  SSDs showed up after everyone wrote their databases to be optimal on spinning rust, so SSDs were built to look at the flow of requests, assume that the application was written for spinning rust, and optimize the data layout accordingly.  Whether or not this is as good as brand-new software that managed the layout itself is debatable, and nobody will write that software anyway because they won&#x27;t have users that have SSDs that let the database manage the disk in full.  So the software has to tune it for one manufacturer&#x27;s reorganization algorithm and hope for the best.  The path to a &quot;global maximum&quot; remains unclear because of this.<p>CPUs are similar.  People started writing programs in C, so CPUs started optimizing for the outputs of C compilers.  If someone were to invent CPUs and compilers today, the list of optimizations would probably be different, and the performance characteristics of real-world software would probably be different.  (It&#x27;s not just C; people wanted virtual address spaces, and that was slow in software, so now there is a TLB, etc.)<p>Actually, it goes even deeper.  Half the startups I see on HN related to software operations have a quickstart like &quot;don&#x27;t worry, you don&#x27;t have to rewrite your code, we&#x27;ll magically do everything for you&quot;.  Why not just refactor the code?  It would take about an hour, and then you don&#x27;t need a crazy Rube Goldberg machine to achieve your desired results.  (If you want specifics, think service meshes, and how they now detect what language your app is written in so they can rewrite your HTTP handling functions to pass around a trace ID.  Back in the day, you just set outgoing.Headers[&quot;x-trace-id&quot;] to incoming.Headers[&quot;x-trace-id&quot;].  Now we have layers and layers of OS-level machinery that still don&#x27;t do as good a job as spending half a day adjusting your codebase.  Billions of dollars invested in saving half a developer day!  Wow!)