-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Avoid reading underlying stream when seeking RLE decoders (#7918)
Summary: Pull Request resolved: #7918 `seekToRowGroup` is meant to be a lightweight operation and should not read the underlying stream. Currently this is not the case with RLE decoders, because we eagerly skip the values after seeking, which requires read the RLE headers from the encoded data. We have pattern that seek multiple times before actually reading the data, and the IO and decompression cost of seeking can be avoided. This is especially visible in low selectivity queries where decompression takes majority of the CPU time. Optimize these repeated IO and decompression away by lazily skipping values in RLE decoders. For a typical low selectivity query, this improve the CPU time from 69.84 hours to 40.2 hours (Presto Java is taking 41.45 hours on the same query). Reviewed By: oerling Differential Revision: D51947121 fbshipit-source-id: 3c242d87b16deba895b659a4c9e407e549e46b05
- Loading branch information
1 parent
16e1af9
commit 4617100
Showing
17 changed files
with
229 additions
and
193 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.