hypertable berlin buzzwords

34
Hypertable Hypertable Doug Judd Doug Judd CEO, Hypertable, Inc. CEO, Hypertable, Inc.

Upload: hypertable

Post on 30-Jun-2015

4.550 views

Category:

Technology


4 download

DESCRIPTION

This presentation was given by Doug Judd at BerlinBuzzwords 2010.

TRANSCRIPT

Page 1: Hypertable Berlin Buzzwords

HypertableHypertable

Doug JuddDoug Judd

CEO, Hypertable, Inc.CEO, Hypertable, Inc.

Page 2: Hypertable Berlin Buzzwords

High Performance, Open SourceHigh Performance, Open SourceScalable DatabaseScalable Database

Modeled after Modeled after BigtableBigtable High Performance Implementation (C++)High Performance Implementation (C++) Project Started in March 2007Project Started in March 2007 Thrift Interface for all popular languagesThrift Interface for all popular languages

JavaJava PHPPHP RubyRuby PythonPython Perl, etc.Perl, etc.

Page 3: Hypertable Berlin Buzzwords

Bigtable: the infrastructure that Bigtable: the infrastructure that Google is built onGoogle is built on

YouTubeYouTube BloggerBlogger Google EarthGoogle Earth Google MapsGoogle Maps Orkut (social network)Orkut (social network) GmailGmail Google AnalyticsGoogle Analytics Google Book SearchGoogle Book Search Google CodeGoogle Code Crawl DatabaseCrawl Database … … plus 90 other Google services …plus 90 other Google services …

Page 4: Hypertable Berlin Buzzwords

FunctionalityFunctionality

Massive sparse tables of informationMassive sparse tables of information Single primary key indexSingle primary key index Cells can have mulitple timestamped Cells can have mulitple timestamped

versionsversions Not RelationalNot Relational

No joins (not yet)No joins (not yet) No secondary indexes (not yet)No secondary indexes (not yet) Not a transaction system (not yet)Not a transaction system (not yet)

Page 5: Hypertable Berlin Buzzwords

Hypertable DeploymentsHypertable Deployments

Page 6: Hypertable Berlin Buzzwords

Other ArchitecturesOther Architectures

Page 7: Hypertable Berlin Buzzwords

Auto-ShardingAuto-Sharding

MongoDBMongoDB

AsterDataAsterData

GreenplumGreenplum

Page 8: Hypertable Berlin Buzzwords

MongoDBMongoDB

Page 9: Hypertable Berlin Buzzwords

Dynamo-based Hash Table Dynamo-based Hash Table ArchitecturesArchitectures

CassandraCassandra

Project VoldemortProject Voldemort

RiakRiak

Page 10: Hypertable Berlin Buzzwords

Eventual ConsistencyEventual Consistency

Page 11: Hypertable Berlin Buzzwords

Consistent HashingConsistent Hashing

Page 12: Hypertable Berlin Buzzwords

Order Preserving Partitioner Order Preserving Partitioner (Cassandra)(Cassandra)

www.recipezaar.com 1091721999…629750272 1091721999…629750272

++www.ribbonprinters.com 1091721999…965293103 1091721999…965293103

/ 2 =/ 2 =www.rgb????i?pQdp?.??? 1091721999…297521687?.??? 1091721999…297521687

Page 13: Hypertable Berlin Buzzwords

Order Preserving PartitionerOrder Preserving PartitionerBalance ProblemBalance Problem

Page 14: Hypertable Berlin Buzzwords

Hypertable ArchitectureHypertable Architecture

Page 15: Hypertable Berlin Buzzwords

Conceptual Table LayoutConceptual Table Layout

Page 16: Hypertable Berlin Buzzwords

Table: Actual RepresentationTable: Actual Representation

Page 17: Hypertable Berlin Buzzwords

Range DistributionRange Distribution

Page 18: Hypertable Berlin Buzzwords

