Efficient replication of XML data in a relational database management system
First Claim
Patent Images
1. A method comprising:
- for XML data that is subject to an update operation in a source database, one or more computing devices automatically generating, from one or more DML (data manipulation language) commands involved with said update operation, XML difference operations to be applied to XML data in a destination database, wherein XML data in said destination database has elements in a different order than in said source database; and
transmitting said XML difference operations for reception by said destination database for updating said XML data at said destination database.
1 Assignment
0 Petitions
Accused Products
Abstract
Efficiently replicating XML data among databases includes techniques for (a) replicating XML data involved with an insert operation; (b) replicating XML data involved with an update operation; (c) leveraging existing relational replication techniques for XML data stored in shredded form using object-relational constructs; and (d) replicating XQuery Data Model sequences. Each technique reduces the amount of information that would otherwise need to be transmitted over a network for XML data replication purposes.
155 Citations
28 Claims
-
1. A method comprising:
-
for XML data that is subject to an update operation in a source database, one or more computing devices automatically generating, from one or more DML (data manipulation language) commands involved with said update operation, XML difference operations to be applied to XML data in a destination database, wherein XML data in said destination database has elements in a different order than in said source database; and transmitting said XML difference operations for reception by said destination database for updating said XML data at said destination database. - View Dependent Claims (2, 3)
-
-
4. A method comprising the steps of:
-
if first XML data is inserted into a source database, then one or more computing devices determining whether to encode said first XML data into a compressed format prior to transmitting said XML data for reception by said destination database; wherein said determining is based on an analysis that is based on the size of said first XML data and the form in which said first XML data is stored in said source database; and if determined to encode said first XML data into a compressed format, then encoding said first XML data into said compressed format and transmitting said encoded first XML data for reception by said destination database; if said first XML data is subject to an update operation in said source database, then generating XML difference operations to be applied to XML data in a destination database, wherein XML data in said destination database has elements in a different order than in said source database; transmitting said XML difference operations for reception by said destination database for updating said first XML data at said destination database; if part of said first XML data is replicated from said source database to said destination database using relational data replication, and wherein said part of said first XML data is stored as a large object (LOB) in a column of a relational table in said source and destination databases, then transmitting from said source database for reception by said destination database a pointer to said relationally replicated large object (LOB) in said destination database, for inclusion, at said destination database, of said relationally replicated large object (LOB) into a first XML document of which said first XML data is part; if an XQuery Data Model sequence is subject to replication from said source database to said destination database, then generating a second XML document that represents said sequence, wherein said second XML document identifies boundaries between items in said sequence and identifies data types for corresponding items in said sequence. - View Dependent Claims (5, 6, 7, 8)
-
-
9. A method comprising the steps of:
-
one or more computing devices determining whether to encode XML data inserted into a source database into a compressed format prior to transmitting said XML data for reception by said destination database over a network; wherein said determining is based on an analysis that is based on; a) the size of said XML data being inserted; and
b) whether the XML data needs to be constructed from underlying base data constructs in said source database;if determined to encode said XML data into a compressed format, then encoding said XML data into said compressed format and transmitting said encoded XML data for reception by said destination database. - View Dependent Claims (10, 11)
-
-
12. A method for replicating XML data from a source database to a destination database comprising:
-
one or more computing devices replicating from said source database to said destination database, using relational data replication, first XML data from an XML document, wherein said first XML data is stored as a large object (LOB) in a column of a relational table in said source and destination databases; and transmitting from said source database for reception by said destination database a pointer to said relationally replicated large object (LOB); wherein said relationally replicated large object (LOB) is stored in said destination database, and included into said XML document at said destination database. - View Dependent Claims (13, 14)
-
-
15. A computer-readable volatile or non-volatile medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform:
-
for XML data that is subject to an update operation in a source database, one or more computing devices automatically generating, from one or more DML (data manipulation language) commands involved with said update operation, XML difference operations to be applied to XML data in a destination database, wherein XML data in said destination database has elements in a different order than in said source database; and transmitting said XML difference operations for reception by said destination database for updating said XML data at said destination database. - View Dependent Claims (16, 17)
-
-
18. A computer-readable volatile or non-volatile medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform:
-
if first XML data is inserted into a source database, then one or more computing devices determining whether to encode said first XML data into a compressed format prior to transmitting said XML data for reception by said destination database; wherein said determining is based on an analysis that is based on the size of said first XML data and the form in which said first XML data is stored in said source database; and if determined to encode said first XML data into a compressed format, then encoding said first XML data into said compressed format and transmitting said encoded first XML data for reception by said destination database; if said first XML data is subject to an update operation in said source database, then generating XML difference operations to be applied to XML data in a destination database, wherein XML data in said destination database has elements in a different order than in said source database; transmitting said XML difference operations for reception by said destination database for updating said first XML data at said destination database; if part of said first XML data is replicated from said source database to said destination database using relational data replication, and wherein said part of said first XML data is stored as a large object (LOB) in a column of a relational table in said source and destination databases, then transmitting from said source database for reception by said destination database a pointer to said relationally replicated large object (LOB) in said destination database, for inclusion, at said destination database, of said relationally replicated large object (LOB) into a first XML document of which said first XML data is part; if an XQuery Data Model sequence is subject to replication from said source database to said destination database, then generating a second XML document that represents said sequence, wherein said second XML document identifies boundaries between items in said sequence and identifies data types for corresponding items in said sequence. - View Dependent Claims (19, 20, 21, 22)
-
-
23. A computer-readable volatile or non-volatile medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform:
-
one or more computing devices determining whether to encode XML data inserted into a source database into a compressed format prior to transmitting said XML data for reception by said destination database over a network; wherein said determining is based on an analysis that is based on; a) the size of said XML data being inserted; and
b) whether the XML data needs to be constructed from underlying base data constructs in said source database;if determined to encode said XML data into a compressed format, then encoding said XML data into said compressed format and transmitting said encoded XML data for reception by said destination database. - View Dependent Claims (24, 25)
-
-
26. A computer-readable volatile or non-volatile medium storing one or more sequences of instructions which, when executed by one or more processors, causes the one or more processors to perform:
-
one or more computing devices replicating from said source database to said destination database, using relational data replication, first XML data from an XML document, wherein said first XML data is stored as a large object (LOB) in a column of a relational table in said source and destination databases; and transmitting from said source database for reception by said destination database a pointer to said relationally replicated large object (LOB); wherein said relationally replicated large object (LOB) is stored in said destination database, and included into said XML document at said destination database. - View Dependent Claims (27, 28)
-
Specification