Skip to content

Improve parallel reader to minimize number of connections #124

Closed

Description

@parthchandra

What is the problem the feature request solves?

The current parallel reader splits a consecutive range into smaller pieces and reads them all in parallel. This method is fast but expensive as it uses a large number of connections which are not reused. On cloud storage this can increase the cost quite a bit.
Connections are not reused to avoid large seeks within a file. On cloud storage platforms like S3, long range seeks will automatically create a new http connection resulting in the same extra costs.

Describe the potential solution

A solution would be to use a set of reusable connections that read the consecutive ranges in parallel with no splitting of ranges. This approach has a disadvantage in that if there is a single large range then that range will be read by a single thread and will become a performance bottleneck. To overcome this, we can introduce a method to handle skew where such oversized ranges are split into smaller ranges.

Additional context

No response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions