IP Library Granted Patent US 8,666,991
Granted Patent B2
US 8,666,991 · App. 13/328,547 · Granted Mar 4, 2014

Combinators to build a search engine

Inventors: Keith Peters (San Francisco, CA); Bryn Robert Dole (Sunnyvale, CA); Michael Markson (San Francisco, CA); Robert Michael Saliba (San Francisco, CA); Rich Skrenta (San Carlos, CA); Robert N. Truel (San Carlos, CA); Gregory B. Lindahl (Sunnyvale, CA)
Assignee: Blekko, 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,666,991
App. No.
13/328,547
Granted
Mar 4, 2014
Kind
B2
Abstract

A method of counting items in a database system. The database system having nodes comprising processors and memory where the memory stores programs to be executed by the processors. Identifying and counting M unique number of items. Determining and storing a logcount for M unique items.

Claims (45)

1. A method of counting items in a database system comprising:

at the database system having one or more nodes comprising,

one or more processors and memory, the memory of the one or more nodes storing one or more programs to be executed by the one or more processors;

identifying an M number of items;

counting unique items of the M number of items;

determining a logcount for the unique items of the M number of items; and

storing the logcount for the unique items,

wherein determining a logcount comprises,

partitioning each of the unique items of the M number of items into a set of N number of parts, wherein each N part includes a subset of the unique items of the M number of items and wherein each subset of unique items is expressed as a bit value;

finding a lowest unset bit in each of the N number of parts for each subset of the M number of items;

setting the lowest bit in N intermediate values for each subset of unique items in the set of N parts;

averaging the lowest unset bit values of the N intermediate values for each set of N parts; and

applying the averaged value as a log value expressed in powers-of-two.

2. The method of claim 1 , further comprising,

after applying the averaged value as a log value expressed in power-of-two,

storing in the memory of the database the N intermediate values.

3. The method of claim 1 , wherein determining a logcount further includes determining an approximate count for the set of unique items to an accuracy equal to approximately plus or minus 50%.

4. The method of claim 1 , wherein larger bit values in the N intermediate values are less likely to be set than smaller bit sets.

5. The method of claim 1 , wherein each N part in the set of N parts includes 32 bits and total logcount storage needed includes 128 bits.

6. The method of claim 1 , wherein the M number of items include URLs of incoming links to a website.

7. The method of claim 1 , where the M number of items include recipients of email with a given signature, used to detect email spam.

8. The method of claim 1 , where the M number of items include Class-C IP networks of senders of email with a given signature, used to detect email spam from bot nets.

9. The method of claim 1 , where the M number of items include geographical locations of web pages which link a webpage.

10. The method of claim 1 , where the M number of items include IP subnets of the internet servers containing web pages which link a webpage.

11. A method of counting items in a database system comprising:

at the database system having one or more nodes comprising one or more processors and memory, the memory of the one or more nodes storing one or more programs to be executed by the one or more processors;

identifying an M number of items;

counting unique items of the M number of items;

determining a logcount for the unique items of the M number of items; and

storing the logcount for the unique items,

wherein determining a logcount includes:

partitioning each of the unique items of the M number of items into a set of N number of parts,

wherein each N part includes a subset of the unique items of the M number of items, and

wherein each subset of unique items is expressed as a bit value;

finding a lowest unset bit in each of the N number of parts for each subset of the M number of items;

choosing which bit to set in the N intermediate values using an arbitrary exponential decay factor;

averaging the lowest unset bit values of the N intermediate values for each set of N parts; and

applying the average value as a log value expressed with an arbitrary base related to the arbitrary exponential decay factor.

12. The method of claim 11 wherein larger bit values in the N intermediate values are less likely to be set than smaller bit sets.

13. The method of claim 11 wherein each N part in the set of N parts includes 32 bits and total logcount storage needed includes 128 bits.

14. The method of claim 11 wherein the M number of items include URLs of incoming links to a website.

15. The method of claim 11 where the M number of items include recipients of email with a given signature, used to detect email spam.

16. The method of claim 11 where the M number of items include Class-C IP networks of senders of email with a given signature, used to detect email spam from bot nets.

17. The method of claim 11 where the M number of items include geographical locations of web pages which link a webpage.

18. The method of claim 11 where the M number of items include IP subnets of the internet servers containing web pages which link a webpage.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 19, 2015
From: BLEKKO, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 035671/0719 →
RELEASE THE ASSIGNMENT Recorded Apr 3, 2015
From: EAST WEST BANK
To: BLEKKO, INC.
Reel/Frame 035624/0121 →
RELEASE OF SECURITY INTEREST Recorded Jan 29, 2015
From: VENTURE LENDING & LEASING VI, INC.
To: BLEKKO, INC.
Reel/Frame 034842/0216 →
SECURITY INTEREST Recorded Jun 6, 2014
From: BLEKKO, INC.
To: EAST WEST BANK
Reel/Frame 033147/0628 →
SECURITY AGREEMENT Recorded Jun 4, 2013
From: BLEKKO, INC.
To: VENTURE LENDING & LEASING VI, INC.
Reel/Frame 030548/0079 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2012
From: PETERS, KEITH; DOLE, BRYN ROBERT; MARKSON, MICHAEL; SALIBA, ROBERT MICHAEL; SKRENTA, RICH; TRUEL, ROBERT N.; LINDAHL, GREGORY B.
To: BLEKKO, INC.
Reel/Frame 027816/0006 →
Continuity (3)
Continuation PCTUS2010039395 · Jun 21, 2010
Provisional Application 61218889 · Jun 19, 2009
Related Publication 20130091144A1 · Apr 11, 2013