Check out the new USENIX Web site. next up previous
Next: Data Fetching Up: Granularity Choices for Persistence Previous: Address Translation

Address Mapping

A related choice is the granularity of address mapping, which is defined as the smallest unit of addressed data (from the persistent store) that can be mapped independently to an area of the virtual address space.

To a first approximation, this is a virtual memory page in Texas because any page of persistent data can be mapped into any arbitrary page of the virtual address space of a process. A major benefit of page-wise mapping is the savings in table sizes; we only need to maintain tables that contain mappings from persistent to virtual addresses and vice versa on a page-wise basis, rather than (much larger) tables for recording the locations of individual objects. This reduces both the space and time costs of maintaining the address translation information.

However, the granularity of address mapping is bigger than a page in the case of large (multi-page) objects. When a pointer to (or into) a large object is swizzled, virtual address space must be reserved for all pages that the large object overlaps. This reservation of multiple pages is necessary to ensure that normal indexing and pointer arithmetic works as expected within objects that cross page boundaries. The granularity of address mapping is then equivalent to the number of pages occupied by the large object.


next up previous
Next: Data Fetching Up: Granularity Choices for Persistence Previous: Address Translation

Sheetal V. Kakkad