Skip to content
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

https server will not be impacted by the MaxConcurrentStreams settin… #14081

Closed
wants to merge 1 commit into from

Conversation

YANGJINJUE
Copy link

https server will not be impacted by the MaxConcurrentStreams settings of grpc opts

@@ -17,6 +17,7 @@ package embed
import (
"context"
"fmt"
"golang.org/x/net/http2"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

move this to the following block (starting from line 29)

server/embed/serve.go Show resolved Hide resolved
@ptabor
Copy link
Contributor

ptabor commented May 30, 2022

Is it possible to add a repro tests for the problem, to make sure it will not regress and that logic is consistent between http & https. please ?

@nic-chen
Copy link
Contributor

I think we could flow recommendations of @ptabor and @ahrtr to make the pull request done:

let's expose this as an explicit flag that applies to both http, https & grpc (with default of 100).
let's have a test that shows that it works (e.g. when the flag is 5, the 6 independent watch connections cannot be established)
let's have some measurement on memory impact on number of connections. E.g Prometheus graphs showing a load-test of growing number of connections versus RSS memory usage, to be able to comment on the flag the memory expections for the high values of the flag.

About the default value, I think it is better to use math.MaxUint32 which have been using so far. Otherwise, users may have problems with more than 100 connections (eg users from Apache APISIX).

Next, we can take a benchmark and give recommended value ​​based on hardware.

What do you think? @ptabor @ahrtr @serathius

@nic-chen
Copy link
Contributor

@YANGJINJUE

Would you mind if we update your pull request?

We hope to move forward to resolve this issue as soon as possible.

@ahrtr
Copy link
Member

ahrtr commented May 31, 2022

About the default value, I think it is better to use math.MaxUint32 which have been using so far. Otherwise, users may have problems with more than 100 connections (eg users from Apache APISIX).

Next, we can take a benchmark and give recommended value ​​based on hardware.

What do you think? @ptabor @ahrtr @serathius

I think It's OK to set the default value as math.MaxUint32. Revisiting all the maximum limitations (including this one) is in my to do list.

@YANGJINJUE
Copy link
Author

@YANGJINJUE

Would you mind if we update your pull request?

We hope to move forward to resolve this issue as soon as possible.

ok

@nic-chen
Copy link
Contributor

nic-chen commented Jun 2, 2022

@YANGJINJUE
Would you mind if we update your pull request?
We hope to move forward to resolve this issue as soon as possible.

ok

Oh, I can't push my code.
Could you invite me to your repo please? @YANGJINJUE
Thanks!

@YANGJINJUE
Copy link
Author

You already have permission

@codecov-commenter
Copy link

codecov-commenter commented Jun 2, 2022

Codecov Report

Merging #14081 (5276968) into main (08f4c34) will decrease coverage by 0.33%.
The diff coverage is 71.42%.

@@            Coverage Diff             @@
##             main   #14081      +/-   ##
==========================================
- Coverage   75.29%   74.95%   -0.34%     
==========================================
  Files         452      453       +1     
  Lines       36791    36803      +12     
==========================================
- Hits        27701    27585     -116     
- Misses       7364     7461      +97     
- Partials     1726     1757      +31     
Flag Coverage Δ
all 74.95% <71.42%> (-0.34%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
server/config/config.go 79.76% <ø> (ø)
server/embed/serve.go 60.79% <50.00%> (-0.40%) ⬇️
server/etcdmain/grpc_proxy.go 58.89% <60.00%> (+0.01%) ⬆️
pkg/flags/int.go 76.47% <76.47%> (ø)
server/embed/config.go 73.64% <100.00%> (+0.06%) ⬆️
server/embed/etcd.go 74.95% <100.00%> (+0.04%) ⬆️
server/etcdmain/config.go 86.23% <100.00%> (+0.11%) ⬆️
server/etcdserver/api/v3rpc/grpc.go 91.42% <100.00%> (ø)
server/proxy/grpcproxy/register.go 69.76% <0.00%> (-9.31%) ⬇️
server/etcdserver/api/v3lock/lock.go 61.53% <0.00%> (-8.47%) ⬇️
... and 28 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 08f4c34...5276968. Read the comment docs.

@nic-chen
Copy link
Contributor

nic-chen commented Jun 5, 2022

hi @ptabor @ahrtr @serathius
Please help to review at your convenience. Thanks!

@ahrtr
Copy link
Member

ahrtr commented Jun 7, 2022

Please fix the test failures.

@nic-chen nic-chen force-pushed the main branch 7 times, most recently from 3ce69ff to 0424af8 Compare June 14, 2022 00:03
Signed-off-by: nic-chen <chenjunxu6@gmail.com>
@ahrtr
Copy link
Member

ahrtr commented Jun 22, 2022

any update? Please let me know if you need my help on this PR.

@ahrtr ahrtr mentioned this pull request Jun 22, 2022
16 tasks
@nic-chen
Copy link
Contributor

hi @ahrtr
Sorry, I haven't found a solution to the test failure, and I can't pass it stably;
I have been out on business for this month, and basically have no time to solve this problem for now;
Would be grateful if you could help take a look! Thank you very much!

@ahrtr
Copy link
Member

ahrtr commented Jun 23, 2022

hi @ahrtr Sorry, I haven't found a solution to the test failure, and I can't pass it stably; I have been out on business for this month, and basically have no time to solve this problem for now; Would be grateful if you could help take a look! Thank you very much!

Thanks for letting me know. I will get this one resolved next week or the week after the next.

ahrtr pushed a commit to ahrtr/etcd that referenced this pull request Jun 24, 2022
There is no update on the original PR (see below) for more then 2
weeks. So I continue to work on the PR. The first step is to rebase
the PR.

```
etcd-io#14081
```

Signed-off-by: nic-chen <chenjunxu6@gmail.com>
Signed-off-by: Benjamin Wang <wachao@vmware.com>
ahrtr pushed a commit to ahrtr/etcd that referenced this pull request Jun 24, 2022
There is no update on the original PR (see below) for more then 2
weeks. So Benjamin(@ahrtr) continue to work on the PR. The first
step is to rebase the PR, because there are lots of conflicts with
the main branch.

```
etcd-io#14081
```

Signed-off-by: nic-chen <chenjunxu6@gmail.com>
Signed-off-by: Benjamin Wang <wachao@vmware.com>
ahrtr pushed a commit to ahrtr/etcd that referenced this pull request Jun 24, 2022
There is no update on the original PR (see below) for more then 2
weeks. So Benjamin(@ahrtr) continues to work on the PR. The first
step is to rebase the PR, because there are lots of conflicts with
the main branch.

```
etcd-io#14081
```

Signed-off-by: nic-chen <chenjunxu6@gmail.com>
Signed-off-by: Benjamin Wang <wachao@vmware.com>
ahrtr pushed a commit to ahrtr/etcd that referenced this pull request Jun 27, 2022
There is no update on the original PR (see below) for more then 2
weeks. So Benjamin(@ahrtr) continues to work on the PR. The first
step is to rebase the PR, because there are lots of conflicts with
the main branch.

The change to go.mod and go.sum reverted, because they are not needed.
The e2e test cases are also reverted, because they are not correct.

```
etcd-io#14081
```

Signed-off-by: nic-chen <chenjunxu6@gmail.com>
Signed-off-by: Benjamin Wang <wachao@vmware.com>
ahrtr pushed a commit to ahrtr/etcd that referenced this pull request Jul 5, 2022
There is no update on the original PR (see below) for more then 2
weeks. So Benjamin(@ahrtr) continues to work on the PR. The first
step is to rebase the PR, because there are lots of conflicts with
the main branch.

The change to go.mod and go.sum reverted, because they are not needed.
The e2e test cases are also reverted, because they are not correct.

```
etcd-io#14081
```

Signed-off-by: nic-chen <chenjunxu6@gmail.com>
Signed-off-by: Benjamin Wang <wachao@vmware.com>
ahrtr pushed a commit to ahrtr/etcd that referenced this pull request Jul 6, 2022
There is no update on the original PR (see below) for more then 2
weeks. So Benjamin(@ahrtr) continues to work on the PR. The first
step is to rebase the PR, because there are lots of conflicts with
the main branch.

The change to go.mod and go.sum reverted, because they are not needed.
The e2e test cases are also reverted, because they are not correct.

```
etcd-io#14081
```

Signed-off-by: nic-chen <chenjunxu6@gmail.com>
Signed-off-by: Benjamin Wang <wachao@vmware.com>
@ahrtr
Copy link
Member

ahrtr commented Jul 13, 2022

#14169 was merged, so closing this one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants