IP Library Granted Patent US 9,183,242
Granted Patent B1
US 9,183,242 · App. 14/221,786 · Granted Nov 10, 2015

Analyzing frequently occurring data items

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,183,242
App. No.
14/221,786
Granted
Nov 10, 2015
Kind
B1
Abstract

Methods, systems, and computer program products for determining frequently occurring data items are disclosed. These include, counting distinct categories of a plurality of data items using an ordered set of counters, wherein each of the counters is associated with one of the distinct categories and represents a quantity of the data items in the associated one of the distinct categories, and wherein the counting includes updating counters in the ordered set and a global decrement counter when one of the data items fails to match at least one of the distinct categories associated with the counters of the ordered set and when the ordered set is full. These further include, reporting, for each of the counters in the ordered set, a lower bound for the associated one of the distinct categories, wherein the lower bound is based upon a value of the counter and the global decrement counter.

Claims (38)

1. A method for determining frequently occurring data items, comprising:

counting, at a node in a merge tree, the occurrence of data items using an ordered set of counters, wherein each of the counters is associated with one of a plurality of distinct categories and represents a quantity of the data items in the associated one of the distinct categories, wherein the counting includes decrementing a subset of the counters in the ordered set and incrementing a global decrement counter when one of the data items fails to match at least one of the distinct categories associated with the counters of the ordered set and when the ordered set is full;

storing the ordered set of counters in a priority queue, wherein the priority queue comprises a linked list;

storing an index to the ordered set of counters in the priority queue, wherein the index comprises a hashed index; and

passing a count of one of the distinct categories of the ordered set of counters and a count of the global decrement counter to a higher level node in the merge tree.

2. The method of claim 1 , wherein the passed count of the distinct category is represented relative to the count of the global decrement counter.

3. The method of claim 1 , further comprising:

receiving a count of a distinct category from a lower level node in the merge tree.

4. The method of claim 3 , further comprising:

updating a counter associated with the distinct category associated with the received count; and

reordering the counter in the priority queue based on the updated count.

5. The method of claim 1 , wherein a counter of the ordered set of counters is associated with a plurality of distinct categories.

6. A system for determining frequently occurring data items, comprising:

at least one processor;

a counting module, configured to be executed on the at least one processor and further configured to:

count, at a node in a merge tree, the occurrence of data items using an ordered set of counters, wherein each of the counters is associated with one of a plurality of distinct categories and represents a quantity of the data items in the associated one of the distinct categories, wherein the counting includes decrementing a subset of the counters in the ordered set and incrementing a global decrement counter when one of the data items fails to match at least one of the distinct categories associated with the counters of the ordered set and when the ordered set is full;

store the ordered set of counters in a priority queue, wherein the priority queue comprises a linked list;

store an index to the ordered set of counters in the priority queue, wherein the index comprises a hashed index; and

a reporting module, configured to be executed on the at least one processor and further configured to pass a count of one of the distinct categories of the ordered set of counters and a count of the global decrement counter to a higher level node in the merge tree.

7. The system of claim 6 , wherein the passed count of the distinct category is represented relative to the count of the global decrement counter.

8. The system of claim 6 , wherein the counting module is further configured to:

receive a count of a distinct category from a lower level node in the merge tree.

9. The system of claim 8 , wherein the counting module is further configured to:

update a counter associated with the distinct category associated with the received count; and

reorder the counter in the priority queue based on the updated count.

10. The system of claim 6 , wherein a counter of the ordered set of counters is associated with a plurality of distinct categories.

11. An article of manufacture comprising a computer readable storage medium having, encoded thereon, instructions that when executed by a computing device cause the computing device to perform operations for determining frequently occurring data items:

counting, at a node in a merge tree, the occurrence of data items using an ordered set of counters, wherein each of the counters is associated with one of a plurality of distinct categories and represents a quantity of the data items in the associated one of the distinct categories, wherein the counting includes decrementing a subset of the counters in the ordered set and incrementing a global decrement counter when one of the data items fails to match at least one of the distinct categories associated with the counters of the ordered set and when the ordered set is full;

storing the ordered set of counters in a priority queue, wherein the priority queue comprises a linked list;

storing an index to the ordered set of counters in the priority queue, wherein the index comprises a hashed index; and

passing a count of one of the distinct categories of the ordered set of counters and a count of the global decrement counter to a higher level node in the merge tree.

12. The article of manufacture of claim 11 , wherein the passed count of the distinct category is represented relative to the count of the global decrement counter.

13. The article of manufacture of claim 11 , further comprising:

receiving a count of a distinct category from a lower level node in the merge tree.

14. The article of manufacture of claim 13 , further comprising:

updating a counter associated with the distinct category associated with the received count; and

reordering the counter in the priority queue based on the updated count.

15. The article of manufacture of claim 11 , wherein a counter of the ordered set of counters is associated with a plurality of distinct categories.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044334/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 27, 2014
From: PLEVYAK, JOHN; MANJHI, AMIT KUMAR
To: GOOGLE INC.
Reel/Frame 032542/0680 →