IP Library Granted Patent US 9,672,238
Granted Patent B2
US 9,672,238 · App. 15/154,987 · Granted Jun 6, 2017

Dynamic filter processing

Inventors: Charles Wright (Cortlandt Manor, NY); Ryan Caudy (New York, NY); David R. Kent, IV (Colorado Springs, CO); Mark Zeldis (Randolph, NJ); Herve Bronnimann (New York, NY); Radu Teodorescu (New York, NY)
G06F17/30368G06F3/0481G06F3/0482G06F3/0485G06F3/04847G06F3/04895G06F3/0605G06F3/067G06F3/0656G06F8/30G06F8/41G06F8/427G06F8/60G06F11/1451G06F11/1464G06F11/1469G06F12/0261G06F12/084G06F15/17331G06F17/2235G06F17/24G06F17/246G06F17/276G06F17/2715G06F17/30117G06F17/30312G06F17/30315G06F17/30321G06F17/30324G06F17/30327G06F17/30333G06F17/30336G06F17/30339G06F17/30345G06F17/30371G06F17/30374G06F17/30377G06F17/30398G06F17/30424G06F17/30448G06F17/30454G06F17/30477G06F17/30522G06F17/30528G06F17/30554G06F17/30563G06F17/30584G06F17/30598G06F17/30864G06F17/30867G06F17/30887G06F17/30958G06F17/30997H04L12/18H04L51/12H04L61/2069H04L63/101H04L63/102H04L67/1002H04L67/34H04L67/42H04L69/16G06F2201/805G06F2201/84G06F2212/60
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 9,672,238
App. No.
15/154,987
Granted
Jun 6, 2017
Kind
B2
Abstract

The disclosed subject matter includes systems, methods, and computer readable medium for automatically updating data source objects (DSO). First and second DSO can be created and mapped to first and second data, respectively. A third DSO can be created and mapped to the first subset of the first stored data by filtering the first stored data mapped to the first DSO with the second stored data mapped to the second DSO. A listener can be created for the third DSO to detect changes to the first DSO. Listener can receive notification of a change to the first DSO. the mapping of the third DSO can be updated by applying the change. A remapping can be requested of the third DSO to a second subset of first stored data by filtering the first stored data mapped to the first DSO with the second stored data mapped to the second DSO.

Claims (115)

1. A system for automatically updating data source objects, the system comprising:

one or more hardware processors;

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

creating a first data source object in a first memory;

mapping the first data source object to a first stored data;

creating a second data source object in a second memory; the second data source object different than the first data source object;

mapping the second data source object to a second stored data;

creating a third data source object in a third memory, the third data source object different than the first data source object and the second data source object;

mapping the third data source object to a first subset of the first stored data by filtering the first stored data mapped to the first data source object with the second stored data mapped to the second data source object;

creating a first listener for the third data source object in a fourth memory;

listening with the first listener for one or more changes to the first data source object;

making one or more changes to the first data source object;

detecting by the first listener-of one or more changes to the first data source object;

receiving a notification from the first listener of a change to the first data source object;

updating the mapping of the third data source object by applying the one or more changes to the first data source object;

creating a second listener for the second data source object in a fifth memory;

listening with the second listener for one or more changes to the second data source object;

making one or more changes to the second data source object;

detecting by the second listener of one or more changes to the second data source object;

receiving a notification of one or more changes to the second data source object;

requesting a remapping of the third data source object to a second subset of first stored data by filtering the first stored data mapped to the first data source object with the second stored data mapped to the second data source object; and

updating the mapping of the third data source object to a subset of first stored data by filtering the first stored data mapped to the first data source object with the second stored data mapped to the second data source object.

2. The system of claim 1 , wherein the mapping the third data source object to a first subset of the first stored data by filtering the first stored data mapped to the first data source object with the second stored data mapped to the second data source object includes selecting a set of rows from the first stored data with one or more key values that are present in the second stored data.

