SlideShare a Scribd company logo
Enable Presto® Caching
in Uber with Alluxio
Zhongting Hu: TLM @Uber Data Analytics
Beinan Wang: Software Engineer@Alluxio
Data informs every decision at Uber
Marketplace
Pricing
Community
Operations
Growth Marketing Data Science
Compliance
Eats
Presto @ Uber-scale
12K
Monthly Active Users
400K
Queries/day
2
Data Centers
6K
Nodes
14
Clusters
50PB
HDFS data
processed/day
Presto Deployment
Workloads
Interactive
Ad hoc queries
Batch
Scheduled
Data: From On-Premise to Cloud
● What
○ BI (Application)
○ Analytics (Compute)
○ Storage
● How
○ Feature Compatibility
○ Performance Measurement
○ Security / Compliance
○ Tech Debt ?
● Why
○ Cost Efficiency
○ Usability / Scalability / Reliability
Alluxio Local Caching-- High Level Architecture
Running as a local library in presto Worker
Key <-> Value:
HDFS File Path as the key
https://prestodb.io/blog/2020/06/16/alluxio-datacaching
Presto on GCP
Key Problems -- Data
● Data Characteristics
○ Mostly partition by Date
○ Hudi incremental update on File
○ Staging Directory / Partition from ETL framework
● Cache Data Hit Ratio
○ 3+ PB distinct data access per day
○ ~10% frequently accessed data
○ ~3% hot accessed data
● Data Cache Filtering
○ Offline Query Analytics on the Table (with Partition) Access
○ Onboarding hot accessed data
Key Problems -- Apache Hadoop® HDFS Latency
● Data Nodes can create some random latency
● In real production environment, CPU walltime mostly spent in reading data
Key Problems -- HDFS Latency, Cont
● Reading from local cache have much better guaranteed latency
● Fixing a bug of Namenode listing (ListLocatedStatus API)
Key Problems -- Presto Soft Affinity Scheduling
● Compute Preferred workers
○ Split override getPreferredNodes() to return the 2 preferred workers
○ Simple Mod based algorithm
○ try to assign it one by one by looking at whether it is busy
○ If both workers are busy, then select least busy worker (with cacheable = false)
● Define Busy worker
○ Max splits per node: node-scheduler.max-splits-per-node
○ Max pending splits per task: node-scheduler.max-pending-splits-per-task
Key Problems -- Soft Affinity with Consistent Hash
● Change from simple
Mod based node
selection to consistent
hashing
● 10 virtual nodes,
original 400 nodes
cluster
Current Status and next steps
● Initial testing has been finished, great improvement on queries
● TPCDS testing with sf10k in progress
● Historical Table/Partition analytics to setup cache filters
● Dashboarding, monitoring, metadata integrations
Persistent File Level Metadata for Local Cache
● Prevent stale caching
○ The underlying data files might be changed by the 3rd party frameworks. (This situation might be
rare in hive table, but very common in hudi tables)
● Scoped quota management
○ Do you want to put a cache quota for each table?
● Metadata should be recoverable after server restart
File Level Metadata -- High Level Approach
● Implement a file level metadata store which keeps the last modified time and the scope of
each data file we cached.
● The file level metadata store should be persistent on disk so the data will not disappear
after restarting
Cache data and Metadata Structure
root_path/page_size(ulong)/bucket(uint)/file_id(str)/
timestamp1/
Page_file1 (The filename is a ulong)
Page_file2
….
Page_fileN
timestamp2/
Page_file1 (The filename is a ulong)
Page_file2
….
Page_fileN
metadata (stores FileInfo in protobuf format)
Contains timestamp and scope
Metadata Awareness -- Cache Context (New in
2.6.1)
Per Query Metrics Aggregation on Presto Side
Future Work
● Performance Tuning
● Semantic Cache
● More efficient deserialization

More Related Content

PPTX
PDF
Improve Presto Architectural Decisions with Shadow Cache
PPTX
Hybrid collaborative tiered storage with alluxio
PDF
Alluxio Data Orchestration Platform for the Cloud
PPTX
Using Alluxio as a Fault-tolerant Pluggable Optimization Component of JD.com'...
PDF
Improving Presto performance with Alluxio at TikTok
PDF
Alluxio+Presto: An Architecture for Fast SQL in the Cloud
PDF
Hybrid data lake on google cloud with alluxio and dataproc
Improve Presto Architectural Decisions with Shadow Cache
Hybrid collaborative tiered storage with alluxio
Alluxio Data Orchestration Platform for the Cloud
Using Alluxio as a Fault-tolerant Pluggable Optimization Component of JD.com'...
Improving Presto performance with Alluxio at TikTok
Alluxio+Presto: An Architecture for Fast SQL in the Cloud
Hybrid data lake on google cloud with alluxio and dataproc

What's hot (20)

PDF
Optimizing Latency-Sensitive Queries for Presto at Facebook: A Collaboration ...
PDF
How to Develop and Operate Cloud First Data Platforms
PDF
Presto: SQL-on-Anything. Netherlands Hadoop User Group Meetup
PDF
Speed Up Uber's Presto with Alluxio
PDF
Powering Interactive Analytics with Alluxio and Presto
PDF
Alluxio 2.0 & Near Real-time Big Data Platform w/ Spark & Alluxio
PDF
Best Practices for Using Alluxio with Spark
PDF
Presto Summit 2018 - 09 - Netflix Iceberg
PDF
The Data Lake Engine Data Microservices in Spark using Apache Arrow Flight
PDF
Apache Iceberg - A Table Format for Hige Analytic Datasets
PDF
Running MySQL on Linux
PDF
Accelerate Analytics and ML in the Hybrid Cloud Era
PDF
Presto Summit 2018 - 04 - Netflix Containers
PPTX
Performance Tuning Cheat Sheet for MongoDB
PDF
Iceberg: a fast table format for S3
PDF
Presto on Alluxio Hands-On Lab
PPTX
Migration to ClickHouse. Practical guide, by Alexander Zaitsev
PPTX
Need for Time series Database
PDF
Сергей Сверчков и Виталий Руденя. Choosing a NoSQL database
PDF
Data Analysis with TensorFlow in PostgreSQL
 
Optimizing Latency-Sensitive Queries for Presto at Facebook: A Collaboration ...
How to Develop and Operate Cloud First Data Platforms
Presto: SQL-on-Anything. Netherlands Hadoop User Group Meetup
Speed Up Uber's Presto with Alluxio
Powering Interactive Analytics with Alluxio and Presto
Alluxio 2.0 & Near Real-time Big Data Platform w/ Spark & Alluxio
Best Practices for Using Alluxio with Spark
Presto Summit 2018 - 09 - Netflix Iceberg
The Data Lake Engine Data Microservices in Spark using Apache Arrow Flight
Apache Iceberg - A Table Format for Hige Analytic Datasets
Running MySQL on Linux
Accelerate Analytics and ML in the Hybrid Cloud Era
Presto Summit 2018 - 04 - Netflix Containers
Performance Tuning Cheat Sheet for MongoDB
Iceberg: a fast table format for S3
Presto on Alluxio Hands-On Lab
Migration to ClickHouse. Practical guide, by Alexander Zaitsev
Need for Time series Database
Сергей Сверчков и Виталий Руденя. Choosing a NoSQL database
Data Analysis with TensorFlow in PostgreSQL
 
Ad

Similar to Enabling Presto Caching at Uber with Alluxio (20)

PDF
Speed Up Presto at Uber with Alluxio Caching
PDF
Building a high-performance data lake analytics engine at Alibaba Cloud with ...
PDF
Optimizing Latency-sensitive queries for Presto at Facebook: A Collaboration ...
PDF
The Practice of Presto & Alluxio in E-Commerce Big Data Platform
PDF
Data Orchestration Platform for the Cloud
PDF
From limited Hadoop compute capacity to increased data scientist efficiency
PDF
Slides: Accelerating Queries on Cloud Data Lakes
PDF
Presto @ Uber Hadoop summit2017
PDF
Even Faster: When Presto meets Parquet @ Uber
PDF
Enterprise Distributed Query Service powered by Presto & Alluxio across cloud...
PDF
Getting Started with Apache Spark and Alluxio for Blazingly Fast Analytics
PDF
AI/ML Infra Meetup | Balancing Cost, Performance, and Scale - Running GPU/CPU...
PDF
AI/ML Infra Meetup | Maximizing GPU Efficiency : Optimizing Model Training wi...
PDF
Meetup at AI NextCon 2019: In-Stream data process, Data Orchestration & More
PDF
Presto at Twitter
PDF
How the Development Bank of Singapore solves on-prem compute capacity challen...
PDF
Enterprise Presto PaaS offering in Google Cloud
PDF
RaptorX: Building a 10X Faster Presto with hierarchical cache
PPTX
Practice of large Hadoop cluster in China Mobile
PDF
Open Source Data Orchestration for AI, Big Data, and Cloud
Speed Up Presto at Uber with Alluxio Caching
Building a high-performance data lake analytics engine at Alibaba Cloud with ...
Optimizing Latency-sensitive queries for Presto at Facebook: A Collaboration ...
The Practice of Presto & Alluxio in E-Commerce Big Data Platform
Data Orchestration Platform for the Cloud
From limited Hadoop compute capacity to increased data scientist efficiency
Slides: Accelerating Queries on Cloud Data Lakes
Presto @ Uber Hadoop summit2017
Even Faster: When Presto meets Parquet @ Uber
Enterprise Distributed Query Service powered by Presto & Alluxio across cloud...
Getting Started with Apache Spark and Alluxio for Blazingly Fast Analytics
AI/ML Infra Meetup | Balancing Cost, Performance, and Scale - Running GPU/CPU...
AI/ML Infra Meetup | Maximizing GPU Efficiency : Optimizing Model Training wi...
Meetup at AI NextCon 2019: In-Stream data process, Data Orchestration & More
Presto at Twitter
How the Development Bank of Singapore solves on-prem compute capacity challen...
Enterprise Presto PaaS offering in Google Cloud
RaptorX: Building a 10X Faster Presto with hierarchical cache
Practice of large Hadoop cluster in China Mobile
Open Source Data Orchestration for AI, Big Data, and Cloud
Ad

