IP Library Granted Patent US 12,517,880
Granted Patent B1
US 12,517,880 · App. 18/067,684 · Granted Jan 6, 2026

Probabilistic data structures embedded in database indexes

Inventor: James Christopher Sorenson, III (Madison, WI)
Assignee: Amazon Technologies, Inc.
G06F16/2246G06F11/1451G06F16/2358G06F16/278
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,517,880
App. No.
18/067,684
Granted
Jan 6, 2026
Kind
B1
Abstract

Embedded probabilistic data structures may be maintained in database indexes. Different data pages linked in a database index structure may have different respective probabilistic data structures stored within the index. When an access request for the database is received, the probabilistic data structure for a particular database page that is identified as possibly storing an item for the access request may be evaluated to determine whether or not to obtain the data page. If the probabilistic data structure indicates the possible presence of the item, then the data page is obtained to perform the request. If the probabilistic data structure indicates that the item is not present, then the data page is not obtained.

Claims (55)

1 . A system, comprising:

at least one processor; and

a memory, storing program instructions that when executed on or across the one or more computing devices, cause the one or more computing devices to implement a database system, configured to:

receiving a request to access an item;

perform the request to access the item, wherein to perform the request, the database system is configured to:

traverse an index structure comprising a plurality of index nodes, wherein the traversal identifies both:

an index node that references a data page to obtain to perform the request, wherein the data page is one of a plurality of data pages that store database data; and

a probabilistic data structure maintained for the data page within the index node out of a plurality of probabilistic data structures that are separately stored for the plurality of data pages within different ones of the plurality of index nodes;

evaluate the probabilistic data structure maintained for the data page within the index node to determine that the data page should not be obtained as part of performing the request, wherein the probabilistic data structure indicates whether a given item is possibly stored in the data page or not stored in the data page.

2 . The system of claim 1 , wherein the database system is further configured to:

receive a different request to access a different item;

perform the different request to access the different item, wherein to perform the request, the database system is configured to:

traverse the index structure that includes the index node to identify the data page to obtain to perform the different request;

evaluate the probabilistic data structure maintained for the data page to determine that the data page should be obtained as part of performing the different request; and

obtain the data page to perform the different request to access the different item.

3 . The system of claim 1 , wherein the database system is further configured to update the probabilistic data structure for the data page according to a change modifying which items are present in the data page.

4 . The system of claim 1 , wherein the database system is further configured to generate a new probabilistic data structure in the database data as part of compacting one or more data object files stored as part of a backup of the data base.

5 . A method, comprising:

receiving a request to access an item at a database system;

performing, by the database system, the request to access the item, comprising:

evaluating, by the database system, an index structure comprising a plurality of index nodes, wherein the evaluating identifies both:

an index node for a data page to obtain to perform the request, wherein the data page is one of a plurality of data pages that store database data; and

a probabilistic data structure maintained for the data page within the index node out of a plurality of probabilistic data structures that are separately stored for the plurality of data pages within different ones of the plurality of index nodes;

evaluating, by the database system, the probabilistic data structure maintained for the data page within the index node to determine that the data page should not be obtained as part of performing the request, wherein the probabilistic data structure indicates whether a given item is possibly stored in the data page or not stored in the data page.

6 . The method of claim 5 , further comprising:

receiving a different request to access a different item at the database system;

performing, by the database system, the different request to access the different item, comprising:

evaluating, by the database system, the index structure to identify the data page to obtain to perform the different request;

evaluating, by the database system, the probabilistic data structure maintained for the data page to determine that the data page should be obtained as part of performing the different request; and

obtaining, by the database system, the data page to perform the different request to access the different item.

7 . The method of claim 5 , wherein the probabilistic data structure is a bloom filter.

8 . The method of claim 5 , wherein the index structure is a b+tree.

9 . The method of claim 5 , further comprising updating the probabilistic data structure for the data page according to a change modifying which items are present in the data page.

10 . The method of claim 5 , further comprising generating a new probabilistic data structure in the database data as part of compacting one or more data object files stored as part of a backup of the data base.

11 . The method of claim 5 , wherein the index structure is stored as part of a data object generated from a change log for the database data that is stored as part of a backup of the database data and wherein the database data is a partition of a database.

12 . The method of claim 5 , wherein the database system is implemented as part of a non-relational database service offered by a provider network.

13 . One or more non-transitory, computer-readable storage media, storing program instructions that when executed on or across one or more computing devices cause the one or more computing devices to implement:

