Patentable/Patents/US-8521689
US-8521689

Generation of a set of pre-filters from a set of event subscriptions to more efficiently select events of interest

PublishedAugust 27, 2013
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

A method, system and computer program product for achieving a balance between pre-filter efficiency and pre-filter throughput. Event subscriptions are obtained for a given event consumer. The event subscriptions define the events to be routed to this event consumer. Pre-filters of varying complexity and filtering power are constructed based on these event subscriptions. A balance between pre-filter efficiency and pre-filter throughput may be achieved by selecting the best pre-filter out of these constructed pre-filters to filter events to its associated event consumer. The best pre-filter is selected by comparing a complexity threshold (e.g., a limit for the number of atomic Boolean expressions in a pre-filter) with the actual complexity (e.g., the actual number of atomic Boolean expressions) for each constructed pre-filter and selecting the most complex pre-filter without exceeding the threshold.

Patent Claims
13 claims

Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.

Claim 1

Original Legal Text

1. A method for achieving a balance between pre-filter efficiency and pre-filter throughput comprising the steps of: obtaining a plurality of event subscriptions which define a plurality of events to be routed to an event consumer; constructing a plurality of pre-filters of varying complexity and filtering power; and selecting, by a processor, one of said plurality of pre-filters to filter events to said event consumer based on comparing a threshold to a complexity measure for each of said plurality of pre-filters; wherein one of said plurality of pre-filters is constructed as being a conjunction of those conditions that all of said plurality of event subscriptions have in common.

Plain English Translation

A method balances event pre-filter efficiency and throughput. It obtains event subscriptions that define events routed to a consumer. It constructs multiple pre-filters with different complexities and filtering power. A processor selects a pre-filter to filter events based on comparing a threshold to each pre-filter's complexity. One pre-filter is built by combining conditions common to all event subscriptions (conjunction). This method aims to optimize event routing by choosing pre-filters that efficiently reduce the event stream without excessive computational overhead.

Claim 2

Original Legal Text

2. The method as recited in claim 1 , wherein said selected one of said plurality of pre-filters has a largest number of atomic Boolean expressions that does not exceed said threshold.

Plain English Translation

The method of balancing pre-filter efficiency and throughput selects a pre-filter, from the multiple pre-filters with different complexities and filtering power, that has the largest number of atomic Boolean expressions (basic true/false conditions) without exceeding a predefined complexity threshold. This threshold limits the computational cost associated with each pre-filter. The pre-filter is selected based on comparing the threshold to a complexity measure for each of the pre-filters, and it is used to filter events to an event consumer based on event subscriptions that define events routed to that consumer.

Claim 3

Original Legal Text

3. The method as recited in claim 1 , wherein one of said plurality of pre-filters is constructed as a logical disjunction of all of said plurality of event subscriptions.

Plain English Translation

The method of balancing pre-filter efficiency and throughput constructs one pre-filter as a logical disjunction (OR) of all event subscriptions. This means the pre-filter passes an event if it matches any of the individual event subscriptions. Other pre-filters with different complexities and filtering powers are also constructed. A processor selects a pre-filter to filter events based on comparing a threshold to each pre-filter's complexity and applies it to filter events to an event consumer based on event subscriptions that define events routed to that consumer.

Claim 4

Original Legal Text

4. The method as recited in claim 1 , wherein one of said plurality of pre-filters is constructed as a logical disjunction of all event type checks of said plurality of event subscriptions where each event type check is AND-ed with those atomic Boolean conditions that are common across all subscriptions for events of this type.

Plain English Translation

The method of balancing pre-filter efficiency and throughput constructs one pre-filter as follows: it takes all event type checks from the event subscriptions and logically ORs them together. Each event type check is also ANDed with conditions common to all subscriptions of that event type. This pre-filter filters for specific event types and also checks for common conditions within each type. Other pre-filters with different complexities and filtering powers are also constructed. A processor selects a pre-filter to filter events based on comparing a threshold to each pre-filter's complexity and applies it to filter events to an event consumer based on event subscriptions that define events routed to that consumer.

Claim 5

Original Legal Text

5. The method as recited in claim 1 , wherein one of said plurality of pre-filters is constructed as a logical disjunction of all event type checks of said plurality of event subscriptions.

Plain English Translation

The method of balancing pre-filter efficiency and throughput constructs one pre-filter as a logical disjunction (OR) of all event type checks from all event subscriptions. This pre-filter checks the event type against all possible types defined in the subscriptions. Other pre-filters with different complexities and filtering powers are also constructed. A processor selects a pre-filter to filter events based on comparing a threshold to each pre-filter's complexity and applies it to filter events to an event consumer based on event subscriptions that define events routed to that consumer.

Claim 6

Original Legal Text

6. The method as recited in claim 1 , wherein one of said plurality of pre-filters is constructed by: partitioning said plurality of event subscriptions into sets having at least one common condition; performing a conjunction of those common conditions for each of said sets; and performing a logical disjunction of said conjunction of those common conditions for each of said sets.

Plain English Translation

The method of balancing pre-filter efficiency and throughput constructs one pre-filter by: first partitioning the event subscriptions into sets, where each set has at least one condition in common. Then, it performs a conjunction (AND) of the common conditions for each set. Finally, it performs a logical disjunction (OR) of the resulting conjunctions from each set. This creates a pre-filter that checks if an event satisfies the common conditions of at least one subscription set. Other pre-filters with different complexities and filtering powers are also constructed. A processor selects a pre-filter to filter events based on comparing a threshold to each pre-filter's complexity and applies it to filter events to an event consumer based on event subscriptions that define events routed to that consumer.

Claim 7

Original Legal Text

7. The method as recited in claim 1 further comprising the step of: simplifying expressions of said plurality of pre-filters using factorization.

Plain English Translation

The method of balancing pre-filter efficiency and throughput includes simplifying the expressions of the generated pre-filters using factorization. This aims to reduce the complexity of the pre-filters and improve their throughput. The event subscriptions define events to be routed to an event consumer. Pre-filters of varying complexity and filtering power are constructed. The method selects a pre-filter to filter events based on comparing a threshold to a complexity measure for each pre-filter. One pre-filter is constructed as a conjunction of those conditions that all of the event subscriptions have in common.

Claim 8

Original Legal Text

8. A system, comprising: a memory unit for storing a computer program for achieving a balance between pre-filter efficiency and pre-filter throughput; a processor coupled to said memory unit, wherein said processor, responsive to said computer program, comprises: circuitry for obtaining a plurality of event subscriptions which define a plurality of events to be routed to an event consumer; circuitry for constructing a plurality of pre-filters of varying complexity and filtering power; and circuitry for selecting one of said plurality of pre-filters to filter events to said event consumer based on comparing a threshold to a complexity measure for each of said plurality of pre-filters; wherein one of said plurality of pre-filters is constructed as being a conjunction of those conditions that all of said plurality of event subscriptions have in common.

Plain English Translation

A system balances event pre-filter efficiency and throughput. It has a memory to store a program and a processor. The processor: obtains event subscriptions defining events routed to a consumer; constructs multiple pre-filters with varying complexity and filtering power; selects a pre-filter to filter events based on comparing a threshold to each pre-filter's complexity. One pre-filter is constructed by combining the conditions common to all event subscriptions (conjunction). This system optimizes event routing by choosing pre-filters to efficiently reduce the event stream without excessive computational overhead.

Claim 9

Original Legal Text

9. The system as recited in claim 8 , wherein said selected one of said plurality of pre-filters has a largest number of atomic Boolean expressions that does not exceed said threshold.

Plain English Translation

