Actions
Story #9148
closedTask #9256: [EPIC] Use shared task resources in plugin code
As a plugin writer i want to be able to share task resources for reading
Start date:
Due date:
% Done:
100%
Estimated time:
Platform Release:
Groomed:
No
Sprint Candidate:
No
Tags:
Performance
Sprint:
Sprint 103
Quarter:
Description
The tasking system should be able to allow resources to be shared between tasks if only read access is requested.
The following design should allow to implement this without a migration and in a backwards compatible way:
- reuse the reserved_resources_record ListField shared resources will be prefixed by "shared:" exclusive resources will be used as is
- dispatch will add another parameter "shared_resources" in a backwards compatible way
- workers will augment the list of in_use_resources with a flag if any previous task requested a resource exclusive
Note: shared access that was scheduled after exclusive access still needs to wait. That is, one task requesting exclusive access to a resource will introduce a barrier for all other tasks requesting the same resource in any way.
https://hackmd.io/Y0l9nBm9SFmPiIBXBz8lwQ?view#Idea-Example-with-shared-and-exclusive-locks
Related issues
Actions
Add shared_resources to task dispatch
This allows tasks that use overlapping resources read only to run concurrently. A setting ALLOW_SHARED_TASK_RESOURCES has been added to switch it on.
fixes #9148