Exploring the Implications of Building a Column Store using a Key Value Store System

Sathyanarayanan Gunasekar, Kamiya Motwani, Karthik Narayan

Abstract: Key Value stores have been a rage these days. They attract the attention of the application developers since they guarantee very high availability and can scale to high numbers. However, they don't provide a rich API to the application programmers in most cases. The APIs are in the form of get and put operations. This is not suitable for OLAP queries which work on huge amounts of data. On the other hand, column stores are very good for OLAP queries but don't perform well on scaling. Hence we try to analyze the implications of building a column store with a key value store as a building block. We first build a naive column store using Voldemort, which is a key value store, and then improve the performance of this column store by introducing some indexing mechanisms for aggregate queries over a range. We also use machine learning to build an intelligent column store that performs better than the naive column store.

Available as: PDF

Click here to download our implementation.