Hypertable

Hypertable is a high performance, open source, massively scalable database modeled after Bigtable, Google's proprietary, massively scalable database. Hypertable runs on top of a distributed file system such as the Apache HDFS, GlusterFS or the CloudStore Kosmos File System (KFS). It is written almost entirely in C++ as the developers believed it had significant performance advantages over Java.

History

Hypertable software was originally developed at the company Zvents before 2008. Doug Judd was a promoter of Hypertable. In January 2009, Baidu, the Chinese language search engine, became a project sponsor. A version 0.9.2.1 was described in a blog in February 2009. Development ended in March 2016.

Compression

Naïve (Page-Level)

Over time, the RangeServers will write in-memory CellCaches to on-disk files, called CellStores. CellStores contain a series of sorted blocks of compressed sorted key/value pairs. These blocks are the minimum unit of data transfer from disk. User can choose the compressor used to compress CellStore blocks in each access group. The compressor option includes zlib, lzo, quicklz, snappy, bmz, none. The default compressor is quicklz.

Data Model

Column Family / Wide-Column

Hypertable uses a set of related columns known as a column family. Users may supply an optional column qualifier and specify the qualified column as family:qualifier.

Concurrency Control

Multi-version Concurrency Control (MVCC)

The system uses Multi-Version Concurrency Control (MVCC) and by default will auto-assign revision numbers using a timestamp.

Isolation Levels

Snapshot Isolation

Timestamp is used internally to provide snapshot isolation for queries.