Patent ID: 11870672
Assignee: IVANTI, INC.
Field: Digital communication (Electrical engineering)
Classification: CPC H | IPC H

Claim 10:
11. A non-transitory computer-readable medium having encoded therein programming code executable by one or more processors to perform or control performance of operations of self-election of a node in a subnet, the operations comprising:
receiving, by a first node of a plurality of nodes in a subnet, a first ping message, the first ping message being unicast from a second node of the plurality of nodes in the subnet, wherein: the first ping message includes direct information including a first election state and a first machine state of the second node and indirect information including a second election state and a second machine state of a third node of the plurality of nodes in the subnet, and wherein the direct information and the indirect information are weighted differently;
updating a first status of the second node in a status list stored at the first node consistent with the direct information;
determining whether statuses have been received from a threshold number of nodes of the plurality of nodes in the status list;
responsive to the threshold number of nodes being received, performing a local election operation, wherein the local election operation includes:
determining a current election score of the first node based on election rules associated with identifying a particular node from the plurality of nodes in the subnet to provide a service;
comparing the current election score to determined election scores of the threshold number of nodes; and
responsive to the current election score being greater than the determined election scores:
changing a current election state of the first node to a selected state for the service;
communicating a response message to the second node, wherein the response message includes the current election state of the first node and indirect information related to one or more nodes of the plurality of nodes, and the response message is configured to indicate that the first node is an elected node for exclusive execution of the service in the subnet; and
executing, by the first node, the service in the subnet without oversight by an administration device; and

propagating a second ping message to at least one randomly identified additional node of the plurality of nodes, the second ping message including direct information regarding the first node and indirect information regarding at least one other node of the plurality of nodes wherein the propagating includes:
at each Scalable, Weakly-Consistent, Infection-Style, Processes Group Membership Protocol (SWIM) period of a plurality of SWIM periods:
randomly identifying one or more receiving nodes from a receiving node pool;
randomly identifying one or more ancillary nodes from an ancillary node pool;
generating a ping message for a current SWIM period that includes indirect information related to the identified ancillary nodes and direct information of the first node;
communicating the ping message to each of the identified receiving nodes;
removing the identified ancillary nodes from the ancillary node pool; and
removing the identified receiving nodes from the receiving node pool; and

following communication of one of the ping messages to each of the plurality of nodes during the current SWIM period, the receiving node pool and the ancillary node pool are repopulated with all of the plurality of nodes except the first node.