IP Library Granted Patent US 12,210,528
Granted Patent B2
US 12,210,528 · App. 18/162,607 · Granted Jan 28, 2025

Evaluating expressions over dictionary data

Inventors: Utkarsh Agarwal (San Francisco, CA); Shoumik Palkar (San Francisco, CA); Alexander Behm (San Francisco, CA); Sriram Krishnamurthy (San Francisco, CA)
Assignee: Databricks, Inc.
G06F16/24558G06F11/3409G06F16/221
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,210,528
App. No.
18/162,607
Granted
Jan 28, 2025
Kind
B2
Abstract

Disclosed herein is a method, system, or non-transitory computer readable medium for evaluating a query on a columnar dataset comprising one or more dictionaries associated with columns in the dataset. The method includes receiving a request to perform a query comprising at least an operator for a columnar dataset on cloud storage. At least one column in the dataset is based on a dictionary, and the dictionary maps one or more values for a column to one or more respective identifiers. The method evaluates the operator on one or more values of the dictionary to generate an updated dictionary comprising updated values. The method may decode the updated dictionary into an updated column comprising updated data values.

Claims (54)

1. A method comprising:

receiving a first request to perform a first query for a columnar dataset stored on cloud storage, the first query comprising an operator to evaluate within a column in the columnar dataset, wherein the column in the columnar dataset is based on a dictionary that maps one or more values for the column to one or more respective identifiers;

determining whether to perform dictionary filtering for the first query by calculating a metric based on one or more factors comprising at least a size of the dictionary and an estimated cost of executing the first query;

performing one of:

retrieving the column associated with the dictionary and evaluating the operator on the column when the metric is equal to or above a threshold; and

executing dictionary filtering when the metric is below the threshold, wherein performing dictionary filtering comprises:

determining whether a value of interest is present in the dictionary, and

evaluating, responsive to a determination that the value of interest is present in the dictionary, the operator on one or more values of the dictionary;

generating, responsive to the evaluation of the operator on the one or more values of the dictionary, an updated dictionary comprising updated values;

receiving a second request to perform a second query, the second query comprising a filter to evaluate within the column in the columnar dataset, the column in the columnar dataset based on the updated dictionary; and

evaluating the filter on the updated dictionary.

2. The method of claim 1 , wherein the first query comprises a binary expression with two inputs, wherein each input is a column in the columnar dataset based on the dictionary.

3. The method of claim 1 , further comprising:

decoding dictionary-encoded values of the column, for each row in the column, based on the updated dictionary.

4. The method of claim 1 , wherein evaluating the operator on the one or more values of the dictionary comprises capitalizing the one or more values of the dictionary.

5. The method of claim 1 , wherein the first query further comprises a request to return information about the value of interest in the columnar dataset stored on the cloud storage.

6. The method of claim 1 , further comprising determining whether to perform dictionary filtering for the second query by calculating a metric based on one or more factors comprising at least the size of the dictionary and an estimated cost of executing the second query.

7. A system comprising:

at least one processor;

at least one memory comprising stored instructions, the instructions when executed cause the at least one processor to:

receive a first request to perform a first query for a columnar dataset stored on cloud storage, the first query comprising an operator to evaluate within a column in the columnar dataset, wherein the column in the columnar dataset is based on a dictionary that maps one or more values for the column to one or more respective identifiers;

determine whether to perform dictionary filtering for the first query by calculating a metric based on one or more factors comprising at least dictionary size and an estimated cost of executing the first query;

perform one of:

retrieve the column associated with the dictionary and evaluating the operator on the column when the metric is equal to or above a threshold; and

execute dictionary filtering when the metric is below the threshold, wherein the instructions that when executed cause the at least one processor to perform dictionary filtering comprises instructions that when executed cause the at least one processor to:

determine whether a value of interest is present in the dictionary, and

evaluate, responsive to a determination that the value of interest is present in the dictionary, the operator on one or more values of the dictionary;

generate, after the evaluation of the operator on the one or more values of the dictionary, an updated dictionary comprising updated values;

receive a second request to perform a second query, the second query comprising a filter to evaluate within the column in the columnar dataset, the column in the columnar dataset based on the updated dictionary; and

evaluate the filter on the updated dictionary.

8. The system of claim 7 , wherein the first query comprises a binary expression with two inputs, wherein each input is a column in the columnar dataset based on the dictionary.

9. The system of claim 7 , wherein the at least one memory further comprises instructions that when executed further cause the at least one processor to:

decode dictionary-encoded values of the column, for each row in the column, based on the updated dictionary.

10. The system of claim 7 , wherein the instructions that when executed cause the at least one processor to evaluate the operator on the one or more values of the dictionary comprise instructions that when executed cause the at least one processor to capitalize the one or more values of the dictionary.

