IP Library Granted Patent US 12,423,296
Granted Patent B2
US 12,423,296 · App. 18/626,904 · Granted Sep 23, 2025

Database system utilizing probabilistic indexing

Inventors: Greg R. Dhuse (Chicago, IL); Matthew Ashbeck (Chicago, IL)
Assignee: Ocient Holdings LLC
G06F16/2428G06F16/221G06F16/2282G06N7/01
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,423,296
App. No.
18/626,904
Granted
Sep 23, 2025
Kind
B2
Abstract

A database system operates by: storing a plurality of variable-length data of a column of a plurality of rows; storing a plurality of fixed-length index values of a probabilistic indexing scheme for the column; and identifying a filtered subset of the plurality of rows having variable-length data of the column equal to a given value based on: identifying a first subset of rows as a proper subset of the plurality of rows based on the plurality of fixed-length index values; and comparing the variable-length data of only rows in the first subset of rows to the given value to identify the filtered subset as a subset of the first subset of rows.

Claims (48)

1. A method for execution by at least one processor of a database system, comprising:

storing a plurality of variable-length data of a column of a plurality of rows;

storing a plurality of fixed-length index values of a probabilistic indexing scheme for the column; and

identifying a filtered subset of the plurality of rows having variable-length data of the column equal to a given value based on:

identifying a first subset of rows as a proper subset of the plurality of rows based on the plurality of fixed-length index values; and

comparing the variable-length data of only rows in the first subset of rows to the given value to identify the filtered subset as a subset of the first subset of rows.

2. The method of claim 1 , wherein identifying the filtered subset of the plurality of rows is further based on:

reading a set of variable-length data based on reading the variable-length data from only rows in the first subset of rows;

wherein comparing the variable-length data of only the rows in the first subset of rows to the given value is based on utilizing only variable-length data in the set of variable-length data.

3. The method of claim 1 , wherein the variable-length data is implemented via one of: a string datatype or a varchar datatype.

4. The method of claim 1 , wherein a set difference between the filtered subset and the first subset of rows is non-null.

5. The method of claim 1 , wherein the probabilistic indexing scheme for the column is an inverted indexing scheme, and wherein the first subset of rows are identified based on inverted index values of the inverted indexing scheme.

6. The method of claim 1 , wherein the plurality of fixed-length index values of the probabilistic indexing scheme are a plurality of hash values computed by performing a hash function on corresponding variable-length data of the column.

7. The method of claim 6 , wherein identifying the filtered subset of the plurality of rows includes:

computing a first hash value for the given value; and

identifying ones of the plurality of rows having corresponding ones of the plurality of hash value equal to the first hash value.

8. The method of claim 7 , wherein a set difference between the first subset of rows and the filtered subset includes ones of the plurality of rows with variable-length data of the column having hash collisions with the given value.

9. The method of claim 6 , wherein the fixed-length is based on a false-positive tuning parameter of the hash function, wherein a first number of rows included in the first subset of rows is based on the false-positive tuning parameter of the hash function, and wherein a second number of rows included in a set difference between the first subset of rows and the filtered subset is based on the tuning parameter of the hash function.

10. The method of claim 9 , further comprising:

determining the false-positive tuning parameter as a selected false-positive tuning parameter from a plurality of false-positive tuning parameter options.

11. The method of claim 1 , wherein identifying the filtered subset of the plurality of rows includes applying at least one probabilistic index-based IO construct of an IO pipeline generated for a query indicating the given value in at least one query predicate.

12. A query processing system includes:

at least one processor; and

a memory that stores operational instructions that, when executed by the at least one processor, cause the query processing system to perform operations that include:

storing a plurality of variable-length data of a column of a plurality of rows;

storing a plurality of fixed-length index values of a probabilistic indexing scheme for the column; and

identifying a filtered subset of the plurality of rows having variable-length data of the column equal to a given value based on:

identifying a first subset of rows as a proper subset of the plurality of rows based on the plurality of fixed-length index values; and

comparing the variable-length data of only rows in the first subset of rows to the given value to identify the filtered subset as a subset of the first subset of rows.

13. The query processing system of claim 12 , wherein identifying the filtered subset of the plurality of rows is further based on:

reading a set of variable-length data based on reading the variable-length data from only rows in the first subset of rows;

wherein comparing the variable-length data of only the rows in the first subset of rows to the given value is based on utilizing only variable-length data in the set of variable-length data.

