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.
Overview
This PR fixes #7.
Problem
It appears that there was a clash/confusion between the uvicorn event loop and the dask distributed event loop. When using
async
in a FastAPI app, this method will be sent to the uvicorn event loop. So the request for individual chunks were processed concurrently. Each dask compute becomes blocking and is only processed by one worker which I think is part of the uvicron event loop.Solution
To allow dask to actually compute in parallel the async and await for
get_key
should be remove, which frees up this method to use the compute within dask distributed event loop rather than the uvicorn event loop.