11. The system of claim 7 , wherein the first query further comprises a request to return information about the value of interest in the columnar dataset stored on the cloud storage.

12. The system of claim 7 , wherein the at least one memory further comprises instructions that when executed further cause the at least one processor to:

determine whether to perform dictionary filtering for the second query by calculating a metric based on one or more factors comprising at least the dictionary size and an estimated cost of executing the second query.

13. A non-transitory computer readable medium comprising stored instructions encoded thereon that, when executed by at least one processor, cause the at least one processor to:

receive a first request to perform a first query for a columnar dataset stored on cloud storage, the first query comprising an operator to evaluate within a column in the columnar dataset, wherein the column in the columnar dataset is based on a dictionary that maps one or more values for the column to one or more respective identifiers;

determine whether to perform dictionary filtering for the first query by calculating a metric based on one or more factors comprising at least dictionary size and an estimated cost of executing the first query;

perform one of:

retrieve the column associated with the dictionary and evaluating the operator on the column when the metric is equal to or above a threshold; and

execute dictionary filtering when the metric is below the threshold, wherein the instructions that when executed cause the at least one processor to perform dictionary filtering comprises instructions that when executed cause the at least one processor to:

determine whether a value of interest is present in the dictionary, and

evaluate, responsive to a determination that the value of interest is present in the dictionary, the operator on one or more values of the dictionary;

generate, responsive to the evaluation of the operator on the one or more values of the dictionary, an updated dictionary comprising updated values;

receive a second request to perform a second query, the second query comprising a filter to evaluate within the column in the columnar dataset, the column in the columnar dataset based on the updated dictionary; and

evaluate the filter on the updated dictionary.

14. The non-transitory computer readable medium of claim 13 , wherein the first query comprises a binary expression with two inputs, wherein each input is a column in the columnar dataset based on the dictionary.

15. The non-transitory computer readable medium of claim 13 , wherein the at least one memory further comprises instructions that when executed further cause the at least one processor to:

decode dictionary-encoded values of the column, for each row in the column, based on the updated dictionary.

16. The non-transitory computer readable medium of claim 13 , wherein the first query further comprises a request to return information about the value of interest in the columnar dataset stored on the cloud storage.

17. The non-transitory computer readable medium of claim 13 , wherein the at least one memory further comprises instructions that when executed further cause the at least one processor to:

determine whether to perform dictionary filtering for the second query by calculating a metric based on one or more factors comprising at least the dictionary size and an estimated cost of executing the second query.

Assignments (2)
SECURITY INTEREST Recorded Jan 6, 2025
From: DATABRICKS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069825/0419 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 6, 2023
From: AGARWAL, UTKARSH; PALKAR, SHOUMIK; BEHM, ALEXANDER; KRISHNAMURTHY, SRIRAM
To: DATABRICKS, INC.
Reel/Frame 065469/0733 →
Continuity (1)
Related Publication 20240256549A1 · Aug 1, 2024
References Cited (19)
US 11481398B1 · Behm · 2022 [cited by examiner]
US 11675767B1 · Behm · 2023 [cited by examiner]
US 20050038804A1 · Shimizu · 2005 [cited by examiner]
US 20150074151A1 · Chaiken · 2015 [cited by examiner]
US 20150363167A1 · Kaushik · 2015 [cited by examiner]
US 20170109406A1 · Chavan · 2017 [cited by examiner]
US 20170116136A1 · Macnicol · 2017 [cited by examiner]
US 20170255675A1 · Chavan · 2017 [cited by examiner]
US 20180075105A1 · Chavan · 2018 [cited by examiner]
US 20180150494A1 · Schulze · 2018 [cited by examiner]
US 20210271676A1 · Horn · 2021 [cited by examiner]
US 20220100761A1 · Xin · 2022 [cited by examiner]
US 20220179854A1 · Sharique · 2022 [cited by examiner]
US 20240111772A1 · Vyas · 2024 [cited by examiner]
JP 2001143087A · 2001 [cited by examiner]
WO WO2018049380A1 · 2018 [cited by examiner]
C. Li, J. Lu and Y. Lu, “Efficient Merging and Filtering Algorithms for Approximate String Searches,” 2008 IEEE 24th International Conference on Data Engineering, Cancun, Mexico, 2008, pp. 257-266, doi: 10.1109/ICDE.200… [cited by examiner]
Bocek et al., Fast Similarity Search in Large Dictionaries, May 2007 (Year: 2007). [cited by examiner]
Li et al., Faerie: Efficient Filtering Algorithms for Approximate Dictionary-Based Entity Extraction, SIGMOD '11: Proceedings of the 2011 ACM SIGMOD International Conference on Management of data, pp. 529-540, https://d… [cited by examiner]