{'fraction_non_alphanumeric': 0.012104283054003724, 'fraction_numerical': 0.0, 'mean_word_length': 5.142857142857143, '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}}
Balancing the Communication Load of State Transfer in Replicated Systems

State transfer mechanisms are an essential building block in the design of many distribution applications that replicate the state, such as partially replicated databases or view-synchronous group communication. When a reconfiguration occurs, a need arises to ship a subset of objects that constitute the application state to a subset of nodes in the system. The most commonly employed solution is to elect a leader that collects state objects and transmits them to the nodes that need to receive them. In this paper, we present the problem of communication-balanced state transfer wherein the goal is to distribute the load of communication due to state transfer evenly across the participating nodes. We propose an algorithm that achieves the optimal balance, analyze it, and describe how it can be used in a variety of applications. We evaluate the algorithm on a typical setup of partially replicated databases and show that it attains a significant improvement compared with existing approaches.