10. What makes Presto fast?
Data in memory during execution
Pipelining and streaming
Very careful coding of inner loops
Efficient flat-memory data structures
Bytecode generation
13. Execution engine
Huge joins and aggregations
•Hash distributed
•Co-distributed and co-partitioned
•Spill to disk (flash)
Work stealing
Basic task recovery
14. ODBC driver
Targeting major BI tools
•Tableau, MicroStrategy and Excel
Support for Windows, Mac and Linux
Entirely open source (ASL2)
15. Native store
Stores data directly on worker nodes
Custom data format
Initial use cases
•‘Hot’ data
•‘Live’ data
16. Open source
Apache License 2.0
Open development
Releases every 1-2 weeks
!
External contributions welcome!
18. Bytecode generation
while (in.advanceNextPosition()) {!
if (in.getLong(3) >= 100 && !
in.getLong(3) <= 200 &&!
in.getLong(4) < in.getLong(5)) {!
!
out.advance();!
in.appendStringTo(0, out);!
out.appendLong(in.getLong(1) * in.getLong(2) / 10);!
}!
}
SELECT!
k AS c1,!
(a * b) / 10 AS c2!
FROM T!
WHERE!
c BETWEEN 100 AND 200!
AND d < e!
T: !
k varchar, !
a bigint, !
b bigint, !
c bigint, !
d bigint, !
e bigint