Subscription groups in publish-subscribe system
First Claim
1. A computer-implemented method, comprising:
- receiving, at a computer system, a request for transmitting multiple subscriptions to multiple subscribers, wherein the multiple subscribers include a first subscriber that subscribes to a specified subscription of the multiple subscriptions, the first subscriber subscribing to the specified subscription by subscribing to a specified logical partition of multiple logical partitions of a data storage system at which the specified subscription is stored, each of the multiple logical partitions including a separate non-overlapping subset of the multiple subscriptions;
identifying, at the computer system, multiple sets of subscriptions published by a publisher to the first subscriber, the multiple sets of subscriptions stored in different logical partitions;
receiving, at a multiplexer of the computer system and from the publisher, the multiple sets of subscriptions from the different logical partitions;
creating, at the computer system, a single transfer control protocol (TCP)/Internet protocol (IP) connection between the multiplexer and the first subscriber, the single TCP/IP connection capable of transmitting subscriptions from any of the multiple logical partitions; and
transmitting, from the multiplexer to the first subscriber, the multiple sets of subscriptions by multiplexing the multiple sets of subscriptions over the single TCP/IP connection.
2 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is a technology for publishing subscriptions in a publish-subscribe system in accordance with subscription groups. The technology may include (i) determining a consumption characteristic by which each of multiple subscribers in a publish-subscribe system consumes a subscription published by a publisher; (ii) identifying the subscribers whose consumption characteristics satisfy a specified similarity criterion; (iii) defining multiple subscription groups, each of which includes subscriptions of those of the subscribers whose consumption characteristics satisfy the specified similarity criterion; (iv) storing the subscriptions in multiple logical partitions of a storage system where each of the logical partitions contains a separate non-overlapping subset of the subscriptions; and (v) transmitting the subscriptions to the subscribers in accordance with the subscription groups.
95 Citations
20 Claims
-
1. A computer-implemented method, comprising:
-
receiving, at a computer system, a request for transmitting multiple subscriptions to multiple subscribers, wherein the multiple subscribers include a first subscriber that subscribes to a specified subscription of the multiple subscriptions, the first subscriber subscribing to the specified subscription by subscribing to a specified logical partition of multiple logical partitions of a data storage system at which the specified subscription is stored, each of the multiple logical partitions including a separate non-overlapping subset of the multiple subscriptions; identifying, at the computer system, multiple sets of subscriptions published by a publisher to the first subscriber, the multiple sets of subscriptions stored in different logical partitions; receiving, at a multiplexer of the computer system and from the publisher, the multiple sets of subscriptions from the different logical partitions; creating, at the computer system, a single transfer control protocol (TCP)/Internet protocol (IP) connection between the multiplexer and the first subscriber, the single TCP/IP connection capable of transmitting subscriptions from any of the multiple logical partitions; and transmitting, from the multiplexer to the first subscriber, the multiple sets of subscriptions by multiplexing the multiple sets of subscriptions over the single TCP/IP connection.
-
-
2. The computer-implemented method of claim 1, wherein transmitting the multiple sets of subscriptions further includes:
-
categorizing, by the computer system, the multiple subscribers to multiple subscription groups, wherein each of the multiple subscription groups includes a set of the multiple subscribers whose consumption characteristics satisfy a specified criterion for the corresponding group; and transmitting, by the computer system, the subscriptions to the multiple subscribers in accordance with the multiple subscription groups.
-
-
3. The computer-implemented method of claim 2, wherein the consumption characteristic includes a consumption rate of a subscriber of the multiple subscribers, wherein the specified criterion includes a specified range of the consumption rate, and wherein different subscription groups has different specified ranges.
-
4. The computer-implemented method of claim 3, wherein the specified ranges are determined as a function of consumption rates of the multiple subscribers.
-
5. The computer-implemented method of claim 3, wherein the specified ranges are determined as a function of a lowest consumption rate of any of the multiple subscribers and a highest consumption rate of any of the multiple subscribers.
-
6. The computer-implemented method of claim 3, wherein the specified ranges are determined as a function of a number of the multiple subscribers.
-
7. The computer-implemented method of claim 3, wherein the specified ranges are determined as a function of a number of the multiple subscriptions.
-
8. The computer-implemented method of claim 3, wherein one of the subscription groups is a lead subscription group which includes subscriptions of those subscribers whose consumption rates fall within a highest specified range among the specified ranges.
-
9. The computer-implemented method of claim 8, wherein transmitting the multiple subscriptions to the multiple subscribers includes transmitting the multiple subscriptions as a stream of the subscription groups in which subscriptions from the lead subscription group is transmitted ahead of subscriptions of the remaining subscription groups.
-
10. The computer-implemented method of claim 8 further comprising:
-
receiving, at the computer system, information from a producer that is to be published as a set of subscriptions to the multiple subscribers at a first rate; and transmitting, by the computer system, the set of subscriptions to the multiple subscribers at least at the first rate.
-
-
11. The computer-implemented method of claim 10, wherein transmitting the set of subscriptions to the multiple subscribers at the first rate includes configuring the lead subscription group to include those subscribers whose consumption rates are not below the first rate.
-
12. The computer-implemented method of claim 3 further comprising:
-
confirming that a consumption rate of a subscriber of the multiple subscribers has changed from a first specified range of the specified ranges to a second specified range of the specified ranges; and moving a subscription of the subscriber, from a first subscription group having subscriptions of those of the multiple subscribers whose consumption rates correspond to the first specified range, to a second subscription group having subscriptions of those of the multiple subscribers whose consumption rates correspond to the second specified range, in a stream of subscription groups.
-
-
13. The computer-implemented method of claim 12, wherein moving the subscription of the subscriber includes:
-
determining one of the multiple subscription groups that trails the first subscription group in the stream as the second subscription group in an event the consumption rate of the subscriber has decreased; and determining one of the multiple subscription groups that is ahead of the first subscription group in the stream as the second subscription group in an event the consumption rate of the subscriber has increased.
-
-
14. The computer-implemented method of claim 1 further comprising:
-
confirming that at least one of the multiple logical partitions of the data storage system is not subscribed to by any of the multiple subscribers; identifying a subscriber from the multiple subscribers as a potential consumer of a set of subscriptions contained in the at least one of the multiple logical partitions; and sending an invitation to the subscriber to subscribe to the set of subscriptions.
-
-
15. The computer-implemented method of claim 1 further comprising:
-
confirming, by the computer system, that a set of the multiple subscriptions has moved from a first logical partition of the multiple logical partitions to a second logical partition of the multiple logical partitions; and notifying, by the computer system, subscribers subscribed to the set of the multiple subscriptions that the set of the multiple subscriptions has moved to the second logical partition.
-
-
16. The computer-implemented method of claim 1 further comprising:
-
confirming, by the computer system, that a first logical partition of the logical partitions of the data storage system has failed; notifying, by the computer system, a set of the multiple subscribers subscribed to a set of the multiple subscriptions stored in the first logical partition that the first logical partition has failed; and sending an invitation to the set of the multiple subscribers to subscribe to a second logical partition of the multiple logical partitions to which the set of the multiple subscriptions are moved.
-
-
17. The computer-implemented method of claim 16, wherein confirming that the first logical partition has failed includes:
-
confirming that no subscriptions have been published from the first logical partition for a predetermined period; and confirming that a process to terminate publishing the set of the multiple subscriptions from the first logical partition responsive is executed more than a predefined number of times.
-
-
18. A computer-readable storage device storing computer-readable instructions, comprising:
-
instructions for receiving, at a computer system, a request for transmitting multiple subscriptions to multiple subscribers, wherein the multiple subscribers include a first subscriber that subscribes to a specified subscription of the multiple subscriptions, the first subscriber subscribing to the specified subscription by subscribing to a specified logical partition of multiple logical partitions of a data storage system at which the specified subscription is stored, each of the multiple logical partitions including a separate non-overlapping subset of the multiple subscriptions; instructions for identifying, at the computer system, multiple sets of subscriptions published by a publisher to the first subscriber, the multiple sets of subscriptions stored in different logical partitions; instructions for receiving, at a multiplexer of the computer system and from the publisher, the multiple sets of subscriptions from the different logical partitions; instructions for creating, at the computer system, a single transfer control protocol (TCP)/Internet protocol (IP) connection between the multiplexer and the first subscriber, the single TCP/IP connection capable of transmitting subscriptions from any of the multiple logical partitions; and instructions for transmitting, from the multiplexer to the first subscriber, the multiple sets of subscriptions by multiplexing the multiple sets of subscriptions over the single TCP/IP connection.
-
-
19. The computer-readable storage device of claim 18, where the instructions for transmitting includes:
-
instructions for categorizing the multiple subscribers to multiple subscription groups, wherein each of the multiple subscription groups includes a set of the multiple subscribers whose consumption characteristics satisfy a specified criterion for the corresponding group; and instructions for transmitting the multiple subscriptions to the multiple subscribers in accordance with the multiple subscription groups.
-
-
20. An apparatus comprising:
-
a processor; and a storage device storing processor executable instructions which, when executed by the processor, cause the processor to execute a process including; receiving a request for transmitting multiple subscriptions to multiple subscribers, wherein the multiple subscribers include a first subscriber that subscribes to a specified subscription of the multiple subscriptions, the first subscriber subscribing to the specified subscription by subscribing to a specified logical partition of multiple logical partitions of a data storage system at which the specified subscription is stored, each of the multiple logical partitions including a separate non-overlapping subset of the multiple subscriptions; identifying multiple sets of subscriptions published by a publisher to the first subscriber, the multiple sets of subscriptions stored in different logical partitions; receiving, from the publisher, the multiple sets of subscriptions from the different logical partitions; creating a single transfer control protocol (TCP)/Internet protocol (IP) connection between the multiplexer and the first subscriber, the single TCP/IP connection capable of transmitting subscriptions from any of the multiple logical partitions; and transmitting, to the first subscriber, the multiple sets of subscriptions by multiplexing the multiple sets of subscriptions over the single TCP/IP connection.
-
Specification