IP Library Granted Patent US 10,565,206
Granted Patent B2
US 10,565,206 · App. 15/351,429 · Granted Feb 18, 2020

Query task processing based on memory allocation and performance criteria

Inventors: Radu Teodorescu (New York, NY); Ryan Caudy (New York, NY); David R. Kent, IV (Colorado Springs, CO); Charles Wright (Cortlandt Manor, NY)
Assignee: Deephaven Data Labs LLC
G06F16/24561G06F16/221
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,565,206
App. No.
15/351,429
Granted
Feb 18, 2020
Kind
B2
Abstract

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

Claims (83)

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:

sending a digital request from a client computer to a remote query processor on a query server computer;

creating and storing, in a computer storage separate from the computer readable storage, data in a plurality of column sources;

creating and storing in a computer memory a first table object index mapping data in the plurality of column sources to a first table object, the computer memory having faster access time than the computer storage separate from the computer readable storage;

at the 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 and storing in the computer memory separate from the computer storage, the second 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 rows representing an aggregation of one or more rows of the first table object, each of the plurality of aggregation states being configured to determine an aggregated value for a respective one of the plurality of aggregation rows by executing an aggregation formula;

storing determined aggregated values in the computer memory separate from the computer storage;

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 and accessing a subset of rows of the first table object, wherein the subset of rows is smaller than the first table object,

the computer storage separate from the computer readable storage being remote from the remote query processor and being accessed by the remote query processor via a network, and

the computer memory being local to the remote query processor.

2. The system of claim 1 , wherein the 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 function determines a summation and the aggregated values comprise a running sum.

6. The system of claim 1 , wherein the aggregation function determines a standard deviation and the aggregated values comprise a running sum, a running sum of squares, and 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 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 rows representing an aggregation of one or more rows of the first table object, each of the plurality of aggregation states being configured to determine an aggregated value for a respective one of the plurality of aggregation rows by executing an aggregation formula;

storing determined aggregated values in the computer memory separate from the computer readable storage;

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 and accessing a subset of rows of the first table object.

8. The system of claim 7 , wherein the 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 function determines a weighted average.

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 including:

storing, in a computer memory separate from the nontransitory computer readable medium, 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 rows representing an aggregation of one or more rows of the first table object, each of the plurality of aggregation states being configured to determine an aggregated value for a respective one of the plurality of aggregation rows by executing an aggregation formula;

storing determined aggregated values in the computer memory;

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 and accessing a subset of rows of the first table object, wherein the subset of rows is smaller than the first table object.

16. The nontransitory computer readable medium of claim 15 , wherein the 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 function determines a maximum value.

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 that is remote from the computer memory and is 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 rows representing an aggregation of one or more rows of the first table object, each of the plurality of aggregation states being configured to determine an aggregated value for a respective one of the plurality of aggregation rows;

storing determined aggregated values in the computer memory;

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 and accessing a subset of rows of the first table object.

23. The method of claim 22 , wherein the 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 first ordering and the second 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 notifications 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 an aggregated value based on a new value and an associated previous value of the first table object.

Assignments (3)
CHANGE OF NAME Recorded Sep 5, 2018
From: ILLUMON LLC
To: DEEPHAVEN DATA LABS LLC
Reel/Frame 047017/0500 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2017
From: RIES, BRIAN; FERRETTI-SMYTHE, JUAN CRISTIAN; WRIGHT, CHARLES; VYDROV, OLEG; CAUDY, RYAN; KENT, DAVID R., IV; DORFMAN, NATHANIEL J.; TEODORESCU, RADU; ZELDIS, MARK; BRONNIMANN, HERVE; BASRALIAN, RAFFI
To: ILLUMON LLC
Reel/Frame 044557/0029 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2017
From: WALLEYE SOFTWARE, LLC
To: ILLUMON LLC
Reel/Frame 043722/0092 →
Continuity (3)
Continuation 15154991 · May 14, 2016
Provisional Application 62161813 · May 14, 2015
Related Publication 20180137175A1 · May 17, 2018