검색 상세

Risk Aware MemTable Retention Mechanism for Mitigating Row Cache Invalidation in LSM-tree-based Key-Value Stores

초록/요약

LSM-tree-based key-value stores achieve high write performance by buffering write requests in memory and persisting them to persistent storage at one during flush. However, read performance is relatively poor as point lookup requests often require traversing multiple levels of SSTables. Thus, effective caching approach is needed for reducing read latency. Block cache typically leverages spatial locality by setting caching unit as Data block. However, for point lookups, memory utilization degradation occurs because of the granularity mismatch between caching unit and request unit. To handle this problem, key-value stores like RocksDB also support Row cache that caches at the entry unit. Nevertheless, like Block cache, the effectiveness of Row cache is also limited by cache invalidation problem. Since Row cache operates at fine-granularity, more light approach is needed. In this paper, we propose MemTable retention mecachanism to mitigate the cache invalidation problem by subsequent writes. During flush, it calculates cache invalidation risk for entries in the MemTable and selectively retains entries with high invalidation risk. By doing so, hit rate drop after upcoming flush related to the cache invalidation by subsequent writes can be diminished. Experiments compared with existing Row cache of RocksDB showed that the proposed method can effectively mitigate hit rate drop right after flush.

more

목차

1 Introduction 1
2 Background 4
3 Related Work 8
4 Motivation 10
5 Proposed Method 12
5.1 Overview 13
5.2 Metadata management 13
5.3 Entry separation by cache invalidation risk 14
6 Implementation 19
7 Experiment and evaluation 21
7.1 Experiment setup 21
7.2 Experiment results 22
7.2.1 Memory hit rate 22
7.2.2 Overall system performance 23
7.2.3 Overhead analysis 24
8 Conclusion 37
Bibliography 38

more