Providing Persistent Objects in Distributed Systems

THOR is a persistent object store that provides a powerful programming model. THOR ensures that persistent objects are accessed only by calling their methods and it supports atomic transactions. The result is a system that allows applications to share objects safely across both space and time. The paper describes how the THOR implementation is able to support this powerful model and yet achieve good performance, even in a wide-area, large-scale distributed environment. It describes the techniques used in THOR to meet the challenge of providing good performance in spite of the need to manage very large numbers of very small objects. In addition, the paper puts the performance of THOR in perspective by showing that it substantially outperforms a system based on memory mapped files, even though that system provides much less functionality than THOR.

[1]  Michael J. Carey,et al.  Fine-grained sharing in a page server OODBMS , 1994, SIGMOD '94.

[2]  Peter Honeyman,et al.  Multi-level Caching in Distributed File Systems or Your cache ain't nuthin' but trash , 1992 .

[3]  Dennis Shasha,et al.  2Q: A low overhead high performance buffer replacement algorithm , 1994 .

[4]  Jeffrey F. Naughton,et al.  A stochastic approach for clustering in object bases , 1991, SIGMOD '91.

[5]  David J. DeWitt,et al.  The 007 Benchmark , 1993, SIGMOD '93.

[6]  O. Deux,et al.  The Story of O2 , 1990, IEEE Trans. Knowl. Data Eng..

[7]  Barbara Liskov,et al.  Reducing cross domain call overhead using batched futures , 1994, OOPSLA '94.

[8]  Donald Kossmann Efficient main-memory management of persistent objects , 1995, Berichte aus der Informatik.

[9]  Barbara Liskov,et al.  Collecting cyclic distributed garbage by controlled migration , 1997, PODC '95.

[10]  J. T. Robinson,et al.  Data cache management using frequency-based replacement , 1990, SIGMETRICS '90.

[11]  J. O'Toole,et al.  Shared data management needs adaptive methods , 1995, Proceedings 5th Workshop on Hot Topics in Operating Systems (HotOS-V).

[12]  Andreas Reuter,et al.  Transaction Processing: Concepts and Techniques , 1992 .

[13]  Miguel Castro,et al.  Lazy Reference Counting for Transactional Storage Systems , 1997 .

[14]  Vivek Singhal,et al.  Texas: An Efficient, Portable Persistent Store , 1992, POS.

[15]  Barbara Liskov,et al.  Weak Consistency: A Generalized Theory and Optimistic Implementations for Distributed Transactions , 1999 .

[16]  Barbara Liskov,et al.  Fault-tolerant distributed garbage collection in a client-server object-oriented database , 1994, Proceedings of 3rd International Conference on Parallel and Distributed Information Systems.

[17]  Barbara Liskov,et al.  Collecting distributed garbage cycles by back tracing , 1997, PODC '97.

[18]  Liuba Shrira,et al.  Opportunistic log: efficient installation reads in a reliable storage server , 1994, OSDI '94.

[19]  Gerhard Weikum,et al.  The LRU-K page replacement algorithm for database disk buffering , 1993, SIGMOD Conference.

[20]  Andrew C. Myers,et al.  References to remote mobile objects in Thor , 1993, LOPL.

[21]  Sanjay Ghemawat,et al.  The Modified Object Buffer: A Storage Management Technique for Object-Oriented Databases , 1995 .

[22]  Michael Williams,et al.  Replication in the harp file system , 1991, SOSP '91.

[23]  T. Kaehler,et al.  LOOM: large object-oriented memory for Smalltalk-80 systems , 1989 .

[24]  Mark S. Day,et al.  Client cache management in a distributed object database , 1995 .

[25]  Dennis Shasha,et al.  2Q: A Low Overhead High Performance Buffer Management Replacement Algorithm , 1994, VLDB.

[26]  David Kenneth Gifford,et al.  Information storage in a decentralized computer system , 1981 .

