You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, the member re-evaluation always goes to completion, even if it would become expired by some other modifications made to a community.
Examples of what would trigger the re-evaluation:
CreateCommunityTokenPermission
EditCommunityTokenPermission
DeleteCommunityTokenPermission
Periodic reevaluation every hour
Manual call to the API
Each of then could make the previous run superfluous.
Implementation
The solution is to stop any previous re-evaluation when a new one is called to be started.
This will first of all reduce the number of requests we do and also ensure that we do not save an old community description by accident (since the re-evaluation is done in a different thread, it takes a snapshot of the community description at the start of its procedure).
I don't know how to do it technically in Go, but the goal would be to stop the previous procedure completely and just run the new one.
Acceptance Criteria
When a permission is modified, the previous re-evaluation is stopped
A new re-evaluation is started with the up to date community description
Future Steps
One further improvement we could do is to make the community saving smarter for the re-evaluation so that it merges the community description it has with a possibly more recent community description, but that requires a very smart algorithm to merge the changes correctly.
The text was updated successfully, but these errors were encountered:
Currently, the member re-evaluation always goes to completion, even if it would become expired by some other modifications made to a community.
In theory it should not be possible as reevaluation locks the community. For instance, EditCommunityTokenPermission will wait until current reevaluation is done.
Problem
Currently, the member re-evaluation always goes to completion, even if it would become expired by some other modifications made to a community.
Examples of what would trigger the re-evaluation:
Each of then could make the previous run superfluous.
Implementation
The solution is to stop any previous re-evaluation when a new one is called to be started.
This will first of all reduce the number of requests we do and also ensure that we do not save an old community description by accident (since the re-evaluation is done in a different thread, it takes a snapshot of the community description at the start of its procedure).
I don't know how to do it technically in Go, but the goal would be to stop the previous procedure completely and just run the new one.
Acceptance Criteria
Future Steps
One further improvement we could do is to make the community saving smarter for the re-evaluation so that it merges the community description it has with a possibly more recent community description, but that requires a very smart algorithm to merge the changes correctly.
The text was updated successfully, but these errors were encountered: