IP Library Granted Patent US 11,249,994
Granted Patent B2
US 11,249,994 · App. 16/775,441 · Granted Feb 15, 2022

Query task processing based on memory allocation and performance criteria

Inventors: David R. Kent, IV (Colorado Springs, CO); Ryan Caudy (New York, NY); Charles Wright (Cortlandt Manor, NY); Radu Teodorescu (New York, NY)
Assignee: Deephaven Data Labs LLC
G06F16/2453G06F3/0481G06F3/0482G06F3/0483G06F3/0485G06F3/04847G06F3/04895G06F3/0605G06F3/067G06F3/0656G06F8/30G06F8/41G06F8/427G06F8/60G06F11/1451G06F11/1464G06F11/1469G06F12/0261G06F12/084G06F12/1483G06F15/17331G06F16/113G06F16/144G06F16/162G06F16/215G06F16/22G06F16/221G06F16/2228G06F16/2237G06F16/2246G06F16/2255G06F16/2264G06F16/2272G06F16/2282G06F16/23G06F16/2308G06F16/2358G06F16/2365G06F16/2372G06F16/2379G06F16/242G06F16/245G06F16/248G06F16/2428G06F16/2455G06F16/2456G06F16/2457G06F16/24534G06F16/24535G06F16/24537G06F16/24539G06F16/24553G06F16/24561G06F16/24575G06F16/254G06F16/27G06F16/278G06F16/285G06F16/907G06F16/9024G06F16/951G06F16/9535G06F16/9566G06F16/9574G06F21/00G06F21/6209G06F40/117G06F40/134G06F40/166G06F40/174G06F40/177G06F40/18G06F40/183G06F40/216G06F40/274H04L12/18H04L51/046H04L51/12H04L61/2069H04L63/101H04L63/102H04L67/1002H04L67/141H04L67/28H04L67/2833H04L67/2842H04L67/34H04L67/42H04L69/16G06F16/2291G06F17/40G06F2201/805G06F2201/84G06F2212/1052G06F2212/154G06F2212/163G06F2212/60G06Q40/04H04L67/2847
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 11,249,994
App. No.
16/775,441
Granted
Feb 15, 2022
Kind
B2
Abstract

Described are methods, systems and computer readable media for query task operations based on memory allocation and performance criteria.

Claims (73)

1. A system for maximizing memory and processing efficiencies in a computer system, the system comprising:

one or more processors;

computer readable storage coupled to the one or more processors, the computer readable storage having stored thereon instructions that, when executed by the one or more processors, cause the one or more processors to perform operations including:

storing in a computer memory a first table object;

at a remote query processor, providing remote operations including:

an aggregation query operation, the aggregation query operation comprising:

receiving an aggregation query task to create a second table object comprising an updateable aggregation of rows from the first table object;

creating a plurality of aggregation states for a plurality of aggregation rows of the second table object, each of the plurality of aggregation states being configured to determine one or more aggregated values for a respective one of the plurality of aggregation rows;

creating and starting a listener for the second table object; and

subscribing to receive at the listener an indication of an update to the first table object and, responsive to receiving the indication at the listener, selecting one or more of the aggregation states to update the second table object.

2. The system of claim 1 , wherein the one or more aggregated values comprise a collection for each aggregated column of each row of the second table object.

3. The system of claim 2 ,

wherein a first collection of a first aggregated column of a first row of the second table object is a first ordered collection;

wherein a second collection of a second aggregated column of the first row of the second table object is a second ordered collection; and

wherein the first ordered collection and the second ordered collection have a same ordering.

4. The system of claim 2 , wherein the collection comprises a reference to data of the first table object.

5. The system of claim 1 , wherein the aggregation query operation determines a summation and the one or more aggregated values comprise a running sum.

6. The system of claim 1 , wherein the aggregation query operation determines a standard deviation and the one or more aggregated values comprise a running sum, a running sum of squares, or a count.

7. A system for maximizing memory and processing efficiencies in a computer system, the system comprising:

one or more processors;

computer readable storage coupled to the one or more processors, the computer readable storage having stored thereon instructions that, when executed by the one or more processors, cause the one or more processors to perform operations for an aggregation query operation including:

storing a second table object representing an updateable aggregation of rows from a first table object;

creating a plurality of aggregation states for a plurality of aggregation rows of the second table object, each of the plurality of aggregation states being configured to determine one or more aggregated values for a respective one of the plurality of aggregation rows;

receiving an indication of an update to the first table object; and

responsive to receiving, selecting one or more of the aggregation states to update the second table object.

8. The system of claim 7 , wherein the one or more aggregated values comprise a collection for each aggregated column of each row of the second table object.

9. The system of claim 8 ,

wherein a first collection of a first aggregated column of a first row of the second table object is a first ordered collection;

wherein a second collection of a second aggregated column of the first row of the second table object is a second ordered collection; and

wherein the first ordered collection and the second ordered collection have a same ordering.

10. The system of claim 8 , wherein the collection comprises a reference to data of the first table object.

11. The system of claim 8 , the operations further comprising:

determining a mapping of a subset of columns and applying the mapping to one or more other columns to create one or more of the collections for the aggregated columns of the second table object.

12. The system of claim 7 , wherein the aggregation query operation determines a weighted average column based on a value column and a weight column.

13. The system of claim 7 , wherein a combination aggregation is determined for a row of the second table object by two or more of the plurality of aggregation states.

14. The system of claim 7 ,

wherein data of the first table object is stored in a computer storage separate from the computer readable storage that is remote from a computer memory separate from the computer readable storage and the computer storage and is accessed via a network, and

wherein the computer memory separate from the computer readable storage is local to the one or more processors.

15. A nontransitory computer readable medium having stored thereon software instructions that, when executed by one or more processors, cause the one or more processors to perform operations for an aggregation query operation including:

storing, in a computer memory, a second table object representing an updateable aggregation of rows from a first table object;

creating a plurality of aggregation states for a plurality of aggregation rows of the second table object, each of the plurality of aggregation states being configured to determine one or more aggregated values for a respective one of the plurality of aggregation rows;

receiving an indication of an update to the first table object; and

responsive to the receiving, selecting one or more of the aggregation states to update the second table object.

16. The nontransitory computer readable medium of claim 15 , wherein the one or more aggregated values comprise a collection for each aggregated column of each row of the second table object.

17. The nontransitory computer readable medium of claim 16 ,

wherein a first collection of a first aggregated column of a first row of the second table object is a first ordered collection;

wherein a second collection of a second aggregated column of the first row of the second table object is a second ordered collection; and

wherein the first ordered collection and the second ordered collection have a same ordering.

18. The nontransitory computer readable medium of claim 16 , wherein the collection comprises a reference to data of the first table object.

19. The nontransitory computer readable medium of claim 16 , the operations further comprising:

determining a mapping of a subset of columns and applying the mapping to one or more other columns to create one or more of the collections for the aggregated columns of the second table object.

20. The nontransitory computer readable medium of claim 15 , wherein the aggregation query operation determines a weighted average column based on a value column and a weight column.

21. The nontransitory computer readable medium of claim 15 ,

wherein data of the first table object is stored in a computer storage separate from the nontransitory computer readable medium and the computer memory, the computer storage being remote from the computer memory and being accessed via a network, and

wherein the computer memory is local to the one or more processors.

22. A method for maximizing memory and processing efficiencies in a computer system, the system comprising:

storing, in a computer memory, a second table object representing an updateable aggregation of rows from a first table object;

creating, at a processor coupled to the computer memory, a plurality of aggregation states for a plurality of aggregation rows of the second table object, each of the plurality of aggregation states being configured to determine one or more aggregated values for a respective one of the plurality of aggregation rows;

receiving an indication of an update to the first table object; and

responsive to the receiving, selecting one or more of the aggregation states to update the second table.

23. The method of claim 22 , wherein the one or more aggregated values comprise a collection for each of one or more aggregated columns of each row of the second table object.

24. The method of claim 23 ,

wherein a first collection of a first aggregated column of a first row of the second table object is a first ordered collection;

wherein a second collection of a second aggregated column of the first row of the second table object is a second ordered collection; and

wherein the first ordered collection and the second ordered collection have a same ordering.

25. The method of claim 24 , wherein the ordering is determined based on an ordering of the first table object.

26. The method of claim 23 , wherein the collection comprises a reference to data of the first table object.

27. The method of claim 23 , further comprising: determining a mapping of a subset of columns and applying the mapping to one or more other columns to create one or more of the collections for the aggregated columns of the second table object.

28. The method of claim 22 , further comprising:

detecting a change to an output of an aggregation state of the plurality of aggregation states; and

transmitting, responsive to the detecting, a change notification to a subscriber of the second table object.

29. The method of claim 28 , wherein the change notification can include one of a data add notification, a data modify notification, a data delete notification and a data reindex notification.

30. The method of claim 22 , wherein at least one of the plurality of aggregation states is configured to determine a new aggregated value based on a new value and an associated previous value of the first table object.

Assignments (2)
CHANGE OF NAME Recorded Feb 3, 2020
From: ILLUMON LLC
To: DEEPHAVEN DATA LABS LLC
Reel/Frame 051698/0442 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2020
From: KENT, DAVID R., IV; CAUDY, RYAN; WRIGHT, CHARLES; TEODORESCU, RADU
To: ILLUMON LLC
Reel/Frame 051778/0859 →
Continuity (2)
Continuation 15351429 · Nov 14, 2016
Related Publication 20200167359A1 · May 28, 2020