Skip to content
This repository has been archived by the owner on Feb 18, 2024. It is now read-only.

Added support to read Arrow streams asynchronously #832

Merged
merged 2 commits into from
Feb 12, 2022
Merged

Conversation

jorgecarleitao
Copy link
Owner

@jorgecarleitao jorgecarleitao commented Feb 12, 2022

This PR adds support to read an arrow stream asynchronously (via futures::AsyncRead), thereby allowing users to use their favorite runtime to suspend reading from it when either the stream is marked as "waiting", or the reader is not ready (e.g. network).

The design is equivalent to the rest of the IO in the crate. Recall that we do not separate IO-bounded from CPU-bounded ops when reading and writing to Arrow IPC because arrow IPC format has almost no CPU involved (it is reading/writing back-to-back).

@jorgecarleitao jorgecarleitao added the feature A new feature label Feb 12, 2022
@jorgecarleitao jorgecarleitao changed the title Added async Arrow stream reading Added support to read Arrow streams asynchronously Feb 12, 2022
@codecov
Copy link

codecov bot commented Feb 12, 2022

Codecov Report

Merging #832 (f9696ff) into main (2c4dbb2) will decrease coverage by 0.00%.
The diff coverage is 64.94%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #832      +/-   ##
==========================================
- Coverage   71.55%   71.55%   -0.01%     
==========================================
  Files         326      327       +1     
  Lines       17643    17737      +94     
==========================================
+ Hits        12624    12691      +67     
- Misses       5019     5046      +27     
Impacted Files Coverage Δ
src/io/ipc/read/stream_async.rs 62.65% <62.65%> (ø)
src/io/ipc/read/schema.rs 85.90% <76.92%> (-0.55%) ⬇️
src/io/ipc/read/stream.rs 74.69% <100.00%> (+2.53%) ⬆️
src/io/parquet/read/binary/basic.rs 79.41% <0.00%> (+0.03%) ⬆️
src/io/avro/write/schema.rs 67.50% <0.00%> (+0.83%) ⬆️
src/io/avro/write/serialize.rs 84.41% <0.00%> (+2.59%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2c4dbb2...f9696ff. Read the comment docs.

@jorgecarleitao jorgecarleitao merged commit 9e6924b into main Feb 12, 2022
@jorgecarleitao jorgecarleitao deleted the async_stream branch February 12, 2022 22:56
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
feature A new feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant