Defines the interface for the Page Management module.
The database storage system is managed in units of IO called pages. A page is typically a fixed size block within the storage container. The Page Manager module encapsulates the knowledge about how pages map to containers. It knows about page sizes, and also knows how to read/write pages from storage containers. By isolating this knowledge into a separate module, the rest of the system is protected. For example, the Buffer Manager module can work with different paging strategies by switching the Page Manager module.
Note that the Page Manager module does not worry about the contents of the page, except for the very basic and common stuff that must be part of every page, such as page Id, page LSN, and page type. It is expected that other modules will extend the basic page type and implement additional features.
The Buffer Manager module uses the Page Manager module to read/write pages from storage containers and also to create new instances of pages.
The Page Manager module requires the services of the Object Registry module in order to create instances of pages from type codes.
Page Manager module also interacts with the Storage Manager module for access to Storage Containers.