[prev] 41 [next]

File Manager (cont)

The "magnetic disk storage manager" (storage/smgr/md.c)
  • manages its own pool of open file descriptors (Vfd's)
  • may use several Vfd's to access data, if several forks
  • manages mapping from PageID to file+offset.
PostgreSQL PageID values are structured:

typedef struct
{
    RelFileNode rnode;    // which relation/file
    ForkNumber  forkNum;  // which fork (of reln)
    BlockNumber blockNum; // which page/block 
} BufferTag;