{'fraction_non_alphanumeric': 0.022417153996101363, 'fraction_numerical': 0.0009746588693957114, 'mean_word_length': 5.300613496932515, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Fault-tolerant broadcast algorithms for the virtual hypercube topology

Broadcast algorithms are used by network applications to disseminate information. Best-effort broadcast ensures that every correct process delivers the same set of messages if the sender of these messages is correct. Reliable broadcast offers the same guaranties even when the senders fail during the transmission. To improve the scalability of broadcast solutions, this work proposes an algorithm that builds virtual spanning trees connecting the processes, through which messages are propagated. These trees are dynamically built embedded on a virtual hypercube-like topology. Processes can can fail by crashing, and up to n - 1 nodes may crash at any given time. The processes continuously monitor each other with Hi-ADSD. Besides best-effort and reliable broadcast, uniform, FIFO, causal and atomic broadcast algorithms are discussed. A solution for distributed k-mutual exclusion using the hierarchical and fault-tolerant approach is also presented.