Graph Stores with Application-Level Query Result Caches
摘要
At eBay, our graph store is experiencing an exponential growth. Its workload consists of read-only queries and two types of read-write batch updates, streaming and scheduled batch loaders. Our objective is to enhance the latencies of the 95 \(^{th}\) and 99 \(^{th}\) percentile of our read-only queries, because their results are used for real time decision making. We achieve this by caching the final result of queries. With repeat queries, we look up their final results using the cache instead of processing them using the graph store and its transactional key-value store. Writes compute their impacted cache entries and delete them. The resulting graph store with application level query result caches provides strong consistency. We present performance numbers from our production workload, highlighting both the benefits and the overheads of using the query result cache.