-
Notifications
You must be signed in to change notification settings - Fork 838
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(object_store): use http1 by default #5204
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me, I've removed the breaking change as whilst it is potentially user-visible no spec compliant HTTP/2 implementation can not support HTTP/1
object_store/src/client/mod.rs
Outdated
self.http2_only = true.into(); | ||
self | ||
} | ||
|
||
/// Use http2 if supported, otherwise use http1. | ||
pub fn with_either_http1_http2(mut self) -> Self { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pub fn with_either_http1_http2(mut self) -> Self { | |
pub fn with_http2(mut self) -> Self { |
Perhaps?
Would also be good to add an option for this
object_store/src/gcp/mod.rs
Outdated
//! Google Cloud Storage supports both HTTP/2 and HTTP/1. HTTP/1 is used by default | ||
//! because it allows much higher throughput in our benchmarks (see | ||
//! [#5194](https://github.com/apache/arrow-rs/issues/5194)). HTTP/2 can be | ||
//! enabled by setting [crate::ClientConfigKey::Http2Only] to true. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps could add a key for HTTP2 to allow auto-upgrade if supported?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I realized the easier advice is just to set Http1Only
to false.
Which issue does this PR close?
Closes #5194.
Rationale for this change
This makes object store performance less surprising, by making the defaults the more performant options.
What changes are included in this PR?
Makes
HTTP1_ONLY
the default mode.Are there any user-facing changes?
This is a breaking change to defaults. However, user code generally will not need to change.