Class QuorumService

Class Documentation

class dish2::QuorumService

Performs a distributed estimation of kin group size.

Each cell has a single randomly-chosen index set within a fixed-length bitstring. (Depending in parameter settings, some cells may may have index set all positions within the bitstring are zeroed out.)

Broadcasts bits known to be set are to all neighbor cells within the same kin group. Incoming bitstrings from neighbors are ORed with known bits.

The original neighbor each non-self bit was first learned from is recorded alongside that bit. If that neighbor no longer broadcasts that bit, it is erased from the cell’s known bits.

Updates latest quorum count into introspective state.

This scheme is replicated independently for each kin group level simulated.

Public Static Functions

bool ShouldRun(const size_t update, const bool alive)
template<typename Cell>
void DoService(Cell &cell)