Distributed processing system for calculations based on objects from massive databases
First Claim
1. A method of performing a calculation on objects of a distributed database, comprising:
- at each of a plurality of local servers;
opening, by a computer processor, a subset of the objects, each object providing unique data input to the calculation,performing, by the computer processor, the calculation on the subset of the objects to generate intermediate results therefrom,storing, by the computer processor, the intermediate results on the local server, andclosing the objects;
transmitting, by the computer processor at each of the plurality of local servers, the intermediate results to a central server;
generating, by a computer processor at the central server, final results of the calculation from the intermediate results obtained by the local servers;
transmitting, by the computer processor at the central server, the final results to the plurality of local servers; and
at the plurality of local servers,opening objects for which the final results are relevant,writing the final results to the relevant objects, andclosing the relevant objects.
2 Assignments
0 Petitions
Accused Products
Abstract
Calculations to be performed on a massive data set may be delegated to a plurality of local servers for parallel processing. Each local server advances through a subset of database objects to determine if the objects are relevant to the calculation. If so, the objects'"'"' data is used as an operand to the calculation to generate intermediate results at the local server. The intermediate results of the various local servers are transmitted to a central server, which generates final results and transmits them back to the local servers. The local servers write the final results into each object in its respective subset, where relevant. The method is efficient because each object in the database is opened at most twice. Opening and closing database objects often involve transfers from bulk storage and, therefore, are some of the most time-consuming operations that computer systems perform.
11 Citations
32 Claims
-
1. A method of performing a calculation on objects of a distributed database, comprising:
-
at each of a plurality of local servers; opening, by a computer processor, a subset of the objects, each object providing unique data input to the calculation, performing, by the computer processor, the calculation on the subset of the objects to generate intermediate results therefrom, storing, by the computer processor, the intermediate results on the local server, and closing the objects; transmitting, by the computer processor at each of the plurality of local servers, the intermediate results to a central server; generating, by a computer processor at the central server, final results of the calculation from the intermediate results obtained by the local servers; transmitting, by the computer processor at the central server, the final results to the plurality of local servers; and at the plurality of local servers, opening objects for which the final results are relevant, writing the final results to the relevant objects, and closing the relevant objects. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of performing a calculation on objects of a database, comprising:
-
at a plurality of local servers; opening, by a computer processor, a subset of the objects, each object providing unique data input to the calculation, performing, by the computer processor, a plurality of calculations on the subset of objects to generate intermediate results therefrom, and closing, by the computer processor, the objects; transmitting the intermediate results to a first and second central server; generating, by a computer processor at the first central server, final results of a first calculation from the intermediate results obtained by the local servers; generating, by a computer processor at the second central server, final results of a second calculation from the intermediate results obtained by the local servers; transmitting the final results to the plurality of local servers; and at the plurality of local servers, opening objects for which the final results are relevant, writing the final results to the relevant objects, and closing the relevant objects. - View Dependent Claims (7, 8)
-
-
9. A method of performing a calculation on objects of a distributed database, comprising:
-
at a plurality of local servers; opening, by a computer processor, a subset of the objects, each object providing unique data input to the calculation, performing, by the computer processor, a first calculation on the subset of objects to generate intermediate results of the first calculation, and closing, by the computer processor, the objects; transmitting the intermediate results of the first calculation to a central server; generating, by a computer processor at the central server, final results of the first calculation from the intermediate results of the first calculation; transmitting the final results of the first calculation to the plurality of local servers; at the plurality of local servers; opening the objects, performing a second calculation on the subset with reference to the first result to generate intermediate results to the second calculation, and closing the objects; transmitting the intermediate results to the second calculation to the central server; generating, by the computer processor at the central server, final results of the second calculation; transmitting the final results of the second calculation to the plurality of local servers; and at the plurality of local servers, opening objects for which the final results of the second calculation are relevant, writing the final results of the second calculation to the relevant objects, and closing the relevant objects. - View Dependent Claims (10, 11, 13, 14, 15)
-
-
12. A method of performing a calculation on objects at a server, comprising:
-
during a first stage of operation; opening, by a computer processor, a plurality of objects assigned to the server, each object providing unique data input to the calculation, comparing, by the computer processor, data from each open object to a search criterion, generating, by the computer processor, an intermediate result from objects whose data matches the search criterion, closing, by the computer processor, the objects, transmitting, by the computer processor, the intermediate result for the calculation from the server to a central server, receiving a final result for the calculation from the central server, during a second stage of operation; opening objects to which the final result is relevant, writing the final result to each of the relevant objects, and closing the relevant objects.
-
-
16. An arithmetic method for objects of a database, comprising:
-
scheduling a plurality of calculations, each having its own search criterion, at each of a plurality of local servers, iteratively opening, by a computer processor, an object assigned to the respective server, each object providing unique data input to the calculation, comparing, by the computer processor, data from the object to the search criteria, when the object matches the search criterion of one or more calculations, generating, by the computer processor, intermediate results for the respective calculation(s) from the object'"'"'s data, storing the intermediate results at each of the local servers, and closing the object, transmitting intermediate results to a central server, generating final results of the calculations by a computer processor at the central server, transmitting the final results of the calculations to the local servers, and at each of the local servers, iteratively; opening objects assigned to the local server, writing relevant final results to the opened objects, and closing the objects. - View Dependent Claims (17, 18, 19)
-
-
20. A method of performing a calculation on objects at a server, comprising:
-
scheduling a plurality of calculations, each having its own search criterion, during a first stage of operation; opening, by a computer processor, a plurality of objects assigned to the server, each object providing unique data input to the calculation, comparing, by the computer processor, data from each open object to the search criteria, generating, by the computer processor, an intermediate result from objects whose data matches the search criteria, closing the objects, transmitting, by the computer processor, the intermediate result for the calculations from the server to a central server, receiving a final result for the calculations from a central server, during a second stage of operation; opening objects to which the final result is relevant, writing the final result to each of the relevant objects, and closing the relevant objects. - View Dependent Claims (21, 22, 23)
-
-
24. A computer system, comprising:
-
a database system storing a plurality of objects, the database distributed over a plurality of servers, each local database comprising a unique subset of the objects and a plurality of computer servers, one of which designated a central server and others are designated local servers, wherein the local servers open a subset of the objects, each object providing unique data input to the calculation, perform a calculation on the opened subset to generate intermediate results therefrom, store the intermediate results on the local server, and close the objects; the central server receives intermediate results from the local servers, generates final results of the calculation from the intermediate results and transmits the final results to the local servers, and the local servers further open objects for which the final results are relevant, write the final results to the relevant objects, and close the relevant objects. - View Dependent Claims (25, 26, 27, 28)
-
-
29. An arithmetic method for objects of a database having a total number of database objects, comprising:
at each of a plurality of local servers; receiving, by a computer processor, an assignment of objects from a first server; receiving, by the computer processor, a plurality of search criteria and for each search criteria a corresponding calculation to perform on the assignment of objects; retrieving, by the computer processor, each object of the assignment of objects from the database, wherein each object comprises a first set of data and a second set of data, and wherein at least one object of the assignment of objects is retrieved from long-term storage; determining for each of the objects whether the first set of data of the object satisfies each of the search criteria, and when the first set of data satisfies the search criteria;
performing the calculation corresponding to the search criteria using the second set of data of the object and an intermediate result corresponding to the search criteria, and storing an object identification corresponding to the object in a log, wherein the result of performing the calculation is stored in the intermediate result and wherein the intermediate result is stored on the local server;sending each of the intermediate results to the first server, wherein the first server calculates a final calculation for each of the intermediate results based on the intermediate result of each of the plurality of local servers; receiving a final calculation for each of the intermediate results from the first server; for each object identification in the log, retrieving the object corresponding to the object identification, and storing the final calculation for each of the intermediate results in the object, and storing the object in the database. - View Dependent Claims (30, 31, 32)
Specification