microsoft / microsoft/durabletask-dotnet
Listing instances with DurableTaskClient.GetAllInstancesAsync() is more than twice as slower than with IDurableOrchestrationClient.ListInstancesAsync()
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 193
- Forks
- 60
- Avg merge
- 3d 12h
- Merged PRs (30d)
- 4
Description
DfMon InProc can fetch and show ~23K instances in ~90 s:
In Isolated mode the same process takes ~200 s:
Same default Storage Durability provider used in both cases, same data is read. DfMon was run locally, on my devbox.
Code that fetches instances in Isolated mode is here.
Would appreciate any pointers on how this can be improved.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the isolated-mode fetch code in durablefunctionsmonitor.dotnetisolated.core/Functions/Orchestrations.cs at the linked line, then compare GetAllInstancesAsync() with the faster ListInstancesAsync() path. Reproduce the comparison using the same storage provider and roughly 23K instances. Done means identifying the cause of the performance gap and improving the isolated-mode retrieval time.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- backend, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100