-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
Adds custom registry User-Agent header to s3 HTTP requests #1381
Conversation
Also enables s3 connection pooling as a side-effect |
e7a723a
to
2a028c1
Compare
Current coverage is
|
Connection pooling should be HUGE. It would be great to get some informal benchmarks to see how much this helps. I know I was cheerleading for a fork, but it looks like |
I was also looking at the AWS-owned client (https://github.com/aws/aws-sdk-go) and it looks like there's tons more active development there than goamz. I could try a rewrite of the s3 driver using aws-sdk-go, which uses a persistent (and pluggable) |
2a028c1
to
c9f94d4
Compare
Updated to include docker/goamz#10 for fixed connection pooling |
LGTM @dmp42 @RichardScothern Should we consider this for Registry 2.3 because of the big performance improvement? |
I'm reluctant to. Although the unit tests show a big performance Do we know what this is set to in the official go client? On Fri, Jan 22, 2016 at 2:55 PM, Aaron Lehmann notifications@github.com
|
@RichardScothern |
@RichardScothern @BrianBland We can do another release after 2.3 with the new S3 drivers, once it is warranted (2.4, perhaps). I believe its nice to release with each docker release, but we can always release more often. There are a few other big changes, such as the path fixup that will save on bandwidth (something like 10% of url keys, although not much in reality 😸 ). |
@docker/distribution-maintainers can we merge this? |
LGTM |
@BrianBland at this point it's a matter of branch and release management. |
We can merge to master and I will create a branch for the release As a matter of interest, this is being tested in a container on prod with interesting results (see Noah for details) |
Before we do, are we ok with the user agent string @BrianBland ? |
Good point, I'm going to update it to |
c9f94d4
to
c4f8a52
Compare
LGTM |
Is the plan to merge this first and then have a seprate PR that introduces an alternative s3 driver using the official SDK (which will probably become the one named "s3")? |
Exactly, #1385 adds the alternative s3 driver and changes the name of this one to |
|
||
if params.UserAgent != "" { | ||
s3obj.Client = &http.Client{ | ||
Transport: transport.NewTransport(http.DefaultTransport, transport.NewHeaderRequestModifier(http.Header{http.CanonicalHeaderKey("User-Agent"): []string{params.UserAgent}})), |
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.
Minor cosmetic point, but I think this would be easier to read if broken over multiple lines, like this:
s3obj.Client = &http.Client{
Transport: transport.NewTransport(http.DefaultTransport,
transport.NewHeaderRequestModifier(http.Header{
http.CanonicalHeaderKey("User-Agent"): []string{params.UserAgent},
}),
),
}
LGTM |
Uses docker/goamz instead of AdRoll/goamz Adds a registry UA string param to the storage parameters when constructing the storage driver for the registry App. This could be used by other storage drivers as well Signed-off-by: Brian Bland <brian.bland@docker.com>
c4f8a52
to
2dc1af1
Compare
Updated for @aaronlehmann's style nit, merging on green CI |
Adds custom registry User-Agent header to s3 HTTP requests
Adds custom registry User-Agent header to s3 HTTP requests
Adds custom registry User-Agent header to s3 HTTP requests
Uses docker/goamz instead of AdRoll/goamz
Adds a registry UA string param to the storage parameters when
constructing the storage driver for the registry App.
This could be used by other storage drivers as well
Addresses #1353