The system for balancing pre-filter efficiency and throughput selects a pre-filter, from the multiple pre-filters with different complexities and filtering power, that has the largest number of atomic Boolean expressions (basic true/false conditions) without exceeding a predefined complexity threshold. This threshold limits the computational cost associated with each pre-filter. The pre-filter is selected based on comparing the threshold to a complexity measure for each of the pre-filters, and it is used to filter events to an event consumer based on event subscriptions that define events routed to that consumer.

Claim 10

Original Legal Text

10. The system as recited in claim 8 , wherein one of said plurality of pre-filters is constructed as a logical disjunction of all of said plurality of event subscriptions.

Plain English Translation

The system for balancing pre-filter efficiency and throughput constructs one pre-filter as a logical disjunction (OR) of all event subscriptions. This means the pre-filter passes an event if it matches any of the individual event subscriptions. Other pre-filters with different complexities and filtering powers are also constructed. A processor selects a pre-filter to filter events based on comparing a threshold to each pre-filter's complexity and applies it to filter events to an event consumer based on event subscriptions that define events routed to that consumer.

Claim 11

Original Legal Text

11. The system as recited in claim 8 , wherein one of said plurality of pre-filters is constructed as a logical disjunction of all event type checks of said plurality of event subscriptions where each event type check is AND-ed with those atomic Boolean conditions that are common across all subscriptions for events of this type.

Plain English Translation

The system for balancing pre-filter efficiency and throughput constructs one pre-filter as follows: it takes all event type checks from the event subscriptions and logically ORs them together. Each event type check is also ANDed with conditions common to all subscriptions of that event type. This pre-filter filters for specific event types and also checks for common conditions within each type. Other pre-filters with different complexities and filtering powers are also constructed. A processor selects a pre-filter to filter events based on comparing a threshold to each pre-filter's complexity and applies it to filter events to an event consumer based on event subscriptions that define events routed to that consumer.

Claim 12

Original Legal Text

12. The system as recited in claim 8 , wherein one of said plurality of pre-filters is constructed as a logical disjunction of all event type checks of said plurality of event subscriptions.

Plain English Translation

The system for balancing pre-filter efficiency and throughput constructs one pre-filter as a logical disjunction (OR) of all event type checks from all event subscriptions. This pre-filter checks the event type against all possible types defined in the subscriptions. Other pre-filters with different complexities and filtering powers are also constructed. A processor selects a pre-filter to filter events based on comparing a threshold to each pre-filter's complexity and applies it to filter events to an event consumer based on event subscriptions that define events routed to that consumer.

Claim 13

Original Legal Text

13. The system as recited in claim 8 , wherein one of said plurality of pre-filters is constructed by: partitioning said plurality of event subscriptions into sets having at least one common condition; performing a conjunction of those common conditions for each of said sets; and performing a logical disjunction of said conjunction of those common conditions for each of said sets.

Plain English Translation

The system for balancing pre-filter efficiency and throughput constructs one pre-filter by: first partitioning the event subscriptions into sets, where each set has at least one condition in common. Then, it performs a conjunction (AND) of the common conditions for each set. Finally, it performs a logical disjunction (OR) of the resulting conjunctions from each set. This creates a pre-filter that checks if an event satisfies the common conditions of at least one subscription set. Other pre-filters with different complexities and filtering powers are also constructed. A processor selects a pre-filter to filter events based on comparing a threshold to each pre-filter's complexity and applies it to filter events to an event consumer based on event subscriptions that define events routed to that consumer.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

April 20, 2007

Publication Date

August 27, 2013

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, FAQs, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Generation of a set of pre-filters from a set of event subscriptions to more efficiently select events of interest” (US-8521689). https://patentable.app/patents/US-8521689

© 2026 Nomic Interactive Technology LLC. Machine-readable context available at /api/llm-context/US-8521689. See llms.txt for full attribution policy.

Generation of a set of pre-filters from a set of event subscriptions to more efficiently select events of interest