IP Library Granted Patent US 10,635,645
Granted Patent B1
US 10,635,645 · App. 14/447,619 · Granted Apr 28, 2020

Systems and methods for maintaining aggregate tables in databases

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,635,645
App. No.
14/447,619
Granted
Apr 28, 2020
Kind
B1
Abstract

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.

Claims (44)

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.

Assignments (13)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →