Re: QUIC in ceph

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

 



This is a great initiative!
I was thinking of QUIC for the Ceph Messenger but RGW can benefit from it as well.

On Thu, Mar 24, 2022 at 3:53 PM Casey Bodley <cbodley@xxxxxxxxxx> wrote:
for a while now i've been following the QUIC protocol's development,
with a long-term goal of supporting HTTP/3 in rgw. QUIC also looks
attractive for use in ceph's Messenger for cluster communications

the QUIC RFCs[1] were published last year but HTTP/3 is still
undergoing 'final review'

there are several C and C++ implementations to choose from, including
projects out of cloudflare[2], facebook[3], google[4], and
microsoft[5]

there are still some barriers to adoption:

* openssl doesn't/won't support QUIC implementations, so they're all
stuck with forks like BoringSSL. this might make it hard to ship
something, but it doesn't stop us from prototyping

* for rgw, there's a corresponding lack of support from S3 clients and
official SDKs. we may have to build our own S3 clients for any
prototyping/performance work

How about starting with QUIC for multisite only as this is internal to RGW and we can use this new S3 client?
For RGW we will need to add feature negotiation to detect if an S3 client supports it.



rgw's ideal QUIC/H3 library would support boost::asio's networking,
but i haven't found one yet - unfortunately, boost::beast will only
ever support HTTP/1.1 and websockets. so i experimented with a C
library called lsquic[6], and built a prototype client/server library
(see repo[7] and docs[8]) with asio integration on top. it needs work
and testing, but it has the H3 interfaces to support a new rgw
frontend, and the QUIC interfaces for a potential ceph Messenger. this
asio model isn't compatible with crimson-osd, but we might build
similar async interfaces for seastar over the same C library?


 I looked a while back on https://github.com/learningstud/http2 and they had plans to add QUIC 

anyway, i'm hoping to start some rgw projects around this sometime
after the quincy release. i also wanted to start the conversation and
gauge interest from the rest of ceph. let me know what you think


Not sure if we have time, but some of those projects can fit GsoC (or Outreachy)

Cheers,
Orit


[1] https://www.rfc-editor.org/rfc/rfc9000.html
[2] https://github.com/cloudflare/quiche/
[3] https://github.com/facebookincubator/mvfst
[4] https://www.chromium.org/quic/
[5] https://github.com/microsoft/msquic
[6] https://github.com/litespeedtech/lsquic/
[7] https://github.com/cbodley/nexus/
[8] https://cbodley.github.io/nexus/

_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx

_______________________________________________
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