aboutsummaryrefslogtreecommitdiff
path: root/internal/queue/queue.go
diff options
context:
space:
mode:
authorJonathan Amsterdam <jba@google.com>2021-09-11 06:25:10 -0400
committerJonathan Amsterdam <jba@google.com>2021-09-13 14:54:04 +0000
commite13eb84a023012b1f045b2768b17cc1becbd849e (patch)
treedf972013954056f8beef6701429f6096abaad56f /internal/queue/queue.go
parent148400792752015a69c2dfed94b20b19741b8559 (diff)
downloadgo-x-pkgsite-e13eb84a023012b1f045b2768b17cc1becbd849e.tar.xz
internal/worker: load shed based on DB lock contention
If many DB processes are waiting for locks, shed load. This is in addition to the existing load-shedding rule based on zip size. I conducted an informal experiment to see how this worked. I queued up 82 versions of github.com/aws/aws-sdk-go for processing. That module has a small zip, so no shedding occurs because of zip size, but it takes some time to process. Without lock-based load-shedding, there were 157 "max serialization" errors. Most of the time there were many active fetches in progress, almost all waiting for locks. With lock-based load-shedding, there were only 48 "max serialization" errors. Most fetches completed quickly. For golang/go#48010 Change-Id: I0cee02b9c4085a8bc187d803eaca2f30ddd378b5 Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/349312 Trust: Jonathan Amsterdam <jba@google.com> Run-TryBot: Jonathan Amsterdam <jba@google.com> Reviewed-by: Jamal Carvalho <jamal@golang.org> Reviewed-by: Julie Qiu <julie@golang.org>
Diffstat (limited to 'internal/queue/queue.go')
0 files changed, 0 insertions, 0 deletions