14. The query processing system of claim 12 , wherein the variable-length data is implemented via one of: a string datatype or a varchar datatype.

15. The query processing system of claim 12 , wherein a set difference between the filtered subset and the first subset of rows is non-null.

16. The query processing system of claim 12 , wherein the probabilistic indexing scheme for the column is an inverted indexing scheme, and wherein the first subset of rows are identified based on inverted index values of the inverted indexing scheme.

17. The query processing system of claim 12 , wherein the plurality of fixed-length index values of the probabilistic indexing scheme are a plurality of hash values computed by performing a hash function on corresponding variable-length data of the column.

18. The query processing system of claim 17 , wherein identifying the filtered subset of the plurality of rows includes:

computing a first hash value for the given value; and

identifying ones of the plurality of rows having corresponding ones of the plurality of hash value equal to the first hash value;

wherein a set difference between the first subset of rows and the filtered subset includes ones of the plurality of rows with variable-length data of the column having hash collisions with the given value.

19. The query processing system of claim 17 , wherein the fixed-length is based on a false-positive tuning parameter of the hash function, wherein a first number of rows included in the first subset of rows is based on the false-positive tuning parameter of the hash function, and wherein a second number of rows included in a set difference between the first subset of rows and the filtered subset is based on the tuning parameter of the hash function.

20. A non-transitory computer readable storage medium comprises:

at least one memory section that stores operational instructions that, when executed by a processing module that includes a processor and a memory, causes the processing module to:

store variable-length data of a column of a plurality of rows;

store a plurality of fixed-length index values of a probabilistic indexing scheme for the column; and

identify a filtered subset of the plurality of rows having variable-length data of the column equal to a given value based on:

identifying a first subset of rows as a proper subset of the plurality of rows based on the plurality of fixed-length index values; and

