Hi Alexandre, I don't think this patch needs the LRU. Backends already call smgrdestroyall() at transaction end, and bgwriter and checkpointer do it after each checkpoint, so the IO worker is the one process that never cleans up, and v3 bounds it with the entry cap and the idle cleanup.
Touching an LRU and calling FirstCallSinceLastCheckpoint() on every IO puts work back in the hot path, which is what Andres objected to as well. Thanks, Shihao
