390 likes | 542 Views
Nectar: Efficient Management of Computation and Data in Data Centers. Lenin Ravindranath Pradeep Kumar G unda, Chandu Thekkath, Yuan Yu, Li Zhuang. Motivation. Resources are poorly managed in a data center. Computation. Storage. Redundant computations Wasting resources. Manually managed
E N D
Nectar: Efficient Management of Computation and Data in Data Centers Lenin Ravindranath Pradeep Kumar Gunda, Chandu Thekkath, Yuan Yu, Li Zhuang
Motivation Resources are poorly managed in a data center Computation Storage • Redundant computations • Wasting resources Manually managed • Unused files occupying space • Redundant output files
Goal Efficiently manage resources in a cluster Nectar Computation Storage
Key Insight User Single query interface for computation and data access Query Interface DryadLINQ Data Center Computation Storage
Goal Efficiently manage resources in a cluster Nectar Computation Storage
Computation PROBLEM: Redundant Computation • Programs share sub queries • Programs share partial data sets SOLUTION: Caching • Cache results of popular sub queries • Automatically rewrite user query to use cache X.Select(…) X.Select(…).Where(…) X.Select(…) (X+X’).Select(…)
Does caching help? • Analyzed logs from production clusters • Logs of 3 months (Oct – Dec 2008) • 33 virtual clusters, 36000 jobs • Parsed SCOPE programs, extracted sub queries • Simulated caching
Caching helps • About 50% cache hit on 10 clusters • More than 30% cache hit on 20 clusters • 35% on average
Goal Efficiently manage resources in a cluster Nectar Computation Storage
Storage PROBLEM: Manually managed • Unused files occupying space 50% data was never accessed in the last 275 days
Storage SOLUTION: Automatically manage data • Track usage and delete infrequently used files • Store programs which re-computes the data
Query Interface User Query Interface DryadLINQ Data Center Computation Storage
Goal Efficiently manage resources in a cluster Nectar Computation Storage
Nectar User Query Interface Nectar DryadLINQ Data Center Computation Storage
Nectar Architecture DryadLINQ program P Query Nectar Client Cache Server Query Rewriter Cache entries Add T to cache Add R to cache P’ DryadLINQ Cluster T Dryad R
Nectar Architecture Nectar Client Cache Server Query Rewriter
Query Rewriter X X X’ X’ Select Select Select R R Concat Cache (R+R’)
Query Rewriter X X X’ X’ Select Select Select Order by Order by Order by R R Merge Sort Cache (R+R’)
Query Rewriter • Generates multiple plans • Using multiple cache entries • Selects the best plan • Based on benefit • Execution time • Output Size • Whether pipeline is broken • Operators supported • Select, Where, Order by, Group by, Join X.Select(…) X.Select(…).Where(…)
Nectar Architecture Nectar Client Cache Server Query Rewriter
Cache Server SQL Server Cache Policy Garbage Collector Cache Server Fingerprints
Cache policy • Insertion Policy • Always add program output to cache • Sub query outputs are added to cache • Popularity exceeds a threshold • Savings exceeds a threshold
Garbage Collector • Storage pressure • Delete infrequently used files • Deletion policy • Based on savings • Cache type • Mark and sweep algorithm • Delete cache entry • Reachability analysis • Delete files Cache Server Distributed FS
Nectar Architecture Nectar Client Cache Server Query Rewriter Program store
Program Store • Store executed programs in the cluster • Output file is tied to its corresponding program that generates the output • If a file is deleted, the program is executed to regenerate the output
Managing Data P ToPartitionedTable (lenin\foo.pt) Nectar Client P’ Program Store Cache Server DryadLINQ Program Dryad Program Distributed FS A31E4.pt foo.pt FP usr Nectar
Managing Data P FromPartitionedTable (lenin\foo.pt) Nectar Client Program Store Cache Server DryadLINQ Dryad Distributed FS A31E4.pt foo.pt FP usr Nectar
Managing Data P FromPartitionedTable (lenin\foo.pt) Nectar Client Program Store Cache Server DryadLINQ Dryad Program Distributed FS A31E4.pt KJ1LM.pt foo.pt FP usr Nectar
Goal Efficiently manage resources in a cluster Nectar Computation Computation Storage Storage Unifiedcomputation and data
Distributed cache servers Program store Program store Cache Server Cache Server SQL Server SQL Server Partitioned by query fingerprint Centralized Garbage collector Nectar Client Hash based on query fingerprint
Summary • We built Nectar • Automatically manage data • Efficiently manage computation Components • Query Rewriter • Automatically rewrite queries to use cache • Cache server • Popular sub queries are cached • Garbage collected based on usage • Program store • Store programs which regenerates the output
Status • Almost done with development • Query Rewriter • Including other operators • Fingerprinter • Program static analysis • Cache Server • Program Store • In the process of deploying
Cluster Utilization • Most clusters have more than 40% Idle time • Even the busiest clusters have 10-20% idle time
Exploiting idle time • Do speculative caching • Cache popular data before query issued • Run program on new streams when available • No side effects • Executed only when cluster is idle • Low priority jobs • Output garbage collected with high priority • More electric bill? Not Really!