Re: rgw: async support for posix backend

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Mar 22, 2023 at 4:14 PM Matt Benjamin <mbenjami@xxxxxxxxxx> wrote:
>
>
>
> On Wed, Mar 22, 2023 at 3:12 PM Casey Bodley <cbodley@xxxxxxxxxx> wrote:
>>
>>
>> we can start by trying out asio's new asio::stream_file[1] and
>> asio::random_access_file[2] classes based on io_uring. both classes
>> can be constructed with an existing file descriptor using the
>> 'native_handle_type' overload
>>
>
> now that's encouraging
>
>>
>>
>> the synchronous case probably won't be that simple, since we won't
>> have an asio::io_context to construct the asio::stream_file with. we
>> might just fall back to the read system call there
>>
>
> what is the synchronous case?  normally sync can be implemented on async?

now that i think on it more, there isn't really a synchronous case here at all

even with civetweb, the rados object reads/writes were asynchronous
via librados' aio_operate(). both because librados can read/write
chunks on separate OSDs in parallel, and because we're also streaming
data to/from the frontend socket at the same time

for file i/o, we need to implement rgw::Aio::OpFunc for the reads and
writes, similar to the Aio::librados_op()s for
librados::ObjectReadOperation and ObjectWriteOperation. i opened a
draft PR at https://github.com/ceph/ceph/pull/50635 that shows what
those OpFuncs look like

>
> Matt
>
> --
>
> Matt Benjamin
> Red Hat, Inc.
> 315 West Huron Street, Suite 140A
> Ann Arbor, Michigan 48103
>
> http://www.redhat.com/en/technologies/storage
>
> tel.  734-821-5101
> fax.  734-769-8938
> cel.  734-216-5309
_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx




[Index of Archives]     [CEPH Users]     [Ceph Devel]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux