The disclosed computer-implemented method for maintaining aggregate tables in databases may include (1) maintaining a database that comprises a primary table of data, an intermediate mapping table of metadata from the data in the primary table, and an aggregate table, (2) for each new item of data received during a time period, updating the primary table with the new item of data and updating at least one row in the intermediate mapping table with metadata from the new item of data, and (3) at the end of the time period, updating the aggregate table with an aggregation of the metadata based on the metadata stored in the intermediate table. Various other methods, systems, and computer-readable media are also disclosed.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A computer-implemented method for maintaining aggregate tables in databases, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising: maintaining a database that comprises a primary table of data, an intermediate mapping table of metadata from the data in the primary table, and an aggregate table that aggregates the metadata from the intermediate mapping table, wherein at least the intermediate mapping table comprises a physical implementation of a denormalized contiguous linked list; for each new item of data received during a time period: updating the primary table with the new item of data; identifying a row in the intermediate mapping table that specifies column values and determining that the new item of data matches the specified column values; and updating the row in the intermediate mapping table with a pointer to the new item of data within the primary table of data immediately after updating the primary table with the new item of data, such that the row in the intermediate mapping table represents an aggregation of all rows within the primary table of data that match the specified column values and the row in the intermediate mapping table includes separate pointers to each row within the primary table of data that matches the specified column values; at the end of the time period, updating the aggregate table with an aggregation of the metadata based on the metadata stored in the intermediate table rather than directly updating a count in the aggregate table to reflect each new item of data, to increase accuracy of the aggregate table; retrieving at least one data mapping from the intermediate mapping table based on a search result obtained by retrieving the aggregation of the metadata from the aggregate table; and retrieving at least one item of data from the primary table based on the at least one data mapping retrieved from the intermediate mapping table.
2. The computer-implemented method of claim 1 , wherein updating the aggregate table with the aggregation comprises updating the count in the aggregate table to reflect the metadata.
3. The computer-implemented method of claim 1 , wherein the time period is one of a plurality of predefined time periods and at the end of each predefined time period within the plurality of predefined time periods the aggregate table is regenerated based on metadata added to the intermediate mapping table that describes data added to the primary table during the predefined time period.
4. The computer-implemented method of claim 1 , wherein updating the aggregate table based on the metadata stored in the intermediate table comprises regenerating the aggregate table entirely based on the intermediate table.
5. The computer-implemented method of claim 1 , wherein maintaining the database comprises creating the intermediate mapping table based on the primary table.
6. The computer-implemented method of claim 1 , wherein updating the at least one row in the intermediate mapping table comprises storing at least one column value of the new item of data in the row in the intermediate mapping table.
7. The computer-implemented method of claim 1 , further comprising retrieving a set of data from the intermediate mapping table that comprises a set of pointers to items of data and a set of metadata about the items of data wherein the set of pointers comprises the pointer to the new item of data.
8. The computer-implemented method of claim 1 , wherein updating the at least one row in the intermediate mapping table comprises identifying the row to be updated based on a unique combination of properties that is shared by at least one other item of data to which the pointer is stored in the at least one row in the intermediate mapping table.
9. A system for maintaining aggregate tables in databases, the system comprising: a maintaining module, stored in memory, that maintains a database that by a primary table of data, an intermediate mapping table of metadata from the data in the primary table, and an aggregate table that aggregates the metadata from the intermediate mapping table, wherein at least the intermediate mapping table comprises a physical implementation of a denormalized contiguous linked list; a mapping module, stored in memory, that, for each new item of data received during a time period: updates the primary table with the new item of data; identifies a row in the intermediate mapping table that specifies column values and determines that the new item of data matches the specified column values; and updates the row in the intermediate mapping table with a pointer to the new item of data within the primary table of data immediately after the primary table is updated with the new item of data, such that the row in the intermediate mapping table represents an aggregation of all rows within the primary table of data that match the specified column values and the row in the intermediate mapping table includes separate pointers to each row within the primary table of data that matches the specified column values; an aggregation module, stored in memory, that at the end of the time period, updates the aggregate table with an aggregation of the metadata based on the metadata stored in the intermediate table rather than directly updating a count in the aggregate table to reflect each new item of data to increase accuracy of the aggregate table; a retrieving module, stored in memory, that retrieves at least one data mapping from the intermediate mapping table based on a search result obtained by retrieving the aggregation of the metadata from the aggregate table, and the retrieving module retrieves at least one item of data from the primary table based on the at least one data mapping retrieved from the intermediate mapping table; and at least one physical processor configured to execute the maintaining module, the mapping module, and the aggregation module.
10. The system of claim 9 , wherein the aggregation module updates the aggregate table with the aggregation by updating the count in the aggregate table to reflect the metadata.
11. The system of claim 9 , wherein the time period is one of a plurality of predefined time periods and at the end of each predefined time period within the plurality of predefined time periods the aggregation module regenerates the aggregate table based on metadata added to the intermediate mapping table that describes data added to the primary table during the predefined time period.
12. The system of claim 9 , wherein the aggregation module updates the aggregate table based on the metadata stored in the intermediate table by regenerating the aggregate table entirely based on the intermediate table.
13. The system of claim 9 , wherein the maintaining module maintains the database by creating the intermediate mapping table based on the primary table.
14. The system of claim 9 , wherein the mapping module updates the at least one row in the intermediate mapping table by storing at least one column value of the new item of data in the row in the intermediate mapping table.
15. A non-transitory computer-readable medium comprising one or more computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to: maintain a database that comprises a primary table of data, an intermediate mapping table of metadata from the data in the primary table, and an aggregate table that aggregates the metadata from the intermediate mapping table, wherein at least the intermediate mapping table comprises a physical implementation of a denormalized contiguous linked list; for each new item of data received during a time period: update the primary table with the new item of data; identify a row in the intermediate mapping table that specifies column values and determine that the new item of data matches the specified column values; and update the row in the intermediate mapping table with a pointer to the new item of data within the primary table of data immediately after the primary table is updated with the new item of data, such that the row in the intermediate mapping table represents an aggregation of all rows within the primary table of data that match the specified column values and the row in the intermediate mapping table includes separate pointers to each row within the primary table of data that matches the specified column values; at the end of the time period, update the aggregate table with an aggregation of the metadata based on the metadata stored in the intermediate table rather than directly updating a count in the aggregate table to reflect each new item of data, to increase accuracy of the aggregate table; retrieve at least one data mapping from the intermediate mapping table based on a search result obtained by retrieving the aggregation of the metadata from the aggregate table; and retrieve at least one item of data from the primary table based on the at least one data mapping retrieved from the intermediate mapping table.
16. The method of claim 1 , wherein the primary table comprises a linked list of pointers to files.
17. The method of claim 1 , wherein the denormalized contiguous linked list of the intermediate mapping table comprises a list of item names linked by commas.
18. The method of claim 1 , wherein the denormalized contiguous linked list of the intermediate mapping table comprises pointers to files.
19. The system of claim 9 , wherein the maintaining module is configured to create the intermediate mapping table based on the data in the primary table.
20. The system of claim 9 , wherein the mapping module identifies a row in the intermediate mapping table by identifying the rows based on a unique combination of properties that is shared by other data to which pointers are stored in the rows in the intermediate mapping table.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
July 31, 2014
April 28, 2020
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.