mirror of
https://github.com/neondatabase/neon.git
synced 2026-05-17 21:20:37 +00:00
Effectively, this means we use the tokio runtime's spawn_blocking-thread-pool to execute the layer reads, instead of doing the reads on the tokio runtime's main executor threads. The use of the thread pool adds some overhead, but, not blocking the main executor threads is more important, because they can now execute other async tasks while we do the IO. With a sufficiently large spawn_blocking-thread-pool, we also get more IO parallelism between timelines than with blocking the main executor threads. So, we might push the pageserver's NVMe closer to its limits. But right now, there's lots of headroom.