System and method for object persistence in a database store
4 Assignments
0 Petitions
Accused Products
Abstract
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.
-
Citations
20 Claims
-
1-5. -5. (canceled)
-
6. In a system in which an object that is an instance of a user defined type is persisted in a database store, wherein a definition of the user defined type comprises one or more fields and behaviors and includes annotations that control a storage layout for instances of the type in the database store, and wherein the database store maintains information reflecting the storage layout as provided by the annotations to the type definition, a method of executing a query on an object that is an instance of the type, the method comprising:
-
receiving a query on an object that is an instance of the type, wherein execution of the query may require hydration of the object;
accessing the information maintained by the database store to determine the storage layout of instances of the type;
translating the query into an equivalent structural access path for a value of a field of the type that is to be returned in response to the query, based on the information about the storage layout of instances of the type;
structurally accessing the value of the field without hydrating the object; and
returning the value of the field in response to the query. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A system comprising:
-
a database store in which an object that is an instance of a user defined type is persisted, wherein a definition of the user defined type comprises one or more fields and behaviors and includes annotations that control a storage layout for instances of the type in the database store, and wherein the database store maintains information reflecting the storage layout as provided by the annotations to the type definition; and
a database server that (i) receives a query on an object that is an instance of the user defined type, wherein execution of the query may require hydration of the object, (ii) accesses the information maintained by the database store to determine the storage layout of instances of the type, (iii) translates the query into an equivalent structural access path for a value of a field of the type that is to be returned in response to the query, based on the information about the storage layout of instances of the type, (iv) structurally accesses the value of the field without hydrating the object, and (v) returns the value of the field in response to the query. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A computer readable medium having program code stored thereon for use in a system in which an object that is an instance of a user defined type is persisted in a database store, wherein a definition of the user defined type comprises one or more fields and behaviors and includes annotations that control a storage layout for instances of the type in the database store, and wherein the database store maintains information reflecting the storage layout as provided by the annotations to the type definition, said program code, when executed on a computer, causing the computer to:
-
receive a query on an object that is an instance of the type, wherein execution of the query may require hydration of the object;
access the information maintained by the database store to determine the storage layout of instances of the type;
translate the query into an equivalent structural access path for a value of a field of the type that is to be returned in response to the query, based on the information about the storage layout of instances of the type;
structurally access the value of the field without hydrating the object; and
return the value of the field in response to the query. - View Dependent Claims (17, 18, 19, 20)
-
Specification