DBDB.io The Encyclopedia of Database Systems · Est. 2017
Database of Databases

Database Entry

Hypertable


Hypertable is an open source database modeled after Bigtable, Google's massively scalable database. It goes real-time at Baidu.[05][06][07][04]

Source Code
https://github.com/hypertable/hypertable[02]
Developer
Country of Origin
US
Start Year
2008 [08]
End Year
2016 [11]
Acquired By
Project Types
Commercial, Open Source
Written in
C++
Supported Languages
C++, Java, Perl, PHP, Python, Ruby
Inspired By
Cloud BigTable
Compatible With
H-Store
License
GPL v3

Hypertable runs on top of a distributed file system. It supports HDFS, MapR, Ceph, KFS, and local. It is developed by C++.

Database Entry

Hypertable


Hypertable is an open source database modeled after Bigtable, Google's massively scalable database. It goes real-time at Baidu. Hypertable runs on top of a distributed file system. It supports HDFS, MapR, Ceph, KFS, and local. It is developed by C++.[05][06][07][04]

History[08][04][09][10][11]


Hypertable was released by the company Zvents at 2008, and Doug Judd promoted to the Hypertable. Baidu, the search engine in China, became project sponsor in January 2009. The development ended in March 2016.

Checkpoints[12][13]


Hypertable backup by outputting table data in random order. Hypertable will always be back into a consistent and operational state at the checkpoint.

Compression[14][15][16]


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.

Concurrency Control[17]


Hypertable uses Multi-Version Concurrency Control (MVCC). It uses auto-assign timestamps as revision numbers.

Data Model[06]


Hypertable uses a set of related columns.

Foreign Keys


Isolation Levels[15]


Hypertable provides snapshot isolation for queries with 8-byte timestamps.

Joins[06]


Hypertable does not support Joins.

Query Interface[18]


Hypertable provides the Hypertable Query Language (HQL) to create, modify, and query tables. HQL can also be used to invoke administrative commands. HQL can be interpreted by hypertable command line interface (ht shell), Thrift API methods, and Hypertable::HqlInterpreter C++ class.

Storage Architecture[15]


Hypertable is able to run on top of any filesystem. A File System (FS) broker process all filesystem requests. FS brokers currently support HDFS, MapR, Ceph, KFS, and local (for running on top of a local filesystem).

Storage Model


Storage Organization[15]


Stored Procedures


System Architecture[15]


The diagram below provides a high-level overview of the Hypertable system followed by a brief description of each system component.

System Architecture of Hypertable

Hyperspace - This is Hypertable's equivalent to Google's Chubby service. Hyperspace is a lock manager and provides a filesystem for storing small amounts of metadata.

Master - The master handles all meta operations such as creating and deleting tables. The master is also responsible for detecting range server failures and re-assigning ranges if necessary.

Range Server - Range servers are responsible for managing ranges of table data, handling all reading and writing of data.

FS Broker - Hypertable is capable of running on top of any filesystem. To achieve this, the system has abstracted the interface to the filesystem by sending all filesystem requests through a File System (FS) broker process. The FS broker provides a normalized filesystem interface and translates normalized filesystem requests into native filesystem requests and vice-versa. FS brokers have been developed for HDFS, MapR, Ceph, KFS, and local (for running on top of a local filesystem).

ThriftBroker - Provides an interface for applications written in any high-level language to communicate with Hypertable. The ThriftBroker is implemented with Apache Thrift and provides bindings for applications written in Java, PHP, Ruby, Python, Perl, and C++.

Citations

18 sources
  1. Error hypertable.com Dead — Check Archive
  2. GitHub - hypertable/hypertable: A flexible database focused on performance and scalability · GitHub github.com
  3. http://www.hypertable.com/documentation hypertable.com Spam — Check Archive
  4. Hypertable - Wikipedia wikipedia.org
  5. https://cdn.hypertable.com/pub/hypertable-goes-realtime-at-baidu.pdf hypertable.com
  6. Error hypertable.com Dead — Check Archive
  7. Google Code Archive - Long-term storage for Google Code Project Hosting. google.com
  8. Zvents releases open-source cluster database | Network World networkworld.com
  9. http://www.linux-mag.com/id/6645/ linux-mag.com Dead — Check Archive
  10. http://www.googlestack.com/50226711/taking_hypertable_0921_for_a_ride.php googlestack.com Dead — Check Archive
  11. Error hypertable.com Dead — Check Archive
  12. Error hypertable.com Dead — Check Archive
  13. Error hypertable.com Dead — Check Archive
  14. Error hypertable.com Dead — Check Archive
  15. Error hypertable.com Dead — Check Archive
  16. Error hypertable.com Dead — Check Archive
  17. Error hypertable.com Dead — Check Archive
  18. Error hypertable.com Dead — Check Archive
Revision #29