offset = BlockNumber * BLCKSZ
fileID = RelFileNode+ForkNumber
if (fileID is already in Vfd pool) {
if (offset is in this file)
fd = use Vfd from pool
else
fd = allocate new Vfd for next part of file
} else {
fd = allocate new Vfd for this file
}
seek to offset in fd
read/write data page (BLCKSZ bytes)
|