IP Library Granted Patent US 8,484,438
Granted Patent B2
US 8,484,438 · App. 12/493,523 · Granted Jul 9, 2013

Hierarchical bloom filters for facilitating concurrency control

Inventor: Robert E. Cypher (Saratoga, CA)
Assignee: Oracle America, Inc.
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 8,484,438
App. No.
12/493,523
Granted
Jul 9, 2013
Kind
B2
Abstract

Some embodiments provide a system that facilitates concurrency control in a computer system. During operation, the system generates a set of signatures associated with memory accesses in the computer system. To generate the signatures, the system creates a set of hierarchical Bloom filters (HBFs) corresponding to the signatures, and populates the HBFs using addresses associated with the memory accesses. Next, the system compares the HBFs to detect a potential conflict associated with the memory accesses. Finally, the system manages concurrent execution in the computer system based on the detected potential conflict.

Claims (53)

1. A computer-implemented method for facilitating concurrency control in a computer system, comprising:

generating a set of signatures associated with memory accesses in the computer system by:

creating a set of hierarchical Bloom filters (HBFs) corresponding to the signatures, wherein the set of HBFs comprises a higher-level Bloom filter and a set of lower-level Bloom filters referenced using array positions in the higher-level Bloom filter; and

populating the HBFs using addresses associated with the memory accesses, which comprises:

calculating a first set of hash values using the addresses;

using the first set of hash values to calculate a second set of hash values; and

setting bits in the higher-level Bloom filters in accordance with the first set of hash values and setting the bits in the lower-level Bloom filters in accordance with the second set of hash values;

comparing the HBFs to detect a potential conflict associated with the memory accesses; and

managing concurrent execution in the computer system based on the detected potential conflict.

2. The computer-implemented method of claim 1 , wherein a subset of the lower-level Bloom filters is further referenced using array positions in other lower-level Bloom filters.

3. The computer-implemented method of claim 1 , wherein comparing the HBFs to detect the potential conflict involves:

obtaining a bitwise intersection of two of the HBFs; and

examining array positions in the bitwise intersection for nonzero values.

4. The computer-implemented method of claim 1 , wherein the higher-level Bloom filter and the lower-level Bloom filters include at least one of a one-dimensional Bloom filter and a two-dimensional Bloom filter.

5. The computer-implemented method of claim 1 , wherein comparing the HBFs involves at least one of:

comparing two write set signatures; and

comparing a read set signature and a write set signature.

6. The computer-implemented method of claim 1 , wherein managing concurrent execution in the computer system involves:

managing transactional execution in the computer system; or

providing cache coherence in the computer system.

7. A system for facilitating concurrency control in a computer system, comprising:

a storage apparatus comprising a set of hierarchical Bloom filters (HBFs) corresponding to a set of signatures associated with memory accesses in the computer system;

an execution mechanism within a processor configured to:

create the HBFs, wherein each of the HBFs comprises a higher-level Bloom filter and a set of lower-level Bloom filters referenced using array positions in the higher-level Bloom filter; and

populate the HBFs using addresses associated with the memory accesses, which comprises:

calculating a first set of hash values using the addresses;

using the first set of hash values to calculate a second set of hash values; and

setting bits in the higher-level Bloom filters in accordance with the first set of hash values and setting the bits in the lower-level Bloom filters in accordance with the second set of hash values; and

a coherency mechanism associated with the processor, wherein the coherency mechanism is configured to compare the HBFs to detect a potential conflict associated with the memory accesses,

wherein the execution mechanism is configured to manage concurrent execution in the computer system based on the detected potential conflict.

8. The system of claim 7 , wherein a subset of the lower-level Bloom filters is further referenced using array positions in other lower-level Bloom filters.

9. The system of claim 7 , wherein comparing the HBFs to detect the potential conflict involves:

obtaining a bitwise intersection of two of the HBFs; and

examining array positions in the bitwise intersection for nonzero values.

10. The system of claim 7 , wherein the higher-level Bloom filter and the lower-level Bloom filters include at least one of a one-dimensional Bloom filter and a two-dimensional Bloom filter.

11. The system of claim 7 , wherein comparing the HBFs involves at least one of:

comparing two write set signatures; and

comparing a read set signature and a write set signature.

12. The system of claim 7 , wherein managing concurrent execution in the computer system involves:

managing transactional execution in the computer system; or

providing cache coherence in the computer system.

13. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for facilitating concurrency control in a computer system, the method comprising:

generating a set of signatures associated with memory accesses in the computer system by:

creating a set of hierarchical Bloom filters (HBFs) corresponding to the signatures, wherein each of the HBFs comprises a higher-level Bloom filter and a set of lower-level Bloom filters referenced using array positions in the higher-level Bloom filter; and

populating the HBFs using addresses associated with the memory accesses, which comprises:

calculating a first set of hash values using the addresses;

using the first set of hash values to calculate a second set of hash values; and

setting bits in the higher-level Bloom filters in accordance with the first set of hash values and setting the bits in the lower-level Bloom filters in accordance with the second set of hash values;

comparing the HBFs to detect a potential conflict associated with the memory accesses; and

managing concurrent execution in the computer system based on the detected potential conflict.

14. The non-transitory computer-readable storage medium of claim 13 , wherein comparing the HBFs to detect the potential conflict involves:

obtaining a bitwise intersection of two of the HBFs; and

examining array positions in the bitwise intersection for nonzero values.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037311/0206 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2009
From: CYPHER, ROBERT E.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 023023/0861 →
Continuity (1)
Related Publication 20100332765A1 · Dec 30, 2010