commit | e13eb84a023012b1f045b2768b17cc1becbd849e | [log] [tgz] |
---|---|---|
author | Jonathan Amsterdam <jba@google.com> | Sat Sep 11 06:25:10 2021 -0400 |
committer | Jonathan Amsterdam <jba@google.com> | Mon Sep 13 14:54:04 2021 +0000 |
tree | df972013954056f8beef6701429f6096abaad56f | |
parent | 148400792752015a69c2dfed94b20b19741b8559 [diff] |
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>
Pkg.go.dev is a website for discovering and evaluating Go packages and modules.
You can check it out at https://pkg.go.dev.
If you want to report a bug or have a feature suggestion, please first check the known issues to see if your issue is already being discussed. If an issue does not already exist, feel free to file an issue.
For answers to frequently asked questions, see go.dev/about.
You can also chat with us on the #pkgsite Slack channel on the Gophers Slack.
We would love your help!
Our canonical Git repository is located at go.googlesource.com/pkgsite. There is a mirror of the repository at github.com/golang/pkgsite.
To contribute, please read our contributing guide.
Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.