IP Library › Granted Patent US 12,222,943
Granted Patent B2
US 12,222,943 · App. 18/343,427 · Granted Feb 11, 2025

Optimized data structures of a relational cache with a learning capability for accelerating query execution by a data system

Inventors: Tomer Shiran (Mountain View, CA); Jacques Nadeau (Santa Clara, CA); Steven Michael Phillips (Mountain View, CA)
Assignee: Dremio Corporation
G06F16/24542G06F16/2228G06F16/24537G06F16/24549G06N20/00
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 12,222,943
App. No.
18/343,427
Granted
Feb 11, 2025
Kind
B2
Abstract

A method performed by a data system includes automatically learning relationship(s) among datasets based on one or more of a user query or an observation of a data flow through the data system. The method further includes generating an optimized data structure based on the learned relationships among the datasets. The data system then modifies a query plan to obtain query results that satisfy a query by reading the optimized data structure in lieu of reading the datasets.

Claims (67)

1. A computer-readable storage medium, excluding transitory signals and carrying instructions, which, when executed by at least one data processor of a data system, cause the data system to:

automatically determine relationships among multiple datasets based on multiple virtual datasets,

wherein each of the multiple virtual datasets includes a query and a reference to a dataset of the multiple datasets;

generate an optimized data structure based on the relationships among the multiple datasets,

wherein the optimized data structure is stored in a non-volatile memory of the data system;

receive multiple queries;

determine whether the optimized data structure includes one or more datasets in common with query plans for the multiple queries;

modify each query plan that has the one or more datasets in common to read the optimized data structure stored in the non-volatile memory in lieu of reading the multiple datasets; and

return query results that satisfy the multiple queries based on the modified query plans.

2. The computer-readable storage medium of claim 1 , wherein to automatically determine relationships among the multiple datasets comprises causing the data system to:

determine a relationship between two datasets based on a join between the two datasets as indicated in a query of a virtual dataset.

3. The computer-readable storage medium of claim 1 , wherein to automatically determine relationships among the multiple datasets comprises causing the data system to:

determine a relationship between two datasets based on a stated relationship included in a virtual dataset.

4. The computer-readable storage medium of claim 1 , wherein the data system is further caused to, prior to each query plan being modified:

autonomously generate the optimized data structure based on a determination that reading the optimized data structure in lieu of reading at least some datasets from multiple data sources improves processing of an expected workload, and

wherein the expected workload is based on a quantity or frequency of queries included in the multiple virtual datasets.

5. A non-transitory, computer-readable storage medium storing instructions, which, when executed by at least one data processor of a data system, cause the data system to:

automatically determine relationships among multiple datasets based on queries processed by the data system or an observation of a data flow of the data system;

generate an optimized data structure based on the relationships among the multiple datasets,

wherein the optimized data structure is stored in a non-volatile memory of the data system;

receive multiple queries;

determine that the optimized data structure includes a particular dataset in common with a respective query plan of the each of the multiple queries;

modify each respective query plan that has the particular dataset to read the optimized data structure stored in the non-volatile memory; and

return query results that satisfy the multiple queries based on the modified query plans.

6. The non-transitory, computer-readable storage medium of claim 5 , wherein to automatically determine the relationships among the multiple datasets comprises causing the data system to:

determine the relationships among the multiple datasets based on a pattern of the queries received by the data system,

wherein the optimized data structure is generated based on the pattern of queries.

7. The non-transitory, computer-readable storage medium of claim 5 , wherein to automatically determine the relationships among the multiple datasets comprises causing the data system to:

determine the relationships among the multiple datasets based on the data flow of the data system including a runtime statistic,

wherein the optimized data structure is generated based on the runtime statistic.

8. The non-transitory, computer-readable storage medium of claim 5 , wherein to automatically determine the relationships among the multiple datasets comprises causing the data system to:

determine the relationships among the multiple datasets based on the data flow of the data system including a workload distribution,

wherein the optimized data structure is generated based on the workload distribution.

9. The non-transitory, computer-readable storage medium of claim 5 , wherein the optimized data structure is generated based on an aggregation of the multiple datasets.

10. The non-transitory, computer-readable storage medium of claim 5 , wherein the optimized data structure preserves a quantity of records equal to a quantity of records of one of the multiple datasets.

11. The non-transitory, computer-readable storage medium of claim 5 , wherein the multiple datasets include a fact table and multiple dimension tables, and wherein generating the optimized data structure comprises causing the data system to:

preserve a quantity of records of the fact table even though any of the multiple dimension tables have a quantity of records different from the fact table.

12. The non-transitory, computer-readable storage medium of claim 11 , wherein to automatically determine the relationships among the multiple datasets comprises causing the data system to:

autonomously determining a fact-dimension relationship among the multiple datasets.

