Method and mechanism for loading XML documents into memory
First Claim
1. A method for storing a single XML document in multiple database data blocks of a database, comprising:
- at a client, storing data representing at least one XML element in a first partition of an array maintained in client memory of the client, said at least one XML element corresponding to only part of an XML document;
wherein the array is populated by array elements of a first XML type;
upon determining that a first amount of data maintained in the first partition exceeds a partition size threshold, (a) creating a new partition of the array, in the client memory, that is different and other than the first partition, and (b) subsequently loading the array elements of the first XML type into the new partition of the array;
upon determining that a second amount of data maintained in the client memory exceeds a client memory size threshold, transmitting a request to a database server of said database to store data in the first partition in a database data block of said database;
transmitting a second request to said database server to store data in the new partition in a database data block of said database;
wherein transmitting a request to a database server of said database to store data in the first partition in a database data block and transmitting a request to said database server to store data in the second partition in a database data block cause the data for the first partition and data for the new partition to be stored in separate and distinct data blocks of said database; and
wherein the method is performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for loading an XML document into memory is provided. A client loads one or more array elements into a first partition of an array that is maintained in memory. Each array element represents an XML element of an XML document. Upon determining that an amount of data maintained in the first partition exceeds a first threshold, the client subsequently loads array elements into a new partition of the array. Upon determining that an amount of data maintained in the memory of the client exceeds a second threshold, the array elements of the least recently used partition are persistently stored in a database without persistently storing the entire XML document. When the last XML element of the XML document is loaded into a partition of the array, that partition is persistently stored in the database, thereby causing the entire XML document to be stored in the database.
-
Citations
15 Claims
-
1. A method for storing a single XML document in multiple database data blocks of a database, comprising:
-
at a client, storing data representing at least one XML element in a first partition of an array maintained in client memory of the client, said at least one XML element corresponding to only part of an XML document; wherein the array is populated by array elements of a first XML type; upon determining that a first amount of data maintained in the first partition exceeds a partition size threshold, (a) creating a new partition of the array, in the client memory, that is different and other than the first partition, and (b) subsequently loading the array elements of the first XML type into the new partition of the array; upon determining that a second amount of data maintained in the client memory exceeds a client memory size threshold, transmitting a request to a database server of said database to store data in the first partition in a database data block of said database; transmitting a second request to said database server to store data in the new partition in a database data block of said database; wherein transmitting a request to a database server of said database to store data in the first partition in a database data block and transmitting a request to said database server to store data in the second partition in a database data block cause the data for the first partition and data for the new partition to be stored in separate and distinct data blocks of said database; and wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for storing a single XML document in multiple database data blocks of a database, comprising:
-
at a client, loading one or more first array elements into a first partition of an array maintained in client memory of the client, wherein each array element, of the one or more first array elements, represents an XML element of an XML document; wherein the array is populated by a plurality of array elements of a first XML type; upon determining that a first amount of data maintained in the first partition exceeds a partition size threshold, (a) creating a new partition of the array, in the client memory, that is different and other than the first partition, and (b) subsequently loading the plurality of array elements of the first XML type into the new partition of the array; upon determining that a second amount of data maintained in the client memory exceeds a client memory size threshold, persistently storing the first array elements, of the first partition, in said database without persistently storing the entire XML document; transmitting a request to a database server of said database to store data in the new partition in a database data block of said database; wherein transmitting a request to a database server to store data in the first partition in a database data block and persistently storing the first array elements, of the first partition, in said database without persistently storing the entire XML document cause the data for the first partition and data for the new partition to be stored in separate and distinct data blocks of said database; and wherein the method is performed by one or more computing devices.
-
-
9. A volatile or non-volatile machine-readable medium carrying instructions, wherein the instructions, when executed by one or more processors, cause the one or more processors to perform the steps of:
-
at a client, storing data representing at least one XML element in a first partition of an array maintained in client memory of the client, said at least one XML element corresponding to only part of an XML document; wherein the array is populated by array elements of a first XML type; upon determining that a first amount of data maintained in the first partition exceeds a partition size threshold, (a) creating a new partition of the array, in the client memory, that is different and other than the first partition, and (b) subsequently loading the array elements of the first XML type into the new partition of the array; upon determining that a second amount of data maintained in the client memory exceeds a client memory size threshold, transmitting a request to a database server of said database to store data in the first partition in a database data block of said database; transmitting a second request to said database server to store data in the new partition in a database data block of said database; wherein transmitting a request to a database server of said database to store data in the first partition in a database data block and transmitting a request to said database server to store data in the second partition in a database data block cause the data for the first partition and data for the new partition to be stored in separate and distinct data blocks of said database. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
Specification