IP Library Granted Patent US 11,461,304
Granted Patent B2
US 11,461,304 · App. 16/814,134 · Granted Oct 4, 2022

Signature-based cache optimization for data preparation

Inventors: Dave Brewster (Redwood City, CA); Victor Tze-Yeuan Tso (Redwood, CA)
Assignee: DataRobot, Inc.
G06F16/23G06F16/217G06F16/2282G06F16/2379G06F16/248G06F16/24539
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,461,304
App. No.
16/814,134
Granted
Oct 4, 2022
Kind
B2
Abstract

Signature-based cache optimization for data preparation includes: performing a first set of sequenced data preparation operations on one or more sets of data to generate a plurality of transformation results; caching one or more of the plurality of transformation results and one or more corresponding operation signatures, a cached operation signature being derived based at least in part on a subset of sequenced operations that generated a corresponding result; receiving a specification of a second set of sequenced operations; determining an operation signature associated with the second set of sequenced operations; identifying a cached result among the cached results based at least in part on the determined operation signature; and outputting the cached result.

Claims (50)

1. A system, comprising:

a data processing system comprising memory and one or more processors to:

receive, from a user interface, a first set of operations to be applied in a sequential order to one or more sets of data;

transform, by the first set of operations, a first set of data among the one or more sets of data, to generate a second set of data;

cache a representation of the second set of data to re-generate the second set of data;

cache a first signature corresponding at least in part to a first graph structure of the first set of operations, and the second set of data;

receive a specification of receive, from the user interface, a second set of operations to be applied in a sequential order to one or more sets of data;

generate a second signature corresponding at least in part to a second graph structure of the second set of operations;

regenerate the second set of data based on the cached representation, in response to determining a match between at least a portion of the first graph structure corresponding to the first signature and at least a portion of the second graph structure corresponding to the second signature; and

instruct the user interface to present output based at least in part on the regenerated second set of data.

2. The system of claim 1 wherein the first set of operations comprises at least one of clustering, joining, appending, sorting, uppercase, lowercase, filtering, deduplicating, grouping by, adding or removing columns, adding or removing rows, pivoting, or depivoting.

3. The system of claim 1 wherein the first signature comprises a hash corresponding to at least a portion of the first set of operations.

4. The system of claim 1 wherein the first signature comprises an order independent grouping of representations of at least a portion of the first set of operations.

5. The system of claim 1 wherein determining the match between the first signature and the second signature comprises determining an overlap between at least a portion of the first graph structure corresponding to the first operation signature and at least a portion of the second graph structure corresponding to the second operation signature.

6. The system of claim 1 wherein determining the match between the first signature and the second signature comprises:

manipulating the second signature to determine an equivalent operation signature; and

comparing the equivalent signature against the first signature.

7. The system of claim 6 wherein the equivalent signature is determined at least in part by performing an operator push down on the second signature.

8. The system of claim 1 wherein the representation of the second set of data comprises a data traversal program, and wherein the one or more processors are configured to re-generate the second set of data at least in part by executing the data traversal program.

9. The system of claim 1 wherein instructing the user interface to present output based at least in part on the re-generated second set of data comprises displaying, by the user interface, at least a portion of the re-generated second set of data.

10. The system of claim 1 wherein instructing the user interface to present output based at least in part on the re-generated second set of data comprises exporting at least a portion of the re-generated second set of data.

11. A method, comprising:

receiving, from a user interface, a first set of operations to be applied in a sequential order to one or more sets of data;

transforming, by the first set of operations, a first set of data among the one or more sets of data, to generate a resulting data set that is different from the one or more input sets of data;

caching a representation of the second set of data to re-generate the resulting data set;

caching a first signature corresponding at least in part to a first graph structure of the first set of operations, and the second set of data;

receiving, from the user interface, a second set of operations to be applied in a sequential order to one or more sets of data;

generating a second signature corresponding at least in part to a second graph structure of the second set of operations;

regenerating the second set of data based on the cached representation, in response to determining a match between at least a portion of the first graph structure corresponding to the first signature and at least a portion of the second graph structure corresponding to the second signature; and

instructing the user interface to present output based at least in part on the regenerated second set of data.

12. The method of claim 11 wherein the first set of operations comprises at least one of clustering, joining, appending, sorting, uppercase, lowercase, filtering, deduplicating, grouping by, adding or removing columns, adding or removing rows, pivoting, or depivoting.

13. The method of claim 11 wherein the first signature comprises a hash corresponding to at least a portion of the first set of operations.

14. The method of claim 11 wherein the first signature comprises an order independent grouping of representations of at least a portion of the first set of operations.

15. The method of claim 11 wherein determining the match between the first signature and the second signature comprises determining an overlap between at least a portion of the first graph structure corresponding to the first operation signature and at least a portion of the second graph structure corresponding to the second operation signature.

16. The method of claim 11 wherein determining the match between the first signature and the second operation comprises:

manipulating the second signature to determine an equivalent operation signature; and

comparing the equivalent signature against the first signature.

17. The method of claim 16 wherein the equivalent signature is determined at least in part by performing an operator push down on the second signature.

18. The method of claim 11 wherein the representation of the second set of data comprises a data traversal program, and wherein the one or more processors are configured to re-generate the second set of data set at least in part by executing the data traversal program.

19. The method of claim 11 wherein instructing the user interface to present output based at least in part on the re-generated second set of data comprises displaying, by the user interface, at least a portion of the re-generated second set of data.

20. The method of claim 11 wherein instructing the user interface to present output based at least in part on the re-generated second set of data comprises exporting at least a portion of the re-generated second set of data.

21. A computer program product embodied in a non-transitory computer readable storage medium and comprising one or more instructions executable by a processor to:

receiving, from a user interface, a first set of operations to be applied in a sequential order to one or more sets of data;

transforming, by the first set of operations, a first set of data among the one or more sets of data, to generate a resulting data set that is different from the one or more input sets of data;

caching a representation of the second set of data to re-generate the resulting data set;

caching a first signature corresponding at least in part to a first graph structure of the first set of operations, and the second set of data;

receiving, from the user interface, a second set of operations to be applied in a sequential order to one or more sets of data;

generating a second signature corresponding at least in part to a second graph structure of the second set of operations;

regenerating the second set of data based on the cached representation, in response to determining a match between at least a portion of the first graph structure corresponding to the first signature and at least a portion of the second graph structure corresponding to the second signature; and

instructing the user interface to present output based at least in part on the regenerated second set of data.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Apr 7, 2025
From: CITIBANK, N.A.
To: DATAROBOT, INC.; ALGORITHMIA, INC.; DULLES RESEARCH, LLC
Reel/Frame 070750/0866 →
SECURITY INTEREST Recorded Mar 22, 2023
From: DATAROBOT, INC.; ALGORITHMIA, INC.; DULLES RESEARCH, LLC
To: CITIBANK, N.A.
Reel/Frame 063263/0926 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 24, 2022
From: DR HOLDCO 2, INC.
To: DATAROBOT, INC.
Reel/Frame 060893/0073 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 25, 2022
From: DR HOLDCO 2, INC.
To: DATAROBOT, INC.
Reel/Frame 060019/0207 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2020
From: PAXATA, INC.
To: DR HOLDCO 2, INC.
Reel/Frame 052377/0987 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2020
From: BREWSTER, DAVE; TSO, VICTOR TZE-YEUAN
To: PAXATA, INC.
Reel/Frame 052305/0323 →
Continuity (2)
Continuation 14883582 · Oct 14, 2015
Related Publication 20200210399A1 · Jul 2, 2020