Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/1267991.1267999guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Address translation strategies in the texas persistent store

Published: 03 May 1999 Publication History

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.

References

[1]
{1} Malcolm P. Atkinson, Peter J. Bailey, Ken J. Chisholm, W. Paul Cockshott, and Ron Morrison. An Approach to Persistent Programming. Computer Journal, 26(4):360-365, December 1983.]]
[2]
{2} Malcolm P. Atkinson and Ron Morrison. Orthogonally Persistent Object Systems. VLDB Journal, 4(3), 1995.]]
[3]
{3} Michael J. Carey, David J. DeWitt, and Jeffrey F. Naughton. The OO7 Benchmark. In Proceedings of the ACM SIGMOD International Conference on Management of Data, pages 12-21, Washington DC., June 1993. ACM Press.]]
[4]
{4} R. G. G. Cattell. An Engineering Database Benchmark. In Jim Gray, editor, The Benchmark Handbook for Database and Transaction Processing Systems. Morgan Kaufmann, 1991.]]
[5]
{5} Rick G. G. Cattell and J. Skeen. Object Operations Benchmark. ACM Transactions on Database Systems , 17(1):1-31, March 1992.]]
[6]
{6} Craig Chambers. The Design and Implementation of the SELF Compiler, an Optimizing Compiler for an Object-Oriented Programming Language. PhD thesis, Stanford University, March 1992.]]
[7]
{7} Daniel Ross Edelson. Smart Pointers: They're Smart, But They're Not Pointers. In USENIX C++ Conference, pages 1-19, Portland, Oregon, August 1992. USENIX Association.]]
[8]
{8} Sheetal V. Kakkad. Address Translation and Storage Management for Persistent Object Stores. PhD thesis, The University of Texas at Austin, Austin. Texas, December 1997. Available at ftp://ftp.cs.utexas.edu/pub/ garbage/kakkad-dissertation.ps.gz.]]
[9]
{9} Alfons Kemper and Donald Kossmann. Adaptable Pointer Swizzling Strategies in Object Bases: Design, Realization, and Quantitative Analysis. VLDB Journal, 4(3):519-566, July 1995.]]
[10]
{10} Gregor Kiczales, Jim des Rivieres, and Daniel G. Bobrow. The Art of the Metaobject Protocol. MIT Press, Cambridge, Massachusetts, 1991.]]
[11]
{11} Mark L. McAuliffe and Marvin H. Solomon. A Trace-Based Simulation of Pointer Swizzling Techniques. In Proceedings of the International Conference on Database Engineering, pages 52-61, Taipei, Taiwan, March 1995. IEEE.]]
[12]
{12} Scott Meyers. Smart Pointers. C++ Report, 1996. Article series published from April through December. Available at http://www.aristeia. com/magazines.html.]]
[13]
{13} J. Eliot B. Moss. Working with Persistent Objects: To Swizzle or Not to Swizzle? IEEE Transactions on Software Engineering, 18(8):657-673, August 1992.]]
[14]
{14} Joel E. Richardson and Michael J. Carey. Persistence in the E Language: Issues and Implementation. Software Practice and Experience, 19(12):1115-1150, December 1989.]]
[15]
{15} Daniel T. Schuh, Michael J. Carey, and David J. DeWitt. Persistence in E Revisited-- Implementation Experiences. In Alan Dearle, Gail M. Shaw, and Stanley B. Zdonik, editors, Proceedings of the Fourth International Workshop on Persistent Object Systems, Martha's Vineyard, Massachusetts, September 1990.]]
[16]
{16} Vivek Singhal, Sheetal V. Kakkad, and Paul R. Wilson. Texas: An Efficient, Portable Persistent Store. In Antonio Albano and Ron Morrison, editors, Fifth International Workshop on Persistent Object Systems, pages 11-33, San Miniato, Italy, September 1992. Springer-Verlag.]]
[17]
{17} Bjarne Stroustrup. The Evolution of C++, 1985 to 1987. In USENIX C++ Workshop, pages 1-22. USENIX Association, 1987.]]
[18]
{18} Ashutosh Tiwary, Vivek R. Narasayya, and Henry M. Levy. Evaluation of OO7 as a System and an Application Benchmark. In OOPSLA Workshop on Object Database Behavior, Benchmarks and Performance, Austin, Texas, October 1995.]]
[19]
{19} Seth J. White. Pointer Swizzling Techniques for Object-Oriented Database Systems. PhD thesis, University of Wisconsin, Madison, Wisonsin, 1994.]]
[20]
{20} Seth J. White and David J. Dewitt. A Performance Study of Alternative Object Faulting and Pointer Swizzling Strategies. In 18th International Conference on Very Large Data Bases, Vancouver, British Columbia, October 1992. Morgan Kaufmann.]]
[21]
{21} Paul R. Wilson. Garbage Collection. ACM Computing Surveys. Expanded version of {22}. Available at ftp://ftp.cs.utexas.edu/pub/ garbage/bigsurv.ps. In revision.]]
[22]
{22} Paul R. Wilson. Uniprocessor Garbage Collection Techniques. In Yves Bekkers and Jacques Cohen, editors, International Workshop on Memory Management, number 637 in Lecture Notes in Computer Science, pages 1-42, St. Malo, France, September 1992. Springer-Verlag.]]
[23]
{23} Paul R. Wilson and Sheetal V. Kakkad. Pointer Swizzling at Page Fault Time: Efficiently and Compatibly Supporting Huge Addresses on Standard Hardware. In International Workshop on Object Orientation in Operating Systems, pages 364-377, Paris, France, September 1992. IEEE Press.]]
[24]
{24} Paul R. Wilson, Scott F. Kaplan, and Yannis Smaragdakis. The Case for Compressed Caching in Virtual Memory Systems. In Proceedings of the USENIX Annual Technical Conference, Monterey, California, April 1999. USENIX Association.]]

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
COOTS'99: Proceedings of the 5th conference on USENIX Conference on Object-Oriented Technologies & Systems - Volume 5
May 1999
249 pages

Publisher

USENIX Association

United States

Publication History

Published: 03 May 1999

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 6
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 06 Jan 2025

Other Metrics

Citations

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media