SlideShare a Scribd company logo
Cosco: An Efficient Facebook-Scale Shuffle Service
Cosco: an efficient
facebook-scale shuffle service
Brian Cho & Dmitry Borovsky
Spark + AI Summit 2019
Disaggregated compute and storage
• Advantages
• Server types optimized for
compute or storage
• Separate capacity management
and configuration
• Different hardware cycles
• Compute clusters
• CPU, RAM, no disks for data
• Spark executors
• Storage clusters
• Spindle disks
• DFS (Warm Storage)
• Permanent data: size dominant, uses
less IO
• Temporary data: IO dominant, uses
less space
Spindle disk storage
• A single spindle is used to
read/write data on the drive
• Small IO sizes cause low throughput
as seek times dominate
.
64 KiB,
140s
128 KiB,
73s
256 KiB,
39 s
1 MiB, 14s
4 MiB, 8s
0
5
10
15
20
0 50 100 150
Readrequest
size(MiB)
Time (s)
Spindle disk storage
• A single spindle is used to
read/write data on the drive
• Small IO sizes cause low throughput
as seek times dominate
• Drive sizes increase over time
• Must increase IO size to maintain the
same throughput per TB
7 TB drive
1 MiB IO
size
15 TB drive
7 MiB IO
size
0
5
10
15
0 5 10 15 20
AvgIOsize(MiB) HDD capacity (TiB)
10 MiBs/TiB
64 KiB,
140s
128 KiB,
73s
256 KiB,
39 s
1 MiB, 14s
4 MiB, 8s
0
5
10
15
20
0 50 100 150
Readrequest
size(MiB)
Time (s)
Spindle disk storage
• A single spindle is used to
read/write data on the drive
• Small IO sizes cause low throughput
as seek times dominate
• Drive sizes increase over time
• Must increase IO size to maintain the
same throughput per TB, or
• Read/write less data to reduce
throughput demand 0
5
10
15
0 5 10 15 20
AvgIOsize(MiB) HDD capacity (TiB)
10 MiBs/TiB 8 MiBs/TiB 6 MiBs/TiB
64 KiB,
140s
128 KiB,
73s
256 KiB,
39 s
1 MiB, 14s
4 MiB, 8s
0
5
10
15
20
0 50 100 150
Readrequest
size(MiB)
Time (s)
Spindle disk storage: key metrics
ØDisk service time
ØAverage IO size
ØWrite amplification
• A single spindle is used to
read/write data on the drive
• Small IO sizes cause low throughput
as seek times dominate
• Drive sizes increase over time
• Must increase IO size to maintain the
same throughput, or
• Read/write less data to reduce
throughput demand
Spark shuffle recap
Map 0
Map 1
Map m
Mappers Map Output Files Reducers
Partition
Reduce 0
Reduce 1
Reduce r
Spark shuffle recap
Map 0
Map 1
Map m
Mappers Map Output Files Reducers
Reduce 0
Reduce 1
Reduce r
Partition
Spark shuffle recap
Map 0
Map 1
Map m
Mappers Map Output Files Reducers
Reduce 0
Reduce 1
Reduce r
Sort by
key
Iterator
Iterator
Iterator
Partition
Spark shuffle recap: Write amplification
Map 0
Map 1
Map m
Mappers Map Output Files Reducers
Sort by
key
Iterator
Iterator
Iterator
Partition
Reduce 0
Reduce 1
Reduce r
Write amplification is 3x
Spark shuffle recap: Small IOs problem
Map 0
Map 1
Map m
Mappers Map Output Files Reducers
Reduce 0
Reduce 1
Reduce r
M x R
Avg IO size is 200 KiB
Sort by
key
Iterator
Iterator
Iterator
Partition
Spark shuffle recap: SOS
Map 0
Map 1
Map m
Mappers Map Output Files Reducers
Reduce 0
Reduce 1
Reduce r
Sort by
key
Iterator
Iterator
Iterator
SOS: merge map outputs
10-way merge increases
Avg IO size to 2 MiB
Partition
Spark shuffle using Cosco
• Mappers share a write-ahead buffer per reduce partition
• Reducers can read the written data sequentially
• Solves the small IOs problem
• Sequential reads: Avg IO size 200 KiB à 2.5 MiB
• Solves the write amplification problem
• Avoiding spills: Write amplification 3x à 1.2x
Results / Current status
• Hive
• Rolled out to 90%+ of Hive workloads, in production for 1+ year
• 3.2x more efficient disk service time
• Spark
• Analysis shows potential 3.5x more efficient disk service time
• Analysis shows CPU neutral
• Integration is complete, rollout planned during next few months
Cosco deep dive
Dmitry Borovsky
Spark + AI Summit 2019
Problem
• Shuffle exchange on spinning disks (disaggregated compute and
storage)
• Single shuffle exchange scale: PiBs size, 100Ks of mappers,
10Ks reducers
• Write amplification is ~3x (1PiB shuffle does 3PiB writes to disk)
• Small Average IO size: ~200KiB (at least MxR reads)
• IO is spiky (all readers may start at the same time and do MxR reads)
• Cosco is shared between users
Sailfish: a framework for large scale
data processing
SoCC '12 Proceedings of the Third ACM Symposium on
Cloud Computing, Article No. 4, San Jose, California —
October 14 - 17, 2012
Source code: https://code.google.com/archive/p/sailfish/
Write-ahead buffers
Cosco
Shuffle Services
(thousands)
DFS
Cosco
Shuffle Services
(thousands)
Mapper 0
Mapper 1
Mapper 2
Reducer 0
Reducer 1
Partition 0
(file 1 buffer)
File 0
File 1
File 2
File 0
File 1
network
Partition 0
(file 2 buffer)
Spark process
(cosco client)
Dependency
Cosco process
(shared between apps)
Sorts
(if needed)
Exactly once delivery
DFS
Cosco
Shuffle Services
(thousands)
Mapper 0
Reducer 0
File 0
File 1
File 2
Partition 0
(file 2 buffer)
Spark process
(cosco client)
Cosco process
(shared between apps)
Dependency
Data
Ack
Partition 0’
(file 3 buffer)
Failover
File 3
Exactly once delivery
DFS
Cosco
Shuffle Services
(thousands)
Mapper 0
Reducer 0
File 0
File 1
File 2
Partition 0
(file 2 buffer)
Spark process
(cosco client)
Cosco process
(shared between apps)
Dependency
Data
Ack
Partition 0’
(file 3 buffer)
Failover
2
1
File 3
At least once delivery and deduplication
DFS
Cosco
Shuffle Services
(thousands)
Mapper 0
Reducer 0
File 0
File 1
File 2
Partition 0
(file 2 buffer)
Spark process
(cosco client)
Cosco process
(shared between apps)
Dependency
Data
Ack
Partition 0’
(file 3 buffer)
Failover
2
1
Adds row_id and mapper_id to each row
De-duplicates
resends non-acked data File 3
Replication
DFS
Mapper 0
Reducer 0
File 0
File 1
File 2
Partition 0
(file 2 buffer)
Spark process
(cosco client)
Cosco process
(shared between apps)
Dependency
Data
Partition 0’
(file 2’ buffer)
Data
Ack
Ack
Replication
DFS
Reducer 0
File 0
File 1
Spark process
(cosco client)
Cosco process
(shared between apps)
Dependency
File 2’
File 2
Mapper 0
Partition 0
(file 2 buffer)
Data
Partition 0’
(file 2’ buffer)
Data
Ack
Ack
// Mapper
writer = new CoscoWriter(
shuffleId: String,
mapper: long);
writer.collect(
partition: int, row: byte[]);
// ...
writer.collect(
partition: int, row: byte[]);
writer.close();
// Reducer
reader = new CoscoReader(
shuffleId: String,
mappers: long[],
partition: int);
while (reader.next()) {
// using row
row = reader.row();
}
reader.close();
// Driver
shuffle = new CoscoExchange(
shuffleId: String,
partitions: int,
recomputeWritersCallback: (mappers: long[], reason: String) -> void);
// end of exchange
shuffle.close();
// Mapper
writer = new CoscoWriter(
shuffleId: String,
mapper: long);
writer.collect(
partition: int, row: byte[]);
// ...
writer.collect(
partition: int, row: byte[]);
writer.close();
// Reducer
reader = new CoscoReader(
shuffleId: String,
mappers: long[],
partition: int);
while (reader.next()) {
// using row
row = reader.row();
}
reader.close();
// Driver
shuffle = new CoscoExchange(
shuffleId: String,
partitions: int,
recomputeWritersCallback: (mappers: long[], reason: String) -> void);
// end of exchange
shuffle.close();
Cosco
Shuffle Services
(thousands)
DFS
Cosco
Shuffle Services
(10Ks)
Mapper 0
Mapper 1
Mapper 2
Reducer 0
Reducer 1
Partition 0
(file 1 buffer)
File 0
File 1
File 2
File 0
File 1
network
Partition 0
(file 2 buffer)
Cosco
Metadata Service Spark process
(cosco client)
Cosco process
(shared between apps)
Dependency
Mappers submit what
files them wrote to
Commits files
Reducers ask for files
Metadata
Cosco
Shuffle Services
(thousands)
DFS
Cosco
Shuffle Services
(10Ks)
Mapper 0
Mapper 1
Mapper 2
Reducer 0
Reducer 1
Partition 0
(file 1 buffer)
File 0
File 1
File 2
File 0
File 1
network
Partition 0
(file 2 buffer)
Cosco
Metadata Service Spark process
(cosco client)
Cosco process
(shared between apps)
Dependency
Mappers submit what
files them wrote to
Commits files
Reducers ask for files
Metadata
Mapper 0
Mapper 1
Mapper 2
Mapper 3
Mapper 4
File 0
File 1
File 2
File 0
File 1
Cosco
Shuffle Services
(thousands)
DFS
Cosco
Shuffle Services
(10Ks)
Mapper 0
Mapper 1
Mapper 2
Reducer 0
Reducer 1
Partition 0
(file 1 buffer)
File 0
File 1
File 2
File 0
File 1
network
Partition 0
(file 2 buffer)
Cosco
Metadata Service Spark process
(cosco client)
Cosco process
(shared between apps)
Dependency
Mappers submit what
files them wrote to
Commits files
Reducers ask for files
Metadata
Mapper 0
Mapper 1
Mapper 2
Mapper 3
Mapper 4
File 0
File 1
File 2
File 0
File 1
Mapper 3’ (recompute)
Mapper 4’ (recompute)
File 3
File 2
// Mapper
writer = new CoscoWriter(
shuffleId: String,
mapper: long);
writer.collect(
partition: int, row: byte[]);
// ...
writer.collect(
partition: int, row: byte[]);
writer.close();
// Reducer
reader = new CoscoReader(
shuffleId: String,
mappers: long[],
partition: int);
while (reader.next()) {
// using row
row = reader.row();
}
reader.close();
// Driver
shuffle = new CoscoExchange(
shuffleId: String,
partitions: int,
recomputeWritersCallback: (mappers: long[], reason: String) -> void);
// end of exchange
shuffle.close();
Cosco
Shuffle Services
(thousands)
DFS
Cosco
Shuffle Services
(thousands)
Mapper 0
Mapper 1
Mapper 2
Reducer 0
Reducer 1
Partition 0
(file 1 buffer)
File 0
File 1
File 2
File 0
File 1
network
Partition 0
(file 2 buffer)
Driver
Cosco
Metadata Service Spark process
(cosco client)
Cosco process
(shared between apps)
Dependency
Mappers submit what
files them wrote to
Commits files
Reducers ask for files
Recompute
request
Metadata
Cosco
Shuffle Services
(thousands)
DFS
Cosco
Shuffle Services
(thousands)
Mapper 0
Mapper 1
Mapper 2
Reducer 0
Reducer 1
Partition 0
(file 1 buffer)
File 0
File 1
File 2
File 0
File 1
network
Partition 0
(file 2 buffer)
Driver
Cosco
Metadata Service Spark process
(cosco client)
Cosco process
(shared between apps)
Dependency
Cosco
Scheduler
Mappers submit what
files them wrote to
Commits files
Reducers ask for files
Recompute
request
Scheduler
Limits
• Cosco doesn’t support large rows (<4MiB)
• Capacity: shuffle services memory, number of write-ahead
buffers
Future work
• “Unlimited” shuffle exchange:
• millions of splits/partitions
• 10s of PiBs
• Streaming
Questions?
Brian Cho (bcho@fb.com)
Dmitry Borovsky (borovsky@fb.com)
Ad

More Related Content

What's hot (20)

Spark shuffle introduction
Spark shuffle introductionSpark shuffle introduction
Spark shuffle introduction
colorant
 
Hive + Tez: A Performance Deep Dive
Hive + Tez: A Performance Deep DiveHive + Tez: A Performance Deep Dive
Hive + Tez: A Performance Deep Dive
DataWorks Summit
 
Physical Plans in Spark SQL
Physical Plans in Spark SQLPhysical Plans in Spark SQL
Physical Plans in Spark SQL
Databricks
 
Spark SQL Join Improvement at Facebook
Spark SQL Join Improvement at FacebookSpark SQL Join Improvement at Facebook
Spark SQL Join Improvement at Facebook
Databricks
 
Apache Spark Core—Deep Dive—Proper Optimization
Apache Spark Core—Deep Dive—Proper OptimizationApache Spark Core—Deep Dive—Proper Optimization
Apache Spark Core—Deep Dive—Proper Optimization
Databricks
 
Apache Spark Core – Practical Optimization
Apache Spark Core – Practical OptimizationApache Spark Core – Practical Optimization
Apache Spark Core – Practical Optimization
Databricks
 
Understanding Query Plans and Spark UIs
Understanding Query Plans and Spark UIsUnderstanding Query Plans and Spark UIs
Understanding Query Plans and Spark UIs
Databricks
 
The Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
The Rise of ZStandard: Apache Spark/Parquet/ORC/AvroThe Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
The Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
Databricks
 
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Databricks
 
Accelerating Apache Spark Shuffle for Data Analytics on the Cloud with Remote...
Accelerating Apache Spark Shuffle for Data Analytics on the Cloud with Remote...Accelerating Apache Spark Shuffle for Data Analytics on the Cloud with Remote...
Accelerating Apache Spark Shuffle for Data Analytics on the Cloud with Remote...
Databricks
 
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...
Databricks
 
Fine Tuning and Enhancing Performance of Apache Spark Jobs
Fine Tuning and Enhancing Performance of Apache Spark JobsFine Tuning and Enhancing Performance of Apache Spark Jobs
Fine Tuning and Enhancing Performance of Apache Spark Jobs
Databricks
 
Apache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic DatasetsApache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic Datasets
Alluxio, Inc.
 
Using Apache Hive with High Performance
Using Apache Hive with High PerformanceUsing Apache Hive with High Performance
Using Apache Hive with High Performance
Inderaj (Raj) Bains
 
File Format Benchmark - Avro, JSON, ORC and Parquet
File Format Benchmark - Avro, JSON, ORC and ParquetFile Format Benchmark - Avro, JSON, ORC and Parquet
File Format Benchmark - Avro, JSON, ORC and Parquet
DataWorks Summit/Hadoop Summit
 
A Deep Dive into Query Execution Engine of Spark SQL
A Deep Dive into Query Execution Engine of Spark SQLA Deep Dive into Query Execution Engine of Spark SQL
A Deep Dive into Query Execution Engine of Spark SQL
Databricks
 
Parquet performance tuning: the missing guide
Parquet performance tuning: the missing guideParquet performance tuning: the missing guide
Parquet performance tuning: the missing guide
Ryan Blue
 
Presto on Apache Spark: A Tale of Two Computation Engines
Presto on Apache Spark: A Tale of Two Computation EnginesPresto on Apache Spark: A Tale of Two Computation Engines
Presto on Apache Spark: A Tale of Two Computation Engines
Databricks
 
How Adobe Does 2 Million Records Per Second Using Apache Spark!
How Adobe Does 2 Million Records Per Second Using Apache Spark!How Adobe Does 2 Million Records Per Second Using Apache Spark!
How Adobe Does 2 Million Records Per Second Using Apache Spark!
Databricks
 
Parquet Hadoop Summit 2013
Parquet Hadoop Summit 2013Parquet Hadoop Summit 2013
Parquet Hadoop Summit 2013
Julien Le Dem
 
Spark shuffle introduction
Spark shuffle introductionSpark shuffle introduction
Spark shuffle introduction
colorant
 
Hive + Tez: A Performance Deep Dive
Hive + Tez: A Performance Deep DiveHive + Tez: A Performance Deep Dive
Hive + Tez: A Performance Deep Dive
DataWorks Summit
 
Physical Plans in Spark SQL
Physical Plans in Spark SQLPhysical Plans in Spark SQL
Physical Plans in Spark SQL
Databricks
 
Spark SQL Join Improvement at Facebook
Spark SQL Join Improvement at FacebookSpark SQL Join Improvement at Facebook
Spark SQL Join Improvement at Facebook
Databricks
 
Apache Spark Core—Deep Dive—Proper Optimization
Apache Spark Core—Deep Dive—Proper OptimizationApache Spark Core—Deep Dive—Proper Optimization
Apache Spark Core—Deep Dive—Proper Optimization
Databricks
 
Apache Spark Core – Practical Optimization
Apache Spark Core – Practical OptimizationApache Spark Core – Practical Optimization
Apache Spark Core – Practical Optimization
Databricks
 
Understanding Query Plans and Spark UIs
Understanding Query Plans and Spark UIsUnderstanding Query Plans and Spark UIs
Understanding Query Plans and Spark UIs
Databricks
 
The Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
The Rise of ZStandard: Apache Spark/Parquet/ORC/AvroThe Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
The Rise of ZStandard: Apache Spark/Parquet/ORC/Avro
Databricks
 
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Databricks
 
Accelerating Apache Spark Shuffle for Data Analytics on the Cloud with Remote...
Accelerating Apache Spark Shuffle for Data Analytics on the Cloud with Remote...Accelerating Apache Spark Shuffle for Data Analytics on the Cloud with Remote...
Accelerating Apache Spark Shuffle for Data Analytics on the Cloud with Remote...
Databricks
 
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...
Databricks
 
Fine Tuning and Enhancing Performance of Apache Spark Jobs
Fine Tuning and Enhancing Performance of Apache Spark JobsFine Tuning and Enhancing Performance of Apache Spark Jobs
Fine Tuning and Enhancing Performance of Apache Spark Jobs
Databricks
 
Apache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic DatasetsApache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic Datasets
Alluxio, Inc.
 
Using Apache Hive with High Performance
Using Apache Hive with High PerformanceUsing Apache Hive with High Performance
Using Apache Hive with High Performance
Inderaj (Raj) Bains
 
A Deep Dive into Query Execution Engine of Spark SQL
A Deep Dive into Query Execution Engine of Spark SQLA Deep Dive into Query Execution Engine of Spark SQL
A Deep Dive into Query Execution Engine of Spark SQL
Databricks
 
Parquet performance tuning: the missing guide
Parquet performance tuning: the missing guideParquet performance tuning: the missing guide
Parquet performance tuning: the missing guide
Ryan Blue
 
Presto on Apache Spark: A Tale of Two Computation Engines
Presto on Apache Spark: A Tale of Two Computation EnginesPresto on Apache Spark: A Tale of Two Computation Engines
Presto on Apache Spark: A Tale of Two Computation Engines
Databricks
 
How Adobe Does 2 Million Records Per Second Using Apache Spark!
How Adobe Does 2 Million Records Per Second Using Apache Spark!How Adobe Does 2 Million Records Per Second Using Apache Spark!
How Adobe Does 2 Million Records Per Second Using Apache Spark!
Databricks
 
Parquet Hadoop Summit 2013
Parquet Hadoop Summit 2013Parquet Hadoop Summit 2013
Parquet Hadoop Summit 2013
Julien Le Dem
 

Similar to Cosco: An Efficient Facebook-Scale Shuffle Service (20)

Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
Databricks
 
Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
Databricks
 
Flink Forward Berlin 2017: Robert Metzger - Keep it going - How to reliably a...
Flink Forward Berlin 2017: Robert Metzger - Keep it going - How to reliably a...Flink Forward Berlin 2017: Robert Metzger - Keep it going - How to reliably a...
Flink Forward Berlin 2017: Robert Metzger - Keep it going - How to reliably a...
Flink Forward
 
Flash for Apache Spark Shuffle with Cosco
Flash for Apache Spark Shuffle with CoscoFlash for Apache Spark Shuffle with Cosco
Flash for Apache Spark Shuffle with Cosco
Databricks
 
Designs, Lessons and Advice from Building Large Distributed Systems
Designs, Lessons and Advice from Building Large Distributed SystemsDesigns, Lessons and Advice from Building Large Distributed Systems
Designs, Lessons and Advice from Building Large Distributed Systems
Daehyeok Kim
 
MapR, Implications for Integration
MapR, Implications for IntegrationMapR, Implications for Integration
MapR, Implications for Integration
trihug
 
11. From Hadoop to Spark 1:2
11. From Hadoop to Spark 1:211. From Hadoop to Spark 1:2
11. From Hadoop to Spark 1:2
Fabio Fumarola
 
Cmu 2011 09.pptx
Cmu 2011 09.pptxCmu 2011 09.pptx
Cmu 2011 09.pptx
MapR Technologies
 
LUG 2014
LUG 2014LUG 2014
LUG 2014
Hitoshi Sato
 
