This repository has been archived by the owner on Sep 6, 2022. It is now read-only.
connmgr: introduce abstractions and functions for decaying tags. #104
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implementation in libp2p/go-libp2p-connmgr#61
This PR introduces a decaying trait for the connection manager.
connmgr.SupportsDecay()
function can be used to check if a given implementation supports decay.A decaying connection manager can register decaying tags. When doing so, the user provides four things:
The solution is decidedly modular and relies on pluggable components to put the power in the hands of users, and to prevent us from overfitting for our particular use cases. Yet, to provide a smooth DX, the upcoming go-libp2p-connmgr PR contributes a pile of useful decay and bump functions.
Usage
Some example use cases.
Expiring inactive tags after 10 minutes
Decrease the value of a tag every minute by half