Skip to content

Commit

Permalink
Merging to release-4-lts: TT-8942 Change default RPC pool size (#5030)
Browse files Browse the repository at this point in the history
TT-8942 Change default RPC pool size (#5030)

<!-- Provide a general summary of your changes in the Title above -->

## Description
Default RPC pool size is set to 20 and because of the relatively heavy
CPU and Memory footprint of the RPC connections in the MDCB model this
can cause issues where either the gateways or MDCB fail on load cause by
scaling events or component failure at MDCB side.

<!-- Describe your changes in detail -->

## Related Issue

<!-- This project only accepts pull requests related to open issues. -->
<!-- If suggesting a new feature or change, please discuss it in an
issue first. -->
<!-- If fixing a bug, there should be an issue describing it with steps
to reproduce. -->
<!-- OSS: Please link to the issue here. Tyk: please create/link the
JIRA ticket. -->
https://tyktech.atlassian.net/browse/TT-8942
## Motivation and Context

<!-- Why is this change required? What problem does it solve? -->
https://tyktech.atlassian.net/browse/TT-8942
## How This Has Been Tested

<!-- Please describe in detail how you tested your changes -->
<!-- Include details of your testing environment, and the tests -->
<!-- you ran to see how your change affects other areas of the code,
etc. -->
<!-- This information is helpful for reviewers and QA. -->

## Screenshots (if appropriate)

## Types of changes

<!-- What types of changes does your code introduce? Put an `x` in all
the boxes that apply: -->

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] Refactoring or add test (improvements in base code or adds test
coverage to functionality)

## Checklist

<!-- Go over all the following points, and put an `x` in all the boxes
that apply -->
<!-- If there are no documentation updates required, mark the item as
checked. -->
<!-- Raise up any additional concerns not covered by the checklist. -->

- [ ] I ensured that the documentation is up to date
- [ ] I explained why this PR updates go.mod in detail with reasoning
why it's required
- [ ] I would like a code coverage CI quality gate exception and have
explained why
  • Loading branch information
buger authored Nov 7, 2023
1 parent 64965de commit 00d326e
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 2 deletions.
2 changes: 1 addition & 1 deletion config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,7 @@ type SlaveOptionsConfig struct {
// The maximum time in seconds that a RPC ping can last.
PingTimeout int `json:"ping_timeout"`

// The number of RPC connections in the pool. Basically it creates a set of connections that you can re-use as needed.
// The number of RPC connections in the pool. Basically it creates a set of connections that you can re-use as needed. Defaults to 5.
RPCPoolSize int `json:"rpc_pool_size"`

// You can use this to set a period for which the Gateway will check if there are changes in keys that must be synchronized. If this value is not set then it will default to 10 seconds.
Expand Down
2 changes: 1 addition & 1 deletion rpc/rpc_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,7 @@ func Connect(connConfig Config, suppressRegister bool, dispatcherFuncs map[strin

clientSingleton.Conns = values.Config().RPCPoolSize
if clientSingleton.Conns == 0 {
clientSingleton.Conns = 20
clientSingleton.Conns = 5
}

clientSingleton.Dial = func(addr string) (conn net.Conn, err error) {
Expand Down

0 comments on commit 00d326e

Please sign in to comment.