This is a great initiative!
I was thinking of QUIC for the Ceph Messenger but RGW can benefit from it as well.
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
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