Infrastructure system services

Similar documents
BigTable: A Distributed Storage System for Structured Data (2006) Slides adapted by Tyler Davis

Bigtable: A Distributed Storage System for Structured Data By Fay Chang, et al. OSDI Presented by Xiang Gao

CS November 2017

CS November 2018

Bigtable. A Distributed Storage System for Structured Data. Presenter: Yunming Zhang Conglong Li. Saturday, September 21, 13

Bigtable: A Distributed Storage System for Structured Data by Google SUNNIE CHUNG CIS 612

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

Bigtable: A Distributed Storage System for Structured Data. Andrew Hon, Phyllis Lau, Justin Ng

Big Table. Google s Storage Choice for Structured Data. Presented by Group E - Dawei Yang - Grace Ramamoorthy - Patrick O Sullivan - Rohan Singla

Bigtable. Presenter: Yijun Hou, Yixiao Peng

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

BigTable: A Distributed Storage System for Structured Data

Distributed Systems [Fall 2012]

BigTable. CSE-291 (Cloud Computing) Fall 2016

big picture parallel db (one data center) mix of OLTP and batch analysis lots of data, high r/w rates, 1000s of cheap boxes thus many failures

Distributed File Systems II

CSE 544 Principles of Database Management Systems. Magdalena Balazinska Winter 2009 Lecture 12 Google Bigtable

MapReduce & BigTable

BigTable A System for Distributed Structured Storage

BigTable: A System for Distributed Structured Storage

Distributed Database Case Study on Google s Big Tables

Bigtable: A Distributed Storage System for Structured Data

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

BigTable. Chubby. BigTable. Chubby. Why Chubby? How to do consensus as a service

Introduction Data Model API Building Blocks SSTable Implementation Tablet Location Tablet Assingment Tablet Serving Compactions Refinements

ΕΠΛ 602:Foundations of Internet Technologies. Cloud Computing

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

Big Data Management and NoSQL Databases

CA485 Ray Walshe NoSQL

Extreme Computing. NoSQL.

CSE-E5430 Scalable Cloud Computing Lecture 9

Distributed Systems Pre-exam 3 review Selected questions from past exams. David Domingo Paul Krzyzanowski Rutgers University Fall 2018

Bigtable: A Distributed Storage System for Structured Data

CS 138: Google. CS 138 XVII 1 Copyright 2016 Thomas W. Doeppner. All rights reserved.

CS /29/18. Paul Krzyzanowski 1. Question 1 (Bigtable) Distributed Systems 2018 Pre-exam 3 review Selected questions from past exams

CSE Lecture 11: Map/Reduce 7 October Nate Nystrom UTA

CS 138: Google. CS 138 XVI 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Outline. Spanner Mo/va/on. Tom Anderson

18-hdfs-gfs.txt Thu Oct 27 10:05: Notes on Parallel File Systems: HDFS & GFS , Fall 2011 Carnegie Mellon University Randal E.

18-hdfs-gfs.txt Thu Nov 01 09:53: Notes on Parallel File Systems: HDFS & GFS , Fall 2012 Carnegie Mellon University Randal E.

Structured Big Data 1: Google Bigtable & HBase Shiow-yang Wu ( 吳秀陽 ) CSIE, NDHU, Taiwan, ROC

Motivation. Map in Lisp (Scheme) Map/Reduce. MapReduce: Simplified Data Processing on Large Clusters

Cloud Programming. Programming Environment Oct 29, 2015 Osamu Tatebe

7680: Distributed Systems

The MapReduce Abstraction

Google File System and BigTable. and tiny bits of HDFS (Hadoop File System) and Chubby. Not in textbook; additional information

CS427 Multicore Architecture and Parallel Computing

Bigtable: A Distributed Storage System for Structured Data

Distributed computing: index building and use

Programming Systems for Big Data

Distributed computing: index building and use

Data Informatics. Seon Ho Kim, Ph.D.

Lessons Learned While Building Infrastructure Software at Google

NPTEL Course Jan K. Gopinath Indian Institute of Science

The Google File System

CS 345A Data Mining. MapReduce

Parallel Computing: MapReduce Jin, Hai

Clustering Lecture 8: MapReduce

CS5412: OTHER DATA CENTER SERVICES

11 Storage at Google Google Google Google Google 7/2/2010. Distributed Data Management

Google File System. Arun Sundaram Operating Systems

The Google File System

Distributed Computations MapReduce. adapted from Jeff Dean s slides

MapReduce & Resilient Distributed Datasets. Yiqing Hua, Mengqi(Mandy) Xia

Distributed Data Management. Christoph Lofi Institut für Informationssysteme Technische Universität Braunschweig

Big Table. Dennis Kafura CS5204 Operating Systems

Distributed Systems. 05r. Case study: Google Cluster Architecture. Paul Krzyzanowski. Rutgers University. Fall 2016

Introduction to MapReduce (cont.)

MapReduce Spark. Some slides are adapted from those of Jeff Dean and Matei Zaharia

Distributed Systems 16. Distributed File Systems II

CS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University

The Google File System

CLOUD-SCALE FILE SYSTEMS

The Google File System

Map-Reduce. Marco Mura 2010 March, 31th

Google File System. Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung Google fall DIP Heerak lim, Donghun Koo

Hadoop/MapReduce Computing Paradigm

The Google File System (GFS)

Outline. Distributed File System Map-Reduce The Computational Model Map-Reduce Algorithm Evaluation Computing Joins

Google big data techniques (2)

CS5412: DIVING IN: INSIDE THE DATA CENTER

PLATFORM AND SOFTWARE AS A SERVICE THE MAPREDUCE PROGRAMMING MODEL AND IMPLEMENTATIONS

The Google File System

Parallel Programming Concepts

goals monitoring, fault tolerance, auto-recovery (thousands of low-cost machines) handle appends efficiently (no random writes & sequential reads)

CompSci 516: Database Systems

Lecture: The Google Bigtable

Announcements. Reading Material. Map Reduce. The Map-Reduce Framework 10/3/17. Big Data. CompSci 516: Database Systems

The Google File System

Google File System 2

Distributed Systems. Fall 2017 Exam 3 Review. Paul Krzyzanowski. Rutgers University. Fall 2017

GFS: The Google File System

Part A: MapReduce. Introduction Model Implementation issues

MI-PDB, MIE-PDB: Advanced Database Systems

Programming model and implementation for processing and. Programs can be automatically parallelized and executed on a large cluster of machines

Announcements. Optional Reading. Distributed File System (DFS) MapReduce Process. MapReduce. Database Systems CSE 414. HW5 is due tomorrow 11pm

CSE 124: Networked Services Lecture-16

Introduction to Data Management CSE 344

CA485 Ray Walshe Google File System

Developing MapReduce Programs

Transcription:

Infrastructure system services Badri Nath Rutgers University badri@cs.rutgers.edu Processing lots of data O(B) web pages; each O(K) bytes to O(M) bytes gives you O(T) to O(P) bytes of data Disk Bandwidth per computer O(50 MB/sec) Processing time O(0 6 ) secs for O(T) data Reduce it to O(0 ) with K processors Need high parallelism to process web data Web Processing: Process, transform, store. MapReduce Programming Model. BigTable or Hypertable. Chubby Lock Service Programming model Computation takes input of key, value pairs and transforms into output of key value pairs Dividided into two map function that produces from the input an intermediate set of key value pairs Reduce function that takes the intermediate key value pairs and merges the values for a given key Inherent parallelism as map operates on partition of input and no dependency between map processes List processing Model taken from Functional programming such as list Map ( square (,,, 4)) (, 4, 9, 6) Reduce (sum (, 4, 9, 6)) (0) Distributed Grep cat inp.dat grep sort uniq c cat > out.dat Input map sort reduce output 4

Map reduce functions Map (k,v) list (k, v) E.g., k document names, v content of documents E.g., k words, v count of words in doc Reduce (k, list(v)) k, sum(list(v)) E.g., sum is word count for each word Map reduce Parallel programming in the large utomatic parallelization and execution Low cost, unreliable hardware Maps well to GFS Simple and restrictive model ( functions) Works on homogenized data sets 5 6 Input Map reduce example Map Sort & Partition Reduce Output Building inverted Index - Map ngelina jolie Jumped over Cat ngelina Cat Jolie Jumped -J ngelina Brad Cat Dog Jolie Jumped Page ngelina (angelina, ) (ngelina, ) ngelina Jolie walks Brad Pitt Brad Pitt walks over dog Over ngelina Brad Jolie Pitt Brad walks Dog Over Pitt walks K-Z Over Pitt walks People magazine Obama Brad Page Pitt Jessica Obama Page ngelina Map (obama, ) (Brad, ) (Pitt, ) (Jessica, ) (Obama, ) (ngelina, ) (ngelina ) (Brad, ) (Jessica, ) (Obama, ) (Obama, ) (Pitt, ) Sort 7 Emit 8

Building inverted Index - reduce Natural-Join Operation Natural Join : rows in R union S, where the values of the attributes in R S are same (ngelina, ) (ngelina ) (Brad, ) (Jessica, ) (Obama, ) (Obama, ) (Pitt, ) Reduce (ngelina,, ) (Brad, ) (Jessica, ) (Obama,,) (Pitt, ) Notation: r s Example: R = (, B, C, D) S = (E, B, D) Result schema = (, B, C, D, E) r s is defined as: r., r.b, r.c, r.d, s.e (σ r.b = s.b r.d = s.d (r x s)) 9 0 Natural Join Operation Example Relations r, s: r s B C E B 4 r C C B C B D a a b a b B B C D E E C C B a a a a b C C D D a a a b b s E B C D E Converting into map reduce Convert common attributes into a key, rest of relation is value Do that for R and S Send tuples in R, and S with the same key value to reducer Partition key values to distribute load among reducers Partition R and S among mappers

Input R (,B,C,D) S(B,D,E) Map reduce example Map Sort & Partition Reduce Output -,a, a B 4 b C B a C b E B a a B a C b D b E a a C,a, C a a B C a C a C E B b D b E B,a, a a B a C a C b D b E B 4 b C B a a C b D a B b E a B b E >= 4 Join as Map-Reduce Each reducer matches all pairs with same key values Reducer outputs (, B, C, D, E) once all mappers are done and no more tuples Parallelism can be controlled by assigning horizontal fragments to mappers Parallelism can be controlled by adjusting range value of keys in reducers 4 b C B 4 Map-reduce-merge Map reduce merge: simplified data processing on large clusters, Yang et.al., SIGMOD 007 5 6 4

MR Execution Overview MR execution steps Partition the input file < N> Master thread creates as many worker threads as needed Workers is assigned a map task that takes data from partition (i) Map outputs to buffer (intermediate values) Master notifies the reduce worker, it reads the the output produced by the mapper Reduce worker iterates over sorted data and applies the reduce function The output of the reduce function is the final result 7 8 Implementation Issues Failures Locality Partition and Combine function Backup tasks Ordering of results Failures parallel, distributed computation Running on thousands of machines Need to deal with failures Master detects worker failures, and has work re-done by another worker. Master failure : restart the computation (hopefully not make a habit of it) split j Worker heartbeat? master redo j 9 Worker B 0 5

Failure Semantics Distributed computation should produce the same result as non-faulting sequential execution of single program tomic commit of map and reduce tasks Written to files and communicated to master if multiple copies of the same reduce task are executed, atomic rename will be used so that only out file is created despite redundancy Locality Master program: assigns task threads based on location of data: tries to have map() tasks on same machine as physical file data, or at least same rack/switch map() task inputs are divided into 64 MB blocks: same size as Google File System chunks Working set mapped to underlying GFS Task Granularity M + R >> Number of machines (for load balancing) Not too many Rs, final result need to be combined Master needs to keep a mapping of O(M*R) M = K (Number of machines) K is 00 R = F (number of machines) F =.5 Backup Tasks Reduce task cannot start until map is complete Straggler is a machine that takes unusually long (e.g., bad disk) to finish its work. straggler can delay final completion. When task is close to finishing, master schedules backup executions for remaining in-progress tasks. Must be able to eliminate duplicate results 4 6

Input Partitioning function hash (key) Mod R Map Sort & Partition Reduce Output Combine or aggregator Function Filenames from - H M ngelina Cat Jolie Jumped Over -J ngelina Brad Cat Dog Jolie Jumped [angelina ], [angelina ], [angelina ]. worker worker [brad ], [brad ]. worker Filenames from I - P M ngelina Brad Jolie ssuming commutative, associative operations Combine is like a local reduce applied before distribution: Filenames from Q- Z M Pitt Brad walks Dog Over Pitt walks K-Z Over Pitt walks worker [angelina ]. [brad ]. worker worker 5 Select count(*) from intermediate-file Group By word 6 Input/output Each line as key, value (grep) Key is the line # and value is content of line Sequence of key value pairs, ordered by keys Output file of reducer can also be stored in key order ny new file type should be transformed so that it is suitable for range partitioning to map tasks Performance Cluster Configuration 800 machines Each machine GHz Xeons, 4GB RM, 60GB disk, Gb Ethernet. Two level tree switched network with 00-00 Gbps aggregate at root 7 8 7

Performance Grep experiment: look for a pattern M=5000, R = 0 G, 00 byte records minute startup, 50 seconds total! Startup cost includes code propagation, opening files in GFS, getting GFS metadata for locality optimization. Completes 80 seconds after startup Performance Sort Input is 0 G, 00 byte records M = 5000, R = 4000 Completes in 89 secs Terasort benchmark 057!! 9 0 MapReduce Conclusions MapReduce has proven to be a useful abstraction for large scale data processing using clusters Greatly simplifies large-scale computations at Google Shown that functional programming paradigm can be applied to large-scale applications Lots of problems in processing of web data can be cast as map-reduce Now database people have joined the party Map-reduce-merge (sigmod 007) 8

Bigtable quotes MapReduce on Bigtable: major step backwards - The Database Column BigTable and Why it Changes Everything Why Have many normalized tables when you can have one Big table Motivation Web.0,.0, Characterized by Huge (Terabyte, Petabyte, Exabyte) of data 0, 0 5 0 8 bytes of data Google, facebook, yahoo, youtube, flickr, Different kinds of sources Crawl data whole web, replicated Portal data pictures of everyone and everyone they know, inbox for every user Geographic data satellite images at various resolutions of the entire earth 4 Relational model random entry in facebook Normalized relations Canonical example Part Supplier Order Part #, Partname, cost s#, sname, saddress, part# S#, P#, Qty Each of the fields need to be atomic NF Other normalization forms to avoid Delete anomaly, update anomaly, etc 5 6 9

Friends-- facebook Why not just use commercial DB? Users 00 M Friends Scale is too large for most commercial databases userid picture User id User id Even if it weren't, cost would be very high Building internally means system can be applied across many projects for low incremental cost Modified at will to suit requirements Nothing like owning source code Low-level storage optimizations help performance significantly Much harder to do when running on top of a database layer new data model that satisfies the requirements of web data processing Every time retrieve user picture and pictures of friends 7 8 BigTable Friends big table Forget all (most of it) that was taught in DB course User id picture friends inbox Store everything in one big table Not even NF 9 Each column has GB of data 40 0

Big table Data model Friends big table Sparse, distributed, persistent, multidimensional map 4 dimensional Map has a Row is indexed by a key dimension Column family dimension Each column family has several columns dimension Each Column has version based on a timestamp 4 dimension User id picture Column Fmly Name:friends Sort: username inbox 4 Each column has GB of data 4 4D map Row ColumnFMLY ColumnFMLY key val Basic Data Model Distributed multi-dimensional sparse map (row, column, timestamp) cell contents contents COLUMNS Row ROWS com.cnn.www <html> t t t TIMESTMPS Row Column family is web page that refers to row URL No joins, parallel processing on column family Row 4 4 44

Data model - Row Keys are 64KB Big table horizontally partitioned into tablet Rows are ordered tablet covers a range of keys Good locality for data access Data model -column Column families -- static Contains columns -- variable Has type, name and sort attribute Each column has a qualifier or label and value Examples: anchor, language, etc ColFmly name:anchor type:simple sort:tag Tag value timestamp 45 46 Data model - timestamp Each cell can have multiple versions Indexed by timestamps 64-bit integers Garbage collect older versions if needed Bigtable PI Implements calls with signatures to create and delete tables and column families, modify cluster, table, and column family metadata such as access control rights, Write or delete values in Bigtable Iterate over all column families Look up values from individual rows, tomic operation on data stored in a single row key No support for transactions across multiple rows 47 48

Building Blocks Google File System Cluster file system, High availability. SSTable key/value database mapped to the underlying GFS Chubby Distributed lock service SSTable SSTable file format stores bigtable data Stores and retrieves key/data pairs. Key and data are arbitrary byte strings. Select or range query to iterate key/value pairs given a selection predicate (exact and range). Configurable to use either persistent store (disk) or memory-mapped. SSTable is stored in GFS. 49 50 Implementation details. Bigtable library linked to every client.. Many tablet servers. Tablet servers are added and removed dynamically. Ten to a thousand tablets assigned to a tablet server. Each tablet is typically 00-00 MB in size.. One master server responsible for: ssigning tablets to tablet servers, Detecting the addition and deletion of tablet servers, Balancing tablet-server load, Garbage collection of files in GFS. Client communicates directly with tablet server Implementation Bigtable cell Bigtable tablet server serves data Cluster Scheduling Master handles failover, monitoring GFS holds tablet data, logs for reads/writes. 5 5 SStable Bigtable master server performs metadata ops, load balancing Bigtable tablet server serves data SStable Bigtable client Bigtable client library Bigtable tablet server serves data SStable Chubby Open() holds metadata, handles master-election

Tablets Tablets & Splitting language anchor Large tables broken into tablets at row boundaries Tablet holds contiguous range of rows Clients can often choose row keys to achieve locality im for ~00MB to 00MB of data per tablet Serving machine responsible for 0~000 tablets per server Fast recovery: 00 machines each pick up tablet from failed machine Fine-grained load balancing Migrate tablets away from overloaded machine Master makes load-balancing decisions 5 abc.com cnn.com Espn.com fox.com TBLETS Rutgers.edu/cs Rutgers.edu/cs/graduate Rutgers.edu/cs/research Wsj.com Yahoo.com EN CNN 54 Locating Tablets Locating Tablets :double index Tablets are dynamically mapped to servers Need a lookup service lookup(row) machine that holds the data covering the row One approach: could use a BigTable master Not ideal for the workload; will become a bottleneck Instead: store special tables containing tablet location info in BigTable cell itself Root tablet contains pointer to second level metadata tablets Metadata tablets point to user tablets Metadata is K ; metadata tablet size is 8 M # of entries 8 K ( 7 ) Two levels= 4 55 56 4

Tablet lookup Placement of Tablets /crawltable Table tid MT MT Last key 0000 0000 servid 8 4 Tabletid MT MT Last key 000 000 servid 6 4 tablet is assigned to one tablet server at a time. Master keeps track of : MT The set of live tablet servers, MT4 Root tablet Read(crawltable, key 50) Metadata tablet Tabletid Last key Crawl 00 Crawl 00 servid Current assignment of tablets to tablet servers (including the unassigned ones) Each tablet server needs to have an exclusive lock on the tablet Bigtable Tablet Key URL www.xyxz. HOST 8.6 UserTable tablet www.abc. 4.8 00 57 58 Tablet server Starts Master and set of servers maintained in chubby CMS Start server Tab-srv9 IP 8.6.4. Tablet server Create a chubby file =servid /servers/tab_srv9 chubby?any new 6 4 ssign tablets 7 Still have lock? srv9 5 BigTable master 8 cquire lock Remove server Placement of tablet Chubby maintains tablet servers: tablet server creates and acquires an exclusive lock on a uniquely named file in a specific chubby directory (named server directory), Master monitors server directory to discover tablet server, tablet server stops processing requests if it loses its exclusive lock (due to network partitioning). Tablet server will try to obtain an exclusive lock on its uniquely named file as long as it exists. If the uniquely named file of a tablet server no longer exists then the tablet server kills itself. Goes back to a free pool to be assigned tablets by the master. cquire lock CMS=Cluster Management System 59 60 5

Tablet master Starts Master and set of servers maintained in chubby /master/msrv chubby CMS Read Read/write flow Merge memtable Write buffer in memory (random-access) K K K5 7 Write Start master msrv IP 8.8.4. master server CMS=Cluster Management System 5?any new 6 Create a chubby file =msrv Scan metatable cquire lock Read Tablet servers in /servers 4 Check ssigned tablets 7 ssigned reassign tablets 6 Tablet SSTable on GFS K K4 K6 7 SSTable on GFS K5 K9 K 7 SSTable on GFS K8 K9 K 7 ppend-only log on GFS SSTable: Immutable on-disk ordered map from key value String keys: <row, column, timestamp> triples 6 Client Write Operation Write operation arrives at a tablet server: Server ensures the client has sufficient privileges for the write operation (Chubby), log record is generated to the commit log file, Once the write commits, its contents are inserted into the memtable..client Read Operation When Read operation arrives at a tablet server: Server ensures client has sufficient privileges for the read operation, Read is performed on a merged view of (a) the SSTables that constitute the tablet, and (b) the memtable. 6 64 6

Write Operations Compactions s writes execute, size of memtable increases. Once memtable reaches a threshold: Memtable is frozen, new memtable is created, Frozen metable is converted to an SSTable and written to GFS. Periodic flushing Reduces memory usage at tablet server Recovery time s new SSTables are created, merge cost increases for read Need to keep as few as possible, better yet just one Merging compaction in the background Keep a few SStables Major compaction: Periodically compact all SSTables for tablet into new base SSTable on GFS Storage reclaimed from deletions at this point 65 66 Minor Compaction Major Compaction K K K5 7 K8 6 memtable Write buffer in memory (random-access) Write memtable Write buffer in memory (random-access) ST ST ST ST4 Write K K K5 7 K8 6 New SS table Tablet SSTable on GFS K K4 K6 7 SSTable on GFS K5 K9 K 7 SSTable on GFS K8 K9 K 7 ppend-only log on GFS 67 K K K5 7 K8 6 Tablet K K4 K6 7 K5 K9 K 7 K K K4 K5 K6 7 K8 K8 K9 K 7 ppend-only log on GFS New SS table S5 68 7

Enhancements Locality Grouping of column family Column store vs row store Compression SStables can be compressed Caching Key-value pair caching as well as block cache Bloom filter Key hashed into vector of bits using multiple hash functions If bf i [k] is 0 for some i then key is not present else may be present Bit vector length M and hash functions k are design parameters System Performance Experiments involving random reads (from GFS and main memory) and writes, sequential reads and writes, and scans. Scan: single RPC fetches a large sequence of values from the tablet server. 69 70 Random Reads Mmap read and seq Reads Single tablet performance read request is for 000 bytes. In memread; no network access Seq read better de to 64 KB caching of SStable 7 7 8

Seq Writes and random Writes Tablet server appends all incoming writes to a single commit log and uses group commit to stream these writes to GFS efficiently. 7 pplication : Google nalytics Helps webmasters to analyze traffic pattern at their web sites. Provides aggregate statistics such as: Number of unique visitors per day Page views per URL per day, Percentage of users that made a purchase given that they earlier viewed a specific page. How? Each click, data is sent to analytics.google.com by a small JavaScript program Every time the page is visited, the program is executed. Program records the following information about each request: User identifier The page being fetched 74 pplication : Google nalytics (Cont ) Two Bigtables Raw click table (~ 00 TB) row for each end-user session. Row name include website s name and the time at which the session was created. Clustering of sessions that visit the same web site. nd a sorted chronological order. Compression factor of 6-7. Summary table (~ 0 TB) Stores predefined summaries for each web site. Generated from the raw click table by periodically scheduled MapReduce jobs. Each MapReduce job extracts recent session data from the raw click table. Row name includes website s name and the column family is the aggregate summaries. Compression factor is -. 75 pplication : Google Earth ccess to image data Operations to Pan, view, and annotate satellite imagery at different resolution levels. One Bigtable stores raw imagery (~ 70 TB): Row name is a geographic segment. Names are chosen to ensure adjacent geographic segments are clustered together. Column family maintains sources of data for each segment. Each column contains raw image data Index data of 500 GB to serve queries 76 9

pplication : Personalized Search Records user queries and clicks across Google properties. Users browse their search histories and request for personalized search results based on their historical usage patterns. One Bigtable for personalized search: Row name is userid column family is reserved for each action type, e.g., web queries, clicks. User profiles are generated from activity using MapReduce. These profiles personalize live search results. Replicated geographically to reduce latency and increase availability. 77 Conclusion Benefits of building a system to suit requirements New Data model and parallel processing Can handle web size data (tera, peta, exa bytes) User level processing on columns pplicable in a wide variety of settings 78 Impact Lots of web properties using bigtable Yahoo htable; facebook- cassandra New data model Db vs bigtable Not in NF No transaction across rows Simplified query processing No joins Design decisions, architecture tailored to cluster Lots of innovative features to get performance while dealing with large sets of data 79 80 0