Abstract
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 onmemorymapped files, even though that system provides much less functionality than THOR.
★
This research was supported in part by DARPA contract DABT63-95-C-005, monitored by Army Fort Huachuca, and in part by DARPA contract N00014-91-J-4136, monitored by the Office of Naval Research.M. Castro is supported by a PRAXIS XXI fellowship.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
A. Adya. Transaction Management for Mobile Objects Using Optimistic Concurrency Control. Master’s thesis, Massachusetts Institute of Technology, Jan. 1994. Also available as MIT Laboratory for Computer Science Technical Report MIT/LCS/TR-626.
A. Adya. Weak Consistency: A Generalized Theory and Optimistic Implementations for Distributed Transactions. PhD thesis, Massachusetts Institute of Technology, Cambridge, MA, Mar. 1999.
A. Adya, R. Gruber, B. Liskov, and U. Maheshwari. Efficient Optimistic Concurrency Control using Loosely Synchronized Clocks. In Proc. of ACM SIGMOD International Conference on Management of Data, pages 23–34, San Jose, CA, May 1995.
P. B._ Bishop. Computer Systems with a Very Large Address Space and Garbage Collection. Technical Report MIT/LCS/TR-178, Laboratory for Computer Science, MIT, Cambridge, MA, May 1977.
P. Bogle and B. Liskov. Reducing Cross-Domain Call Overhead Using Batched Futures. In Proc. OOPSLA’ 94, pages 341–359.ACM Press, 1994.
M. Blaze. Caching in Large-Scale Distributed File Systems. Technical Report TR-397-92, Princeton University, January 1993.
C. Boyapati. JPS: A Distributed Persistent Java System. Master’s thesis, Massachusetts Institute of Technology, Sept. 1998.
M.J. Carey et al. Shoring Up Persistent Applications. In Proc. of ACM SIGMOD International Conference on Management of Data, pages 383–394, Minneapolis, MN, May 1994. ACM Press.
M. Castro, A. Adya, and B. Liskov. Lazy Reference Counting for TransactionalStorage Systems. Technical Report MIT-LCS-TM-567, MIT Lab for Computer Science, June 1997.
M. Castro, A. Adya, B. Liskov, and A. Myers. HAC: Hybrid Adaptive Caching for Distributed Storage Systems. In Proc. 17th ACM Symp. on Operating System Principles (SOSP), pages 102–115, St. Malo, France, Oct. 1997.
M. J. Carey, D. J. DeWitt, and J. F. Naughton. The OO7 Benchmark. In Proc. of ACM SIGMOD International Conference on Management of Data, pages 12–21, Washington D.C., May 1993.
M. J. Carey, D. J. DeWitt, and J. F. Naughton. The OO7 benchmark. Technical Report; Revised Version dated 7/21/1994 1140, University of Wisconsin-Madison, 1994. At ftp://ftp.cs.wisc.edu/OO7.
M. Carey, M. Franklin, and M. Zaharioudakis. Fine-Grained Sharing in a Page Server OODBMS. In Proc. of ACM SIGMOD International Conference on Management of Data, pages 359–370, Minneapolis,MN, June 1994.
J. S. Chase, H. M. Levy, M. J. Feeley, and E. D. Lazowska. Sharing and Protection in a Single-Address-Space Operating System. In ACM Transactions on Computer Systems, volume 12, Feb. 1994.
F. J. Corbato. A Paging Experimentwith the Multics System, in Festschrift: In Honor of P. M. Morse, pages 217–228. MIT Press, 1969.
W.W. Chang and H. J. Schek. A Signature AccessMethod for the Starburst Database System. In Proceedings of the Fifteenth International Conference on Very Large Data Bases, pages 145–153, Amsterdam, Netherlands, August 1989.
O. Deux et al. The Story of O2. IEEE Transactions on Knowledge and Data Engineering, 2(1):91–108, March 1990.
M. Day. Client Cache Management in a Distributed Object Database. PhD thesis, Massachusetts Institute of Technology, 1995. Also available as MIT Laboratory for Computer Science Technical Report MIT/LCS/TR-652.
M. Day, R. Gruber, B. Liskov, and A. C. Myers. Subtypes vs.Where Clauses: Constraining Parametric Polymorphism. In Proc. OOPSLA’ 95, pages 156–168, Austin TX, Oct. 1995. ACM SIGPLAN Notices 30(10).
M. Day, B. Liskov, U. Maheshwari, and A. C. Myers. References to Remote Mobile Objects in Thor. ACM Letters on Programming Languages and Systems, Mar. 1994.
S. Ghemawat. The Modified Object Buffer: a Storage Management Technique for Object-Oriented Databases. PhD thesis, Massachusetts Institute of Technology, 1995. Also available as MIT Laboratory for Computer Science Technical Report MIT/LCS/TR-656.
D. Gifford. Information Storage in a Decentralized Computer System. Technical Report CSL-81-8, Xerox Corporation, March 1983.
C. Gerlhof, A. Kemper, and G. Moerkotte. On the Cost of Monitoring and Reorganization of Object Bases for Clustering. SIGMOD Record, 25(3):22–27, September 1996.
J. N. Gray and A. Reuter. Transaction Processing: Concepts and Techniques. Morgan Kaufmann Publishers Inc., 1993.
R. Gruber. Optimism vs. Locking: A Study of ConcurrencyControl for Client-Server Object-Oriented Databases. PhD thesis, M.I.T., Cambridge, MA, 1997.
T. Haerder. Observations on Optimistic Concurrency Control Schemes. Information Systems, 9(2):111–120, June 1984.
T. Johnson and D. Shasha. A Low Overhead High Performance Buffer Replacement Algorithm. In Proceedings of International Conference on Very Large Databases, pages 439–450, 1994.
W. Kim et al. Architecture of the ORION Next-Generation Database System. IEEE Transactions on Knowledge and Data Engineering, 2(1):109–124, June 1989.
D. Kossmann. Efficient Main-Memory Management of Persistent Objects. Shaker-Verlag, 1995. Dissertation, RWTH Aachen.
B. Liskov, A. Adya, M. Castro, M. Day, S. Ghemawat, R. Gruber, U. Maheshwari, A. Myers, and L. Shrira. Safe and Efficient Sharing of Persistent Objects in Thor. In Proc. of ACM SIGMOD International Conference on Management of Data, pages 318–329, Montreal, Canada, June 1996.
B. Liskov, A. Adya, M. Castro, and Q. Zondervan. Type-safe Heterogenous Sharing Can Be Fast. In Proceedings of the 7th InternationalWorkshop on PersistentObject Systems, Cape May, NJ, May 1996.
B. Liskov, D. Curtis, M. Day, S. Ghemawat, R. Gruber, P. Johnson, and A. C. Myers. Theta Reference Manual. Programming Methodology Group Memo 88, MIT Laboratory for Computer Science, Cambridge, MA, Feb. 1994. Available at http://www.pmg.lcs.mit.edu/papers/thetaref/.
B. Liskov, S. Ghemawat, R. Gruber, P. Johnson, L. Shrira, and M. Williams. Replication in the Harp File System. In Proc. 13th ACM Symp. on Operating System Principles (SOSP), pages 226–238. ACM Press, 1991.
C. Lamb, G. Landis, J. Orenstein, and D. Weinreb. The ObjectStore Database System. Comm. of the ACM, 34(10):50–63, October 1991.
G. Morrisett et al. TALx86: A Realistic Typed Assembly Language. Submitted for publication, 1999.
J. C. Mogul, J. F. Barlett, R. N. Mayo, and A. Srivastava. Performance Implications of Multiple Pointer Sizes. In USENIX 1995 Tech. Conf. on UNIX and Advanced Computing Systems, pages 187–200, New Orleans, LA, 1995.
D. Muntz and P. Honeyman. Multi-level Caching in Distributed File Systems or Your Cache ain’t nothin’ but trash. In Winter Usenix Technical Conference, 1992.
D. L. Mills. Network Time Protocol (Version 3) Specification, Implementation and Analysis. Network Working Report RFC 1305, March 1992.
W. J. McIver and R. King. Self Adaptive, On-Line Reclustering of Complex Object Data. In Proc. of ACM SIGMOD International Conference on Management of Data, pages 407–418, Minneapolis, MN, May 1994.
U. Maheshwari and B. Liskov. Fault-Tolerant Distributed Garbage Collection in a Client-Server Object-Oriented Database. In Third International Conference on Parallel and Distributed Information Systems, Austin, Sept. 1994.
U. Maheshwari and B. Liskov. Collecting Cyclic Distributed Garbage by Controlled Migration. Distributed Computing, 10(2):79–86, 1997.
U. Maheshwari and B. Liskov. Partitioned Collection of a Large Object Store. In Proc. of SIGMOD International Conference on Management of Data, pages 313–323, Tucson, Arizona, May 1997. ACM Press.
U. Maheswari and B. Liskov. Collecting Cyclic Distributed Garbage using Back Tracing. In Proc. of the ACM Symposium on Principles of Distributed Computing, Santa Barbara, California, Aug. 1997.
J. E. B. Moss. Design of the Mneme Persistent Object Store. ACM Transactions on Office Information Systems, 8(2):103–139, March 1990.
J. E. B. Moss. Working with Persistent Objects: To Swizzle or Not to Swizzle. IEEE Transactions on Software Engineering, 18(3), August 1992.
M. McAuliffe and M. Solomon. A Trace-Based Simulation of Pointer Swizzling Techniques. In Proc. International Conf. on Data Engineering, Mar. 1995.
G. Morrisett, D. Walker, K. Crary, and N. Glew. From system F to typed assembly language. In Proc. 25th ACM Symp. on Principles of Programming Languages (POPL), San Diego, California, Jan. 1998.
Ontos. Inc. Ontos reference manual, 1992.
E. J. O’Neil, P. E. O’Neil, and G. Weikum. The LRU-KPage Replacement Algorithm For Database Disk Buffering. In Proc. of ACM SIGMOD International Conference on Management of Data, Washington, D.C., May 1993.
J. O’Toole and L. Shrira. Opportunistic Log: Efficient Reads in a Reliable Storage Server. In Proc. of First Usenix Symposium on Operating Systems Design and Implementation, pages 119–128. ACM Press, 1994.
J. O’Toole and L. Shrira. Shared Data Management Needs Adaptive Methods. In In Proc. of IEEE Workshop on Hot Topics in Operating Systems, May 1995.
A. Parthasarathi. The NetLog: An Efficient, Highly Available, Stable Storage Abstraction. Master’s thesis, Massachusetts Institute of Technology, June 1998.
J. Robinson and N. Devarakonda. Data Cache Management Using Frequency-Based Replacement. In Proceedings of ACM SIGMETRICS Conference on Measurement and Modeling of Computer Systems, pages 134–142, 1990.
Seagate Technology, Inc. http://www.seagate.com/, 1997.
V. Singhal, S. V. Kakkad, and P. R. Wilson. Texas: An Efficient, Portable Persistent Store. In 5th Int’l Workshop on Persistent Object Systems, San Miniato, Italy, Sept. 1992.
LOOM-Large Object-Oriented Memory for Smalltalk-80 Systems, pages 298–307. Morgan Kaufmann Publishers, Inc., San Mateo, CA, 1990.
M. Tsangaris and J. Naughton. A stochastic approach for clustering in object bases. In Proc. ACM SIGMOD International Conference on Management of Data, pages 12–21, Denver, CO, 1991. ACM.
S. J. White and D. J. Dewitt. A performance study of alternative object faulting and pointer swizzling strategies. In Proceedings of the Eighteenth International Conference on Very Large Data Bases, pages 419–431, Vancouver, BC, Canada, 1992.
S. J. White and D. J. Dewitt. Quickstore: A high performance mapped object store. In SIGMOD’ 94, pages 187–198, 1994.
S. J. White and D. J. Dewitt. Implementing crash recovery in QuickStore: A performance study. In SIGMOD’ 95, pages 187–198. ACM Press, 1995.
M. Zaharioudakis, M. J. Carey, and M. J. Franklin. Adaptive, Fine-Grained Sharing in a Client-Server OODBMS: A Callback-Based Approach. ACM Transactions on Database Systems, 22(4):570–627, Dec. 1997.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Liskov, B., Castro, M., Shrira, L., Adya, A. (1999). Providing Persistent Objects in Distributed Systems. In: Guerraoui, R. (eds) ECOOP’ 99 — Object-Oriented Programming. ECOOP 1999. Lecture Notes in Computer Science, vol 1628. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48743-3_11
Download citation
DOI: https://doi.org/10.1007/3-540-48743-3_11
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66156-6
Online ISBN: 978-3-540-48743-2
eBook Packages: Springer Book Archive