receiving a request to access an item at a database system;

performing, by the database system, the request to access the item, comprising:

evaluating, by the database system, an index structure comprising a plurality of index nodes, wherein the evaluating identifies both:

an index node for a data page to obtain to perform the request, wherein the data page is one of a plurality of data pages that store database data; and

a probabilistic data structure maintained for the data page within the index node out of a plurality of probabilistic data structures that are separately stored for the plurality of data pages within different ones of the plurality of index nodes; and

evaluating, by the database system, probabilistic data structure maintained for the data page within the index node to determine that the data page should not be obtained as part of performing the request, wherein the probabilistic data structure indicates whether a given item is possibly stored in the data page or not stored in the data page.

14 . The one or more non-transitory, computer-readable storage media of claim 13 , storing further instructions that when executed on or across the one or more computing devices, cause the one or more computing devices to further implement:

receiving a different request to access a different item at the database system;

performing, by the database system, the different request to access the different item, comprising:

evaluating, by the database system, the index structure to identify the data page to obtain to perform the different request;

evaluating, by the database system, the probabilistic data structure maintained for the data page to determine that the data page should be obtained as part of performing the different request; and

obtaining, by the database system, the data page to perform the different request to access the different item.

15 . The one or more non-transitory, computer-readable storage media of claim 13 , wherein the probabilistic data structure is a bloom filter.

16 . The one or more non-transitory, computer-readable storage media of claim 13 , storing further instructions that when executed on or across the one or more computing devices, cause the one or more computing devices to further implement updating the probabilistic data structure for the data page according to a change modifying which items are present in the data page.

17 . The one or more non-transitory, computer-readable storage media of claim 13 , wherein the index structure is a b+tree.

18 . The one or more non-transitory, computer-readable storage media of claim 13 , storing further instructions that when executed on or across the one or more computing devices, cause the one or more computing devices to further implement generating a new probabilistic data structure in the database data as part of compacting one or more data object files stored as part of a backup of the data base.

19 . The one or more non-transitory, computer-readable storage media of claim 13 , wherein the index structure is stored as part of a data object generated from a change log for the database data that is stored as part of a backup of the database data and wherein the database data is a partition of a database.

20 . The one or more non-transitory, computer-readable storage media of claim 13 , wherein the database system is implemented as part of a relational database service offered by a provider network.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2023
From: SORENSON, JAMES CHRISTOPHER, III
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 065780/0173 →
References Cited (27)
US 8498995B1 · Gond et al. · 2013 [cited by applicant]
US 8817541B2 · Li et al. · 2014 [cited by applicant]
US 8849825B1 · Mchugh · 2014 [cited by applicant]
US 8972337B1 · Gupta · 2015 [cited by examiner]
US 9842132B2 · McKenna et al. · 2017 [cited by applicant]
US 9953102B2 · Zhou et al. · 2018 [cited by applicant]
US 10133767B1 · Cole · 2018 [cited by applicant]
US 10649980B2 · Newman · 2020 [cited by applicant]
US 11928099B1 · Sorenson, III et al. · 2024 [cited by applicant]
US 20030163439A1 · Hankin et al. · 2003 [cited by applicant]
US 20050283567A1 · Popescu-Stanesti et al. · 2005 [cited by applicant]
US 20060271784A1 · Bolosky et al. · 2006 [cited by applicant]
US 20100306222A1 · Freedman · 2010 [cited by examiner]
US 20110307736A1 · George · 2011 [cited by applicant]
US 20140082316A1 · Erdmann · 2014 [cited by examiner]
US 20150268878A1 · Amit et al. · 2015 [cited by applicant]
US 20150370644A1 · Graefe · 2015 [cited by examiner]
US 20160085473A1 · Hershey · 2016 [cited by applicant]
US 20180253468A1 · Gurajada et al. · 2018 [cited by applicant]
US 20190097971A1 · Coleman · 2019 [cited by applicant]
US 20200125660A1 · Shuma · 2020 [cited by applicant]
US 20220229732A1 · Chitloor · 2022 [cited by applicant]
US 20220269570A1 · Agarwal et al. · 2022 [cited by applicant]
WO 2021037684 · 2021 [cited by applicant]
WO 2022098725 · 2022 [cited by applicant]
U.S. Appl. No. 18/067,692, filed Dec. 16, 2022, James Christopher Sorenson, III. [cited by applicant]
U.S. Appl. No. 18/439,526, filed Feb. 12, 2024, James Christopher Sorenson, III, et al. [cited by applicant]