This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Working with Persistent Objects: To Swizzle or Not to Swizzle
August 1992 (vol. 18 no. 8)
pp. 657-673

Pointer swizzling is the conversion of database objects between an external form (object identifiers) and an internal form (direct memory pointers). Swizzling is used in some object-oriented databases, persistent object stores, and persistent and database programming language implementations to speed manipulation of memory resident data. The author describes a simplifying model of application behavior, revealing those aspects where swizzling is most relevant in both benefits and costs. The model has a number of parameters, which the authors have measured for a particular instance of the Mneme persistent object store, varying the swizzling technique used. The results confirm most of the intuitive, qualitative tradeoffs, with the quantitative data showing that some performance differences between schemes are smaller than might be expected. However, there are some interesting effects that run counter to naive intuition, most of which are explained using deeper analysis of the algorithms and data structures.

[1] S. N. Koshafian and G. P. Copeland, "Object identity,"SIGPLAN Notices (Proc. ACM Conf. Object-Oriented Programming Systems, Languages and Applications (OOPSLA)), vol. 21, no. 11, pp. 417- 423, 1986.
[2] T. Kaehler and G. Krasner, "LOOM--large object-oriented memory for Smalltalk-80 systems," inSmalltalk-80: Bits of History, Words of Advice, G. Krasner, Ed. Reading, MA: Addison-Wesley, pp. 251-270, 1983, ch. 14.
[3] T. Kaehler, "Virtual memory on a narrow machine for an object-oriented language," in [50], pp. 87-106.
[4] M. Atkinson, K. Chisolm, and P. Cockshott, "PS-algol: An Algol with a persistent heap,"ACM SIGPLAN Not., vol. 17, pp. 24-31, July 1982.
[5] J. E. Richardson and M. J. Carey, "Programming constructs for database system implementations in EXODUS," in [51], pp. 208-219.
[6] J. E. Richardson and M. J. Carey, "Persistence in the E language: Issues and implementation,"Computer Sciences Tech. Rep. 791, Univ. Wisconsin, Madison, WI, 1988.
[7] J. E. Richardson, "E: A persistent systems implementation language," Ph.D. dissertation, Computer Sciences Dept, Univ. Wisconsin, Madison, WI, Aug. 1989. Available asComputer Sciences Tech. Rep. 868.
[8] J. E. Richardson, "Compiled item faulting: A new technique for managing I/O in a persistent language," in [52], pp. 3-16.
[9] S. Riegel, F. Mellender, and A. Straw, "Integration of database management with an object-oriented programming language," in [53], pp. 317-322.
[10] A. Straw, F. Mellender, and S. Riegel, "Object management in a persistent smalltalk system,"Software: Practice and Experience, vol. 19, pp. 719-737, Aug. 1989.
[11] A. Goldberg and D. Robson,Smalltalk80: The Language and Its Implementation. Reading, MA: Addison-Wesley, May 1983.
[12] J. W. Schmidt and M. Mall, "Pascal/R report,"Rep. 66, Fachbereich Automatik, Univ. Hamburg, Hamburg, Germany, Jan. 1980.
[13] J. W. Schmidt, H. Eckhardt, and F. Matthes, "DBPL report,"Tech. Rep. DBPL-Memo 111-88, Fachbereich Informatik, Johann Wolfgang Goethe-Universität, Frankfurt, Germany, 1988.
[14] F. Matthes and J. W. Schmidt, "The type system of DBPL," in [34], pp. 255-260.
[15] R. Agrawal and N. H. Gehani, "ODE (Object Database and Environment): The language and the data model," inProceedings of the 1989 ACM SIGMOD Int. Conf. Management of Data, pp. 36-45, 1989.
[16] R. Agrawal and N. H. Gehani, "Rationale for the design of persistence and query processing facilities in the database language O++," in [34], pp. 25-40.
[17] D. Stemple, A. Socorro, and T. Sheard, "Formalizing objects for databases using ADABTPL," in [53], pp. 110-128.
[18] F. Bancilhon, T. Briggs, S. Khoshafian, and P. Valduriez, "FAD: a powerful and simple database language," inProc. 13th VLDB Conf. (Brighton, UK), 1987, pp. 97-105.
[19] G. Copeland and D. Maier, "Making Smalltalk a database system," inProc. 1984 ACM-SIGMOD Int. Conf. Management of Data, Boston, MA, June 1984.
[20] F. Bancilhonet al., "The design and implementation of O2, an object-oriented database system," in [53], pp. 1-22.
[21] T. Bloom and S. B. Zdonik, "Issues in the design of object-oriented database programming languages," in [54], pp. 441-451.
[22] M. P. Atkinson and O. P. Buneman, "Types and persistence in data-base programming languages,"ACM Computing Surveys, vol. 19, pp. 105-190, June 1987.
[23] M. J. Carey, D. J. Dewitt, J. E. Richardson, and E. J. Shekita, "Object and file management in the EXODUS extensible database system," inProc. Twelfth Int. Conf. Very Large Databases, pp. 91-100, 1986.
[24] K. R. Dittrich, W. Gotthard, and P. C. Lockemann, "DAMOKLES--A database system for software engineering environments," inProc. Int. Workshop on Advanced Programming Environments, June 1986.
[25] S. Hudson and R. King, "CACTIS: A database system for specifying functionally-defined data," inProc. Workshop Object-Oriented Databases, Pacific Grove, CA, 1986.
[26] T. Andrews and C. Harris, "Combining Language and Database Advances in Object-Oriented Development Environment,"Proc. Object-Oriented Programming Systems, Languages, and Applications, Addison-Wesley, Reading, Mass., 1987, pp. 430- 440; alsoSIGPlan Notices, special issue, ACM, Vol. 22, No. 12, Dec. 1987.
[27] D. Maier, J. Stein, A. Otis, and A. Purdy, "Development of an object-oriented DBMS," in [50], pp. 472-482.
[28] C. Lécluse, P. Richard, and F. Velez, "O2, an object-oriented data model," inProc. 1988 ACM SIGMOD Int. Conf. Management of Data, (Chicago, Illinois, May 1988), pp. 424-433, 1988.
[29] F. Velez, G. Bernard, and V. Darnis. "The O2object manager, an overview," in [34].
[30] W. Kimet al., "Integrating an object-oriented programming system with a database system," in [56], pp. 142-152.
[31] D. H. Fishmanet al., "Iris: An object-oriented database management system,"ACM Trans. Office Information Syst., vol. 5, pp. 48-69, Jan. 1987.
[32] M. J. Careyet al., "Storage management for objects in EXODUS," inObject-Oriented Concepts, Databases, and Applications, W. Kim and F. H. Lochovsky, Eds. New York: ACM Press/Addison-Wesley, ch. 14, pp. 341-369, 1989.
[33] J. E. B. Moss and S. Sinofsky, "Managing persistent data with Mneme: Designing a reliable, shared object interface," in [53], pp. 298-316.
[34] R. Hull, R. Morrison, and D. Stemple, eds.,Proc. Second Int. Workshop on Database Programming Languages, 1989.
[35] J. E. B. Moss, "Design of the Mneme persistent object store,"ACM Trans. Inf. Syst., vol. 8, pp. 103-139, Apr. 1990.
[36] P. Cockshott, "Stable virtual memory." inProc. Second Int. Workshop on Persistent Object Systems: Their Design, Implementation, and Use, pp. 470-476, 1987.
[37] R. Connoret al., "The persistent abstract machine," in [57], pp. 353-366.
[38] J. L. Keedy and J. Rosenberg, "Support for objects in the MONADS architecture," in [57], pp. 392-405.
[39] A. Skarra, S. B. Zdonik, and S. P. Reiss, "An object server for an object oriented database system," in [55], pp. 196-204.
[40] A. Purdy, B. Schuchardt, and D. Maier, "Integrating an object server with other worlds,"ACM Trans. Office Inform. Syst., vol. 5, pp. 27-47, Jan. 1987.
[41] W. R. Rubinstein, M. S. Kubicar, and R. G. G. Cattell, "Benchmarking simple database operations," in [51], pp. 387-394.
[42] R. G. G. Cattell, "Object-oriented DBMS performance measurement," in [53], pp. 364-367.
[43] J. Duhl and C. Damon, "A performance comparison of object and relational databases using the Sun benchmark," in [56], pp. 153-163.
[44] V. Benzaken and C. Delobel, "Enhancing performance in a persistent object store: Clustering strategies in O2," in [52], pp. 403-412.
[45] T. L. Andersonet al., "The Tektronix-HyperModel benchmark specification,"Tech. Rep. 89-05, Computer Research Laboratory, Tektronix Laboratories, Aug. 1989.
[46] D. J. DeWittet al., "A study of three alternative workstation-server architectures for object oriented database systems," inProc. Sixteenth Int. Conf. Very Large Databases, pp. 107-121, 1990.
[47] A. L. Hosking and J. E. B. Moss, "Toward compile-time optimisations for persistence," in [52], pp. 17-27.
[48] A. L. Hosking and J. E. B. Moss, "Compiler support for persistent programming,"COINS Tech. Rep. 91-25, Dept. Computer and Information Science, Univ. Massachusetts, Mar. 1991.
[49] C. Schaffertet al., "An introduction to Trellis/Owl," in [50], pp. 9-16.
[50] Proc. Conf. Object-Oriented Programming Systems, Languages, and Applications, Sept. 1986,ACM SIGPLAN Not. 21, Nov. 1986.
[51] Proc. 1987 ACM SIGMOD Int. Conf. Management of Data, May 1987,ACM SIGMOD Rec.16, Dec. 1987.
[52] A. Dearle, G. M. Shaw, and S. B. Zdonik, Eds.,Proc. Fourth Int. Workshop Persistent Object Systems, Sept. 1990, published asImplementing Persistent Object Bases: Principles and Practice, Morgan Kaufmann, 1990.
[53] K. R. Dittrich, Ed.,Proc. Second Int. Workshop Object-Oriented Database Systems, vol. 334 ofLecture Notes in Computer Science, (Bad Münster am Stein-Ebernburg), Germany, Sept. 1988,Advances in Object-Oriented Database Systems, Springer-Verlag, 1988.
[54] Proc. Conf. Object-Oriented Programming Systems, Languages, and Applications, Oct. 1987,ACM SIGPLAN Not. 22, Nov. 1987.
[55] K. Dittrich and U. Dayal, Eds.,Proc. Int. Workshop on Object-Oriented Database Systems, IEEE Computer Society Press, Washington, D.C., Sept. 1986.
[56] Proc. Conf. Object-Oriented Programming Systems, Languages, and Applications, Sept. 1988,ACM SIGPLAN Not. 23, Nov. 1988.
[57] J. Rosenberg and D. Koch, Eds.,Proc. Third Int. Workshop on Persistent Object Systems, Springer-Verlag, 1990.

Index Terms:
pointer swizzling; persistent objects; database objects; object identifiers; direct memory pointers; object-oriented databases; persistent object stores; database programming language implementations; manipulation; memory resident data; Mneme persistent object store; quantitative data; data structures; data structures; object-oriented databases; software engineering
Citation:
J.E.B. Moss, "Working with Persistent Objects: To Swizzle or Not to Swizzle," IEEE Transactions on Software Engineering, vol. 18, no. 8, pp. 657-673, Aug. 1992, doi:10.1109/32.153378
Usage of this product signifies your acceptance of the Terms of Use.