8a40a82b96
Currently, a request to delete a repository is blocked until the repository is completely removed from the filesystem. When CephFS is under load and a user deletes a large-ish repo, this can cause signicant request latency, making the user abort the request or even timing out completely. The context gets canceled, causing the transaction to roll back, even though the data is eventually wiped completely from storage, leaving users with broken repositories on their profile. Instead, simply do the deletion from storage asynchronously, so that the user gets instant feedback. Even though the deletion itself blocks for potentially a long time, experience has shown that it finishes even in case of cancellation. As such, I expect that the deletion will go through even if the go-routine were to be aborted (e.g. by a restart of the API). |
||
---|---|---|
.. | ||
account | ||
graph | ||
loaders | ||
repos | ||
webhooks | ||
gqlgen.yml | ||
server.go |