Achieving Double-Digit Millisecond Offline Feature Stores with Alluxio
Alluxio
0 views
25 slides
Oct 02, 2025
Slide 1 of 25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
About This Presentation
AI/ML Infra Meetup
Sep. 30, 2025
Organized by Alluxio
For more Alluxio Events: https://www.alluxio.io/events/
Speaker:
- Greg Lindstrom, (VP ML Trading @ Blackout Power Trading)
Greg Lindstrom shared how they achieved double-digit millisecond offline feature store performance using Alluxio, a...
AI/ML Infra Meetup
Sep. 30, 2025
Organized by Alluxio
For more Alluxio Events: https://www.alluxio.io/events/
Speaker:
- Greg Lindstrom, (VP ML Trading @ Blackout Power Trading)
Greg Lindstrom shared how they achieved double-digit millisecond offline feature store performance using Alluxio, a game-changer for real-time power trading where every millisecond counts. The 60x latency reduction for inference queries was particularly impressive.
Size: 753.1 KB
Language: en
Added: Oct 02, 2025
Slides: 25 pages
Slide Content
Greg Lindstrom, VP ML Trading
Alluxio Meetup | September 30, 2025
Achieving Double-Digit Millisecond
Offline Feature Stores with Alluxio
What if…
●What if S3 was 10x faster? 30x faster? (bandwidth and latency)
●What if S3 data was served at in-memory latency?
●What complexity could be reduced, how much money and time
could be saved?
But First… Power Trading 101
10k+ Tradeable Locations
Source: Yes Energy
Locational Marginal Price (LMP)
●Prices are the result of a huge math model solving optimal
dispatch (minimize cost)
●Marginal generation unit sets price
Day-Ahead Versus Real Time Power
●Day-ahead (DA) power scheduled one day in advance
●Real-time (RT) power is scheduled every 5 minutes
●Trading the spread between DA and RT power
○Why are these markets different?
●Think air traffic controller scheduling planes one day in
advance
Day-Ahead Power Trading Primer
●Daily blind auction
Competitive Market
●Using the latest data
○Weather forecasts
○Renewables forecasts
○Outages
○Pricing
○Etc
●Latest renewables forecast comes out 30 minutes before
market close
Market Window Pressure Cooker
●30 minutes between last forecast and market close
=
●15 minutes to run inference thousands of small ML models
+
●15 minutes to review, manually adjust for risk profiles and
human insights, and submit
The Feature Join Problem
Benchmark Join:
●20 feature tables, 4 columns from each table, 1 primary key
resulting in 81 columns
●24 rows for inference and 70k rows for training
Join Example in SQL
SELECT
t1.col1, t1.col2, t1.col3, t1.col4,
t2.col1, t2.col2, t2.col3, t2.col4,
...
t20.col1, t20.col2, t20.col3, t20.col4
FROM table1 t1
JOIN table2 t2 ON t1.id = t2.t1_id
JOIN table3 t3 ON t2.id = t3.t2_id
JOIN table4 t4 ON t3.id = t4.t3_id
...
JOIN table20 t20 ON t19.id = t20.t19_id;
●Reading models artifact and saving results 3+ seconds
●~80% of time waiting on IO
Why Have a Feature Store?
●Simplicity
○Ingest
○Query
●Metadata
●Feature Views
●Versioning
Standard Feature Store Pipeline
Source: https://www.tecton.ai/blog/what-is-a-feature-store/
Online Feature Stores
Pros
●Very high performance
inference
●Ingesting streaming data
is simple
Cons
●Limited Data
●Complexity
○Data lifecycle
○Split sources of truth
●Expensive
●Training data serving is
still very slow
●Volatile
Offline Feature Stores
Pros
●Relatively cheap
●Low complexity
●Durable
●All data
Cons
●Slow
●Ingesting streaming data
is more complex
What if it wasn’t slow?
What Makes Offline Slow?
1.Storage latency / bandwidth
2.Storage format
3.Feature joining
4.Post-join data transfer
What if we optimized for speed?
1.Solving Storage Latency / Bandwidth
[Alluxio enters the chat]
●Cache files on NVME drives for low latency
●Bandwidth now constrained by EC2 instance types (how does
10GB/s sound?)
●High Availability + Maintains S3 durability
●Scales linearly
●Lots of tuning options depending on workload
2. Solving Storage Format
●Contenders: Parquet, Delta Lake, Iceberg, Hudi, Avro
●Parquet is easily the winner for speed however:
○Can't handle concurrent writes
○Queries may see partial results (partitioned tables)
○No version history