comparing the variable-length data of only rows in the first subset of rows to the given value to identify the filtered subset as a subset of the first subset of rows.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2024
From: DHUSE, GREG R.; ASHBECK, MATTHEW
To: OCIENT HOLDINGS LLC
Reel/Frame 067011/0098 →
Continuity (3)
Continuation 18191935 · Mar 29, 2023
Continuation 17303437 · May 28, 2021
Related Publication 20240256528A1 · Aug 1, 2024
References Cited (68)
US 5548770A · Bridges · 1996 [cited by applicant]
US 6230200B1 · Forecast · 2001 [cited by applicant]
US 6633772B2 · Ford · 2003 [cited by applicant]
US 7499907B2 · Brown · 2009 [cited by applicant]
US 7908242B1 · Achanta · 2011 [cited by applicant]
US 8775160B1 · Roizen et al. · 2014 [cited by applicant]
US 8775414B2 · Birdsall et al. · 2014 [cited by applicant]
US 10997179B1 · Cruanes et al. · 2021 [cited by applicant]
US 11238109B2 · Brener · 2022 [cited by applicant]
US 20010051949A1 · Carey · 2001 [cited by applicant]
US 20020032676A1 · Reiner · 2002 [cited by applicant]
US 20040162853A1 · Brodersen · 2004 [cited by applicant]
US 20080133456A1 · Richards · 2008 [cited by applicant]
US 20090063893A1 · Bagepalli · 2009 [cited by applicant]
US 20090183167A1 · Kupferschmidt · 2009 [cited by applicant]
US 20100082577A1 · Mirchandani · 2010 [cited by applicant]
US 20100241646A1 · Friedman · 2010 [cited by applicant]
US 20100274983A1 · Murphy · 2010 [cited by applicant]
US 20100312756A1 · Zhang · 2010 [cited by applicant]
US 20110219169A1 · Zhang · 2011 [cited by applicant]
US 20120109888A1 · Zhang · 2012 [cited by applicant]
US 20120151118A1 · Flynn · 2012 [cited by applicant]
US 20120185866A1 · Couvee · 2012 [cited by applicant]
US 20120209103A1 · Sakuragi · 2012 [cited by applicant]
US 20120254252A1 · Jin · 2012 [cited by applicant]
US 20120259862A1 · Kim et al. · 2012 [cited by applicant]
US 20120311246A1 · Mcwilliams · 2012 [cited by applicant]
US 20130332484A1 · Gajic · 2013 [cited by applicant]
US 20140047095A1 · Breternitz · 2014 [cited by applicant]
US 20140136510A1 · Parkkinen · 2014 [cited by applicant]
US 20140188841A1 · Sun · 2014 [cited by applicant]
US 20150106382A1 · Liu et al. · 2015 [cited by applicant]
US 20150169655A1 · Gupta · 2015 [cited by applicant]
US 20150205607A1 · Lindholm · 2015 [cited by applicant]
US 20150244804A1 · Warfield · 2015 [cited by applicant]
US 20150248366A1 · Bergsten · 2015 [cited by applicant]
US 20150293966A1 · Cai · 2015 [cited by applicant]
US 20150310045A1 · Konik · 2015 [cited by applicant]
US 20160034547A1 · Lerios · 2016 [cited by applicant]
US 20170185647A1 · Billington · 2017 [cited by applicant]
US 20190205773A1 · Ackerman · 2019 [cited by applicant]
US 20190384762A1 · Hill · 2019 [cited by examiner]
US 20200026782A1 · Kabra · 2020 [cited by examiner]
US 20200110838A1 · Pasha · 2020 [cited by examiner]
US 20210056087A1 · Lee · 2021 [cited by applicant]
US 20210073219A1 · Barbas · 2021 [cited by applicant]
US 20210075614A1 · Wang · 2021 [cited by examiner]
US 20210397631A1 · Rout · 2021 [cited by examiner]
US 20220019591A1 · Roux · 2022 [cited by applicant]
US 20220019784A1 · Wen · 2022 [cited by applicant]
WO 2014143208A1 · 2014 [cited by applicant]
A new high performance fabric for HPC, Michael Feldman, May 2016, Intersect360 Research. [cited by applicant]
Alechina, N. (2006-2007). B-Trees. School of Computer Science, University of Nottingham, http://www.cs.nott.ac.uk/˜psznza/G5BADS06/lecture13-print.pdf. 41 pages. [cited by applicant]
Amazon DynamoDB: ten things you really should know, Nov. 13, 2015, Chandan Patra, http://cloudacademy. .com/blog/amazon-dynamodb-ten-thing. [cited by applicant]
An Inside Look at Google BigQuery, by Kazunori Sato, Solutions Architect, Cloud Solutions team, Google Inc., 2012. [cited by applicant]
Big Table, a NoSQL massively parallel table, Paul Krzyzanowski, Nov. 2011, https://www.cs.rutgers.edu/pxk/417/notes/contentlbigtable.html. [cited by applicant]
Distributed Systems, Fall2012, Mohsen Taheriyan, http://www-scf.usc.edu/-csci57212011Spring/presentations/Taheriyan.pptx. [cited by applicant]
International Searching Authority; International Search Report and Written Opinion; International Application No. PCT/US2017/054773; Feb. 13, 2018; 17 pgs. [cited by applicant]
International Searching Authority; International Search Report and Written Opinion; International Application No. PCT/US2017/054784; Dec. 28, 2017; 10 pgs. [cited by applicant]
International Searching Authority; International Search Report and Written Opinion; International Application No. PCT/US2017/066145; Mar. 5, 2018; 13 pgs. [cited by applicant]
International Searching Authority; International Search Report and Written Opinion; International Application No. PCT/US2017/066169; Mar. 6, 2018; 15 pgs. [cited by applicant]
International Searching Authority; International Search Report and Written Opinion; International Application No. PCT/US2018/025729; Jun. 27, 2018; 9 pgs. [cited by applicant]
International Searching Authority; International Search Report and Written Opinion; International Application No. PCT/US2018/034859; Oct. 30, 2018; 8 pgs. [cited by applicant]
International Searching Authority; Internationl Search Report and Written Opinion; International Application No. PCT/US2022/029557; Aug. 22, 2022; 11 pgs. [cited by applicant]
MapReduce: Simplified Data Processing on Large Clusters, OSDI 2004, Jeffrey Dean and Sanjay Ghemawat, Google, Inc., 13 pgs. [cited by applicant]
Rodero-Merino, L.; Storage of Structured Data: Big Table and HBase, New Trends In Distributed Systems, MSc Software and Systems, Distributed Systems Laboratory; Oct. 17, 2012; 24 pages. [cited by applicant]
Step 2: Examine the data model and implementation details, 2016, Amazon Web Services, Inc., http://docs.aws.amazon.com/amazondynamodb/latestldeveloperguide!Ti . . . . [cited by applicant]
European Patent Office; Extended European Search Report; Application No. 22811861.8; Feb. 17, 2025; 8 pgs. [cited by applicant]