QUIC in ceph

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

 



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


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?

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


[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



[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