System and method for writing data dependent upon multiple reads in a distributed database
First Claim
1. A distributed computer system for updating data tables, comprising:
- a plurality of database servers operably coupled to provide a distributed database stored across the plurality of database servers;
a query processor operably coupled to at least one of the plurality of database servers for performing a transaction to update data by writing a single data record dependent upon a plurality of data records previously read from the distributed database; and
a storage manager operably coupled to the query processor for writing the single data record to a data table in the distributed database,and an information storage device comprising instructions for validating that the plurality of data records received are current versions of the plurality of data records in the distributed database; and
writing a single data record dependent upon a plurality of data records previously read from the distributed database comprises determining whether the dependent data records are valid and writing the single data record based on whether the dependent data records are valid;
wherein validating that the plurality of data records received are current versions of the plurality of data records comprises;
reading the current versions of the plurality of data records from the distributed database; and
determining whether there is any local lock on any of the current versions of the plurality of data records.
9 Assignments
0 Petitions
Accused Products
Abstract
An improved system and method for writing data dependent upon multiple reads in a distributed database is provided. A client may read several data records and may then send a request to a database server to perform a transaction to write a data record dependent upon multiple data records read. A database server may receive the request specifying a transaction to write a data record dependent upon multiple data records read and may perform the transaction by latching a master data record to be written and validating the data records the write depends upon. The multiple data records upon which the write depends may be validated by verifying the multiple data records are current versions of the data records stored in the distributed database. Data intensive applications may use this transaction type in large scale distributed database systems to provide stronger consistency without significantly degrading performance and scalability.
46 Citations
18 Claims
-
1. A distributed computer system for updating data tables, comprising:
-
a plurality of database servers operably coupled to provide a distributed database stored across the plurality of database servers; a query processor operably coupled to at least one of the plurality of database servers for performing a transaction to update data by writing a single data record dependent upon a plurality of data records previously read from the distributed database; and a storage manager operably coupled to the query processor for writing the single data record to a data table in the distributed database, and an information storage device comprising instructions for validating that the plurality of data records received are current versions of the plurality of data records in the distributed database; and writing a single data record dependent upon a plurality of data records previously read from the distributed database comprises determining whether the dependent data records are valid and writing the single data record based on whether the dependent data records are valid; wherein validating that the plurality of data records received are current versions of the plurality of data records comprises; reading the current versions of the plurality of data records from the distributed database; and determining whether there is any local lock on any of the current versions of the plurality of data records. - View Dependent Claims (2, 3)
-
-
4. A computer-implemented method for updating data tables, comprising:
-
sending a plurality of requests to read data records in a distributed database; receiving a plurality of data records read from a distributed database; sending a request to perform a transaction to write a single data record dependent upon a plurality of data records read from the distributed database; and receiving an acknowledgment in response to receiving the request to perform the transaction to write the single data record dependent upon the plurality of data records read from the distributed database, wherein writing a single data record dependent upon a plurality of data records previously read from the distributed database comprises determining whether the dependent data records are valid and writing the single data record based on whether the dependent data records are valid; validating that the plurality of data records received are current versions of the plurality of data records in the distributed database; and wherein validating that the plurality of data records received are current versions of the plurality of data records comprises; reading the current versions of the plurality of data records from the distributed database; and determining whether there is any local lock on any of the current versions of the plurality of data records. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A distributed computer system for updating data tables, comprising:
-
means for receiving a request to perform a transaction to write a single data record dependent upon a plurality of data records read from a distributed database; means for obtaining a local lock on the single data record in the distributed database; means for validating that the plurality of data records are current versions of the plurality of data records in the distributed database; and means for sending an acknowledgment in response to receiving the request to perform the transaction to write the single data record dependent upon the plurality of data records read from the distributed database, and an information storage device comprising instructions for validating that the plurality of data records received are current versions of the plurality of data records in the distributed database; and writing a single data record dependent upon a plurality of data records previously read from the distributed database comprises determining whether the dependent data records are valid and writing the single data record based on whether the dependent data records are valid; wherein validating that the plurality of data records received are current versions of the plurality of data records comprises; reading the current versions of the plurality of data records from the distributed database; and determining whether there is any local lock on any of the current versions of the plurality of data records. - View Dependent Claims (17, 18)
-
Specification