IP Library Granted Patent US 9,805,100
Granted Patent B1
US 9,805,100 · App. 15/283,918 · Granted Oct 31, 2017

Bitmap index including internal metadata storage

Inventors: Travis Turner (Austin, TX); Todd Wesley Gruben (Cedar Park, TX); Ben Johnson (Denver, CO); Cody Stephen Soyland (Austin, TX); Higinio O. Maycotte (Austin, TX)
Assignee: Pilosa Corp.
G06F17/3053G06F17/30324G06F17/30554
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 9,805,100
App. No.
15/283,918
Granted
Oct 31, 2017
Kind
B1
Abstract

A method includes receiving a first signal and updating a bitmap index responsive to the first signal. The bitmap index includes a plurality of bit strings, where a value stored in a particular location in each of the bit strings indicates whether a corresponding signal associated with a signal source has been received. Updating the bitmap index responsive to the first signal includes updating a first bit of the bitmap index and updating a first metadata value stored in the bitmap index. The method also includes receiving a second signal and updating the bitmap index responsive to the second signal. Updating the bitmap index responsive to the second signal includes updating a second bit of the bitmap index and updating a second metadata value stored in the bitmap index.

Claims (44)

1. A method comprising:

receiving a first signal at a computing device comprising a processor;

updating a bitmap index responsive to the first signal, wherein the bitmap index is distributed across a plurality of storage devices, and wherein the bitmap index includes a plurality of bit strings, wherein a value stored in a particular location in each of the bit strings indicates whether a corresponding signal associated with a signal source has been received, and wherein updating the bitmap index responsive to the first signal includes updating a first bit of the bitmap index and updating a first metadata value stored in the bitmap index;

receiving a second signal at the computing device; and

updating the bitmap index responsive to the second signal, wherein updating the bitmap index responsive to the second signal includes updating a second bit of the bitmap index and updating a second metadata value stored in the bitmap index.

2. The method of claim 1 , wherein:

the first metadata value corresponds to at least one bit string of the plurality of bit strings,

the second metadata value corresponds to at least one signal source of a plurality of signal sources, or

a combination thereof.

3. The method of claim 1 , further comprising generating query results based on a query, wherein the query results identify at least one signal associated with at least one bit string of the plurality of bit strings, at least one signal source of a plurality of signal sources, and at least one of the first metadata value or the second metadata value.

4. The method of claim 1 , wherein the first metadata value and the second metadata value are part of respective name-value pairs included in the bitmap index.

5. The method of claim 1 , wherein the first metadata value corresponds to a count of signal sources for which a corresponding signal has been received.

6. The method of claim 1 , wherein the first metadata value corresponds to a sort index.

7. The method of claim 1 , wherein a plurality of bitmap indexes are associated with a plurality of websites, and wherein the first metadata value is based on a comparison of a popularity of a signal with respect to a website and a popularity of the signal with respect to the plurality of websites.

8. The method of claim 1 , wherein the signal source corresponds to a user, a computing device associated with the user, or a computing device not associated with any user.

9. The method of claim 1 , wherein the second metadata value corresponds to user contact information.

10. The method of claim 3 , wherein the query results are sorted based on at least one of the first metadata value or the second metadata value.

11. The method of claim 1 , wherein the bitmap index represents data stored in a data store.

12. The method of claim 11 , wherein the data stored in the data store is determined based at least in part on event signals received from devices associated with a plurality of users.

13. The method of claim 1 , wherein one or more of the plurality of bit strings corresponds to a demographic attribute, a behavior, a brand affinity, or a combination thereof.

14. The method of claim 1 , wherein each of the plurality of bit strings is stored as one or more distributed slices, and wherein at least a first slice of a particular bit string of the plurality of bit strings is stored in a different storage device than a second slice of the particular bit string.

15. The method of claim 3 , further comprising generating a query execution plan for the query, wherein the query execution plan identifies:

one or more set operations;

that one or more first storage nodes are to send stored portions of one or more bit strings to a second storage node; and

that the second storage node is to perform the one or more set operations with respect to:

the portions of the one or more bit strings received from the one or more first storage nodes; and

portions of one or more bit strings stored at the second storage node; and

that the second storage node is to concatenate results of performing the one or more set operations to generate a result bit string that indicates a result of the query.

16. The method of claim 15 , wherein the query results are determined without accessing a lookup table that is external to the bitmap index.

17. An apparatus comprising:

a processor; and

a memory storing instructions executable by the processor to perform operations comprising:

receiving a first signal;

updating a bitmap index responsive to the first signal, wherein the bitmap index is distributed across a plurality of storage devices, and wherein the bitmap index includes a plurality of bit strings, wherein a value stored in a particular location in each of the bit strings indicates whether a corresponding signal associated with a signal source has been received, and wherein updating the bitmap index responsive to the first signal includes updating a first bit of the bitmap index and updating a first metadata value stored in the bitmap index;

receiving a second signal; and

updating the bitmap index responsive to the second signal, wherein

updating the bitmap index responsive to the second signal includes updating a second bit of the bitmap index and updating a second metadata value stored in the bitmap index.

18. The apparatus of claim 17 , wherein the first metadata value and the second metadata value are part of respective name-value pairs included in the bitmap index, wherein the first metadata value corresponds to a count of users for whom a corresponding signal has been received, a sort index, or a comparison of a popularity of a signal with respect to a website and a popularity of the signal with respect to a plurality of websites, and wherein the second metadata value corresponds to user contact information.

19. A computer-readable storage device storing instructions that,

when executed, cause a computer to perform operations comprising:

receiving a first signal;

updating a bitmap index responsive to the first signal, wherein the bitmap index is distributed across a plurality of storage devices, and wherein the bitmap index includes a plurality of bit strings, wherein a value stored in a particular location in each of the bit strings indicates whether a corresponding signal associated with a signal source has been received, and wherein updating the bitmap index responsive to the first signal includes updating a first bit of the bitmap index and updating a first metadata value stored in the bitmap index;

receiving a second signal; and

updating the bitmap index responsive to the second signal, wherein updating the bitmap index responsive to the second signal includes updating a second bit of the bitmap index and updating a second metadata value stored in the bitmap index.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2025
From: CIRCUIT, INC.
To: CIRCUIT HOLDINGS, INC.
Reel/Frame 072497/0436 →
MERGER AND CHANGE OF NAME Recorded Aug 15, 2024
From: MOLECULA CORP.; CIRCUIT MERGER SUB, INC.
To: CIRCUIT, INC.
Reel/Frame 068300/0045 →
SECURITY INTEREST Recorded Feb 12, 2024
From: MOLECULA CORP.
To: FIRST-CITIZENS BANK & TRUST COMPANY (SUCCESSOR BY PURCHASE TO THE FEDERAL DEPOSIT INSURANCE CORPORATION AS RECEIVER FOR SILICON VALLEY BRIDGE BANK, N.A. (AS SUCCESSOR TO SILICON VALLEY BANK))
Reel/Frame 066440/0187 →
CHANGE OF NAME Recorded Nov 22, 2019
From: PILOSA CORP.
To: MOLECULA CORP.
Reel/Frame 051097/0072 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2017
From: UMBEL CORP.
To: PILOSA CORP.
Reel/Frame 042087/0022 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2016
From: TURNER, TRAVIS; GRUBEN, TODD WESLEY; JOHNSON, BEN; SOYLAND, CODY STEPHEN; MAYCOTTE, HIGINIO O.
To: UMBEL CORPORATION
Reel/Frame 039923/0945 →
Continuity (1)
Continuation 15143139 · Apr 29, 2016