Group membership discovery service
First Claim
1. A computer-implemented method performed by a plurality of discovery servers, wherein each discovery server performs operations comprising:
- maintaining by the discovery server a respective group name/value count for each of a plurality of group name/value pairs, each group name/value count being a count for a distinct name-value pair of a user-specified group name and value pair;
receiving a Watch command on a first user-specified group name from a first client device, wherein the Watch command comprises a request to receive Join events for newly added values in the first user-specified group;
receiving a first Join event from another discovery server, the first Join event including the first user-specified group name and a first value, wherein a Join event received from a particular discovery server comprises a notification of a Join command or a Join event being received by the particular discovery server;
incrementing the group name/value count for the first group name and the first value in response to receiving the first Join event;
determining that the group name/value count for the first group name and the first value transitioned from zero to nonzero in response to the discovery server incrementing the group name/value count for the first group name and the first value; and
in response to determining that the group name/value count for the first group name and the first value transitioned from zero to nonzero in response to the discovery server incrementing the group name/value count for the first group name and the first value, sending a second Join event to the first client in response to the Watch command received from the first client on the first user-specified group name, the second Join event having the first value of the first Join event.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for providing a group membership discovery service. Join requests are received from clients, including a respective group and value pair. A respective count for each received pair is updated, the count indicating a count of a join events received by servers for the pair. Notification is sent to one or more other clients that have requested such notification, wherein the notification includes a first group and value pair having a respective count that was updated for a first time. A notification is received from a server regarding a different second group and value pair received by the server and a respective count for the second group and value pair is updated.
107 Citations
30 Claims
-
1. A computer-implemented method performed by a plurality of discovery servers, wherein each discovery server performs operations comprising:
-
maintaining by the discovery server a respective group name/value count for each of a plurality of group name/value pairs, each group name/value count being a count for a distinct name-value pair of a user-specified group name and value pair; receiving a Watch command on a first user-specified group name from a first client device, wherein the Watch command comprises a request to receive Join events for newly added values in the first user-specified group; receiving a first Join event from another discovery server, the first Join event including the first user-specified group name and a first value, wherein a Join event received from a particular discovery server comprises a notification of a Join command or a Join event being received by the particular discovery server; incrementing the group name/value count for the first group name and the first value in response to receiving the first Join event; determining that the group name/value count for the first group name and the first value transitioned from zero to nonzero in response to the discovery server incrementing the group name/value count for the first group name and the first value; and in response to determining that the group name/value count for the first group name and the first value transitioned from zero to nonzero in response to the discovery server incrementing the group name/value count for the first group name and the first value, sending a second Join event to the first client in response to the Watch command received from the first client on the first user-specified group name, the second Join event having the first value of the first Join event. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system comprising:
- a plurality of discovery servers and one or more hardware storage devices storing instructions that are operable, when executed by each of the plurality of discovery servers, to cause each discovery server to perform operations comprising;
maintaining, by the discovery server a respective group name/value count for each of a plurality of group name/value pairs, each group name/value count being a count for a distinct name-value pair of a user-specified group name and value pair; receiving a Watch command on a first user-specified group name from a first client device, wherein the Watch command comprises a request to receive Join events for newly added values in the first user-specified group; receiving first Join event from another discovery server, the first Join event including the first user-specified group name and a first value, wherein a Join event received from a particular discovery server comprises a notification of a Join command or a Join event being received by the particular discovery server; incrementing the group name/value count for the first group name and the first value in response to receiving the first Join event; determining that the group name/value count for the first group name and the first value transitioned from zero to nonzero in response to the discovery server incrementing the group name/value count for the first group name and the first value; and in response to determining that the group name/value count for the first group name and the first value transitioned from zero to nonzero in response to the discovery server incrementing the group name/value count for the first group name and the first value, sending second Join event to the first client in response to the Watch command received from the first client on the first user-specified group name, the second Join event having the first value of the first Join event. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
- a plurality of discovery servers and one or more hardware storage devices storing instructions that are operable, when executed by each of the plurality of discovery servers, to cause each discovery server to perform operations comprising;
-
21. A computer program product, encoded on one or more non-transitory computer storage media, comprising instructions that when executed by each discovery server of a plurality of discovery servers cause the discovery server to perform operations comprising:
-
maintaining, by the discovery server a respective group name/value count for each of a plurality of group name/value pairs, each group name/value count being a count for a distinct name-value pair of a user-specified group name and value pair; receiving a Watch command on a first user-specified group name from a first client device, wherein the Watch command comprises a request to receive Join events for newly added values in the first user-specified group; receiving a first Join event from another discovery server, the first Join event including the first user-specified group name and a first value, wherein a Join event received from a particular discovery server comprises a notification of a Join command or a Join event being received by the particular discovery server; incrementing the group name/value count for the first group name and the first value in response to receiving the first Join event; determining that the group name/value count for the first group name and the first value transitioned from zero to nonzero in response to the discovery server incrementing the group name/value count for the first group name and the first value; and in response to determining that the group name/value count for the first group name and the first value transitioned from zero to nonzero in response to the discovery server incrementing the group name/value count for the first group name and the first value, sending a second Join event to the first client in response to the Watch command received from the first client on the first user-specified group name, the second Join event having the first value of the first Join event. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
Specification