Ceph Day Berlin: Ceph on All Flash Storage - Breaking Performance Barriers
Ceph Day Berlin: Ceph on All Flash Storage - Breaking Performance BarriersCeph Day Berlin: Ceph on All Flash Storage - Breaking Performance Barriers
Ceph Day Berlin: Ceph on All Flash Storage - Breaking Performance Barriers
Ceph Community
 
Putting Wings on the Elephant
Putting Wings on the ElephantPutting Wings on the Elephant
Putting Wings on the Elephant
DataWorks Summit
 
Unified Big Data Processing with Apache Spark (QCON 2014)
Unified Big Data Processing with Apache Spark (QCON 2014)Unified Big Data Processing with Apache Spark (QCON 2014)
Unified Big Data Processing with Apache Spark (QCON 2014)
Databricks
 
Apache Spark: The Next Gen toolset for Big Data Processing
Apache Spark: The Next Gen toolset for Big Data ProcessingApache Spark: The Next Gen toolset for Big Data Processing
Apache Spark: The Next Gen toolset for Big Data Processing
prajods
 
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity PlanningFrom Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
confluent
 
CS 542 Putting it all together -- Storage Management
CS 542 Putting it all together -- Storage ManagementCS 542 Putting it all together -- Storage Management
CS 542 Putting it all together -- Storage Management
J Singh
 
Memory-Based Cloud Architectures
Memory-Based Cloud ArchitecturesMemory-Based Cloud Architectures
Memory-Based Cloud Architectures
小新 制造
 
Storage Spaces Direct - the new Microsoft SDS star - Carsten Rachfahl
Storage Spaces Direct - the new Microsoft SDS star - Carsten RachfahlStorage Spaces Direct - the new Microsoft SDS star - Carsten Rachfahl
Storage Spaces Direct - the new Microsoft SDS star - Carsten Rachfahl
ITCamp
 
Memory: The New Disk
Memory: The New DiskMemory: The New Disk
Memory: The New Disk
Tim Lossen
 
Madrid Spark Big Data Bluemix Meetup - Spark Versus Hadoop @ 100 TB Daytona G...
Madrid Spark Big Data Bluemix Meetup - Spark Versus Hadoop @ 100 TB Daytona G...Madrid Spark Big Data Bluemix Meetup - Spark Versus Hadoop @ 100 TB Daytona G...
Madrid Spark Big Data Bluemix Meetup - Spark Versus Hadoop @ 100 TB Daytona G...
Chris Fregly
 
YTD Video Downloader Pro 7.6.2.1 Full Crack [Latest] | PPT
YTD Video Downloader Pro 7.6.2.1 Full Crack [Latest] | PPTYTD Video Downloader Pro 7.6.2.1 Full Crack [Latest] | PPT
YTD Video Downloader Pro 7.6.2.1 Full Crack [Latest] | PPT
abbaskanju3
 
Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
Databricks
 
Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
Apache Spark on Supercomputers: A Tale of the Storage Hierarchy with Costin I...
Databricks
 
Flink Forward Berlin 2017: Robert Metzger - Keep it going - How to reliably a...
Flink Forward Berlin 2017: Robert Metzger - Keep it going - How to reliably a...Flink Forward Berlin 2017: Robert Metzger - Keep it going - How to reliably a...
Flink Forward Berlin 2017: Robert Metzger - Keep it going - How to reliably a...
Flink Forward
 
Flash for Apache Spark Shuffle with Cosco
Flash for Apache Spark Shuffle with CoscoFlash for Apache Spark Shuffle with Cosco
Flash for Apache Spark Shuffle with Cosco
Databricks
 
Designs, Lessons and Advice from Building Large Distributed Systems
Designs, Lessons and Advice from Building Large Distributed SystemsDesigns, Lessons and Advice from Building Large Distributed Systems
Designs, Lessons and Advice from Building Large Distributed Systems
Daehyeok Kim
 
MapR, Implications for Integration
MapR, Implications for IntegrationMapR, Implications for Integration
MapR, Implications for Integration
trihug
 
11. From Hadoop to Spark 1:2
11. From Hadoop to Spark 1:211. From Hadoop to Spark 1:2
11. From Hadoop to Spark 1:2
Fabio Fumarola
 
Ceph Day Berlin: Ceph on All Flash Storage - Breaking Performance Barriers
Ceph Day Berlin: Ceph on All Flash Storage - Breaking Performance BarriersCeph Day Berlin: Ceph on All Flash Storage - Breaking Performance Barriers
Ceph Day Berlin: Ceph on All Flash Storage - Breaking Performance Barriers
Ceph Community
 
Putting Wings on the Elephant
Putting Wings on the ElephantPutting Wings on the Elephant
Putting Wings on the Elephant
DataWorks Summit
 
Unified Big Data Processing with Apache Spark (QCON 2014)
Unified Big Data Processing with Apache Spark (QCON 2014)Unified Big Data Processing with Apache Spark (QCON 2014)
Unified Big Data Processing with Apache Spark (QCON 2014)
Databricks
 
Apache Spark: The Next Gen toolset for Big Data Processing
Apache Spark: The Next Gen toolset for Big Data ProcessingApache Spark: The Next Gen toolset for Big Data Processing
Apache Spark: The Next Gen toolset for Big Data Processing
prajods
 
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity PlanningFrom Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
confluent
 
CS 542 Putting it all together -- Storage Management
CS 542 Putting it all together -- Storage ManagementCS 542 Putting it all together -- Storage Management
CS 542 Putting it all together -- Storage Management
J Singh
 
Memory-Based Cloud Architectures
Memory-Based Cloud ArchitecturesMemory-Based Cloud Architectures
Memory-Based Cloud Architectures
小新 制造
 
Storage Spaces Direct - the new Microsoft SDS star - Carsten Rachfahl
Storage Spaces Direct - the new Microsoft SDS star - Carsten RachfahlStorage Spaces Direct - the new Microsoft SDS star - Carsten Rachfahl
Storage Spaces Direct - the new Microsoft SDS star - Carsten Rachfahl
ITCamp
 
Memory: The New Disk
Memory: The New DiskMemory: The New Disk
Memory: The New Disk
Tim Lossen
 
Madrid Spark Big Data Bluemix Meetup - Spark Versus Hadoop @ 100 TB Daytona G...
Madrid Spark Big Data Bluemix Meetup - Spark Versus Hadoop @ 100 TB Daytona G...Madrid Spark Big Data Bluemix Meetup - Spark Versus Hadoop @ 100 TB Daytona G...
Madrid Spark Big Data Bluemix Meetup - Spark Versus Hadoop @ 100 TB Daytona G...
Chris Fregly
 
YTD Video Downloader Pro 7.6.2.1 Full Crack [Latest] | PPT
YTD Video Downloader Pro 7.6.2.1 Full Crack [Latest] | PPTYTD Video Downloader Pro 7.6.2.1 Full Crack [Latest] | PPT
YTD Video Downloader Pro 7.6.2.1 Full Crack [Latest] | PPT
abbaskanju3
 
Ad

More from Databricks (20)

DW Migration Webinar-March 2022.pptx
DW Migration Webinar-March 2022.pptxDW Migration Webinar-March 2022.pptx
DW Migration Webinar-March 2022.pptx
Databricks
 
Data Lakehouse Symposium | Day 1 | Part 1
Data Lakehouse Symposium | Day 1 | Part 1Data Lakehouse Symposium | Day 1 | Part 1
Data Lakehouse Symposium | Day 1 | Part 1
Databricks
 
Data Lakehouse Symposium | Day 1 | Part 2
Data Lakehouse Symposium | Day 1 | Part 2Data Lakehouse Symposium | Day 1 | Part 2
Data Lakehouse Symposium | Day 1 | Part 2
Databricks
 
Data Lakehouse Symposium | Day 2
Data Lakehouse Symposium | Day 2Data Lakehouse Symposium | Day 2
Data Lakehouse Symposium | Day 2
Databricks
 
Data Lakehouse Symposium | Day 4
Data Lakehouse Symposium | Day 4Data Lakehouse Symposium | Day 4
Data Lakehouse Symposium | Day 4
Databricks
 
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
Databricks
 
Democratizing Data Quality Through a Centralized Platform
Democratizing Data Quality Through a Centralized PlatformDemocratizing Data Quality Through a Centralized Platform
Democratizing Data Quality Through a Centralized Platform
Databricks
 
Learn to Use Databricks for Data Science
Learn to Use Databricks for Data ScienceLearn to Use Databricks for Data Science
Learn to Use Databricks for Data Science
Databricks
 
Why APM Is Not the Same As ML Monitoring
Why APM Is Not the Same As ML MonitoringWhy APM Is Not the Same As ML Monitoring
Why APM Is Not the Same As ML Monitoring
Databricks
 
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
The Function, the Context, and the Data—Enabling ML Ops at Stitch FixThe Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
Databricks
 
Stage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI IntegrationStage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI Integration
Databricks
 
Simplify Data Conversion from Spark to TensorFlow and PyTorch
Simplify Data Conversion from Spark to TensorFlow and PyTorchSimplify Data Conversion from Spark to TensorFlow and PyTorch
Simplify Data Conversion from Spark to TensorFlow and PyTorch
Databricks
 
Scaling your Data Pipelines with Apache Spark on Kubernetes
Scaling your Data Pipelines with Apache Spark on KubernetesScaling your Data Pipelines with Apache Spark on Kubernetes
Scaling your Data Pipelines with Apache Spark on Kubernetes
Databricks
 
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
Scaling and Unifying SciKit Learn and Apache Spark PipelinesScaling and Unifying SciKit Learn and Apache Spark Pipelines
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
Databricks
 
Sawtooth Windows for Feature Aggregations
Sawtooth Windows for Feature AggregationsSawtooth Windows for Feature Aggregations
Sawtooth Windows for Feature Aggregations
Databricks
 
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Redis + Apache Spark = Swiss Army Knife Meets Kitchen SinkRedis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Databricks
 
Re-imagine Data Monitoring with whylogs and Spark
Re-imagine Data Monitoring with whylogs and SparkRe-imagine Data Monitoring with whylogs and Spark
Re-imagine Data Monitoring with whylogs and Spark
Databricks
 
Raven: End-to-end Optimization of ML Prediction Queries
Raven: End-to-end Optimization of ML Prediction QueriesRaven: End-to-end Optimization of ML Prediction Queries
Raven: End-to-end Optimization of ML Prediction Queries
Databricks
 
Processing Large Datasets for ADAS Applications using Apache Spark
Processing Large Datasets for ADAS Applications using Apache SparkProcessing Large Datasets for ADAS Applications using Apache Spark
Processing Large Datasets for ADAS Applications using Apache Spark
Databricks
 
Massive Data Processing in Adobe Using Delta Lake
Massive Data Processing in Adobe Using Delta LakeMassive Data Processing in Adobe Using Delta Lake
Massive Data Processing in Adobe Using Delta Lake
Databricks
 
DW Migration Webinar-March 2022.pptx
DW Migration Webinar-March 2022.pptxDW Migration Webinar-March 2022.pptx
DW Migration Webinar-March 2022.pptx
Databricks
 
Data Lakehouse Symposium | Day 1 | Part 1
Data Lakehouse Symposium | Day 1 | Part 1Data Lakehouse Symposium | Day 1 | Part 1
Data Lakehouse Symposium | Day 1 | Part 1
Databricks
 
Data Lakehouse Symposium | Day 1 | Part 2
Data Lakehouse Symposium | Day 1 | Part 2Data Lakehouse Symposium | Day 1 | Part 2
Data Lakehouse Symposium | Day 1 | Part 2
Databricks
 
Data Lakehouse Symposium | Day 2
Data Lakehouse Symposium | Day 2Data Lakehouse Symposium | Day 2
Data Lakehouse Symposium | Day 2
Databricks
 
Data Lakehouse Symposium | Day 4
Data Lakehouse Symposium | Day 4Data Lakehouse Symposium | Day 4
Data Lakehouse Symposium | Day 4
Databricks
 
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
5 Critical Steps to Clean Your Data Swamp When Migrating Off of Hadoop
Databricks
 
Democratizing Data Quality Through a Centralized Platform
Democratizing Data Quality Through a Centralized PlatformDemocratizing Data Quality Through a Centralized Platform
Democratizing Data Quality Through a Centralized Platform
Databricks
 
Learn to Use Databricks for Data Science
Learn to Use Databricks for Data ScienceLearn to Use Databricks for Data Science
Learn to Use Databricks for Data Science
Databricks
 
Why APM Is Not the Same As ML Monitoring
Why APM Is Not the Same As ML MonitoringWhy APM Is Not the Same As ML Monitoring
Why APM Is Not the Same As ML Monitoring
Databricks
 
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
The Function, the Context, and the Data—Enabling ML Ops at Stitch FixThe Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
The Function, the Context, and the Data—Enabling ML Ops at Stitch Fix
Databricks
 
Stage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI IntegrationStage Level Scheduling Improving Big Data and AI Integration
Stage Level Scheduling Improving Big Data and AI Integration
Databricks
 
Simplify Data Conversion from Spark to TensorFlow and PyTorch
Simplify Data Conversion from Spark to TensorFlow and PyTorchSimplify Data Conversion from Spark to TensorFlow and PyTorch
Simplify Data Conversion from Spark to TensorFlow and PyTorch
Databricks
 
Scaling your Data Pipelines with Apache Spark on Kubernetes
Scaling your Data Pipelines with Apache Spark on KubernetesScaling your Data Pipelines with Apache Spark on Kubernetes
Scaling your Data Pipelines with Apache Spark on Kubernetes
Databricks
 
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
Scaling and Unifying SciKit Learn and Apache Spark PipelinesScaling and Unifying SciKit Learn and Apache Spark Pipelines
Scaling and Unifying SciKit Learn and Apache Spark Pipelines
Databricks
 
Sawtooth Windows for Feature Aggregations
Sawtooth Windows for Feature AggregationsSawtooth Windows for Feature Aggregations
Sawtooth Windows for Feature Aggregations
Databricks
 
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Redis + Apache Spark = Swiss Army Knife Meets Kitchen SinkRedis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Databricks
 
Re-imagine Data Monitoring with whylogs and Spark
Re-imagine Data Monitoring with whylogs and SparkRe-imagine Data Monitoring with whylogs and Spark
Re-imagine Data Monitoring with whylogs and Spark
Databricks
 
Raven: End-to-end Optimization of ML Prediction Queries
Raven: End-to-end Optimization of ML Prediction QueriesRaven: End-to-end Optimization of ML Prediction Queries
Raven: End-to-end Optimization of ML Prediction Queries
Databricks
 
Processing Large Datasets for ADAS Applications using Apache Spark
Processing Large Datasets for ADAS Applications using Apache SparkProcessing Large Datasets for ADAS Applications using Apache Spark
Processing Large Datasets for ADAS Applications using Apache Spark
Databricks
 
Massive Data Processing in Adobe Using Delta Lake
Massive Data Processing in Adobe Using Delta LakeMassive Data Processing in Adobe Using Delta Lake
Massive Data Processing in Adobe Using Delta Lake
Databricks
 
Ad

Recently uploaded (20)

Ch3MCT24.pptx measure of central tendency
Ch3MCT24.pptx measure of central tendencyCh3MCT24.pptx measure of central tendency
Ch3MCT24.pptx measure of central tendency
ayeleasefa2
 
LLM finetuning for multiple choice google bert
LLM finetuning for multiple choice google bertLLM finetuning for multiple choice google bert
LLM finetuning for multiple choice google bert
ChadapornK
 
How to join illuminati Agent in uganda call+256776963507/0741506136
How to join illuminati Agent in uganda call+256776963507/0741506136How to join illuminati Agent in uganda call+256776963507/0741506136
How to join illuminati Agent in uganda call+256776963507/0741506136
illuminati Agent uganda call+256776963507/0741506136
 
Minions Want to eat presentacion muy linda
Minions Want to eat presentacion muy lindaMinions Want to eat presentacion muy linda
Minions Want to eat presentacion muy linda
CarlaAndradesSoler1
 
Data Science Courses in India iim skills
Data Science Courses in India iim skillsData Science Courses in India iim skills
Data Science Courses in India iim skills
dharnathakur29
 
VKS-Python Basics for Beginners and advance.pptx
VKS-Python Basics for Beginners and advance.pptxVKS-Python Basics for Beginners and advance.pptx
VKS-Python Basics for Beginners and advance.pptx
Vinod Srivastava
 
Principles of information security Chapter 5.ppt
Principles of information security Chapter 5.pptPrinciples of information security Chapter 5.ppt
Principles of information security Chapter 5.ppt
EstherBaguma
 
03 Daniel 2-notes.ppt seminario escatologia
03 Daniel 2-notes.ppt seminario escatologia03 Daniel 2-notes.ppt seminario escatologia
03 Daniel 2-notes.ppt seminario escatologia
Alexander Romero Arosquipa
 
Molecular methods diagnostic and monitoring of infection - Repaired.pptx
Molecular methods diagnostic and monitoring of infection  -  Repaired.pptxMolecular methods diagnostic and monitoring of infection  -  Repaired.pptx
Molecular methods diagnostic and monitoring of infection - Repaired.pptx
7tzn7x5kky
 
Calories_Prediction_using_Linear_Regression.pptx
Calories_Prediction_using_Linear_Regression.pptxCalories_Prediction_using_Linear_Regression.pptx
Calories_Prediction_using_Linear_Regression.pptx
TijiLMAHESHWARI
 
Adobe Analytics NOAM Central User Group April 2025 Agent AI: Uncovering the S...
Adobe Analytics NOAM Central User Group April 2025 Agent AI: Uncovering the S...Adobe Analytics NOAM Central User Group April 2025 Agent AI: Uncovering the S...
Adobe Analytics NOAM Central User Group April 2025 Agent AI: Uncovering the S...
gmuir1066
 
1. Briefing Session_SEED with Hon. Governor Assam - 27.10.pdf
1. Briefing Session_SEED with Hon. Governor Assam - 27.10.pdf1. Briefing Session_SEED with Hon. Governor Assam - 27.10.pdf
1. Briefing Session_SEED with Hon. Governor Assam - 27.10.pdf
Simran112433
 
C++_OOPs_DSA1_Presentation_Template.pptx
C++_OOPs_DSA1_Presentation_Template.pptxC++_OOPs_DSA1_Presentation_Template.pptx
C++_OOPs_DSA1_Presentation_Template.pptx
aquibnoor22079
 
Geometry maths presentation for begginers
Geometry maths presentation for begginersGeometry maths presentation for begginers
Geometry maths presentation for begginers
zrjacob283
 
How iCode cybertech Helped Me Recover My Lost Funds
How iCode cybertech Helped Me Recover My Lost FundsHow iCode cybertech Helped Me Recover My Lost Funds
How iCode cybertech Helped Me Recover My Lost Funds
ireneschmid345
 
chapter3 Central Tendency statistics.ppt
chapter3 Central Tendency statistics.pptchapter3 Central Tendency statistics.ppt
chapter3 Central Tendency statistics.ppt
justinebandajbn
 
Simple_AI_Explanation_English somplr.pptx
Simple_AI_Explanation_English somplr.pptxSimple_AI_Explanation_English somplr.pptx
Simple_AI_Explanation_English somplr.pptx
ssuser2aa19f
 
computer organization and assembly language.docx
computer organization and assembly language.docxcomputer organization and assembly language.docx
computer organization and assembly language.docx
alisoftwareengineer1
 
Stack_and_Queue_Presentation_Final (1).pptx
Stack_and_Queue_Presentation_Final (1).pptxStack_and_Queue_Presentation_Final (1).pptx
Stack_and_Queue_Presentation_Final (1).pptx
binduraniha86
 
Flip flop presenation-Presented By Mubahir khan.pptx
Flip flop presenation-Presented By Mubahir khan.pptxFlip flop presenation-Presented By Mubahir khan.pptx
Flip flop presenation-Presented By Mubahir khan.pptx
mubashirkhan45461
 
Ch3MCT24.pptx measure of central tendency
Ch3MCT24.pptx measure of central tendencyCh3MCT24.pptx measure of central tendency
Ch3MCT24.pptx measure of central tendency
ayeleasefa2
 
LLM finetuning for multiple choice google bert
LLM finetuning for multiple choice google bertLLM finetuning for multiple choice google bert
LLM finetuning for multiple choice google bert
ChadapornK
 
Minions Want to eat presentacion muy linda
Minions Want to eat presentacion muy lindaMinions Want to eat presentacion muy linda
Minions Want to eat presentacion muy linda
CarlaAndradesSoler1
 
Data Science Courses in India iim skills
Data Science Courses in India iim skillsData Science Courses in India iim skills
Data Science Courses in India iim skills
dharnathakur29
 
VKS-Python Basics for Beginners and advance.pptx
VKS-Python Basics for Beginners and advance.pptxVKS-Python Basics for Beginners and advance.pptx
VKS-Python Basics for Beginners and advance.pptx
Vinod Srivastava
 
Principles of information security Chapter 5.ppt
Principles of information security Chapter 5.pptPrinciples of information security Chapter 5.ppt
Principles of information security Chapter 5.ppt
EstherBaguma
 
Molecular methods diagnostic and monitoring of infection - Repaired.pptx
Molecular methods diagnostic and monitoring of infection  -  Repaired.pptxMolecular methods diagnostic and monitoring of infection  -  Repaired.pptx
Molecular methods diagnostic and monitoring of infection - Repaired.pptx
7tzn7x5kky
 
Calories_Prediction_using_Linear_Regression.pptx
Calories_Prediction_using_Linear_Regression.pptxCalories_Prediction_using_Linear_Regression.pptx
Calories_Prediction_using_Linear_Regression.pptx
TijiLMAHESHWARI
 
Adobe Analytics NOAM Central User Group April 2025 Agent AI: Uncovering the S...
Adobe Analytics NOAM Central User Group April 2025 Agent AI: Uncovering the S...Adobe Analytics NOAM Central User Group April 2025 Agent AI: Uncovering the S...
Adobe Analytics NOAM Central User Group April 2025 Agent AI: Uncovering the S...
gmuir1066
 
1. Briefing Session_SEED with Hon. Governor Assam - 27.10.pdf
1. Briefing Session_SEED with Hon. Governor Assam - 27.10.pdf1. Briefing Session_SEED with Hon. Governor Assam - 27.10.pdf
1. Briefing Session_SEED with Hon. Governor Assam - 27.10.pdf
Simran112433
 
C++_OOPs_DSA1_Presentation_Template.pptx
C++_OOPs_DSA1_Presentation_Template.pptxC++_OOPs_DSA1_Presentation_Template.pptx
C++_OOPs_DSA1_Presentation_Template.pptx
aquibnoor22079
 
Geometry maths presentation for begginers
Geometry maths presentation for begginersGeometry maths presentation for begginers
Geometry maths presentation for begginers
zrjacob283
 
How iCode cybertech Helped Me Recover My Lost Funds
How iCode cybertech Helped Me Recover My Lost FundsHow iCode cybertech Helped Me Recover My Lost Funds
How iCode cybertech Helped Me Recover My Lost Funds
ireneschmid345
 
chapter3 Central Tendency statistics.ppt
chapter3 Central Tendency statistics.pptchapter3 Central Tendency statistics.ppt
chapter3 Central Tendency statistics.ppt
justinebandajbn
 
Simple_AI_Explanation_English somplr.pptx
Simple_AI_Explanation_English somplr.pptxSimple_AI_Explanation_English somplr.pptx
Simple_AI_Explanation_English somplr.pptx
ssuser2aa19f
 
computer organization and assembly language.docx
computer organization and assembly language.docxcomputer organization and assembly language.docx
computer organization and assembly language.docx
alisoftwareengineer1
 
Stack_and_Queue_Presentation_Final (1).pptx
Stack_and_Queue_Presentation_Final (1).pptxStack_and_Queue_Presentation_Final (1).pptx
Stack_and_Queue_Presentation_Final (1).pptx
binduraniha86
 
Flip flop presenation-Presented By Mubahir khan.pptx
Flip flop presenation-Presented By Mubahir khan.pptxFlip flop presenation-Presented By Mubahir khan.pptx
Flip flop presenation-Presented By Mubahir khan.pptx
mubashirkhan45461
 

Cosco: An Efficient Facebook-Scale Shuffle Service

  • 2. Cosco: an efficient facebook-scale shuffle service Brian Cho & Dmitry Borovsky Spark + AI Summit 2019
  • 3. Disaggregated compute and storage • Advantages • Server types optimized for compute or storage • Separate capacity management and configuration • Different hardware cycles • Compute clusters • CPU, RAM, no disks for data • Spark executors • Storage clusters • Spindle disks • DFS (Warm Storage) • Permanent data: size dominant, uses less IO • Temporary data: IO dominant, uses less space
  • 4. Spindle disk storage • A single spindle is used to read/write data on the drive • Small IO sizes cause low throughput as seek times dominate . 64 KiB, 140s 128 KiB, 73s 256 KiB, 39 s 1 MiB, 14s 4 MiB, 8s 0 5 10 15 20 0 50 100 150 Readrequest size(MiB) Time (s)
  • 5. Spindle disk storage • A single spindle is used to read/write data on the drive • Small IO sizes cause low throughput as seek times dominate • Drive sizes increase over time • Must increase IO size to maintain the same throughput per TB 7 TB drive 1 MiB IO size 15 TB drive 7 MiB IO size 0 5 10 15 0 5 10 15 20 AvgIOsize(MiB) HDD capacity (TiB) 10 MiBs/TiB 64 KiB, 140s 128 KiB, 73s 256 KiB, 39 s 1 MiB, 14s 4 MiB, 8s 0 5 10 15 20 0 50 100 150 Readrequest size(MiB) Time (s)
  • 6. Spindle disk storage • A single spindle is used to read/write data on the drive • Small IO sizes cause low throughput as seek times dominate • Drive sizes increase over time • Must increase IO size to maintain the same throughput per TB, or • Read/write less data to reduce throughput demand 0 5 10 15 0 5 10 15 20 AvgIOsize(MiB) HDD capacity (TiB) 10 MiBs/TiB 8 MiBs/TiB 6 MiBs/TiB 64 KiB, 140s 128 KiB, 73s 256 KiB, 39 s 1 MiB, 14s 4 MiB, 8s 0 5 10 15 20 0 50 100 150 Readrequest size(MiB) Time (s)
  • 7. Spindle disk storage: key metrics ØDisk service time ØAverage IO size ØWrite amplification • A single spindle is used to read/write data on the drive • Small IO sizes cause low throughput as seek times dominate • Drive sizes increase over time • Must increase IO size to maintain the same throughput, or • Read/write less data to reduce throughput demand
  • 8. Spark shuffle recap Map 0 Map 1 Map m Mappers Map Output Files Reducers Partition Reduce 0 Reduce 1 Reduce r
  • 9. Spark shuffle recap Map 0 Map 1 Map m Mappers Map Output Files Reducers Reduce 0 Reduce 1 Reduce r Partition
  • 10. Spark shuffle recap Map 0 Map 1 Map m Mappers Map Output Files Reducers Reduce 0 Reduce 1 Reduce r Sort by key Iterator Iterator Iterator Partition
  • 11. Spark shuffle recap: Write amplification Map 0 Map 1 Map m Mappers Map Output Files Reducers Sort by key Iterator Iterator Iterator Partition Reduce 0 Reduce 1 Reduce r Write amplification is 3x
  • 12. Spark shuffle recap: Small IOs problem Map 0 Map 1 Map m Mappers Map Output Files Reducers Reduce 0 Reduce 1 Reduce r M x R Avg IO size is 200 KiB Sort by key Iterator Iterator Iterator Partition
  • 13. Spark shuffle recap: SOS Map 0 Map 1 Map m Mappers Map Output Files Reducers Reduce 0 Reduce 1 Reduce r Sort by key Iterator Iterator Iterator SOS: merge map outputs 10-way merge increases Avg IO size to 2 MiB Partition
  • 14. Spark shuffle using Cosco • Mappers share a write-ahead buffer per reduce partition • Reducers can read the written data sequentially • Solves the small IOs problem • Sequential reads: Avg IO size 200 KiB à 2.5 MiB • Solves the write amplification problem • Avoiding spills: Write amplification 3x à 1.2x
  • 15. Results / Current status • Hive • Rolled out to 90%+ of Hive workloads, in production for 1+ year • 3.2x more efficient disk service time • Spark • Analysis shows potential 3.5x more efficient disk service time • Analysis shows CPU neutral • Integration is complete, rollout planned during next few months
  • 16. Cosco deep dive Dmitry Borovsky Spark + AI Summit 2019
  • 17. Problem • Shuffle exchange on spinning disks (disaggregated compute and storage) • Single shuffle exchange scale: PiBs size, 100Ks of mappers, 10Ks reducers • Write amplification is ~3x (1PiB shuffle does 3PiB writes to disk) • Small Average IO size: ~200KiB (at least MxR reads) • IO is spiky (all readers may start at the same time and do MxR reads) • Cosco is shared between users
  • 18. Sailfish: a framework for large scale data processing SoCC '12 Proceedings of the Third ACM Symposium on Cloud Computing, Article No. 4, San Jose, California — October 14 - 17, 2012 Source code: https://code.google.com/archive/p/sailfish/
  • 19. Write-ahead buffers Cosco Shuffle Services (thousands) DFS Cosco Shuffle Services (thousands) Mapper 0 Mapper 1 Mapper 2 Reducer 0 Reducer 1 Partition 0 (file 1 buffer) File 0 File 1 File 2 File 0 File 1 network Partition 0 (file 2 buffer) Spark process (cosco client) Dependency Cosco process (shared between apps) Sorts (if needed)
  • 20. Exactly once delivery DFS Cosco Shuffle Services (thousands) Mapper 0 Reducer 0 File 0 File 1 File 2 Partition 0 (file 2 buffer) Spark process (cosco client) Cosco process (shared between apps) Dependency Data Ack Partition 0’ (file 3 buffer) Failover File 3
  • 21. Exactly once delivery DFS Cosco Shuffle Services (thousands) Mapper 0 Reducer 0 File 0 File 1 File 2 Partition 0 (file 2 buffer) Spark process (cosco client) Cosco process (shared between apps) Dependency Data Ack Partition 0’ (file 3 buffer) Failover 2 1 File 3
  • 22. At least once delivery and deduplication DFS Cosco Shuffle Services (thousands) Mapper 0 Reducer 0 File 0 File 1 File 2 Partition 0 (file 2 buffer) Spark process (cosco client) Cosco process (shared between apps) Dependency Data Ack Partition 0’ (file 3 buffer) Failover 2 1 Adds row_id and mapper_id to each row De-duplicates resends non-acked data File 3
  • 23. Replication DFS Mapper 0 Reducer 0 File 0 File 1 File 2 Partition 0 (file 2 buffer) Spark process (cosco client) Cosco process (shared between apps) Dependency Data Partition 0’ (file 2’ buffer) Data Ack Ack
  • 24. Replication DFS Reducer 0 File 0 File 1 Spark process (cosco client) Cosco process (shared between apps) Dependency File 2’ File 2 Mapper 0 Partition 0 (file 2 buffer) Data Partition 0’ (file 2’ buffer) Data Ack Ack
  • 25. // Mapper writer = new CoscoWriter( shuffleId: String, mapper: long); writer.collect( partition: int, row: byte[]); // ... writer.collect( partition: int, row: byte[]); writer.close(); // Reducer reader = new CoscoReader( shuffleId: String, mappers: long[], partition: int); while (reader.next()) { // using row row = reader.row(); } reader.close(); // Driver shuffle = new CoscoExchange( shuffleId: String, partitions: int, recomputeWritersCallback: (mappers: long[], reason: String) -> void); // end of exchange shuffle.close();
  • 26. // Mapper writer = new CoscoWriter( shuffleId: String, mapper: long); writer.collect( partition: int, row: byte[]); // ... writer.collect( partition: int, row: byte[]); writer.close(); // Reducer reader = new CoscoReader( shuffleId: String, mappers: long[], partition: int); while (reader.next()) { // using row row = reader.row(); } reader.close(); // Driver shuffle = new CoscoExchange( shuffleId: String, partitions: int, recomputeWritersCallback: (mappers: long[], reason: String) -> void); // end of exchange shuffle.close();
  • 27. Cosco Shuffle Services (thousands) DFS Cosco Shuffle Services (10Ks) Mapper 0 Mapper 1 Mapper 2 Reducer 0 Reducer 1 Partition 0 (file 1 buffer) File 0 File 1 File 2 File 0 File 1 network Partition 0 (file 2 buffer) Cosco Metadata Service Spark process (cosco client) Cosco process (shared between apps) Dependency Mappers submit what files them wrote to Commits files Reducers ask for files Metadata
  • 28. Cosco Shuffle Services (thousands) DFS Cosco Shuffle Services (10Ks) Mapper 0 Mapper 1 Mapper 2 Reducer 0 Reducer 1 Partition 0 (file 1 buffer) File 0 File 1 File 2 File 0 File 1 network Partition 0 (file 2 buffer) Cosco Metadata Service Spark process (cosco client) Cosco process (shared between apps) Dependency Mappers submit what files them wrote to Commits files Reducers ask for files Metadata Mapper 0 Mapper 1 Mapper 2 Mapper 3 Mapper 4 File 0 File 1 File 2 File 0 File 1
  • 29. Cosco Shuffle Services (thousands) DFS Cosco Shuffle Services (10Ks) Mapper 0 Mapper 1 Mapper 2 Reducer 0 Reducer 1 Partition 0 (file 1 buffer) File 0 File 1 File 2 File 0 File 1 network Partition 0 (file 2 buffer) Cosco Metadata Service Spark process (cosco client) Cosco process (shared between apps) Dependency Mappers submit what files them wrote to Commits files Reducers ask for files Metadata Mapper 0 Mapper 1 Mapper 2 Mapper 3 Mapper 4 File 0 File 1 File 2 File 0 File 1 Mapper 3’ (recompute) Mapper 4’ (recompute) File 3 File 2
  • 30. // Mapper writer = new CoscoWriter( shuffleId: String, mapper: long); writer.collect( partition: int, row: byte[]); // ... writer.collect( partition: int, row: byte[]); writer.close(); // Reducer reader = new CoscoReader( shuffleId: String, mappers: long[], partition: int); while (reader.next()) { // using row row = reader.row(); } reader.close(); // Driver shuffle = new CoscoExchange( shuffleId: String, partitions: int, recomputeWritersCallback: (mappers: long[], reason: String) -> void); // end of exchange shuffle.close();
  • 31. Cosco Shuffle Services (thousands) DFS Cosco Shuffle Services (thousands) Mapper 0 Mapper 1 Mapper 2 Reducer 0 Reducer 1 Partition 0 (file 1 buffer) File 0 File 1 File 2 File 0 File 1 network Partition 0 (file 2 buffer) Driver Cosco Metadata Service Spark process (cosco client) Cosco process (shared between apps) Dependency Mappers submit what files them wrote to Commits files Reducers ask for files Recompute request Metadata
  • 32. Cosco Shuffle Services (thousands) DFS Cosco Shuffle Services (thousands) Mapper 0 Mapper 1 Mapper 2 Reducer 0 Reducer 1 Partition 0 (file 1 buffer) File 0 File 1 File 2 File 0 File 1 network Partition 0 (file 2 buffer) Driver Cosco Metadata Service Spark process (cosco client) Cosco process (shared between apps) Dependency Cosco Scheduler Mappers submit what files them wrote to Commits files Reducers ask for files Recompute request Scheduler
  • 33. Limits • Cosco doesn’t support large rows (<4MiB) • Capacity: shuffle services memory, number of write-ahead buffers
  • 34. Future work • “Unlimited” shuffle exchange: • millions of splits/partitions • 10s of PiBs • Streaming