[27]  Arvind Parthasarathi,et al.  The NetLog : an efficient, highly available, stable storage abstraction , 1998 .

[28]  Robert E. Gruber,et al.  Optimism vs. locking: a study of concurrency control for client-server object-oriented databases , 1997 .

[29]  Dan Grossman,et al.  TALx86: A Realistic Typed Assembly Language∗ , 1999 .

[30]  David J. DeWitt,et al.  Implementing crash recovery in QuickStore: a performance study , 1995, SIGMOD '95.

[31]  Michael J. Carey,et al.  Adaptive, fine-grained sharing in a client-server OODBMS: a callback-based approach , 1997, TODS.

[32]  J CareyMichael,et al.  Adaptive, fine-grained sharing in a client-server OODBMS , 1997 .

[33]  Marvin H. Solomon,et al.  A trace-based simulation of pointer swizzling techniques , 1995, Proceedings of the Eleventh International Conference on Data Engineering.

[34]  A. Adya Transaction Management for Mobile Objects Using Optimistic Concurrency Control , 1994 .

[35]  Hans-Jörg Schek,et al.  A Signature Access Method for the Starburst Database System , 1989, VLDB.

[36]  Won Kim,et al.  Architecture of the ORION Next-Generation Database System , 1990, IEEE Trans. Knowl. Data Eng..

[37]  Barbara Liskov,et al.  Partitioned garbage collection of a large object store , 1997, SIGMOD '97.

[38]  Theo Härder,et al.  Observations on optimistic concurrency control schemes , 1984, Inf. Syst..

[39]  Miguel Castro,et al.  HAC: hybrid adaptive caching for distributed storage systems , 1997, SOSP.

[40]  David J. DeWitt,et al.  A Performance Study of Alternative Object Faulting and Pointer Swizzling Strategies , 1992, VLDB.

[41]  Chandrasekhar Boyapati,et al.  JPS : a distributed persistent Java system , 1998 .

[42]  Andrew C. Myers,et al.  Subtypes vs. where clauses: constraining parametric polymorphism , 1995, OOPSLA.

[43]  Miguel Castro,et al.  Type-Safe Heterogeneous Sharing can be Fast , 1996, POS.

[44]  J. Eliot B. Moss,et al.  Working with Persistent Objects: To Swizzle or Not to Swizzle , 1992, IEEE Trans. Software Eng..

[45]  Roger King,et al.  Self-adaptive, on-line reclustering of complex object data , 1994, SIGMOD '94.

[46]  David J. DeWitt,et al.  QuickStore: A high performance mapped object store , 1994, SIGMOD '94.

[47]  Miguel Castro,et al.  Safe and efficient sharing of persistent objects in Thor , 1996, SIGMOD '96.

[48]  Guido Moerkotte,et al.  On the cost of monitoring and reorganization of object bases for clustering , 1996, SGMD.

[49]  J. Eliot B. Moss Design of the Mneme persistent object store , 1990, TOIS.

[50]  Matthew Addison Blaze Caching in large-scale distributed file systems , 1993 .

[51]  Jack A. Orenstein,et al.  The ObjectStore database system , 1991, CACM.

[52]  Peter Boehler Bishop,et al.  Computer systems with a very large address space and garbage collection , 1977 .

[53]  David J. DeWitt,et al.  The oo7 Benchmark , 1993, SIGMOD Conference.

[54]  David J. DeWitt,et al.  Shoring up persistent applications , 1994, SIGMOD '94.

[55]  Elizabeth Lindholm Seagate Technology Inc. , 1993 .

[56]  David L. Mills,et al.  Network Time Protocol (Version 3) Specification, Implementation and Analysis , 1992, RFC.

[57]  Jeffrey C. Mogul,et al.  Performance Implications of Multiple Pointer Sizes , 1995, USENIX.

[58]  Robert Gruber,et al.  Efficient optimistic concurrency control using loosely synchronized clocks , 1995, SIGMOD '95.