IP Library › Granted Patent US 12,481,656
Granted Patent B2
US 12,481,656 · App. 18/221,753 · Granted Nov 25, 2025

Bloom filter for avoiding partition loading

Inventors: Christian Bensberg (Heidelberg, DE); Kai Stammerjohann (Wiesloch, DE); Frederik Transier (Bammental, DE)
Assignee: SAP SE
G06F16/2455G06F16/334
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,481,656
App. No.
18/221,753
Granted
Nov 25, 2025
Kind
B2
Abstract

Embodiments are described for a database management system comprising a memory and at least one processor coupled to the memory. The at least one processor is configured to receive a query that corresponds to a data slice and determine a bloom filter based on the query. The at least one processor is further configured to determine that the data slice includes data requested by the query based on the bloom filter and in response to determining that the data slice includes the data requested by the query, load the data slice to the memory.

Claims (70)

1 . A database management system, comprising:

a memory; and

at least one processor coupled to the memory and configured to:

receive a query to retrieve data that corresponds to a data slice, wherein the query includes one or more identifiers, wherein the one or more identifiers correspond to one or more data properties included in the data slice;

determine whether a bloom filter includes the one or more identifiers based on the query;

in response to determining that the bloom filter includes the one or more identifiers, determine that the data slice includes the data requested by the query based on the bloom filter; and

in response to determining that the data slice includes the data requested by the query, load the data slice to the memory.

2 . The database management system of claim 1 , wherein the at least one processor is further configured to:

receive a second query that corresponds to a second data slice;

determine that no bloom filter is available for the second query; and

in response to determining that no bloom filter is available, load the second data slice to the memory.

3 . The database management system of claim 2 , wherein to determine that no bloom filter is available, the at least one processor is further configured to determine that no bloom filter corresponds to the second data slice.

4 . The database management system of claim 2 , wherein to determine that no bloom filter is available, the at least one processor is further configured to:

determine that a second bloom filter corresponds to the data slice;

determine that the second query indicates an identifier; and

determine that the second bloom filter does not correspond to the identifier.

5 . The database management system of claim 4 , wherein the at least one processor is further configured to:

in response to determining that the second bloom filter does not correspond to the identifier, add 1 to a bloom filter counter of the second bloom filter;

determine that the bloom filter counter is more than a threshold; and

invalidate the bloom filter.

6 . The database management system of claim 5 , wherein the at least one processor is further configured to create a new bloom filter for the second data slice, wherein the new bloom filter corresponds to at least the identifier.

7 . The database management system of claim 1 , wherein the at least one processor is further configured to:

receive a further query corresponding to a further data slice;

determine a further bloom filter based on the further query;

determine that the further data slice does not include data requested by the further query based on the further bloom filter; and

in response to determining that the further data slice does not include the data requested by the further query, refrain from loading the further data slice to the memory.

8 . The database management system of claim 1 , wherein the at least one processor is further configured to:

determine a change on the data slice within a predetermined time period; and

invalidate the bloom filter.

9 . A computer-implemented method for loading operations, comprising:

receiving a query to retrieve data that corresponds to a data slice, wherein the query includes one or more identifiers, wherein the one or more identifiers correspond to one or more data properties included in the data slice;

determining whether a bloom filter includes the one or more identifiers based on the query;

in response to determining that the bloom filter includes the one or more identifiers, determining that the data slice includes the data requested by the query based on the bloom filter; and

in response to determining that the data slice includes the data requested by the query, loading the data slice to a memory.

10 . The computer-implemented method of claim 9 , further comprising:

receiving a second query that corresponds to a second data slice;

determining that no bloom filter is available for the second query; and

in response to determining that no bloom filter is available, loading the second data slice to the memory.

11 . The computer-implemented method of claim 10 , wherein the determining that no bloom filter is available further comprises determining that no bloom filter corresponds to the second data slice.

12 . The computer-implemented method of claim 10 , wherein the determining that no bloom filter is available further comprises:

determining that a second bloom filter corresponds to the data slice;

determining that the second query indicates an identifier; and

determining that the second bloom filter does not correspond to the identifier.

