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