More from Alluxio, Inc. (20)

PDF
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
PDF
Introduction to Apache Iceberg™ & Tableflow
PDF
Optimizing Tiered Storage for Low-Latency Real-Time Analytics at AI Scale
PDF
Meet in the Middle: Solving the Low-Latency Challenge for Agentic AI
PDF
From Data Preparation to Inference: How Alluxio Speeds Up AI
PDF
Best Practice for LLM Serving in the Cloud
PDF
Meet You in the Middle: 1000x Performance for Parquet Queries on PB-Scale Dat...
PDF
How Coupang Leverages Distributed Cache to Accelerate ML Model Training
PDF
Alluxio Webinar | Inside Deepseek 3FS: A Deep Dive into AI-Optimized Distribu...
PDF
AI/ML Infra Meetup | Building Production Platform for Large-Scale Recommendat...
PDF
AI/ML Infra Meetup | How Uber Optimizes LLM Training and Finetune
PDF
AI/ML Infra Meetup | Optimizing ML Data Access with Alluxio: Preprocessing, ...
PDF
AI/ML Infra Meetup | Deployment, Discovery and Serving of LLMs at Uber Scale
PDF
Alluxio Webinar | What’s New in Alluxio AI: 3X Faster Checkpoint File Creatio...
PDF
AI/ML Infra Meetup | A Faster and More Cost Efficient LLM Inference Stack
PDF
AI/ML Infra Meetup | RAYvolution - The Last Mile: Mastering AI Deployment wit...
PDF
Alluxio Webinar | Accelerate AI: Alluxio 101
PDF
AI/ML Infra Meetup | The power of Ray in the era of LLM and multi-modality AI
PDF
AI/ML Infra Meetup | Exploring Distributed Caching for Faster GPU Training wi...
PDF
AI/ML Infra Meetup | Big Data and AI, Zoom Developers
Product Update: Alluxio AI 3.7 Now with Sub-Millisecond Latency
Introduction to Apache Iceberg™ & Tableflow
Optimizing Tiered Storage for Low-Latency Real-Time Analytics at AI Scale
Meet in the Middle: Solving the Low-Latency Challenge for Agentic AI
From Data Preparation to Inference: How Alluxio Speeds Up AI
Best Practice for LLM Serving in the Cloud
Meet You in the Middle: 1000x Performance for Parquet Queries on PB-Scale Dat...
How Coupang Leverages Distributed Cache to Accelerate ML Model Training
Alluxio Webinar | Inside Deepseek 3FS: A Deep Dive into AI-Optimized Distribu...
AI/ML Infra Meetup | Building Production Platform for Large-Scale Recommendat...
AI/ML Infra Meetup | How Uber Optimizes LLM Training and Finetune
AI/ML Infra Meetup | Optimizing ML Data Access with Alluxio: Preprocessing, ...
AI/ML Infra Meetup | Deployment, Discovery and Serving of LLMs at Uber Scale
Alluxio Webinar | What’s New in Alluxio AI: 3X Faster Checkpoint File Creatio...
AI/ML Infra Meetup | A Faster and More Cost Efficient LLM Inference Stack
AI/ML Infra Meetup | RAYvolution - The Last Mile: Mastering AI Deployment wit...
Alluxio Webinar | Accelerate AI: Alluxio 101
AI/ML Infra Meetup | The power of Ray in the era of LLM and multi-modality AI
AI/ML Infra Meetup | Exploring Distributed Caching for Faster GPU Training wi...
AI/ML Infra Meetup | Big Data and AI, Zoom Developers

Recently uploaded (20)

PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
System and Network Administration Chapter 2
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Understanding Forklifts - TECH EHS Solution
PDF
iTop VPN Free 5.6.0.5262 Crack latest version 2025
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PPTX
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
PPTX
Computer Software and OS of computer science of grade 11.pptx
PDF
System and Network Administraation Chapter 3
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
L1 - Introduction to python Backend.pptx
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Nekopoi APK 2025 free lastest update
PPTX
Operating system designcfffgfgggggggvggggggggg
How to Choose the Right IT Partner for Your Business in Malaysia
System and Network Administration Chapter 2
Upgrade and Innovation Strategies for SAP ERP Customers
Design an Analysis of Algorithms I-SECS-1021-03
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Understanding Forklifts - TECH EHS Solution
iTop VPN Free 5.6.0.5262 Crack latest version 2025
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
Computer Software and OS of computer science of grade 11.pptx
System and Network Administraation Chapter 3
Navsoft: AI-Powered Business Solutions & Custom Software Development
L1 - Introduction to python Backend.pptx
Softaken Excel to vCard Converter Software.pdf
CHAPTER 2 - PM Management and IT Context
Nekopoi APK 2025 free lastest update
Operating system designcfffgfgggggggvggggggggg

Enabling Presto Caching at Uber with Alluxio

  • 1. Enable Presto® Caching in Uber with Alluxio Zhongting Hu: TLM @Uber Data Analytics Beinan Wang: Software Engineer@Alluxio
  • 2. Data informs every decision at Uber Marketplace Pricing Community Operations Growth Marketing Data Science Compliance Eats
  • 3. Presto @ Uber-scale 12K Monthly Active Users 400K Queries/day 2 Data Centers 6K Nodes 14 Clusters 50PB HDFS data processed/day
  • 6. Data: From On-Premise to Cloud ● What ○ BI (Application) ○ Analytics (Compute) ○ Storage ● How ○ Feature Compatibility ○ Performance Measurement ○ Security / Compliance ○ Tech Debt ? ● Why ○ Cost Efficiency ○ Usability / Scalability / Reliability
  • 7. Alluxio Local Caching-- High Level Architecture Running as a local library in presto Worker Key <-> Value: HDFS File Path as the key https://prestodb.io/blog/2020/06/16/alluxio-datacaching
  • 9. Key Problems -- Data ● Data Characteristics ○ Mostly partition by Date ○ Hudi incremental update on File ○ Staging Directory / Partition from ETL framework ● Cache Data Hit Ratio ○ 3+ PB distinct data access per day ○ ~10% frequently accessed data ○ ~3% hot accessed data ● Data Cache Filtering ○ Offline Query Analytics on the Table (with Partition) Access ○ Onboarding hot accessed data
  • 10. Key Problems -- Apache Hadoop® HDFS Latency ● Data Nodes can create some random latency ● In real production environment, CPU walltime mostly spent in reading data
  • 11. Key Problems -- HDFS Latency, Cont ● Reading from local cache have much better guaranteed latency ● Fixing a bug of Namenode listing (ListLocatedStatus API)
  • 12. Key Problems -- Presto Soft Affinity Scheduling ● Compute Preferred workers ○ Split override getPreferredNodes() to return the 2 preferred workers ○ Simple Mod based algorithm ○ try to assign it one by one by looking at whether it is busy ○ If both workers are busy, then select least busy worker (with cacheable = false) ● Define Busy worker ○ Max splits per node: node-scheduler.max-splits-per-node ○ Max pending splits per task: node-scheduler.max-pending-splits-per-task
  • 13. Key Problems -- Soft Affinity with Consistent Hash ● Change from simple Mod based node selection to consistent hashing ● 10 virtual nodes, original 400 nodes cluster
  • 14. Current Status and next steps ● Initial testing has been finished, great improvement on queries ● TPCDS testing with sf10k in progress ● Historical Table/Partition analytics to setup cache filters ● Dashboarding, monitoring, metadata integrations
  • 15. Persistent File Level Metadata for Local Cache ● Prevent stale caching ○ The underlying data files might be changed by the 3rd party frameworks. (This situation might be rare in hive table, but very common in hudi tables) ● Scoped quota management ○ Do you want to put a cache quota for each table? ● Metadata should be recoverable after server restart
  • 16. File Level Metadata -- High Level Approach ● Implement a file level metadata store which keeps the last modified time and the scope of each data file we cached. ● The file level metadata store should be persistent on disk so the data will not disappear after restarting
  • 17. Cache data and Metadata Structure root_path/page_size(ulong)/bucket(uint)/file_id(str)/ timestamp1/ Page_file1 (The filename is a ulong) Page_file2 …. Page_fileN timestamp2/ Page_file1 (The filename is a ulong) Page_file2 …. Page_fileN metadata (stores FileInfo in protobuf format) Contains timestamp and scope
  • 18. Metadata Awareness -- Cache Context (New in 2.6.1)
  • 19. Per Query Metrics Aggregation on Presto Side
  • 20. Future Work ● Performance Tuning ● Semantic Cache ● More efficient deserialization