{'fraction_non_alphanumeric': 0.022183304144775248, 'fraction_numerical': 0.004086398131932283, 'mean_word_length': 5.592307692307692, '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}}
Information Dissemination for the Adaptive Replica Selection algorithm in Key-Value Stores

In distributed key-value stores, multiple replica servers are always available for each key-value access operation when the eventually consistency model is employed. Accordingly, the replica selection algorithm is crucial to the tail latency of the key-value access operations generated by end-user requests, especially under the environment of heterogeneous replica servers. The main challenge of making replica selection decision is to know the status of replica serves with acceptable overhead for each lightweight key-value access operation. Recently, aware of the time-varying performance and load of replica servers, the adaptive replica selection algorithm C3 suggests piggybacking the information of replica server via the returned value” to guide the replica selection. Although the good performance of C3 has been verified by experiments and simulations, the poor timeliness of feedback information makes a large performance gap between C3 and the ideal replica selection algorithm. To narrow this gap, we propose the information dissemination mechanism for C3, which lets both “client” and “server” store the records about the status of replica servers, and both key” and value” piggyback multiple records. In this way, the information dissemination bottleneck at “slow” server would be removed with the help of multiple clients and servers. As confirmed by simulation results, the information dissemination mechanism can significantly improve the timeliness of feedback information with acceptable overhead and accordingly helps C3 to greatly reduce the tail latency (by about 35% under the default scenario).