USENIX Technical Program - Abstract - COOTS 99
Address Translation Strategies in the Texas Persistent Store
Sheetal V. Kakkad, Somerset Design Center, Motorola; Paul R. Wilson, University of Texas at Austin
Abstract
Texas is a highly portable, high-performance persistent object store
that can be used with conventional compilers and operating systems,
without the need for a preprocessor or special operating system
privileges. Texas uses pointer swizzling at page fault time as
its primary address translation mechanism, translating addresses from
a persistent format into conventional virtual addresses for an entire
page at a time as it is loaded into memory.
Existing classifications of persistent systems typically focus only on
address translation taxonomies based on semantics that we consider to
be confusing and ambiguous. Instead, we contend that the granularity choices for design issues are much more important because
they facilitate classification of different systems in an unambiguous
manner unlike the taxonomies based only on address translation. We
have identified five primary design issues that we believe are
relevant in this context. We describe these design issues in detail
and present a new general classification for persistence based on the
granularity choices for these issues.
Although the coarse granularity of pointer swizzling at page fault
time is efficient in most case, it is sometimes desirable to use
finer-grained techniques. We examine different issues related to
fine-grained address translation mechanisms, and discuss why these are
not suitable as general-purpose address translation techniques.
Instead, we argue for a mixed-granularity approach where a
coarse-grained mechanism is used as the primary address translation
scheme, and a fine-grained approach is used for specialized data
structures that are less suitable for the coarse-grained approach.
We have incorporated fine-grained address translation in Texas using
the C++ smart pointer idiom, allowing programmers to choose the
kind of pointer used for any data member in a particular class
definition. This approach maintains the important features of the
system: persistence that is orthogonal to type, high performance with
standard compilers and operating systems, suitability for huge shared
address spaces across heterogeneous platforms, and the ability to
optimize away pointer swizzling costs when the persistent store is
smaller than the hardware-supported virtual address size.
- View the full text of this paper in
HTML form and
PDF form.
- If you need the latest Adobe Acrobat Reader, you can download it from Adobe's site.
- To become a USENIX Member, please see our Membership Information.
|