13. The non-transitory, computer-readable storage medium of claim 5 , wherein the multiple queries include a first query and a second query, wherein a first query plan of the first query is associated with a different combination of datasets compared to a second query plan of the second query.

14. The non-transitory, computer-readable storage medium of claim 5 , wherein the data system is further caused to, prior to automatically determining the relationships among the multiple datasets:

processing the multiple datasets in response to the multiple queries.

15. The non-transitory, computer-readable storage medium of claim 5 , wherein a query of the multiple queries refers to at least one of the multiple datasets that are contained in multiple data sources, the data system being further caused to:

obtain the result without reading any of the multiple datasets from the multiple data sources.

16. The non-transitory, computer-readable storage medium of claim 5 , wherein a query of the multiple queries refers to at least one of the multiple datasets that are contained in multiple data sources, the data system being further caused to:

obtain the result by reading at least some of the multiple datasets from the multiple data sources in addition to reading the optimized data structure.

17. The non-transitory, computer-readable storage medium of claim 5 , wherein the data system is caused to, prior to the query plan being modified:

determine that a query of the multiple queries can be accelerated based on the optimized data structure stored in a cache of the data system.

18. The non-transitory, computer-readable storage medium of claim 5 , wherein to automatically determine the relationships among the multiple datasets and to generate the optimized data structure occurs at runtime of one or more query executions.

19. The non-transitory, computer-readable storage medium of claim 5 , wherein the multiple datasets correspond to multiple physical datasets, and wherein to modify the query plan comprises causing the data system to:

expand one or more views of the multiple physical datasets or of other views so that the query plan refers only to the multiple physical datasets.

20. The non-transitory, computer-readable storage medium of claim 5 , wherein the data system is further caused to, prior to the query plan being modified:

autonomously generate the optimized data structure based on a determination that reading the optimized data structure in lieu of reading at least some dataset from multiple data sources improves processing of an expected workload.

21. A method performed by a data system comprising:

automatically determining relationships among multiple datasets based on queries processed by the data system or an observation of a data flow of the data system;

generating an optimized data structure based on the relationships among the multiple datasets,

wherein the optimized data structure is stored in a non-volatile memory of the data system;

receiving multiple queries;

determining whether the optimized data structure includes a particular dataset in common with a respective query plan of each of the multiple queries;

modifying each respective query plan that has the particular dataset to read the optimized data structure stored in the non-volatile memory; and

returning a respective query result that satisfies each of the multiple query based on a respective modified query plan.

22. The method of claim 21 , wherein automatically determining the relationships among the multiple datasets comprises:

determining the relationships among the multiple datasets based on a runtime statistic indicated in the data flow of the data system,

wherein the optimized data structure is generated based on the runtime statistic.

23. The method of claim 22 , wherein automatically determining the relationships among the multiple datasets comprises:

determining the relationships among the multiple datasets based on a workload distribution indicated in the data flow of the data system,

wherein the optimized data structure is generated based on the workload distribution.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2023
From: SHIRAN, TOMER; NADEAU, JACQUES; PHILLIPS, STEVEN MICHAEL
To: DREMIO CORPORATION
Reel/Frame 064102/0113 →
Continuity (4)
Continuation 17497663 · Oct 8, 2021
Continuation 16392483 · Apr 23, 2019
Provisional Application 62662015 · Apr 24, 2018
Related Publication 20230342358A1 · Oct 26, 2023
References Cited (18)
US 6934699B1 · Haas · 2005 [cited by examiner]
US 10769148B1 · Binkert · 2020 [cited by examiner]
US 11144548B2 · Shiran et al. · 2021 [cited by applicant]
US 20050097072A1 · Brown · 2005 [cited by examiner]
US 20060161557A1 · Dettinger · 2006 [cited by examiner]
US 20060242102A1 · Bruno et al. · 2006 [cited by applicant]
US 20100063948A1 · Virkar · 2010 [cited by examiner]
US 20100145929A1 · Burger · 2010 [cited by examiner]
US 20110029508A1 · Al-Omari · 2011 [cited by examiner]
US 20170147644A1 · Lee · 2017 [cited by examiner]
US 20180025093A1 · Xia · 2018 [cited by examiner]
US 20180314744A1 · Mathew · 2018 [cited by examiner]
US 20190171773A1 · Wang · 2019 [cited by examiner]
US 20190272773A1 · Narayanan et al. · 2019 [cited by applicant]
U.S. Appl. No. 17/497,663. [cited by applicant]
U.S. Appl. No. 16/392,483. [cited by applicant]
USPTO, Non-Final Rejection dated Dec. 22, 2022 for U.S. Appl. No. 17/497,663, 27 pages. [cited by applicant]
USPTO, Notice of Allowance dated Apr. 3, 2023 for U.S. Appl. No. 17/497,663, 7 pages. [cited by applicant]