git.sr.ht/api/graph
Conrad Hoffmann 8a40a82b96 api: delete repositories asynchronously
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).
2024-04-11 16:42:40 +02:00
..
model api: fix timezone issue in repo pagination 2023-08-16 11:19:11 +02:00
complexity.go api: rename accessControlList() to acls() 2022-11-07 12:18:53 +01:00
generate.go api: import github.com/99designs/gqlgen 2022-01-11 09:37:45 +01:00
resolver.go api: Handle clone errors 2022-02-17 14:45:57 +01:00
schema.graphqls api/graph: fix invalid @access directive in WebhookEvent enum 2023-10-24 13:27:01 +02:00
schema.resolvers.go api: delete repositories asynchronously 2024-04-11 16:42:40 +02:00