cockroachdb / cockroachdb/cockroach
backupccl: support SO_PRIORITY and/or IP_TOS
- Dominant language
- Go
- Stars
- 32.5k
- Forks
- 4.1k
- PR merge metrics
- PR metrics pending
Description
**Is your feature request related to a problem? Please describe.**
Customers may wish to finely control the impact (priority) that backup jobs have on production clusters. See this [internal conversation](https://cockroachlabs.slack.com/archives/C2C5FKPPB/p1689368296045329).
**Describe the solution you'd like**
The ability to specify SO_PRIORITY and/or IP_TOS, which are controls for [sockets](https://man7.org/linux/man-pages/man7/socket.7.html) and [IP networking](https://man7.org/linux/man-pages/man7/ip.7.html) respectively. The former happens in the kernel and is controlled by Linux. The latter, IIUC, is a flag attached to packets which the network can then choose to interpret.
Implementation in Go might look something like [this](https://stackoverflow.com/questions/40544096/how-to-set-socket-option-ip-tos-for-http-client-in-go-language). The options would be exposed to end users via some syntax, or as part of cloud URLs.
**Describe alternatives you've considered**
We currently offer [application-level rate-limiting](https://github.com/cockroachdb/cockroach/pull/80200) which serves a similar user story, and was used successfully to address a recent user issue.
The proposed options above options are finer-grained, and outside of the CRDB application.
**Additional context**
These options would require expert users who understand their implications.
Troubleshooting (supporting) overall backup performance would be complicated by additional variables.
These two settings may have surprising interactions with one another: https://gist.github.com/wenjianhn/0f7a9a1e36018a42515c
The above options are just a couple of many traffic-shaping options, see the linked `man` pages above.
Jira issue: CRDB-30084
Contributor guide
Assessment
This issue has not been assessed yet.