The real cost of random I/O

16 points by alexforster 9 hours ago on lobsters | 1 comment

cpurdy | 4 hours ago

OK, this was unexpected. Seriously unexpected. It doesn't match what I saw (years ago) testing early gen flash storage. So my question(s):

  • Is the test here flawed?
  • Or, was my test (or approach) flawed?
  • Or, have drives optimized for sequential better than they used to?
  • Or, is this a measure of inefficiency in Postgres vs. the underlying hardware?

I'd expect random access reads to be well sub-2us and (on the latest hardware) sub-1us. Even 15 years ago, they weren't 40us (from what I remember). I feel like I'm missing something major here, and I'm guessing it's something in the Postgres code.

I test on a PCIe v5 4x NVMe setup now, but I don't have a decent micro-benchmark handy. Any suggestions?