Method and system for matching consumers to events employing content-based multicast routing using approximate groups
First Claim
1. A method for distributing events to consumers in a content-based publish-subscribe system, wherein the consumers each have at least one subscription, said method comprising:
- outside of event processing time, deriving a set of g approximate multicast groups from a larger set of G possible multicast groups in the publish-subscribe system, said deriving including exploiting knowledge of subscription predicates of at least some consumers of the publish-subscribe system;
using at least one multicast group of said set of g approximate multicast groups to forward an event to at least one consumer within the publish-subscribe system; and
wherein said deriving comprises employing a cost function to combine the possible multicast groups of the set of G possible multicast groups to arrive at the set of g approximate multicast groups.
3 Assignments
0 Petitions
Accused Products
Abstract
A facility is provided for distributing events to consumers in a content-based publish-subscribe system, wherein the consumers each have at least one subscription. The facility includes deriving a set of g approximate multicast groups from a larger set of G possible multicast groups in the publish-subscribe system. The deriving includes exploiting knowledge of subscription predicates of the consumers of the publish-subscribe system. The set of G possible multicast groups is collapsed to the smaller set of g approximate multicast groups, while minimizing the expected performance penalty in using the approximate multicast groups. The set of g approximate multicast groups is then used to forward events to consumers within the publish-subscribe system.
-
Citations
57 Claims
-
1. A method for distributing events to consumers in a content-based publish-subscribe system, wherein the consumers each have at least one subscription, said method comprising:
-
outside of event processing time, deriving a set of g approximate multicast groups from a larger set of G possible multicast groups in the publish-subscribe system, said deriving including exploiting knowledge of subscription predicates of at least some consumers of the publish-subscribe system;
using at least one multicast group of said set of g approximate multicast groups to forward an event to at least one consumer within the publish-subscribe system; and
wherein said deriving comprises employing a cost function to combine the possible multicast groups of the set of G possible multicast groups to arrive at the set of g approximate multicast groups. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
for each subscription, storing predicate and broker information therefor, and computing a total probability for the subscription using the event frequency table;
for each pair of nodes with predicates P1,P2, creating a new node, if one does not already exist, where the predicate is P1{circumflex over ( )}P2, the broker set is a union of the brokers of the nodes, probability is computed from the event frequency table, and wherein said deriving comprises repeating said creating until no new pair can be created;
sorting the resulting nodes into a lattice where A<
B whenever A'"'"'s predicate is implied by B'"'"'s predicate, wherein A and B comprise nodes;
propagating each broker set to nodes above it in the lattice, coalescing nodes with equal broker sets, adding their probabilities and merging their predicates; and
ascertaining an exclusive probability for each resultant node in the lattice wherein the exclusive probability is the total probability for the node less a sum of exclusive probabilities of all higher nodes in the lattice.
-
-
18. The method of claim 17, further comprising creating an approximate groups table using the resultant lattice, said creating of the approximate groups table including:
-
for each node in the lattice, creating a row in the approximate groups table;
determining whether a number of rows in the approximate groups table is greater than a desired number of rows; and
if so, for each pair i,j of rows in the approximate groups table, computing a penalty cost of sending an event message to the union of the pair of rows i,j, versus sending to the event one or the other of the rows individually, and choosing a row pairing i,j that minimizes network penalty, and replacing rows i,j by a new row comprising the union of rows i,j.
-
-
19. The method of claim 18, further comprising repeating said computing of the penalty cost and choosing a minimum expected penalty to condense additional pairs of rows of the approximate groups table until the number of rows in the approximate groups table is equal to a prespecified, desired number of rows in the approximate groups table.
-
20. At least one program storage device readable by a machine, tangibly embodying at least one program of instructions executable by the machine to perform a method for distributing events to consumers in a content-based publish-subscribe system, wherein the consumers each have at least one subscription, said method comprising:
-
deriving, outside of event processing time, a set of g approximate multicast groups from a larger set of G possible multicast groups in the publish-subscribe system, said deriving including exploiting knowledge of subscription predicates of at least some consumers of the publish-subscribe system;
using at least one multicast group of said set of g approximate multicast groups to forward an event to at least one consumer within the publish-subscribe system; and
wherein said deriving comprises employing a cost function to combine the possible multicast groups of the set of G possible multicast groups to arrive at the set of g approximate multicast groups. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38)
for each subscription, storing predicate and broker information therefor, and computing a total probability for the subscription using the event frequency table;
for each pair of nodes with predicates P1,P2, creating a new node, if one does not already exist, where the predicate is P1{circumflex over ( )}P2, the broker set is a union of the brokers of the nodes, probability is computed from the event frequency table, and wherein said deriving comprises repeating said creating until no new pair can be created;
sorting the resulting nodes into a lattice where A<
B whenever A'"'"'s predicate is implied by B'"'"'s predicate, wherein A and B comprise nodes;
propagating each broker set to nodes above it in the lattice, coalescing nodes with equal broker sets, adding their probabilities and merging their predicates; and
ascertaining an exclusive probability for each resultant node in the lattice wherein the exclusive probability is the total probability for the node less a sum of exclusive probabilities of all higher nodes in the lattice.
-
-
37. The at least one program storage device of claim 36, further comprising creating an approximate groups table using the resultant lattice, said creating of the approximate groups table including:
-
for each node in the lattice, creating a row in the approximate groups table;
determining whether a number of rows in the approximate groups table is greater than a desired number of rows; and
if so, for each pair i,j of rows in the approximate groups table, computing a penalty cost of sending an event message to the union of the pair of rows i,j, versus sending to the event one or the other of the rows individually, and choosing a row pairing i,j that minimizes network penalty, and replacing rows i,j by a new row comprising the union of rows i,j.
-
-
38. The at least one program storage device of claim 37, further comprising repeating said computing of the penalty cost and choosing a minimum expected penalty to condense additional pairs of rows of the approximate groups table until the number of rows in the approximate groups table is equal to a prespecified, desired number of rows in the approximate groups table.
-
39. A system for distributing events to consumers in a content-based publish-subscribe system, wherein the consumers each have at least one subscription, said system comprising:
-
means for deriving outside of event processing time a set of g approximate multicast groups from a larger set of G possible multicast groups in the publish-subscribe system, said means for deriving including means for exploiting knowledge of subscription predicates of at least some consumers of the publish-subscribe system;
means for using at least one multicast group of said set of g approximate multicast groups to forward an event to at least one consumer within the publish-subscribe system; and
wherein said means for deriving comprises means for employing a cost function to combine the possible multicast groups of the set of G possible multicast groups to arrive at the set of g approximate multicast groups. - View Dependent Claims (40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57)
for each subscription, means for storing predicate and broker information therefor, and for computing a total probability for the subscription using the event frequency table;
for each pair of nodes with predicates P1,P2, means for creating a new node, if one does not already exist, where the predicate is P1{circumflex over ( )}P2, the broker set is a union of the brokers of the nodes, probability is computed from the event frequency table, and wherein said means for deriving comprises means for repeating said creating until no new pair can be created;
means for sorting the resulting nodes into a lattice where A<
B whenever A'"'"'s predicate is implied by B'"'"'s predicate, wherein A and B comprise nodes;
means for propagating each broker set to nodes above it in the lattice, means for coalescing nodes with equal broker sets, means for adding their probabilities and means for merging their predicates; and
means for ascertaining an exclusive probability for each resultant node in the lattice wherein the exclusive probability is the total probability for the node less a sum of exclusive probabilities of all higher nodes in the lattice.
-
-
56. The system of claim 55, further comprising means for creating an approximate groups table using the resultant lattice, said means for creating of the approximate groups table including:
-
for each node in the lattice, means for creating a row in the approximate groups table;
means for determining whether a number of rows in the approximate groups table is greater than a desired number of rows; and
if so, for each pair i,j of rows in the approximate groups table, means for computing a penalty cost of sending an event message to the union of the pair of rows i,j, versus sending to the event one or the other of the rows individually, and means for choosing a row pairing i,j that minimizes network penalty, and means for replacing rows i,j by a new row comprising the union of rows i,j.
-
-
57. The system of claim 56, further comprising means for repeating said means for computing of the penalty cost and choosing a minimum expected penalty to condense additional pairs of rows of the approximate groups table until the number of rows in the approximate groups table is equal to a prespecified, desired number of rows in the approximate groups table.
Specification