[
https://issues.apache.org/jira/browse/PARQUET-1698?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17014781#comment-17014781
]
Wes McKinney commented on PARQUET-1698:
---------------------------------------
Currently in the C++ library, IO calls are issued separately for each column.
To give a concrete example of the current problem, let's consider an example
like:
* File with 100 columns
* Read columns 1 through 10 and 91 through 100
We have the option of readahead buffering but the readahead only happens at the
single-column level. So we need to have some strategy to enable the 20 column
reads to be "coalesced" into 2-ish reads.
> [C++] Add reader option to pre-buffer entire serialized row group into memory
> -----------------------------------------------------------------------------
>
> Key: PARQUET-1698
> URL: https://issues.apache.org/jira/browse/PARQUET-1698
> Project: Parquet
> Issue Type: Improvement
> Components: parquet-cpp
> Reporter: Wes McKinney
> Assignee: Zherui Cao
> Priority: Major
> Labels: pull-request-available
> Fix For: cpp-1.6.0
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> In some scenarios (example: reading datasets from Amazon S3), reading columns
> independently and allowing unbridled {{Read}} calls to the underlying file
> handle can yield suboptimal performance. In such cases, it may be preferable
> to first read the entire serialized row group into memory then deserialize
> the constituent columns from this
> Note that such an option would not be appropriate as a default behavior for
> all file handle types since low-selectivity reads (example: reading only 3
> columns out of a file with 100 columns) will be suboptimal in some cases. I
> think it would be better for "high latency" file systems to opt into this
> option
> cc [~fsaintjacques] [~bkietz] [~apitrou]
--
This message was sent by Atlassian Jira
(v8.3.4#803005)