-
Notifications
You must be signed in to change notification settings - Fork 217
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
Make GRPC transport decorators configurable & disable atomic decorator by default #1388
Make GRPC transport decorators configurable & disable atomic decorator by default #1388
Conversation
Log snippets with atomic connects:
Verified absence of reconnects which disabling atomic connects. |
107fb84
to
3cc2884
Compare
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.
Thanks Senthil, LGTM
Just wanted to confirm (and for historical context, in case anyone comes across this thread), that a user should still be able to use atomic connections via the plan.yaml?
network:
settings:
enable_atomic_connections: True
good call, fixed @kta-intel . There is certainly gap on lacking capability to set on desired collabs. But this is a good start. Defaulted to false under network settings for now. |
Log connections on info level for visibility Signed-off-by: Balakrishnan, Senthil <[email protected]>
Signed-off-by: Balakrishnan, Senthil <[email protected]>
… set this independent on individual collabs Signed-off-by: Balakrishnan, Senthil <[email protected]>
30a948c
to
6b80875
Compare
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.
good call, fixed @kta-intel . There is certainly gap on lacking capability to set on desired collabs. But this is a good start. Defaulted to false under network settings for now.
Thanks for checking. Considering that the original atomic connection didn't have that functionality either, this is already a good addition
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 change, good to go.
@kagrawa2 is going to add some updates for collab reconnection resiliency under reconnect decorator |
better to do add rate limiting log support on next PR. That would be handy for several situations. |
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.
apart from updates to documents LGTM
Signed-off-by: Agrawal, Kush <[email protected]>
Problem statement
The atomic connection decorators always reestablish connections on transport IO. This is not a desired IO characteristic especially due to penalty of reconnecting.
This PR proposes configuration to make these decorators option. By default atomic connections are disabled and can be provisioned when required.
Background information on atomic connections (from @psfoley)
The background of reestablishing a connection for every request was due to early issues. There were problems resulting from long established connections when there was any kind of network instability. This started happening more with certain releases of gRPC around that time (1.32?).
The atomic connection decorator, and establishing the connection only when communication was needed, was the solution for that.
As long as the retry logic is left intact, I don't expect there would be problems making the change back to long standing connections (as long as this is thoroughly tested)
Summary of changes
Testing done