lec14-KeyValuex4

lec14-KeyValuex4 - Key Value Storage " CS162 Operating...

Info iconThis preview shows pages 1–4. Sign up to view the full content.

View Full Document Right Arrow Icon
Page 1 CS162 Operating Systems and Systems Programming Lecture 14 Key Value Storage Systems March 12, 2012 Anthony D. Joseph and Ion Stoica http://inst.eecs.berkeley.edu/~cs162 Lec 14.2 3/12 Anthony D. Joseph and Ion Stoica CS162 ©UCB Spring 2012 Key Value Storage • Handle huge volumes of data, e.g., PBs – Store (key, value) tuples • Simple interface put (key, value); // insert/write “value” associated with “key” – value = get (key); // get/read data associated to “key” • Used sometimes as a simpler but more scalable “database” Lec 14.3 3/12 Anthony D. Joseph and Ion Stoica CS162 ©UCB Spring 2012 • Amazon: – Key: customerID – Value: customer proFle (e.g., buying history, credit card, . .) • ±acebook, Twitter: – Key: UserID – Value: user proFle (e.g., posting history, photos, friends, …) • iCloud/iTunes: – Key: Movie/song name – Value: Movie, Song Key Values: Examples Lec 14.4 3/12 Anthony D. Joseph and Ion Stoica CS162 ©UCB Spring 2012 System Examples Amazon – Dynamo: internal key value store used to power Amazon.com – Simple Storage System (S3) BigTable/HBase/Hypertable: distributed, scalable data storage Cassandra : “distributed data management system” (developed by ±acebook) Memcached: in-memory key-value store for small chunks of arbitrary data (strings, objects) eDonkey: peer-to-peer sharing system • …
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Page 2 Lec 14.5 3/12 Anthony D. Joseph and Ion Stoica CS162 ©UCB Spring 2012 Key Value Store • Also called a Distributed Hash Table (DHT) • Main idea: distributed the hash table (key-values tuples) across many machines key, value Lec 14.6 3/12 Anthony D. Joseph and Ion Stoica CS162 ©UCB Spring 2012 Challenges Fault Tolerance: handle machine failures without losing data and without degradation in performance Scalability: – Need to scale to thousands of machines – Need to allow easy addition of new machines Consistency: maintain data consistency in face of node failures and message losses Heterogeneity (if deployed as peer-to-peer systems): – Latency: 1ms to 1000ms – Bandwidth: 32Kb/s to 100Mb/s Lec 14.7 3/12 Anthony D. Joseph and Ion Stoica CS162 ©UCB Spring 2012 Key Questions • put(key, value): where do you store a new (key, value) tuple? • get(key): where is the value associated with a given “key” stored? • And, do the above while providing – Fault Tolerance – Scalability – Consistency Lec 14.8 3/12 Anthony D. Joseph and Ion Stoica CS162 ©UCB Spring 2012 Directory-Based Architecture • Have a node maintain the mapping between keys and the machines (nodes) that store the values associated with the keys N 1 N 2 N 3 N 50 K5 V5 K14 V14 K105 V105 K5 N2 K14 N3 K105 N50 Master/Directory put(K14, V14) put(K14, V14)
Background image of page 2
Page 3 Lec 14.9 3/12 Anthony D. Joseph and Ion Stoica CS162 ©UCB Spring 2012 Directory-Based Architecture • Have a node maintain the mapping between keys and the machines (nodes) that store the
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 4
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 03/12/2012 for the course CS 162 taught by Professor Kubiatowicz during the Spring '02 term at Berkeley.

Page1 / 13

lec14-KeyValuex4 - Key Value Storage " CS162 Operating...

This preview shows document pages 1 - 4. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online