{'fraction_non_alphanumeric': 0.01956745623069001, 'fraction_numerical': 0.005149330587023687, 'mean_word_length': 5.151898734177215, '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}}
Merging and Splitting Structured Peer-to-Peer Systems

Peer-to-peer (P2P) systems can be classified into two categories: unstructured and structured. A crucial requirement for practical structured P2P systems is that they should be able to cope with system splitting and merging. To address this issue, we first present a randomized and fault-tolerance broadcast algorithm called RBA. It can inform all nodes in P2P system of splitting or merging. We analyze its upper bound and show that it can be easily implemented on Chord without extra cost. Then we present our distributed splitting and merging protocols for structured P2P systems. It searches correct fingers rather than simply reconstructing fingers as previous protocols do. Compared with previous protocols, our protocols perform faster and reduce the cost of splitting and merging P2P systems dramatically. The performances of our algorithms have been evaluated using both theoretical analysis and simulation.