IP Library Granted Patent US 12,099,472
Granted Patent B2
US 12,099,472 · App. 18/160,021 · Granted Sep 24, 2024

Utilizing metadata to prune a data set

Inventors: Benoit Dageville (Seattle, WA); Thierry Cruanes (San Mateo, CA); Marcin Zukowski (San Mateo, CA); Allison Waingold Lee (San Carlos, CA); Philipp Thomas Unterbrunner (Belmont, CA)
Assignee: Snowflake Inc.
G06F16/172G06F16/137G06F16/1827G06F16/2237G06F16/2255G06F16/2456
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,099,472
App. No.
18/160,021
Granted
Sep 24, 2024
Kind
B2
Abstract

A query directed to database data stored across a set of files is received. The query includes predicates applied against metadata of the set of files. One or more files are removed from the set of files whose metadata does not satisfy a predicate of the plurality of predicates. Rows of the one or more remaining files of the set of files are filtered based on the one or more predicates.

Claims (52)

1. A method comprising:

receiving a query directed to database data stored across a set of files, the query comprising one or more predicates;

removing, by a hardware resource, from the set of files, one or more files whose metadata does not satisfy a predicate of the plurality of predicates; and

filtering rows of one or more remaining files of the set of files based on the one or more predicates.

2. The method of claim 1 , further comprising:

executing the query against a remaining set of files to create a second set of files.

3. The method of claim 2 , further comprising:

returning the second set of files in response to the query.

4. The method of claim 1 , wherein removing from the set of files, each file whose metadata does not satisfy the predicate further comprises:

determining that the metadata for each file in the set of files does not correspond to ranges associated with a filter.

5. The method of claim 4 , wherein the filter comprises multiple disjoint range values.

6. The method of claim 1 , wherein each file of the set of files comprises a block of the database data.

7. The method of claim 1 , wherein the metadata for each file of the set of files comprises at least one of:

representative values of a block of the database data of the file;

a number of null values in the block of the database data of the file; or

maximum and minimum values of the block of the database data of the file.

8. The method of claim 1 , further comprising:

processing another data set of the query to generate a range bloom vector; and

applying the range bloom vector to the set of files to filter and prune the set of files.

9. The method of claim 1 , further comprising:

determining that a predicate of the plurality of predicates is not satisfied by the metadata of any of a remaining set of files; and

removing the predicate from the plurality of predicates.

10. A system comprising:

a hardware resource to:

receive a query directed to database data stored across a set of files, the query comprising one or more predicates;

remove, from the set of files, one or more files whose metadata does not satisfy a predicate of the plurality of predicates; and

filter rows of one or more remaining files of the set of files based on the one or more predicates.

11. The system of claim 10 , wherein the hardware resource is further to:

execute the query against a remaining set of files to create a second set of files.

12. The system of claim 11 , wherein the hardware resource is further to:

return the second set of files in response to the query.

13. The system of claim 10 , wherein to remove from the set of files, each file whose metadata does not satisfy the predicate, the hardware resource is further to:

determine that the metadata for each file in the set of files does not correspond to ranges associated with a filter.

14. The system of claim 13 , wherein the filter comprises a plurality of disjoint range values.

15. The system of claim 10 , wherein each file of the set of files comprises a block of the database data.

16. The system of claim 10 , wherein the metadata for each file of the set of files comprises at least one of:

representative values of a block of the database data of the file;

a number of null values in the block of the database data of the file; or

maximum and minimum values of the block of the database data of the file.

17. The system of claim 10 , wherein the hardware resource is further to:

process another data set of the query to generate a range bloom vector; and

apply the range bloom vector to the set of files to filter and prune the set of files.

18. The system of claim 10 , wherein the hardware resource is further to:

determine that a predicate of the plurality of predicates is not satisfied by the metadata of any of a remaining set of files; and

remove the predicate from the plurality of predicates.

19. A non-transitory computer-readable medium having instructions stored thereon that, when executed by a hardware resource, cause the hardware resource to:

receive a query directed to database data stored across a set of files, the query comprising one or more predicates;

remove, by the hardware resource, from the set of files, one or more files whose metadata does not satisfy a predicate of the plurality of predicates; and

filter rows of one or more remaining files of the set of files based on the one or more predicates.

20. The non-transitory computer-readable medium of claim 19 , wherein the hardware resource is further to:

process another data set of the query to generate a range bloom vector; and

apply the range bloom vector to the set of files to filter and prune the set of files.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME NEEDS TO BE CHANGED. PREVIOUSLY RECORDED ON REEL 62550 FRAME 482. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF ASSIGNORS INTEREST . Recorded Jul 25, 2024
From: DAGEVILLE, BENOIT; CRUANES, THIERRY; ZUKOWKSI, MARCIN; LEE, ALLISON WAINGOLD; UNTERBRUNNER, PHILIPP THOMAS
To: SNOWFLAKE COMPUTING INC.
Reel/Frame 068171/0828 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2023
From: DAGEVILLE, BENOIT; CRUANES, THIERRY; ZUKOWSKI, MARCIN; LEE, ALLISON WAINGOLD; UNTERBRUNNER, PHILIPP THOMAS
To: SNOWFLAKE INC.
Reel/Frame 062550/0482 →
Continuity (6)
Continuation 17186389 · Feb 26, 2021
Continuation 16749816 · Jan 22, 2020
Continuation 14882024 · Oct 13, 2015
Continuation In Part 14518884 · Oct 20, 2014
Provisional Application 61941986 · Feb 19, 2014
Related Publication 20230161735A1 · May 25, 2023