Don't initialize page in {vm,fsm}_extend(), not needed
authorAndres Freund <[email protected]>
Wed, 5 Apr 2023 15:19:39 +0000 (08:19 -0700)
committerAndres Freund <[email protected]>
Wed, 5 Apr 2023 15:19:39 +0000 (08:19 -0700)
commit3d6a98457d8e21d85bed86cfd3e1d1df1b260721
treee305eaf6f711f1b334a5e35224c022e90430dc05
parent86a3fc7ec8a03bca7120894bababa7c734628b4c
Don't initialize page in {vm,fsm}_extend(), not needed

The read path needs to be able to initialize pages anyway, as relation
extensions are not durable. By avoiding initializing pages, we can, in a
future patch, extend the relation by multiple blocks at once.

Using smgrextend() for {vm,fsm}_extend() is not a good idea in general, as at
least one page of the VM/FSM will be read immediately after, always causing a
cache miss, requiring us to read content we just wrote.

Discussion: https://postgr.es/m/20230301223515[email protected]
src/backend/access/heap/visibilitymap.c
src/backend/storage/freespace/freespace.c