330 likes | 719 Views
Hypertable. Doug Judd CEO, Hypertable, Inc. Modeled after Bigtable High Performance Implementation (C++) Project Started in March 2007 Runs on top of HDFS Thrift Interface for all popular languages Java PHP Ruby Python Perl, etc. High Performance, Open Source Scalable Database.
E N D
Hypertable Doug Judd CEO, Hypertable, Inc.
Modeled after Bigtable High Performance Implementation (C++) Project Started in March 2007 Runs on top of HDFS Thrift Interface for all popular languages Java PHP Ruby Python Perl, etc. High Performance, Open SourceScalable Database
Load data from HT to Hive and vice-versa Use Hive types Use Hive QL (joins, aggregations) Low latency data warehousing Uses Hypertable’s native MapReduce Input/Output format
Namespaces /development user tweet /testing user tweet /production /v1 user tweet /v2 user tweet
Column Family Options • TTL=<t> • “time to live” • Remove cells that are older than <t> • MAX_VERSIONS=<n> • Keep only most recent <n> cell versions
Access Groups • Provides control over physical layout • Row oriented • Column oriented • Hybrid • Reduces I/O CREATE TABLE MyTable ( a, b, c, d, ACCESS GROUP first(a), ACCESS GROUP second (b, c, d) );
Regular Expression Filtering • Google’s RE2 regular expression engine • Extremely fast (up to 50X Java regex) • Searches run in time linear in the size of the input • Searches constrained to a fixed amount of memory • Supported Searches: • Row key • Column qualifier • Value SELECT CELLS tag:/(?i)(nosql|bigtable)/ FROM MyTable WHERE ROW REGEXP "^\D+" AND VALUE REGEXP ”(?i)hypertable";
Atomic Counters • New column option: • Modified via existing API using specially formatted values: create table counts ( url COUNTER, );
Group Commit • Supports highly concurrent updates • Trades minimum latency for better throughput • Configurable commit interval per-table: CREATE TABLE counts ( url, domain ) GROUP_COMMIT_INTERVAL=100;
Compression • Block compression • Cell Store (SSTable) blocks • Commit Log blocks • Supported Compression Schemes: • zlib • lzo • quicklz • bmz • none
Bloom Filter • Dramatically reduces disk access • Associated with each Cell Store • Tells you if key is definitively not present
Setup • Modeled after Test described in Bigtable paper • 1 Test Dispatcher, 4 Test Clients, 4 Tablet Servers • Test was written entirely in Java • Hardware • 1 X 1.8 GHz Dual-core Opteron • 10 GB RAM • 3X 250GB SATA drives • Software • HDFS 0.20.2 running on all 10 nodes, 3X replication • HBase 0.20.4 • Hypertable 0.9.3.3
Upcoming Release (0.9.5) • Last “alpha” release • Release Date: February 15th 2011 • Features • Automatic range balancing • Asynchronous API • Improved Monitoring System