HyperDex. A Distributed, Searchable Key-Value Store. Robert Escriva. Department of Computer Science Cornell University

Similar documents
HyperDex: Next Generation NoSQL

MapReduce & HyperDex. Kathleen Durant PhD Lecture 21 CS 3200 Northeastern University

Large-Scale Data Stores and Probabilistic Protocols

Benchmarking Cloud Serving Systems with YCSB 詹剑锋 2012 年 6 月 27 日

NoSQL Databases MongoDB vs Cassandra. Kenny Huynh, Andre Chik, Kevin Vu

10/18/2017. Announcements. NoSQL Motivation. NoSQL. Serverless Architecture. What is the Problem? Database Systems CSE 414

Why NoSQL? Why Riak?

CS 655 Advanced Topics in Distributed Systems

MDHIM: A Parallel Key/Value Store Framework for HPC

CIS 601 Graduate Seminar. Dr. Sunnie S. Chung Dhruv Patel ( ) Kalpesh Sharma ( )

Building Consistent Transactions with Inconsistent Replication

BespoKV: Application Tailored Scale-Out Key-Value Stores

CompSci 516 Database Systems

CISC 7610 Lecture 2b The beginnings of NoSQL

Accelerating NoSQL. Running Voldemort on HailDB. Sunny Gleason March 11, 2011

CISC 7610 Lecture 5 Distributed multimedia databases. Topics: Scaling up vs out Replication Partitioning CAP Theorem NoSQL NewSQL

Architecture of a Real-Time Operational DBMS

CIB Session 12th NoSQL Databases Structures

Accelerate Database Performance and Reduce Response Times in MongoDB Humongous Environments with the LSI Nytro MegaRAID Flash Accelerator Card

Introduction to NoSQL Databases

VoltDB vs. Redis Benchmark

Overview. * Some History. * What is NoSQL? * Why NoSQL? * RDBMS vs NoSQL. * NoSQL Taxonomy. *TowardsNewSQL

NOSQL EGCO321 DATABASE SYSTEMS KANAT POOLSAWASD DEPARTMENT OF COMPUTER ENGINEERING MAHIDOL UNIVERSITY

Cassandra, MongoDB, and HBase. Cassandra, MongoDB, and HBase. I have chosen these three due to their recent

Building Consistent Transactions with Inconsistent Replication

ZHT A Fast, Reliable and Scalable Zero- hop Distributed Hash Table

Scalable Low-Latency Indexes for a Key-Value Store Ankita Kejriwal

CSE 344 JULY 9 TH NOSQL

NoSQL Databases. Amir H. Payberah. Swedish Institute of Computer Science. April 10, 2014

Cassandra - A Decentralized Structured Storage System. Avinash Lakshman and Prashant Malik Facebook

The NoSQL Ecosystem. Adam Marcus MIT CSAIL

PROFESSIONAL. NoSQL. Shashank Tiwari WILEY. John Wiley & Sons, Inc.

Distributed Data Store

NoSQL systems. Lecture 21 (optional) Instructor: Sudeepa Roy. CompSci 516 Data Intensive Computing Systems

5/1/17. Announcements. NoSQL Motivation. NoSQL. Serverless Architecture. What is the Problem? Database Systems CSE 414

Building High Performance Apps using NoSQL. Swami Sivasubramanian General Manager, AWS NoSQL

New Oracle NoSQL Database APIs that Speed Insertion and Retrieval

PebblesDB: Building Key-Value Stores using Fragmented Log Structured Merge Trees

Advances in Data Management - NoSQL, NewSQL and Big Data A.Poulovassilis

Challenges for Data Driven Systems

Consistency in Distributed Storage Systems. Mihir Nanavati March 4 th, 2016

5/2/16. Announcements. NoSQL Motivation. The New Hipster: NoSQL. Serverless. What is the Problem? Database Systems CSE 414

Introduction Aggregate data model Distribution Models Consistency Map-Reduce Types of NoSQL Databases

Database Systems CSE 414

Performance Evaluation of NoSQL Databases

Spotify. Scaling storage to million of users world wide. Jimmy Mårdell October 14, 2014

Jargons, Concepts, Scope and Systems. Key Value Stores, Document Stores, Extensible Record Stores. Overview of different scalable relational systems

Big Data Infrastructure CS 489/698 Big Data Infrastructure (Winter 2017)

Accelerating Big Data: Using SanDisk SSDs for Apache HBase Workloads

Tools for Social Networking Infrastructures

Chapter 24 NOSQL Databases and Big Data Storage Systems

Next-Generation Cloud Platform

CSE 544 Principles of Database Management Systems. Magdalena Balazinska Winter 2015 Lecture 14 NoSQL

A Cloud Storage Adaptable to Read-Intensive and Write-Intensive Workload

Advances in Data Management - NoSQL, NewSQL and Big Data A.Poulovassilis

In-Memory Data processing using Redis Database

TrafficDB: HERE s High Performance Shared-Memory Data Store Ricardo Fernandes, Piotr Zaczkowski, Bernd Göttler, Conor Ettinoffe, and Anis Moussa

Using space-filling curves for multidimensional

CMU SCS CMU SCS Who: What: When: Where: Why: CMU SCS

CSE 444: Database Internals. Lectures 26 NoSQL: Extensible Record Stores

BigchainDB: A Scalable Blockchain Database. Trent McConaghy

PNUTS: Yahoo! s Hosted Data Serving Platform. Reading Review by: Alex Degtiar (adegtiar) /30/2013

Changing Requirements for Distributed File Systems in Cloud Storage

YCSB++ benchmarking tool Performance debugging advanced features of scalable table stores

References. What is Bigtable? Bigtable Data Model. Outline. Key Features. CSE 444: Database Internals

Fusion iomemory PCIe Solutions from SanDisk and Sqrll make Accumulo Hypersonic

CS November 2017

Advanced Database Technologies NoSQL: Not only SQL

10. Replication. Motivation

NVMe SSDs Future-proof Apache Cassandra

Final Exam Review 2. Kathleen Durant CS 3200 Northeastern University Lecture 23

YCSB++ Benchmarking Tool Performance Debugging Advanced Features of Scalable Table Stores

Introduction to Computer Science. William Hsu Department of Computer Science and Engineering National Taiwan Ocean University

NoSQL BENCHMARKING AND TUNING. Nachiket Kate Santosh Kangane Ankit Lakhotia Persistent Systems Ltd. Pune, India

Haridimos Kondylakis Computer Science Department, University of Crete

Write a technical report Present your results Write a workshop/conference paper (optional) Could be a real system, simulation and/or theoretical

CPS 512 midterm exam #1, 10/7/2016

Extreme Computing. NoSQL.

BENCHMARK: PRELIMINARY RESULTS! JUNE 25, 2014!

How Eventual is Eventual Consistency?

Architekturen für die Cloud

GridGain and Apache Ignite In-Memory Performance with Durability of Disk

CSE 530A. Non-Relational Databases. Washington University Fall 2013

NoSQL Performance Test

4 Myths about in-memory databases busted

Distributed Data Analytics Partitioning

NoSQL : A Panorama for Scalable Databases in Web

The Hadoop Distributed File System Konstantin Shvachko Hairong Kuang Sanjay Radia Robert Chansler

SCALABLE CONSISTENCY AND TRANSACTION MODELS

DEMYSTIFYING BIG DATA WITH RIAK USE CASES. Martin Schneider Basho Technologies!

Design and Analysis of High Performance Crypt-NoSQL

Database Availability and Integrity in NoSQL. Fahri Firdausillah [M ]

Presented by Sunnie S Chung CIS 612

Indexing in RAMCloud. Ankita Kejriwal, Ashish Gupta, Arjun Gopalan, John Ousterhout. Stanford University

YCSB+T: Bench-marking Web-Scale Transactional Databases

Scalable Causal Consistency for Wide-Area Storage with COPS

Flat Datacenter Storage. Edmund B. Nightingale, Jeremy Elson, et al. 6.S897

