IP Library Granted Patent US 10,642,814
Granted Patent B2
US 10,642,814 · App. 14/883,582 · Granted May 5, 2020

Signature-based cache optimization for data preparation

Inventors: Dave Brewster (Redwood City, CA); Victor Tze-Yeuan Tso (Redwood City, CA)
Assignee: Paxata, 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 10,642,814
App. No.
14/883,582
Granted
May 5, 2020
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. It further includes 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. It further includes receiving a specification of a second set of sequenced operations. It further includes determining an operation signature associated with the second set of sequenced operations. It further includes identifying a cached result among the cached results based at least in part on the determined operation signature; and outputting the cached result.

Claims (39)

1. A system, comprising:

a processor configured to:

perform a first set of sequenced data preparation operations on one or more sets of data to generate a plurality of transformation results, wherein the first set of sequenced data preparation operations are sequentially performed on the one or more sets of data to generate the plurality of transformation results;

cache 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 and the one or more sets of data that generated a corresponding cached transformation result, wherein the cached operation signature is associated with a corresponding first graph structure representing a flow of the subset of sequenced operations performed on the one or more sets of data;

receive a specification of a second set of sequenced data preparation operations;

determine an operation signature associated with the second set of sequenced data preparation operations, wherein the determined operation signature is associated with a corresponding second graph structure representing a flow of the second set of sequenced data preparation operations;

compare the cached operation signature and the determined operation signature, including to:

generate a third graph structure that is semantically equivalent to the second graph structure, wherein to generate the third graph structure comprises to manipulate the second graph structure at least in part by pushing an operation associated with the second graph structure below another operation associated with the second graph structure;

determine a match between the first graph structure and at least a portion of the third graph structure generated by manipulating the second graph structure;

in response to determining the match, identify, among the one or more cached transformation results, the cached transformation result corresponding to the cached operation signature; and

output the identified cached transformation result; and

a memory coupled to the processor and configured to provide the processor with instructions.

2. The system of claim 1 wherein the cached operation signature comprises a hash of the subset of sequenced operations.

3. The system of claim 1 wherein the cached operation signature comprises an order independent grouping of representations of the subset of sequenced operations.

4. The system of claim 1 wherein the cached transformation result is represented by a data traversal program.

5. The system of claim 1 wherein a subset of the cached transformation result is displayed.

6. The system of claim 1 wherein the cached transformation result is exported.

7. The system of claim 1 wherein the processor is configured to use the outputted identified cached transformation result as an intermediate result to determine a result of sequentially performing the second set of sequenced data preparation operations.

8. A method, comprising:

performing a first set of sequenced data preparation operations on one or more sets of data to generate a plurality of transformation results, wherein the first set of sequenced data preparation operations are sequentially performed on the one or more sets of data to generate the 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 and the one or more sets of data that generated a corresponding cached transformation result, wherein the cached operation signature is associated with a corresponding first graph structure representing a flow of the subset of sequenced operations performed on the one or more sets of data;

receiving a specification of a second set of sequenced data preparation operations;

determining an operation signature associated with the second set of sequenced data preparation operations, wherein the determined operation signature is associated with a corresponding second graph structure representing a flow of the second set of sequenced data preparation operations;

comparing the cached operation signature and the determined operation signature, including to:

generate a third graph structure that is semantically equivalent to the second graph structure, wherein to generate the third graph structure comprises to manipulate the second graph structure at least in part by pushing an operation associated with the second graph structure below another operation associated with the second graph structure;

determining a match between the first graph structure and at least a portion of the third graph structure generated by manipulating the second graph structure;

in response to determining the match, identifying, among the one or more cached transformation results, the cached transformation result corresponding to the cached operation signature; and

outputting the identified cached transformation result.

9. The method of claim 8 wherein the cached result is represented by a data traversal program.

10. A computer program product embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

performing a first set of sequenced data preparation operations on one or more sets of data to generate a plurality of transformation results, wherein the first set of sequenced data preparation operations are sequentially performed on the one or more sets of data to generate the 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 and the one or more sets of data that generated a corresponding cached transformation result, wherein the cached operation signature is associated with a corresponding first graph structure representing a flow of the subset of sequenced operations performed on the one or more sets of data;

receiving a specification of a second set of sequenced data preparation operations;

determining an operation signature associated with the second set of sequenced data preparation operations, wherein the determined operation signature is associated with a corresponding second graph structure representing a flow of the second set of sequenced data preparation operations;

comparing the cached operation signature and the determined operation signature, including to:

generate a third graph structure that is semantically equivalent to the second graph structure, wherein to generate the third graph structure comprises to manipulate the second graph structure at least in part by pushing an operation associated with the second graph structure below another operation associated with the second graph structure;

determining a match between the first graph structure and at least a portion of the third graph structure generated by manipulating the second graph structure;

in response to determining the match, identifying, among the one or more cached transformation results, the cached transformation result corresponding to the cached operation signature; and

outputting the identified cached transformation result.

Assignments (7)
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 →
RELEASE OF SECURITY INTEREST Recorded Feb 2, 2023
From: SILICON VALLEY BANK
To: PAXATA, INC.
Reel/Frame 063251/0119 →
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 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Nov 5, 2019
From: PAXATA, INC.
To: SILICON VALLEY BANK
Reel/Frame 050930/0534 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2015
From: BREWSTER, DAVE; TSO, VICTOR TZE-YEUAN
To: PAXATA, INC.
Reel/Frame 037326/0275 →
Continuity (1)
Related Publication 20170109388A1 · Apr 20, 2017