التفاصيل البيبلوغرافية
العنوان: |
Efficient replication of XML data in a relational database management system |
Document Number: |
20070260650 |
تاريخ النشر: |
November 8, 2007 |
Appl. No: |
11/416835 |
Application Filed: |
May 03, 2006 |
مستخلص: |
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. |
Inventors: |
Warner, James W. (Lake Oswago, OR, US); Liu, Zhen Hua (San Mateo, CA, US); Abraham, Sundeep (Belmont, CA, US); Krishnaprasad, Muralidhar (Fremont, CA, US); Arora, Geeta (Union City, CA, US); Murthy, Ravi (Fremont, CA, US); Chandrasekar, Sivasankaran (Palo Alto, CA, US); Wong, Lik (Union City, CA, US); Arora, Nimar S. (Union City, CA, US) |
Claim: |
1. A method comprising performing a machine-executed operation involving instructions for replicating XML data from a source database to a destination database, wherein the machine-executed operation is at least one of: A) sending the instructions over transmission media; B) receiving the instructions over transmission media; C) storing the instructions onto a machine-readable storage medium; and D) executing the instructions; wherein the instructions are instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of: for XML data that is subject to an update operation in said source database, generating difference data that represents the difference in said XML data before and after said update; and transmitting said difference data for reception by said destination database for updating said XML data at said destination database. |
Claim: |
2. The method of claim 1, wherein said generating includes automatically generating said difference data based on one or more DML (data manipulation language) commands involved with said update operation. |
Claim: |
3. The method of claim 1, wherein the instructions are instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of: determining whether to generate said difference data that represents the difference in said XML data before and after said update based on a cost of generating said difference data. |
Claim: |
4. The method of claim 1, wherein the instructions are instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of: including in said difference data a column identifier that identifies a column in which said XML data is stored at said destination database; and wherein transmitting said difference data for reception by said destination database includes transmitting said difference data with said column identifier to said destination database. |
Claim: |
5. A method comprising performing a machine-executed operation involving instructions for replicating XML data from a source database to a destination database, wherein the machine-executed operation is at least one of: A) sending the instructions over transmission media; B) receiving the instructions over transmission media; C) storing the instructions onto a machine-readable storage medium; and D) executing the instructions; wherein the instructions are instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of: if first XML data is inserted into said source database, then 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 difference data that represents the difference in said first XML data before and after said update; transmitting said difference data 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. |
Claim: |
6. The method of claim 5, wherein the instructions are instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of: 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 said relationally replicated large object (LOB) from said source database for reception by said destination database for inclusion, at said destination database, of said relationally replicated large object (LOB) into said first XML document; wherein said relationally replicated large object (LOB) is transmitted from said source database separately from said pointer. |
Claim: |
7. The method of claim 5, wherein generating said difference data includes automatically generating said difference data based on one or more DML (data manipulation language) commands involved with said update operation. |
Claim: |
8. The method of claim 5, wherein the instructions are instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of: including in said difference data a column identifier that identifies a column in which said first XML data is stored at said destination database; and wherein transmitting said difference data for reception by said destination database includes transmitting said difference data with said column identifier for reception by said destination database. |
Claim: |
9. The method of claim 5, wherein if determined not to encode said first XML data into said compressed format based at least in part on a need for said first XML data to be constructed using one or more construction functions, then transmitting said one or more construction functions for reception by said destination database for construction of said first XML data at said destination database. |
Claim: |
10. A method comprising performing a machine-executed operation involving instructions for replicating XML data from a source database to a destination database, wherein the machine-executed operation is at least one of: A) sending the instructions over transmission media; B) receiving the instructions over transmission media; C) storing the instructions onto a machine-readable storage medium; and D) executing the instructions; wherein the instructions are instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of: determining whether to encode XML data inserted into said 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 the size of said XML data being inserted and the form in which said XML data is stored in said source database; and 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. |
Claim: |
11. The method of claim 10, wherein said determining whether to encode said XML data comprises determining a degree of compression that would result from encoding said XML data into said compressed format, and wherein determining said degree of compression is based on a schema to which said XML data conforms. |
Claim: |
12. The method of claim 10, if determined not to encode said XML data into said compressed format based at least in part on a need for said XML data to be constructed using one or more construction functions, then transmitting said one or more construction functions for reception by said destination database for construction of said XML data at said destination database. |
Claim: |
13. A method comprising performing a machine-executed operation involving instructions for replicating XML data from a source database to a destination database, wherein the machine-executed operation is at least one of: A) sending the instructions over transmission media; B) receiving the instructions over transmission media; C) storing the instructions onto a machine-readable storage medium; and D) executing the instructions; wherein the instructions are instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of: 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) in said destination database, for inclusion of said relationally replicated large object (LOB) into said XML document at said destination database. |
Claim: |
14. The method of claim 13, wherein the instructions are instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of: transmitting said relationally replicated large object (LOB) from said source database for reception by said destination database, for inclusion of said relationally replicated large object (LOB) into said XML document at said destination database; wherein said relationally replicated large object (LOB) is transmitted from said source database separately from said pointer. |
Claim: |
15. The method of claim 13, wherein the instructions are instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of: transmitting from said source database for reception by said destination database second XML data from said XML document, wherein said second XML data comprises XML data, from said XML document, other than said first XML data; and wherein said second XML data includes said pointer to said relationally replicated large object (LOB) at a location in said XML document at which said first XML data is to be included. |
Claim: |
16. A method comprising performing a machine-executed operation involving instructions for replicating an XQuery sequence from a source database to a destination database, wherein the machine-executed operation is at least one of: A) sending the instructions over transmission media; B) receiving the instructions over transmission media; C) storing the instructions onto a machine-readable storage medium; and D) executing the instructions; wherein the instructions are instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of: receiving an XQuery Data Model sequence; generating an XML document representing said sequence; and wherein said XML document represents boundaries between items in said sequence and identifies data types for corresponding items in said sequence. |
Current U.S. Class: |
707204/000 |
Current International Class: |
06 |
رقم الانضمام: |
edspap.20070260650 |
قاعدة البيانات: |
USPTO Patent Applications |