Storage performance optimization
First Claim
Patent Images
1. A database system comprising a plurality of server nodes, including a given server node, the plurality of server nodes comprising:
- one or more computer processors; and
a non-transitory computer-readable storage medium storing computer program modules configured to execute on the one or more computer processors, the computer program modules comprising instructions, which, when executed, cause the one or more computer processors to;
maintain a local copy of a database comprising at least a portion of the database on a local electronic storage that is local to a given server node, the local electronic storage coupled to the computer processor;
maintain a reference copy of the database, corresponding to a complete copy of the database, stored in an external storage system, the external storage system shared between the plurality of server nodes and storing complete copy of the portions of database stored on two or more of the plurality of server nodes, wherein the complete copy of the database held on the external storage system operates as a backup for the local copy of the database and the complete copy of the database is kept current with respect to the local copy of the database, wherein maintaining the reference copy of the database comprises;
receiving a request to update data stored in the local storage,responsive to receiving the request to update, identifying data stored on the external storage system corresponding to the data being updated in the local electronic storage, andperforming an update of the data in the local electronic storage and an update of the corresponding data stored on the external storage system as a single operation; and
responsive to receiving a query;
map the query to a first portion of result data stored in the local electronic storage of the given server node;
map the query to the reference copy of the database stored in the shared external storage corresponding to the given server node;
identify a second portion of result data stored in the external storage system, so that the first portion of the result data and the second portion of the result data are distinct;
retrieve, in parallel, to the given server node, the first portion of the result data from the local electronic storage of the given server node and the second portion of the result data from the reference copy of the database stored in the external storage system; and
combine, at the given server node, the first and second portion of the result data to generate a complete result to the query.
7 Assignments
0 Petitions
Accused Products
Abstract
A system and method for enhancing data throughput in data warehousing environments by connecting multiple servers having local storages with designated external storage systems, such as, for example, those provided by SANS. The system and method may preserve a full reference copy of the data in a protected environment (e.g., on the external storage system) that is fully available. The system and method may enhance overall I/O potential performance and reliability for efficient and reliable system resource utilization.
14 Citations
27 Claims
-
1. A database system comprising a plurality of server nodes, including a given server node, the plurality of server nodes comprising:
-
one or more computer processors; and a non-transitory computer-readable storage medium storing computer program modules configured to execute on the one or more computer processors, the computer program modules comprising instructions, which, when executed, cause the one or more computer processors to; maintain a local copy of a database comprising at least a portion of the database on a local electronic storage that is local to a given server node, the local electronic storage coupled to the computer processor; maintain a reference copy of the database, corresponding to a complete copy of the database, stored in an external storage system, the external storage system shared between the plurality of server nodes and storing complete copy of the portions of database stored on two or more of the plurality of server nodes, wherein the complete copy of the database held on the external storage system operates as a backup for the local copy of the database and the complete copy of the database is kept current with respect to the local copy of the database, wherein maintaining the reference copy of the database comprises; receiving a request to update data stored in the local storage, responsive to receiving the request to update, identifying data stored on the external storage system corresponding to the data being updated in the local electronic storage, and performing an update of the data in the local electronic storage and an update of the corresponding data stored on the external storage system as a single operation; and responsive to receiving a query; map the query to a first portion of result data stored in the local electronic storage of the given server node; map the query to the reference copy of the database stored in the shared external storage corresponding to the given server node; identify a second portion of result data stored in the external storage system, so that the first portion of the result data and the second portion of the result data are distinct; retrieve, in parallel, to the given server node, the first portion of the result data from the local electronic storage of the given server node and the second portion of the result data from the reference copy of the database stored in the external storage system; and combine, at the given server node, the first and second portion of the result data to generate a complete result to the query. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory computer readable storage medium including computer executable code adapted to perform steps comprising:
-
maintaining a local copy of a database comprising at least a portion of the database on a local electronic storage that is local to a given server node of a plurality of server nodes, the local electronic storage coupled to a given computer processor; maintaining a reference copy of the database, corresponding to a complete copy of the database, stored in an external storage system, the external storage system shared between the plurality of server nodes and storing copy of the portions of database stored on two or more of the plurality of server nodes, wherein the complete copy of the database held on the external storage system operates as a backup for the local copy of the database and the complete copy of the database is kept current with respect to the local copy of the database, wherein maintaining the reference copy of the database comprises; receiving a request to update data stored in the local electronic storage, responsive to receiving the request to update, identifying data stored on the external storage system corresponding to the data being updated in the local electronic storage, and performing an update of the data in the local storage and an update of the corresponding data stored on the external storage system as a single operation; and responsive to receiving a query; mapping the query to a first portion of result data stored in the local storage of the given server node; mapping the query to the reference copy of the database stored in the shared external storage corresponding to the given server node; identifying a second portion of result data stored in the external storage system, so that the first portion of the result data and the second portion of the result data are distinct; retrieving, in parallel, by the given server node, the first portion of the result data from the local storage and the second portion of the result data from the reference copy stored in the external storage system; and combining, at the given server node, the first and second portion of the result data to generate a complete result to the query. - View Dependent Claims (10, 11, 12)
-
-
13. A method for maintaining storage of data at a given server node of a plurality of server nodes in a database system, the method comprising:
-
maintaining a local copy of a database comprising at least a portion of the database on a local electronic storage that is local to a given server node, the local electronic storage coupled to a given computer processor; maintaining a reference copy of the database, corresponding to a complete copy of the database, stored in an external storage system, the external storage system shared between the plurality of server nodes and storing copy of the portions of database stored on two or more of the plurality of server nodes, wherein the complete copy of the database held on the external storage system operates as a backup for the local copy of the database and the complete copy of the database is kept current with respect to the local copy of the database, wherein maintaining the reference copy of the database comprises; receiving a request to update data stored in the local storage, responsive to receiving the request to update, identifying data stored on the external storage system corresponding to the data being updated in the local storage, and performing an update of the data in the local storage and an update of the corresponding data stored on the external storage system as a single operation; and responsive to receiving a query; mapping the query to a first portion of result data stored in the local storage of the given server node; mapping the query to the reference copy of the database stored in the shared external storage corresponding to the given server node; identifying a second portion of result data stored in the external storage system, so that the first portion of the result data and the second portion of the result data are distinct; retrieving, in parallel, by the given server node, the first portion of the result data from the local storage and the second portion of the result data from the reference copy stored in the external storage system; and combining, at the given server node, the first and second portion of the result data to generate a complete result to the query. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A non-transitory computer readable storage medium including computer executable code adapted to perform steps comprising:
-
maintaining at least a portion of a database on a local electronic storage that is local to a given server node of a plurality of server nodes, the local electronic storage coupled to a given computer processor; maintaining a reference copy of the database, corresponding to a complete copy of the database, stored in an external storage system, the external storage system shared between the plurality of server nodes and storing copy of the portions of database stored on two or more of the plurality of server nodes; responsive to receiving a query; mapping the query to a first portion of result data stored in the local electronic storage of the given server node; mapping the query to the reference copy of the database stored in the shared external storage corresponding to the given server node; identifying a second portion of result data stored in the external storage system, so that the first portion of the result data and the second portion of the result data are distinct; retrieving, in parallel, by the given server node, the first portion of the result data from the local storage and the second portion of the result data from the reference copy stored in the external storage system; combining, at the given server node, the first and second portion of the result data to generate a complete result to the query; and storing a first table of contents comprising information describing blocks of data before a commit operation of a transaction; and storing a second table of contents comprising information describing blocks of data after the commit operation including blocks generated by the transaction and excluding blocks abandoned by the transaction. - View Dependent Claims (21, 22, 23)
-
-
24. A method for maintaining storage of data in a database system, the method comprising:
-
maintaining at least a portion of a database on a local electronic storage that is local to a given server node, the local electronic storage coupled to a given computer processor; maintaining a reference copy of the database, corresponding to a complete copy of the database, stored in an external storage system, the external storage system shared between a plurality of server nodes and storing copy of the portions of database stored on two or more of the plurality of server nodes; responsive to receiving a query; mapping the query to a first portion of result data stored in the local electronic storage of the given server node; mapping the query to the reference copy of the database stored in the shared external storage corresponding to the given server node; identifying a second portion of result data stored in the external storage system, so that the first portion of the result data and the second portion of the result data are distinct; retrieving, in parallel, by the given server node, the first portion of the result data from the local storage and the second portion of the result data from the reference copy stored in the external storage system; combining, at the given server node, the first and second portion of the result data to generate a complete result to the query; and storing a first table of contents comprising information describing blocks of data before a commit operation of a transaction; and storing a second table of contents comprising information describing blocks of data after the commit operation including blocks generated by the transaction and excluding blocks abandoned by the transaction. - View Dependent Claims (25, 26, 27)
-
Specification