3. The system of claim 1 , wherein the mapping the third data source object to a first subset of the first stored data by filtering the first stored data mapped to the first data source object with the second stored data mapped to the second data source object includes selecting a set of rows form the first stored data with one or more key values that are not present in the second stored data.

4. The system of claim 1 , the operations further comprising:

determining whether to request a remapping of the third data source object to a second subset of first stored data by filtering the first stored data mapped to the first data source object with the second stored data mapped to the second data source object, the determination based on whether the one or more changes to the second data source object effected an overall change in the second data source;

wherein the updating the mapping of the third data source object to a subset of first stored data by filtering the first stored data mapped to the first data source object with the second stored data mapped to the second data source object is performed only when the one or more changes to the second data source object effected an overall change in the second data source.

5. The system of claim 1 , wherein the change to the first data source object includes at least

re-indexing the rows of the first data source object.

6. The system of claim 1 , wherein a change to the second data source object includes at least one of:

adding a row to the second data source object;

deleting a row from the second data source object;

changing the data in a row of the second data source object; and

re-indexing the rows of the second data source object.

7. The system of claim 1 , wherein the first memory, the second memory, the third memory, the fourth memory, and the fifth memory are all different.

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

sending a notification message of changes to the third data source object to any downstream listeners of one or more children created from operations on the third data source object.

9. The system of claim 1 ,

wherein the remapping includes remapping of the third data source object to a second subset of first stored data by full data filtering the first stored data mapped to the first data source object with the second stored data mapped to the second data source object; and

wherein the first data source object is different than the second data source object.

10. A method for using a computer system to automatically update data source objects, the method comprising:

creating, by a processor, a first data source object in a first memory;

mapping the first data source object to a first stored data;

creating a second data source object in a second memory;

mapping the second data source object to a second stored data;

creating a third data source object in a third memory;

mapping the third data source object to a first subset of the first stored data by filtering the first stored data mapped to the first data source object with the second stored data mapped to the second data source object;

creating a first listener for the third data source object in a fourth memory;

listening with the first listener for one or more changes to the first data source object;

making one or more changes to the first data source object;

detecting by the first listener of one or more changes to the first data source object;

receiving a notification from the first listener of the change to the first data source object;

updating the mapping of the third data source object by applying the one or more changes to the first data source object;

creating a second listener for the second data source object in a fifth memory;

listening with the second listener for one or more changes to the second data source obiect;

making one or more changes to the second data source object;

detecting by the second listener of one or more changes to the second data source object;

receiving a notification of one or more changes to the second data source object;

requesting a remapping of the third data source object to a second subset of first stored data by filtering the first stored data mapped to the first data source object with the second stored data mapped to the second data source object; and

updating the mapping of the third data source object to a subset of first stored data by filtering the first stored data mapped to the first data source object with the second stored data mapped to the second data source object.

11. The method of claim 10 , wherein the mapping the third data source object to a first subset of the first stored data by filtering the first stored data mapped to the first data source object with the second stored data mapped to the second data source object includes selecting a set of rows from the first stored data with one or more key values that are present in the second stored data.

12. The method of claim 10 , wherein the mapping the third data source object to a first subset of the first stored data by filtering the first stored data mapped to the first data source object with the second stored data mapped to the second data source object includes selecting a set of rows form the first stored data with one or more key values that are not present in the second stored data.

13. The method of claim 10 , further comprising:

determining whether to request a remapping of the third data source object to a second subset of first stored data by filtering the first stored data mapped to the first data source object with the second stored data mapped to the second data source object, the determination based on whether the one or more changes to the second data source object effected an overall change in the second data source;

wherein the updating the mapping of the third data source object to a subset of first stored data by filtering the first stored data mapped to the first data source object with the second stored data mapped to the second data source object is performed only when the one or more changes to the second data source object effected an overall change in the second data source.

14. The method of claim 10 , wherein a change to the first data source object includes at least