13 . The computer-implemented method of claim 12 , further comprising:

in response to determining that the second bloom filter does not correspond to the identifier, adding 1 to a bloom filter counter of the second bloom filter;

determining that the bloom filter counter is more than a threshold; and

invalidating the bloom filter.

14 . The computer-implemented method of claim 13 , further comprising creating a new bloom filter for the second data slice, wherein the new bloom filter corresponds to at least the identifier.

15 . The computer-implemented method of claim 9 , further comprising:

receiving a further query corresponding to a further data slice;

determining a further bloom filter based on the further query;

determining that the further data slice does not include data requested by the further query based on the further bloom filter; and

in response to determining that the further data slice does not include the data requested by the further query, refraining from loading the further data slice to the memory.

16 . The computer-implemented method of claim 9 , further comprising:

determining a change on the data slice within a predetermined time period; and

invalidating the bloom filter.

17 . A non-transitory computer-readable device having instructions stored thereon that, when executed by at least one computing device, cause the at least one computing device to perform operations, the operations comprising:

receiving a query to retrieve data that corresponds to a data slice, wherein the query includes one or more identifiers, wherein the one or more identifiers correspond to one or more data properties included in the data slice;

determining whether a bloom filter includes the one or more identifiers based on the query;

in response to determining that the bloom filter includes the one or more identifiers, determining that the data slice includes the data requested by the query based on the bloom filter; and

in response to determining that the data slice includes the data requested by the query, loading the data slice to a memory.

18 . The non-transitory computer-readable device of claim 17 , wherein the operations further comprises:

receiving a second query that corresponds to a second data slice;

determining that no bloom filter is available for the second query; and

in response to determining that no bloom filter is available, loading the second data slice to the memory.

19 . The non-transitory computer-readable device of claim 18 , wherein the determining that no bloom filter is available further comprises determining that no bloom filter corresponds to the second data slice.

20 . The non-transitory computer-readable device of claim 18 , wherein the determining that no bloom filter is available further comprises:

determining that a second bloom filter corresponds to the data slice;

determining that the second query indicates an identifier; and

determining that the second bloom filter does not correspond to the identifier.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2023
From: BENSBERG, CHRISTIAN; STAMMERJOHANN, KAI; TRANSIER, FREDERIK
To: SAP SE
Reel/Frame 064438/0673 →
Continuity (1)
Related Publication 20250021562A1 · Jan 16, 2025
References Cited (22)
US 8065316B1 · Baker et al. · 2011 [cited by applicant]
US 9367574B2 · Gupta · 2016 [cited by examiner]
US 10769150B1 · Cruanes · 2020 [cited by examiner]
US 11188535B2 · Chen · 2021 [cited by applicant]
US 11347808B1 · Plenderleith et al. · 2022 [cited by applicant]
US 20080147714A1 · Breternitz · 2008 [cited by examiner]
US 20090037500A1 · Kirshenbaum · 2009 [cited by examiner]
US 20120011150A1 · Swaminathan et al. · 2012 [cited by applicant]
US 20130297694A1 · Ghosh · 2013 [cited by applicant]
US 20180034849A1 · Huston, III et al. · 2018 [cited by applicant]
US 20180157716A1 · Constandt et al. · 2018 [cited by applicant]
US 20200278977A1 · Halstead et al. · 2020 [cited by applicant]
US 20210286793A1 · OKeeffe · 2021 [cited by examiner]
US 20210303564A1 · Mahale et al. · 2021 [cited by applicant]
US 20220222298A1 · Chen · 2022 [cited by examiner]
US 20220284025A1 · Adams · 2022 [cited by examiner]
US 20230119688A1 · Huang · 2023 [cited by examiner]
CN 113051351A · 2021 [cited by examiner]
CN 113297211A · 2021 [cited by examiner]
CN 113312313A · 2021 [cited by examiner]
TW I716016B · 2021 [cited by examiner]
Bensberg, C. et al., Unpublished U.S. Appl. No. 18/221,757, filed Jul. 13, 2023, entitled “Used Identifier Cache”. [cited by applicant]