{'fraction_non_alphanumeric': 0.029081295439524125, 'fraction_numerical': 0.010575016523463317, 'mean_word_length': 4.984189723320158, '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}}
RepKV: A Replicated Key-Value Store to Boost Multiple Indices for Key-Value Separation

Primary and secondary indices are demanded in real-world applications. Recent works show that key-value(KV) separation is efficient to improve queries of multiple secondary indices in LSM-based KV stores. It stores the value in a separate value log and only stores keys and the value address in primary and secondary indices. However, this share-value scheme on multiple indices results in suboptimal efficiency: (1) queries on secondary indices and range queries on all indices cannot fully exploit the bandwidth of SSD devices simultaneously (2) the put operation is inefficient to update secondary indices.To address the above inefficiency, we propose RepKV, a replicated KV store aiming to boost operations of multiple in-dices. Firstly, RepKV uses a primary-backup replication scheme. Each replication stores the same KV pairs but adopts different organizations to exploit the benefit of SSD devices. Secondly, RepKV proposes a lightweight replication scheme to mitigate the extra KV pairs synchronized in replications. Thirdly, RepKV uses a parallel parsing policy to boost the put operation. Experimental results show that RepKV can improve the query performance on secondary indices by up to 22.24%, the range query performance of all indices by up to 31.38%, and the put performance by up to 13.8%. Besides, RepKV can reduce the I/O amplification of replication by up to 3.05x via the lightweight replication scheme.