IP Library Granted Patent US 10,176,211
Granted Patent B2
US 10,176,211 · App. 15/608,963 · Granted Jan 8, 2019

Dynamic table index mapping

Inventors: Charles Wright (Cortlandt Manor, NY); Ryan Caudy (New York, NY); David R. Kent, IV (Colorado Springs, CO); Mark Zeldis (Randolph, NJ); Radu Teodorescu (New York, NY)
Assignee: Deephaven Data Labs LLC
G06F17/30368G06F3/0481G06F3/0482G06F3/0483G06F3/0485G06F3/04847G06F3/04895G06F3/0605G06F3/067G06F3/0656G06F8/30G06F8/41G06F8/427G06F8/60G06F11/1451G06F11/1464G06F11/1469G06F12/0261G06F12/084G06F12/1483G06F15/17331G06F17/2235G06F17/24G06F17/245G06F17/246G06F17/276G06F17/2715G06F17/30117G06F17/30283G06F17/30303G06F17/30312G06F17/30315G06F17/30321G06F17/30324G06F17/30327G06F17/30333G06F17/30336G06F17/30339G06F17/30345G06F17/30371G06F17/30374G06F17/30377G06F17/30398G06F17/30424G06F17/30448G06F17/30451G06F17/30454G06F17/30457G06F17/30477G06F17/30483G06F17/30498G06F17/30522G06F17/30528G06F17/30554G06F17/30563G06F17/30584G06F17/30598G06F17/30864G06F17/30867G06F17/30887G06F17/30902G06F17/30958G06F17/30997G06F21/00G06F21/6209H04L12/18H04L51/046H04L51/12H04L61/2069H04L63/101H04L63/102H04L67/1002H04L67/141H04L67/28H04L67/2833H04L67/2842H04L67/34H04L67/42H04L69/16G06F17/30342G06F17/40G06F2201/805G06F2201/84G06F2212/1052G06F2212/154G06F2212/163G06F2212/60H04L67/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 10,176,211
App. No.
15/608,963
Granted
Jan 8, 2019
Kind
B2
Abstract

Described are methods, systems and computer readable media for external table index mapping.

Claims (48)

1. A computer 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 plurality of data stored in column sources;

creating and storing in the computer memory in a query update graph a table object comprising a plurality of rows;

creating in the computer memory a table object index mapping data in the plurality of data stored in column sources to the table object;

designating in the computer memory the plurality of data stored in column sources as mapping columns having distinct data;

for each distinct datum or tuples in the mapping columns, creating a separate data index from the table object index, the separate data index pointing to a subset of the plurality of data stored in source columns, the subset associated with the distinct datum, and the subset effectively creating a subtable that can decrease processing time;

using a processor to create in the computer memory a table object listener, the table object listener configured automatically to receive by a computer signal a notification of any change to one or more rows of the table object; and

when the table object listener receives a notification of any change to one or more rows of the table object, updating the separate data indexes created from the table object index accordingly.

2. The computer system of claim 1 , wherein the operations further include applying a grouping formula to the plurality of data stored in source columns when creating the separate index from the table object index.

3. The computer system of claim 1 , wherein the operations further include forwarding the notification of a change to one or more rows of the table object to child nodes created by the table query operations.

4. The computer system of claim 1 , wherein the operations further include using a processor to manipulate, with table query operations, the separate data indexes to obtain a subset of the separate data indexes.

5. The computer system of claim 1 , further comprising performing query operations on the separate data indexes.

6. The computer system of claim 1 , wherein the operations further include returning operation results with strict ordering to guarantee ordering.

7. The computer system of claim 1 , wherein any change to one or more rows of the table object includes at least one of a row addition, a row modification, a row deletion, and a re-indexing of the rows.

8. A method comprising:

accessing in a memory a plurality of data stored in column sources;

creating and storing in a computer memory in a query update graph a table object comprising a plurality of rows;

creating in the computer memory a table object index mapping data in the plurality of data stored in column sources to the table object;

designating the plurality of data stored in column sources as mapping columns having distinct data;

for each distinct datum or tuples in the mapping columns, creating a separate data index from the table object index, the separate data index pointing to a subset of the plurality of data stored in source columns, the subset associated with the distinct datum, and the subset effectively creating a subtable to decrease processing time;

receiving, at a processor, a notification of a change to one or more rows of the table object; and

after the receiving, updating the separate data indexes based on the received notification.

9. The method of claim 8 , further comprising:

using the processor to create a table object listener, the table object listener configured automatically to receive by a computer signal the notification,

wherein the receiving the notification includes receiving the notification via the table object listener.

10. The method of claim 8 , further comprising applying a grouping formula to the plurality of data stored in source columns when creating the separate index from the table object index.

11. The method of claim 8 , further comprising forwarding the notification of a change to one or more rows of the table object to child nodes created by the table query operations.

12. The method of claim 8 , further comprising using a processor to manipulate, with table query operations, the separate data indexes to obtain a subset of the separate data indexes.

13. The method of claim 8 , wherein the creating and updating the separate data indexes maintain strict ordering to guarantee ordering.

14. The method of claim 8 , wherein any change to one or more rows of the table object includes at least a re-indexing of the rows.

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:

accessing in a memory a plurality of data stored in column sources;

creating and storing in a computer memory in a query update graph a table object comprising a plurality of rows;

creating in the computer memory a table object index mapping data in the plurality of data stored in column sources to the table object;

designating the plurality of data stored in column sources as mapping columns having distinct data;

for each distinct datum or tuples in the mapping columns, creating a separate data index from the table object index, the separate data index pointing to a subset of the plurality of data stored in source columns, the subset associated with the distinct datum, and the subset effectively creating a subtable to decrease processing time;

receiving, at a processor, a notification of any change to one or more rows of the table object; and

when the processor receives a notification of any change to one or more rows of the table object, updating the separate data indexes based on the received notification.

16. The nontransitory computer readable medium of claim 15 , wherein the operations further include:

using the processor to create a table object listener, the table object listener configured automatically to receive by a computer signal the notification,

wherein the receiving the notification includes receiving the notification via the table object listener.

17. The nontransitory computer readable medium of claim 15 , wherein the operations further include applying a grouping formula to the plurality of data stored in source columns when creating the separate index from the table object index.

18. The nontransitory computer readable medium of claim 15 , wherein the operations further include forwarding the notification of a change to one or more rows of the table object to child nodes created by the table query operations.

19. The nontransitory computer readable medium of claim 15 , wherein the operations further include using a processor to manipulate, with table query operations, the separate data indexes to obtain a subset of the separate data indexes.

20. The nontransitory computer readable medium of claim 15 , wherein the operations further include returning operation results with strict ordering to guarantee ordering.

21. The nontransitory computer readable medium of claim 15 , wherein any change to one or more rows of the table object includes at least a re-indexing of the rows.

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 Aug 22, 2018
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 046913/0189 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2018
From: WALLEYE SOFTWARE, LLC
To: ILLUMON LLC
Reel/Frame 046666/0820 →
Continuity (3)
Continuation 15154990 · May 14, 2016
Provisional Application 62161813 · May 14, 2015
Related Publication 20170270150A1 · Sep 21, 2017