Google StackGoogle Stack

Page 19: Hypertable Berlin Buzzwords

Google File SystemGoogle File System

Page 20: Hypertable Berlin Buzzwords

Google File SystemGoogle File System

Page 21: Hypertable Berlin Buzzwords

System OverviewSystem Overview

Page 22: Hypertable Berlin Buzzwords

Log Structured Merge (LSM) TreeLog Structured Merge (LSM) Tree

Eliminates random I/O on writesEliminates random I/O on writes Converts random I/O to sequential I/OConverts random I/O to sequential I/O Write pathWrite path

1.1. Commit log on disk (DFS)Commit log on disk (DFS)

2.2. In-memory mapIn-memory map In-memory map gets “compacted” to diskIn-memory map gets “compacted” to disk Disk files periodically get mergedDisk files periodically get merged

Page 23: Hypertable Berlin Buzzwords

Range ServerRange Server Manages ranges of table dataManages ranges of table data CellCache: In-memory map containing recent updatesCellCache: In-memory map containing recent updates CellStore: On-disk (DFS) file containing “compacted” cell CellStore: On-disk (DFS) file containing “compacted” cell

cachecache

Page 24: Hypertable Berlin Buzzwords

Range Server: CellStoreRange Server: CellStore

Sequence of 65K Sequence of 65K blocks of compressed blocks of compressed key/value pairskey/value pairs

Page 25: Hypertable Berlin Buzzwords

CompressionCompression Cell Store blocks are compressedCell Store blocks are compressed Commit Log updates are compressedCommit Log updates are compressed Supported Compression SchemesSupported Compression Schemes

zlib (--best and --fast)zlib (--best and --fast) lzolzo quicklzquicklz bmzbmz nonenone

Page 26: Hypertable Berlin Buzzwords

Bloom FilterBloom Filter Probabilistic data structure associated with every Probabilistic data structure associated with every

CellStoreCellStore Indicates if key is Indicates if key is notnot present present

Page 27: Hypertable Berlin Buzzwords

CachingCaching Block CacheBlock Cache

Caches CellStore blocksCaches CellStore blocks Blocks are cached uncompressedBlocks are cached uncompressed Dynamically adjusted size based on workloadDynamically adjusted size based on workload

Query CacheQuery Cache Caches query resultsCaches query results

Page 28: Hypertable Berlin Buzzwords

Dynamic Memory AdjustmentDynamic Memory Adjustment

Page 29: Hypertable Berlin Buzzwords

Performance EvaluationPerformance Evaluation

Hypertable vs. HBaseHypertable vs. HBase

Page 30: Hypertable Berlin Buzzwords

Test SetupTest Setup

Hypertable v0.9.3.2 (not yet released)Hypertable v0.9.3.2 (not yet released) HBase 0.20.3HBase 0.20.3 HDFS 0.20.2HDFS 0.20.2 10 machines10 machines

3 Hyperspace / Zookeeper replicas3 Hyperspace / Zookeeper replicas 1 Master / 4 Tablet Servers (5GB RAM)1 Master / 4 Tablet Servers (5GB RAM) 1 Test Dispatcher / 4 Test Clients1 Test Dispatcher / 4 Test Clients

Machine profileMachine profile 1 X 1.8 GHz Dual-core Opteron1 X 1.8 GHz Dual-core Opteron 10 GB RAM10 GB RAM 3 X 250 GB SATA drives3 X 250 GB SATA drives

Page 31: Hypertable Berlin Buzzwords

Random Write / Sequential ReadRandom Write / Sequential Read

Page 32: Hypertable Berlin Buzzwords

Random ReadRandom Read

Page 33: Hypertable Berlin Buzzwords

Project ResourcesProject Resources

Twitter: hypertableTwitter: hypertable www.hypertable.orgwww.hypertable.org

Page 34: Hypertable Berlin Buzzwords

Professional SupportProfessional Support