rgw/posix: add file read/write ops for rgw::Aio#50635
rgw/posix: add file read/write ops for rgw::Aio#50635
Conversation
|
this piece doesn't depend on
then the posix |
dang
left a comment
There was a problem hiding this comment.
Seems straight forward enough.
|
This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved |
|
@dang @mattbenjamin i was thinking about this a bit more, and i'm skeptical that we want to mimic the rados backend's strategy for reads/writes. RadosDriver makes use of the AioThrottle to transfer several chunks in parallel, because each chunk can likely be satisfied by a different osd from a local file, i think we're likely to get the best performance by streaming the reads sequentially and letting the os handle readahead. but what about a distributed filesystem like gpfs? would we know enough about the layout to take advantage of any parallelism there? i pushed a commit that preserves the sequential behavior of |
|
hi casey, I think it may be worth experimenting with this more. Local file can be a number of things, including mirrored and striped devices. gpfs could be similar. still, you're probably right that under most conditions i/o will be very sequential, so we might not notice Matt |
|
can we discuss what d3n and d4n's 'ssd driver' should do in the d4n call tomorrow? cc @pritha-srivastava |
|
@mkogan1 ^^ |
+1 for evaluating configurable transfer several chunks in parallel (not enabled by default) |
|
This pull request has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs for another 30 days. |
|
This pull request has been automatically closed because there has been no activity for 90 days. Please feel free to reopen this pull request (or open a new one) if the proposed change is still appropriate. Thank you for your contribution! |
|
per @mkogan1 's comment, let's re-open this |
|
This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved |
|
This pull request has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs for another 30 days. |
|
This pull request has been automatically closed because there has been no activity for 90 days. Please feel free to reopen this pull request (or open a new one) if the proposed change is still appropriate. Thank you for your contribution! |
Signed-off-by: Casey Bodley <cbodley@redhat.com>
there's a conflicting BLOCK_SIZE macro defined inside the liburing headers Signed-off-by: Casey Bodley <cbodley@redhat.com>
adapters that allow bufferlist to be used as the `buffers` argument in functions like `asio::async_read()` and `asio::async_write()` Signed-off-by: Casey Bodley <cbodley@redhat.com>
Signed-off-by: Casey Bodley <cbodley@redhat.com>
0a9a497 to
3e7d48c
Compare
|
@cbodley rebased and run a small object PUT workload (100,000 * 4KB objs into multiple buckets) |


enables asio's uring interfaces, adds bufferlist adapters for asio's
ConstBufferSequenceandMutableBufferSequenceconcepts, then implements simple async ops for use withrgw::AioShow available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test dashboard cephadmjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume toxjenkins test windows