Cache-conscious data placement in an in-memory key-value store

  • Authors:
  • Christian Tinnefeld;Alexander Zeier;Hasso Plattner

  • Affiliations:
  • University of Potsdam, Potsdam, Germany;University of Potsdam, Potsdam, Germany;University of Potsdam, Potsdam, Germany

  • Venue:
  • Proceedings of the 15th Symposium on International Database Engineering & Applications
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Key-value stores which keep the data entirely in main memory can serve applications whose performance criteria cannot be met by disk-based key-value stores. This paper evaluates the performance implications of cache-conscious data placement in an in-memory key-value store by examining how many values have to be stored consecutively in blocks in order to fully exploit memory locality during bandwidth-bound operations. We contribute by introducing a random block traversal main memory access pattern, by describing the corresponding memory access costs as well as by formally and experimentally deriving the correlation between block size and throughput. Our calculations and experiments vary the value and block sizes as well as their placement in the memory and derive their impact on cache-misses throughout the different memory hierarchies, the ability to prefetch data, and the number of needed CPU cycles to perform a certain set of data operations. The paper closes with the insight that a block-wise grouping of relatively few key-value pairs increases the throughput up to a factor six and with a discussion which implications a block-wise grouping of data has on the system design key-value store.