re-indexing the rows of the first data source object.

15. The method of claim 10 , wherein a change to the second data source object includes at least one of:

adding a row to the second data source object;

deleting a row from the second data source object;

changing the data in a row of the second data source object; and

re-indexing the rows of the second data source object.

16. The method of claim 10 , wherein the first memory, the second memory, the third memory, the fourth memory, and the fifth memory are all different.

17. The method of claim 10 , further comprising:

sending a notification message of changes to the third data source object to any downstream listeners of one or more children created from operations on the third data source object.

18. The method of claim 10 , the operations further comprising:

wherein the remapping includes remapping of the third data source object to a second subset of first stored data by full data filtering the first stored data mapped to the first data source object with the second stored data mapped to the second data source object; and

wherein the first data source object is different than the second data source object.

19. A non-transitory 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:

creating a first data source object in a first memory;

mapping the first data source object to a first stored data;

creating a second data source object in a second memory;

mapping the second data source object to a second stored data;

creating a third data source object in a third memory;

mapping the third data source object to a first subset of the first stored data by filtering the first stored data mapped to the first data source object with the second stored data mapped to the second data source object;

creating a first listener for the third data source object in a fourth memory;

listening with the first listener for one or more changes to the first data source object;

making one or more changes to the first data source object;

detecting by the first listener of one or more changes to the first data source object;

receiving a notification from the first listener of the change to the first data source object;

updating the mapping of the third data source object by applying the one or more changes to the first data source object;

creating a second listener for the second data source object in a fifth memory;

listening with the second listener for one or more changes to the second data source object;

making one or more changes to the second data source object;

detecting by the second listener of one or more changes to the second data source object;

receiving a notification of one or more changes to the second data source object;

requesting a remapping of the third data source object to a second subset of first stored data by filtering the first stored data mapped to the first data source object with the second stored data mapped to the second data source object; and

updating the mapping of the third data source object to a subset of first stored data by filtering the first stored data mapped to the first data source object with the second stored data mapped to the second data source object.

20. The non-transitory computer readable medium of claim 19 , wherein mapping the third data source object to a first subset of the first stored data by filtering the first stored data mapped to the first data source object with the second stored data mapped to the second data source object includes selecting a set of rows from the first stored data with one or more key values that are present in the second stored data.

21. The non-transitory computer readable medium of claim 19 , the operations further comprising:

determining whether to request a remapping of the third data source object to a second subset of first stored data by filtering the first stored data mapped to the first data source object with the second stored data mapped to the second data source object, the determination based on whether the one or more changes to the second data source object effected an overall change in the second data source;

wherein the updating the mapping of the third data source object to a subset of first stored data by filtering the first stored data mapped to the first data source object with the second stored data mapped to the second data source object is performed only when the one or more changes to the second data source object effected an overall change in the second data source.

22. The non-transitory computer readable medium of claim 19 , wherein a change to the first data source object includes at least

re-indexing the rows of the first data source object.

23. The non-transitory computer readable medium of claim 19 , wherein a change to the second data source object includes at least one of:

adding a row to the second data source object;

deleting a row from the second data source object;

changing the data in a row of the second data source object; and

re-indexing the rows of the second data source object.

24. The non-transitory computer readable medium of claim 19 , wherein the first memory, the second memory, the third memory, the fourth memory, and the fifth memory are all different.

25. The non-transitory computer readable medium of claim 19 , the operations further comprising:

sending a notification message of changes to the third data source object to any downstream listeners of one or more children created from operations on the third data source object.

26. The non-transitory computer readable medium of claim 19 , the operations further comprising:

wherein the remapping includes remapping of the third data source object to a second subset of first stored data by full data filtering the first stored data mapped to the first data source object with the second stored data mapped to the second data source object; and

wherein the first data source object is different than the second data source 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 (2)
Provisional Application 62161813 · May 14, 2015
Related Publication 20160335307A1 · Nov 17, 2016