1 Introduction
NoSQL systems have become a popular choice as database backends for applications because of the high performance, scalability, and availability that they provide. In this paper, we focus on systems that Cattell termed extensible record stores in his taxonomy of NoSQL systems [1]. In these extensible record stores, applications can create tables of records, with each record identified by a key. However, the application need not define the set of columns in the records in advance. Instead, each record can have an arbitrary collection of columns, each with an associated value. Because of this flexibility, applications can encode their data in both the keys and column values. We refer to tables in such systems as column families . Examples of extensible record stores that support this column family model include Cassandra [2], HBase [3], and Bigtable [4].