How do we build TiDB. a Distributed, Consistent, Scalable, SQL Database

Can Parallel Replication Benefit Hadoop Distributed File System for High Performance Interconnects?

<Insert Picture Here> Oracle NoSQL Database A Distributed Key-Value Store

Transcription:

HyperDex A Distributed, Searchable Key-Value Store Robert Escriva Bernard Wong Emin Gün Sirer Department of Computer Science Cornell University School of Computer Science University of Waterloo ACM SIGCOMM Conference, August 14, 2012 Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 1 / 29

From RDBMS to NoSQL RDBMS have difficulty with scalability and performance NoSQL systems emerged to fill the gap Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 2 / 29

Problems Typical of NoSQL Lack of... Search Consistency Fault-Tolerance Specifics vary between systems Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 3 / 29

Typical NoSQL Architecture K Consistent hashing maps each key to a server Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 4 / 29

The Search Problem Searching for objects without the key involves many servers Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 4 / 29

The Consistency Problem Clients may read inconsistent data and writes may be lost Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 5 / 29

The Fault-Tolerance Problem Many systems default settings consider a write complete after writing to just one node Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 6 / 29

HyperDex: An Overview Hyperspace hashing Value-dependent chaining High-Performance: High throughput with low variance Strong Consistency: Strong safety guarantees Fault Tolerance: Tolerates a threshold of failures Scalable: Adding resources increases performance Rich API: Support for complex datastructures and search Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 7 / 29

Introduction Design and Implementation Hyperspace Hashing Value-Dependent Chaining Evaluation Conclusion Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 8 / 29

Attributes map to dimensions in a multidimensional hyperspace Phone Number First Name Last Name Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 9 / 29

Attribute values are hashed independently Any hash function may be used Phone Number H( 607-555-1024 ) H( Neil ) First Name Last Name H( Armstrong ) Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 9 / 29

Objects reside at the coordinate specified by the hashes Phone Number Neil Armstrong H( 607-555-1024 ) H( Neil ) First Name Last Name H( Armstrong ) Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 9 / 29

Phone Number Neil Armstrong First Name Last Name Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 9 / 29

Different objects reside at different coordinates Phone Number Neil Armstrong Lance Armstrong Neil Diamond First Name Last Name Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 9 / 29

The hyperspace is divided into regions where each object resides in exactly one region Phone Number Neil Armstrong Lance Armstrong Neil Diamond First Name Last Name Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 9 / 29

Each server is responsible for a region of the hyperspace Phone Number Neil Armstrong Lance Armstrong Neil Diamond First Name Last Name Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 9 / 29

Each search intersects a subset of regions of the hyperspace Phone Number Neil Armstrong Lance Armstrong Neil Diamond First Name Last Name Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 9 / 29

All people named Neil are mapped to the yellow plane Phone Number Neil Armstrong Lance Armstrong Neil Diamond First Name Last Name Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 9 / 29

All people named Neil are mapped to the yellow plane Phone Number Neil Armstrong Lance Armstrong Neil Diamond First Name Last Name Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 9 / 29

All people named Armstrong are mapped to the gray plane Phone Number Neil Armstrong Lance Armstrong Neil Diamond First Name Last Name Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 9 / 29

All people named Armstrong are mapped to the gray plane Phone Number Neil Armstrong Lance Armstrong Neil Diamond First Name Last Name Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 9 / 29

A more restrictive search for Neil Armstrong contacts fewer servers Phone Number Neil Armstrong Lance Armstrong Neil Diamond First Name Last Name Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 9 / 29

Range searches are natively supported Phone Number Neil Armstrong Lance Armstrong Neil Diamond First Name Last Name Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 9 / 29

Space Partitioning In a naive implementation, the hyperspace would grow exponentially in the number of dimensions Space partitioning prevents exponential growth in the number of searchable attributes k a 1 a 2 a 3 a 4 a 5... a D-2 a D-1 a D Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 10 / 29

Space Partitioning In a naive implementation, the hyperspace would grow exponentially in the number of dimensions Space partitioning prevents exponential growth in the number of searchable attributes k a 1 a 2 a 3 a 4 a 5... a D-2 a D-1 a D k a 1 a 2 a 3 a 4 a 5... a D-2 a D-1 a D key subspace subspace 0 subspace 1 subspace S A search is performed in the most restrictive subspace Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 10 / 29

Space Partitioning In a naive implementation, a 9-dimensional space could require 512 machines HyperDex can store this space on just 24 machines using three subspaces Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 11 / 29

Hyperspace Hashing Implications searches are efficient Hyperspace hashing is a mapping, not an index No per-object updates to a shared datastructure No overhead for building and maintaining B-trees Functionality gained solely through careful placement Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 12 / 29

Introduction Design and Implementation Hyperspace Hashing Value-Dependent Chaining Evaluation Conclusion Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 13 / 29

Replication As an object changes, so too must the set of servers holding it Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 14 / 29

Value-Dependent Chaining A C k key subspace B subspace 1 D subspace 2 Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 15 / 29

Value-Dependent Chaining put(k, A=1,B=1, C=1,D=1) 1 1 1 1 k key subspace A B subspace 1 C 1 1 A put includes one node from each subspace D subspace 2 Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 15 / 29

Value-Dependent Chaining put(k, A=0,B=0, C=1,D=1) 2 1 2 2 2 k key subspace A 1 2 B subspace 1 C 2 D subspace 2 When updating an object, the value-dependent chain includes the servers which hold the old and new versions of the object Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 15 / 29

Value-Dependent Chaining put(k, A=0,B=0, C=1,D=1) 2 2 2 2 k key subspace A 2 B subspace 1 C 2 D subspace 2 Each put removes all state from the previous put Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 15 / 29

Value-Dependent Chaining put(k, A=0,B=1, C=1,D=1) 3 2 3 3 k key subspace A 3 2 3 B subspace 1 C 3 D subspace 2 Subsequent operations involve solely the most recent nodes Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 15 / 29

Value-Dependent Chaining A C k key subspace B subspace 1 D subspace 2 Servers are replicated in each region to provide fault tolerance Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 16 / 29

Value-Dependent Chaining put(k, A=0,B=0, C=1,D=1) 2 2 1 1 2 2 2 2 2 k key subspace A 1 2 B subspace 1 The value-dependent chain includes all replicas C 2 D subspace 2 Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 16 / 29

Value-Dependent Chaining put(k, A=0,B=0, C=1,D=1) 2 2 1 1 2 2 2 2 2 k key subspace A 1 2 B subspace 1 Failed nodes are removed from the chain C 2 D subspace 2 Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 16 / 29

Value-Dependent Chaining Implications No extra mechanism is necessary to provide Atomicity Ordering Replication Relocation Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 17 / 29

Consistency Key Consistency: Key operations are linearizable Search Consistency: All search operations observe all put operations that completed prior to the search Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 18 / 29

Implementation Fully implemented system with 52,000 LOC Bindings for C, C++, Python, Java, Ruby, Node.JS Open sourced under a BSD-like license Active user community with many contributors Implementation tricks: Hyperspace hashing maps objects to locations on disk Paxos-based RSM maintains the hyperspace mapping Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 19 / 29

Introduction Design and Implementation Evaluation Conclusion Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 20 / 29

Experimental Setup Use the Yahoo! Cloud Serving Benchmark Each system makes two replicas of the data MongoDB: Writes to the client s outgoing socket buffer Cassandra: Writes to one storage node s filesystem HyperDex: Writes to both replicas in three subspaces Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 21 / 29

YCSB Throughput Throughput (thousand op/s) 40 35 30 25 20 15 10 5 0 Workload A Workload B Workload C Workload D Workload F Workload E Cassandra MongoDB HyperDex Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 22 / 29

95% get / 5% put Latency 100 80 YCSB Workload B CDF (%) 60 40 20 0 Cassandra (R) Cassandra (U) MongoDB (R) MongoDB (U) HyperDex (R) HyperDex (U) 1 10 100 1000 Latency (ms) Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 23 / 29

100% put Latency 100 YCSB Load Dataset 80 CDF (%) 60 40 20 0 Cassandra MongoDB HyperDex 1 10 100 1000 Latency (ms) Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 24 / 29

search Latency 100 YCSB Workload E 80 CDF (%) 60 40 20 0 Cassandra MongoDB HyperDex 1 10 100 1000 Latency (ms) Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 25 / 29

Chain Length vs. Put Latency 7 6 Latency (ms) 5 4 3 2 1 0 2 4 6 8 10 12 14 16 18 20 22 Chain Length (nodes) Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 26 / 29

Scalability 4 Throughput (million ops/s) 3 2 1 0 4 8 12 16 20 24 28 32 Nodes Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 27 / 29

Performance Summary Outperforms other systems by 2 4 for get/put While offering stronger consistency and fault tolerance Outperforms other systems by 12 13 for search Despite operating solely on secondary attributes Latency for chain-operations is predictable Scales as resources are added Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 28 / 29

Conclusion HyperDex is a next generation NoSQL system Novel Techniques Hyperspace Hashing Value-Dependent Chaining The next-generation of NoSQL systems should explore alternative designs that offer both an expanded API and strong guarantees http://hyperdex.org/ Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 29 / 29

Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 1 / 7

YCSB Benchmark Workloads Name Workload Key Choice Application A 50% R Zipf Session Store 50% U B 95% R Zipf Photo Tagging 5% U C 100% R Zipf Profile Cache D 95% R Temporal Status Updates 5% I E 95% S Zipf Threads 5% I F 50% R Zipf User Database 50% R-M-U R = Read, U = Update, I = Insert, S = Scan/Search Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 2 / 7

Hash Functions and Load Balancing Out of the box, HyperDex supports hashing strings and integers What about non-uniform inputs? Select a better hash function Use forwarding pointers Create multiple dimensions in the hyperspace for a single attribute The default hash functions work well for workloads that we ve seen in practice Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 3 / 7

The CAP Theorem What CAP is simplified to: You must always give something up What the CAP theorem really says: If you cannot limit the number of faults and requests can be directed to any server and you insist on serving every request then you cannot possibly be consistent Most NoSQL systems are proud to preemptively give up desirable properties like consistency in the name of CAP even in the case of no failures HyperDex allows for f failures without sacrificing consistency or availability Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 4 / 7

Experimental Setup Lab Cluster 14 Machines Intel Xeon 2.5 GHz E5420 2 16 GB RAM 500 GB SATA HDD Debian 6.0 Linux 2.6.32 VICCI Cluster 70 Machines Intel Xeon 2.66 GHz X5650 2 48 GB RAM 1 TB SATA HDD 3 Virtualized Fedora 12 Linux 2.6.32 Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 5 / 7

Cluster Size Netflix: App-specific clusters of 6-48 Cassandra instances Google BigTable: 66% of clusters < 20 tablet servers 84% of clusters < 100 tablet servers 96% of clusters < 500 tablet servers Justin Sheehy, Basho Inc.: Typical cluster is 6-12 Riak nodes Largest clusters < 100 Riak nodes Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 6 / 7

Related Work Multi-dimensional database systems on a single host Grid File, KD-Tree, Multi-dimensional BST, Quad-Tree, R-Tree, Universal B-Tree Distributed database systems maintain distributed indices Distributed B-Tree, P-Tree, Sinfonia Peer-to-peer systems are only eventually consistent Arpeggio, CAN, Chord, Consistent Hashing, Mercury, MURK, Pastry, SkipIndex, SWAM-V, Tapestry Space-filling curves suffer from the curse of dimensionality MAAN, SCRAP, Squid, ZNet NoSQL systems/key-value stores give up search, consistency or fault-tolerance CouchDB, MongoDB, Neo4j, PNUTS, Redis, TXCache, BigTable, Cassandra, COPS, Distributed Data Structures, Dynamo, Fawn KV, HBase, HyperTable, LazyBase, Masstree, Memcached, RAMCloud, Riak, SILT, Spanner, Spinnaker, TSSL, Voldemort Robert Escriva Bernard Wong, Emin Gün Sirer HyperDex http://hyperdex.org/ 7 / 7