SlideShare a Scribd company logo
Deep Dive:
Memory Management in Apache
Andrew Or
May 18th, 2016
@andrewor14
How familiar are you with Apache Spark?
a) I contribute to it
b) I use it in production
c) I am evaluating it
d) I have nothing to do with it
2
What is Apache ?
3
Fast and general engine for big data processing
Fast to run code
– In-memory data sharing
– General computation graphs
Fast to write code
– Rich APIs in Java, Scala, Python
– Interactive shell
4
Spark Core
Spark
Streaming
real-time
Spark SQL
structured data
MLlib
machine
learning
GraphX
graph
…
What is Apache ?
About Databricks
5
Team that created Spark
at UC Berkeley
Offer a hosted service
– Spark in the cloud
– Notebooks
– Plot visualizations
– Cluster management
About Me
6
Apache Spark committer
Software eng @ Databricks
Hadoop Summit ‘15
Spark Summit Europe ‘15
Some other meetup talks
7
Efficient memory use is
critical to good performance
Memory Management in Apache Spark
Memory contention poses three
challenges for Apache Spark
9
How to arbitrate memory between execution and storage?
How to arbitrate memory across tasks running in parallel?
How to arbitrate memory across operators running within
the same task?
Two usages of memory in Apache Spark
10
Execution
Memory used for shuffles, joins, sorts and aggregations
Storage
Memory used to cache data that will be reused later
Iterator
4, 3, 5, 1, 6, 2, 8
4 3 5 1 6 2 8
Sort
4 3 5 1 6 2 8
Sort
Execution memory
Iterator
1, 2, 3, 4, 5, 6, 8
1 2 3 4 5 6 8
Sort
Execution memory
Iterator Map Iterator
1, 2, 3, 4, 5, 6, 8 +1 2, 3, 4, 5, 6, 7, 9
Iterator Map
1, 2, 3, 4, 5, 6, 8 +1
Map
+1
Iterator
1, 2, 3, 4, 5, 6, 8
...
Iterator
2, 3, 4, 5, 6, 7, 9
Iterator
2, 3, 4, 5, 6, 7, 9
Cached
Iterator
1, 2, 3, 4, 5, 6, 8
Map Iterator
Map Iterator
...
Storage
memory
Map
+1
Iterator
2, 3, 4, 5, 6, 7, 9
Challenge #1
How to arbitrate memory between
execution and storage?
Easy, static allocation!
18
Total available memory
Execution Storage
Spark 1.0
May 2014
Easy, static allocation!
19
Execution Storage
Spill to disk
Spark 1.0
May 2014
Easy, static allocation!
20
Execution Storage
Spark 1.0
May 2014
Easy, static allocation!
21
Execution Storage
Evict LRU block to disk
Spark 1.0
May 2014
22
Inefficient memory use means
bad performance
Easy, static allocation!
23
Execution can only use a fraction of the memory,
even when there is no storage!
Execution Storage
Spark 1.0May 2014
Storage
Easy, static allocation!
24
Efficient use of memory required user tuning
Execution
Spark 1.0May 2014
25
Fast forward to 2016…
How could we have done better?
26
Execution Storage
27
Execution Storage
Unified memory management
Spark 1.6+
Jan 2016
What happens if there is already storage?
28
Execution Storage
Unified memory management
Spark 1.6+
Jan 2016
Evict LRU block to disk
29
Execution Storage
Unified memory management
Spark 1.6+
Jan 2016
What about the other way round?
30
Execution Storage
Unified memory management
Spark 1.6+
Jan 2016
Evict LRU block to disk
Design considerations
31
Why evict storage, not execution?
Spilled execution data will always be read back from disk,
whereas cached data may not.
What if the application relies on caching?
Allow the user to specify a minimum unevictable amount of
cached data (not a reservation!).
Spark 1.6+
Jan 2016
Challenge #2
How to arbitrate memory across
tasks running in parallel?
Easy, static allocation!
Worker machine has 4 cores
Each task gets 1/4 of the total memory
Slot 1 Slot 2 Slot 3 Slot 4
Alternative: What Spark does
Worker machine has 4 cores
The share of each task depends on
number of actively running tasks (N)
Task 1
Alternative: What Spark does
Now, another task comes along
so the first task will have to spill
Task 1
Alternative: What Spark does
Each task is assigned 1/N of the
memory, where N = 2
Task 1 Task 2
Alternative: What Spark does
Each task is assigned 1/N of the
memory, where N = 4
Task 1 Task 2 Task 3 Task 4
Alternative: What Spark does
Last remaining task gets all the
memory because N = 1
Task 3
Spark 1.0+
May 2014
Static allocation vs What Spark does
39
Both are fair and starvation free
Static allocation is simpler
What Spark does handles stragglers better
Challenge #3
How to arbitrate memory across
operators running within the same task?
SELECT age, avg(height)
FROM students
GROUP BY age
ORDER BY avg(height)
students.groupBy("age")
.avg("height")
.orderBy("avg(height)")
.collect()
Scan
Project
Aggregate
Sort
Worker has 6
pages of memory
Scan
Project
Aggregate
Sort
Scan
Project
Aggregate
Sort
Map { // age → heights
20 → [154, 174, 175]
21 → [167, 168, 181]
22 → [155, 166, 188]
23 → [160, 168, 178, 183]
}
Scan
Project
Aggregate
Sort
All 6 pages were used
by Aggregate, leaving
no memory for Sort!
Solution #1:
Reserve a page for
each operator
Scan
Project
Aggregate
Sort
Solution #1:
Reserve a page for
each operator
Scan
Project
Aggregate
Sort
Starvation free, but still not fair…
What if there were more operators?
Solution #2:
Cooperative spilling
Scan
Project
Aggregate
Sort
Scan
Project
Aggregate
Sort
Solution #2:
Cooperative spilling
Scan
Project
Aggregate
Sort
Solution #2:
Cooperative spilling
Sort forces Aggregate to spill
a page to free memory
Scan
Project
Aggregate
Sort
Solution #2:
Cooperative spilling
Sort needs more memory so
it forces Aggregate to spill
another page (and so on)
Scan
Project
Aggregate
Sort
Solution #2:
Cooperative spilling
Sort finishes with 3 pages
Aggregate does not have to
spill its remaining pages
Spark 1.6+
Jan 2016
Recap: Three sources of contention
52
How to arbitrate memory …
● between execution and storage?
● across tasks running in parallel?
● across operators running within the same task?
Instead of avoid statically reserving memory in advance, deal with
memory contention when it arises by forcing members to spill
Project Tungsten
53
Binary in-memory data representation
Cache-aware computation
Code generation (next time)
Spark 1.4+
Jun 2015
“abcd”
54
• Native: 4 bytes with UTF-8 encoding
• Java: 48 bytes
– 12 byte header
– 2 bytes per character (UTF-16 internal representation)
– 20 bytes of additional overhead
– 8 byte hash code
Java objects have large overheads
55
Schema: (Int, String, string)
Row
Array String(“data”)
String(“bricks”)
5+ objects, high space overhead, expensive hashCode()
BoxedInteger(123)
Java objects based row format
6 “bricks”
56
0x0 123 32L 48L 4 “data”
(123, “data”, “bricks”)
Null tracking bitmap
Offset to var. length data
Offset to var. length data
Tungsten row format
Cache-aware Computation
57
ptr key rec
ptr key rec
ptr key rec
Naive layout
Poor cache locality
ptrkey prefix rec
ptrkey prefix rec
ptrkey prefix rec
Cache-aware layout
Good cache locality
E.g. sorting a list of records
For more info...
Deep Dive into Project Tungsten: Bringing Spark Closer to Bare Metal
https://www.youtube.com/watch?v=5ajs8EIPWGI
Spark Performance: What’s Next
https://www.youtube.com/watch?v=JX0CdOTWYX4
Unified Memory Management
https://issues.apache.org/jira/browse/SPARK-10000
Thank you
andrew@databricks.com
@andrewor14

More Related Content

What's hot (20)

PDF
Deep Dive into Spark SQL with Advanced Performance Tuning with Xiao Li & Wenc...
Databricks
 
PDF
Apache Spark in Depth: Core Concepts, Architecture & Internals
Anton Kirillov
 
PDF
Understanding Query Plans and Spark UIs
Databricks
 
PDF
Spark shuffle introduction
colorant
 
PDF
Physical Plans in Spark SQL
Databricks
 
PDF
Apache Spark Core – Practical Optimization
Databricks
 
PPTX
Spark Shuffle Deep Dive (Explained In Depth) - How Shuffle Works in Spark
Bo Yang
 
PDF
Hive Bucketing in Apache Spark with Tejas Patil
Databricks
 
PDF
Dynamic Partition Pruning in Apache Spark
Databricks
 
PDF
Adaptive Query Execution: Speeding Up Spark SQL at Runtime
Databricks
 
PDF
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Databricks
 
PDF
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...
Databricks
 
PPTX
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
Databricks
 
PDF
Performant Streaming in Production: Preventing Common Pitfalls when Productio...
Databricks
 
PDF
Apache Spark Data Source V2 with Wenchen Fan and Gengliang Wang
Databricks
 
PDF
Apache Spark Core—Deep Dive—Proper Optimization
Databricks
 
PPTX
Real-time Analytics with Trino and Apache Pinot
Xiang Fu
 
PDF
Spark + Parquet In Depth: Spark Summit East Talk by Emily Curtin and Robbie S...
Spark Summit
 
PDF
Understanding Memory Management In Spark For Fun And Profit
Spark Summit
 
PPTX
kafka
Amikam Snir
 
Deep Dive into Spark SQL with Advanced Performance Tuning with Xiao Li & Wenc...
Databricks
 
Apache Spark in Depth: Core Concepts, Architecture & Internals
Anton Kirillov
 
Understanding Query Plans and Spark UIs
Databricks
 
Spark shuffle introduction
colorant
 
Physical Plans in Spark SQL
Databricks
 
Apache Spark Core – Practical Optimization
Databricks
 
Spark Shuffle Deep Dive (Explained In Depth) - How Shuffle Works in Spark
Bo Yang
 
Hive Bucketing in Apache Spark with Tejas Patil
Databricks
 
Dynamic Partition Pruning in Apache Spark
Databricks
 
Adaptive Query Execution: Speeding Up Spark SQL at Runtime
Databricks
 
Improving SparkSQL Performance by 30%: How We Optimize Parquet Pushdown and P...
Databricks
 
Everyday I'm Shuffling - Tips for Writing Better Spark Programs, Strata San J...
Databricks
 
A Deep Dive into Spark SQL's Catalyst Optimizer with Yin Huai
Databricks
 
Performant Streaming in Production: Preventing Common Pitfalls when Productio...
Databricks
 
Apache Spark Data Source V2 with Wenchen Fan and Gengliang Wang
Databricks
 
Apache Spark Core—Deep Dive—Proper Optimization
Databricks
 
Real-time Analytics with Trino and Apache Pinot
Xiang Fu
 
Spark + Parquet In Depth: Spark Summit East Talk by Emily Curtin and Robbie S...
Spark Summit
 
Understanding Memory Management In Spark For Fun And Profit
Spark Summit
 

Viewers also liked (20)

PDF
700 Queries Per Second with Updates: Spark As A Real-Time Web Service
Spark Summit
 
PDF
Why your Spark job is failing
Sandy Ryza
 
PDF
Visualizing AutoTrader Traffic in Near Real-Time with Spark Streaming-(Jon Gr...
Spark Summit
 
PDF
Visualizing big data in the browser using spark
Databricks
 
PPTX
Apache HAWQ Architecture
Alexey Grishchenko
 
PDF
Beyond SQL: Speeding up Spark with DataFrames
Databricks
 
PPTX
TensorFrames: Google Tensorflow on Apache Spark
Databricks
 
PPTX
Real time data viz with Spark Streaming, Kafka and D3.js
Ben Laird
 
PDF
R, Scikit-Learn and Apache Spark ML - What difference does it make?
Villu Ruusmann
 
PDF
Lessons from Running Large Scale Spark Workloads
Databricks
 
PPTX
Spark Infrastructure Made Easy
BlueData, Inc.
 
PDF
Jump Start with Apache Spark 2.0 on Databricks
Anyscale
 
PDF
Deep Dive Into Catalyst: Apache Spark 2.0'S Optimizer
Spark Summit
 
PDF
Interactive Visualization of Streaming Data Powered by Spark by Ruhollah Farc...
Spark Summit
 
PDF
Apache Spark: What's under the hood
Adarsh Pannu
 
PPTX
SORT & JOIN IN SPARK 2.0
Sigmoid
 
PDF
Apps to spark memory
University of Southern Queensland
 
PDF
Making Sense of Spark Performance-(Kay Ousterhout, UC Berkeley)
Spark Summit
 
PDF
Spark performance tuning - Maksud Ibrahimov
Maksud Ibrahimov
 
PDF
Anatomy of in memory processing in Spark
datamantra
 
700 Queries Per Second with Updates: Spark As A Real-Time Web Service
Spark Summit
 
Why your Spark job is failing
Sandy Ryza
 
Visualizing AutoTrader Traffic in Near Real-Time with Spark Streaming-(Jon Gr...
Spark Summit
 
Visualizing big data in the browser using spark
Databricks
 
Apache HAWQ Architecture
Alexey Grishchenko
 
Beyond SQL: Speeding up Spark with DataFrames
Databricks
 
TensorFrames: Google Tensorflow on Apache Spark
Databricks
 
Real time data viz with Spark Streaming, Kafka and D3.js
Ben Laird
 
R, Scikit-Learn and Apache Spark ML - What difference does it make?
Villu Ruusmann
 
Lessons from Running Large Scale Spark Workloads
Databricks
 
Spark Infrastructure Made Easy
BlueData, Inc.
 
Jump Start with Apache Spark 2.0 on Databricks
Anyscale
 
Deep Dive Into Catalyst: Apache Spark 2.0'S Optimizer
Spark Summit
 
Interactive Visualization of Streaming Data Powered by Spark by Ruhollah Farc...
Spark Summit
 
Apache Spark: What's under the hood
Adarsh Pannu
 
SORT & JOIN IN SPARK 2.0
Sigmoid
 
Apps to spark memory
University of Southern Queensland
 
Making Sense of Spark Performance-(Kay Ousterhout, UC Berkeley)
Spark Summit
 
Spark performance tuning - Maksud Ibrahimov
Maksud Ibrahimov
 
Anatomy of in memory processing in Spark
datamantra
 
Ad

Similar to Memory Management in Apache Spark (20)

PPTX
A Developer’s View into Spark's Memory Model with Wenchen Fan
Databricks
 
PPTX
A Developer's View Into Spark's Memory Model with Wenchen Fan
Databricks
 
PPTX
Spark - Migration Story
Roman Chukh
 
PPTX
Spark.pptx to knowledge gaining in wdm days ago
PreethamMCPreethamMC
 
PPTX
Intro to Spark development
Spark Summit
 
PDF
Started with-apache-spark
Happiest Minds Technologies
 
PDF
Introduction to Spark Training
Spark Summit
 
PPTX
Spark architechure.pptx
SaiSriMadhuriYatam
 
PDF
Garbage Collector Tuning
ESUG
 
PPTX
4Introduction+to+Spark.pptx sdfsdfsdfsdfsdf
yafora8192
 
PDF
Scaling Apache Spark at Facebook
Databricks
 
PDF
Apache® Spark™ 1.6 presented by Databricks co-founder Patrick Wendell
Databricks
 
PDF
Apache Spark Introduction.pdf
MaheshPandit16
 
PDF
Spark Concepts Cheat Sheet_Interview_Question.pdf
aekannake
 
PDF
EuroMPI 2016 Keynote: How Can MPI Fit Into Today's Big Computing
Jonathan Dursi
 
PDF
Deep Dive into Project Tungsten: Bringing Spark Closer to Bare Metal-(Josh Ro...
Spark Summit
 
PDF
Top 5 mistakes when writing Spark applications
hadooparchbook
 
PDF
Everything You Always Wanted to Know About Memory in Python But Were Afraid t...
Piotr Przymus
 
PPTX
In Memory Analytics with Apache Spark
Venkata Naga Ravi
 
PDF
An Overview of Apache Spark
Yasoda Jayaweera
 
A Developer’s View into Spark's Memory Model with Wenchen Fan
Databricks
 
A Developer's View Into Spark's Memory Model with Wenchen Fan
Databricks
 
Spark - Migration Story
Roman Chukh
 
Spark.pptx to knowledge gaining in wdm days ago
PreethamMCPreethamMC
 
Intro to Spark development
Spark Summit
 
Started with-apache-spark
Happiest Minds Technologies
 
Introduction to Spark Training
Spark Summit
 
Spark architechure.pptx
SaiSriMadhuriYatam
 
Garbage Collector Tuning
ESUG
 
4Introduction+to+Spark.pptx sdfsdfsdfsdfsdf
yafora8192
 
Scaling Apache Spark at Facebook
Databricks
 
Apache® Spark™ 1.6 presented by Databricks co-founder Patrick Wendell
Databricks
 
Apache Spark Introduction.pdf
MaheshPandit16
 
Spark Concepts Cheat Sheet_Interview_Question.pdf
aekannake
 
EuroMPI 2016 Keynote: How Can MPI Fit Into Today's Big Computing
Jonathan Dursi
 
Deep Dive into Project Tungsten: Bringing Spark Closer to Bare Metal-(Josh Ro...
Spark Summit
 
Top 5 mistakes when writing Spark applications
hadooparchbook
 
Everything You Always Wanted to Know About Memory in Python But Were Afraid t...
Piotr Przymus
 
In Memory Analytics with Apache Spark
Venkata Naga Ravi
 
An Overview of Apache Spark
Yasoda Jayaweera
 
Ad

More from Databricks (20)

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

Recently uploaded (20)

PDF
Capcut Pro Crack For PC Latest Version {Fully Unlocked} 2025
hashhshs786
 
PDF
Continouous failure - Why do we make our lives hard?
Papp Krisztián
 
PDF
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
PPTX
Human Resources Information System (HRIS)
Amity University, Patna
 
PDF
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
PPTX
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
PPTX
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
 
PPTX
An Introduction to ZAP by Checkmarx - Official Version
Simon Bennetts
 
PDF
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
Nabin Dhakal
 
PPT
MergeSortfbsjbjsfk sdfik k
RafishaikIT02044
 
PDF
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
 
PPTX
Engineering the Java Web Application (MVC)
abhishekoza1981
 
PPTX
Comprehensive Guide: Shoviv Exchange to Office 365 Migration Tool 2025
Shoviv Software
 
PDF
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
PDF
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
PDF
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PDF
GridView,Recycler view, API, SQLITE& NetworkRequest.pdf
Nabin Dhakal
 
PDF
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
PDF
Mobile CMMS Solutions Empowering the Frontline Workforce
CryotosCMMSSoftware
 
Capcut Pro Crack For PC Latest Version {Fully Unlocked} 2025
hashhshs786
 
Continouous failure - Why do we make our lives hard?
Papp Krisztián
 
Beyond Binaries: Understanding Diversity and Allyship in a Global Workplace -...
Imma Valls Bernaus
 
Human Resources Information System (HRIS)
Amity University, Patna
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
Writing Better Code - Helping Developers make Decisions.pptx
Lorraine Steyn
 
An Introduction to ZAP by Checkmarx - Official Version
Simon Bennetts
 
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
Nabin Dhakal
 
MergeSortfbsjbjsfk sdfik k
RafishaikIT02044
 
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
 
Engineering the Java Web Application (MVC)
abhishekoza1981
 
Comprehensive Guide: Shoviv Exchange to Office 365 Migration Tool 2025
Shoviv Software
 
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
GridView,Recycler view, API, SQLITE& NetworkRequest.pdf
Nabin Dhakal
 
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
Mobile CMMS Solutions Empowering the Frontline Workforce
CryotosCMMSSoftware
 

Memory Management in Apache Spark