System and method for object persistence in a database store
Patent 7356546 Issued on April 8, 2008. Estimated Expiration Date: January 4, 2025. Estimated Expiration Date is calculated based on simple USPTO term provisions. It does not account for terminal disclaimers, term adjustments, failure to pay maintenance fees, or other factors which might affect the term of a patent.
707/101, Manipulating data structure (e.g., compression, compaction, compilation)715/866, Miscellaneous customization or adaptation707/206, Garbage collection715/804, Interwindow link or communication717/122, Source code version709/203, Client/server717/104, Modeling717/170, Plural version management707/2, Access augmentation or optimizing707/10, Distributed or remote access706/55, Semantic network (e.g., conceptual dependency, fact based structure)707/4, Query formulation, input preparation, or translation707/9, Privileged access707/204, Archiving or backup707/103Y, Object-oriented database structure processing707/100, DATABASE SCHEMA OR DATA STRUCTURE714/13, Prepared backup processor (e.g., initializing cold backup) or updating backup processor (e.g., by checkpoint message)707/102Generating database or data structure (e.g., via user interface)
A new persistence format for storing objects of a user defined type in a database store enables information about the structure of the type to be communicated to the store. This information enables a number of store optimizations, including direct structural access to members of the type. Specifically, metadata is exchanged between the type implementer and the data store. The store uses the metadata to determine the storage layout for instances of the type. With this information, the store is able to detect access patterns that can be optimized to directly operate over the storage representation without hydration (deserialization) the object.
Other References
Yoshikawa, M. et al., “XRel: A Path-Based Approach to Storage and Retrieval of XML Documents Using Relational Databases”, ACM Transactions on Internet Technology, Aug. 2001, 1(1), 110-141.
Varlamis, I. et al., “Bridging XML-Schema and Relational Databases. A System for Generating and Manipulating Relational Databases Using Valid XML Documents”, DocEng 'OL, Nov. 9-10, 2001, 105-114.
Stonebraker, M., “Inclusion of New Types in Relational Data Base Systems”, IEEE International Conference on Data Engineering, 1986, 1-19.
Seshadri, P., “Enhanced Abstract Data Types in Object-Relational Databases”, The VLDB Journal, 1998, 7, 130-140.
Papiani, M. et al., A Distributed Scientific Data Archive Using the Web, XML and SQL/MED, SIGMOD Record, Sep. 1999, 28(3), 56-62.
Melton, J. et al., “SQL and Management of External Data”, SIGMOD Record, Mar. 2001, 30(1), 70-77.
Leontiev, Y. et al., “On Type Systems for Object-Oriented Database Programming Languages”, ACM Computing Surveys, Dec. 2002, 34(4), 409-449.
King, et al., “TriStarp—An Investigation into the Implementation and Exploitation of Binary Relational Storage Structures”, Proc. 8 Supth BNCOD(British national Conference on Data Bases), 1990, 64-84.
Khan, L. et al., “A Performance Evaluation of Storing XML Data in Relational Database Management Systems”, WIDM, 2001, 31-38.
Hsiao, H.I. et al., “DLFM: A Transactional Resource Manager”, MOD, 2000, 518-528.
Haverlock, K., “Object Serialization, Java, and C++”, Dr. Dobbs. Journal, 1998, 23(8), 32, 34, 36-37.
Harrison, C.J. et al., Structure Editors: User-Defined Type Values and Type Inference, IEEE, 2000, 241-247.
Fuh, Y-C. et al., “Implementation of SQL3 Structured Types with Inheritance and Value Substitutability”, Digital Symposium Collection, 2000, 565-574.
Findler, R.B. et al., “Contact Soundness for Object-Oriented Languages” ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA, 2001, 15 pages.
Darby, C., “Object Serializatin in Java 1.1. Making Objects Persistent”, Web Techniques, 1997, 2(9), 55, 58-59.
Chien, A.A., “Concurrent Aggregates (CA)-Design and Experience with a Concurrent Object-Oriented Language Based on Aggregates”, J. Parallel and Distributed Computing, 1995, 25(2), 174-196.
Buneman, P. et al., “Inheritance and Persistence in Database Programming Languages”, ACM, 1986, 4-15.
Biliris, A., “The Performance of Three Database Storage Structures for Managing Large Objects”, ACM SIGMOD, 1992, 276-285.
Bhattacharya, S. et al., “Coordinating Backup/Recovery and Data Consistency Between Database and File Systems”, ACM SIGMOD, Jun. 4-6, 2002, 500-511.
Berg, C., “How Do I Create Persistent Java Objects?”, Dr. Dobb's Journal, 1997, 22(4), 98-101.
Andrews, T. et al., “Combining Language and Database Advances in an Object-Oriented Development Environment”, OOPSLA Proceedings, Oct. 4-8, 1987, 430-440.