restic/internal
Michael Eischer 8e1e3844aa backend: factor out connection limiting and parameter validation
The SemaphoreBackend now uniformly enforces the limit of concurrent
backend operations. In addition, it unifies the parameter validation.

The List() methods no longer uses a semaphore. Restic already never runs
multiple list operations in parallel.

By managing the semaphore in a wrapper backend, the sections that hold a
semaphore token grow slightly. However, the main bottleneck is IO, so
this shouldn't make much of a difference.

The key insight that enables the SemaphoreBackend is that all of the
complex semaphore handling in `openReader()` still happens within the
original call to `Load()`. Thus, getting and releasing the semaphore
tokens can be refactored to happen directly in `Load()`. This eliminates
the need for wrapping the reader in `openReader()` to release the token.
2023-04-14 22:32:15 +02:00
..
archiver Merge pull request #4089 from greatroar/errors 2022-12-24 10:41:56 +01:00
backend backend: factor out connection limiting and parameter validation 2023-04-14 22:32:15 +02:00
bloblru bloblru: Upgrade to hashicorp/golang-lru/v2 2022-11-27 17:18:13 +01:00
cache cache: Replace readCloser+LimitedReader by backend.LimitedReadCloser 2023-01-03 19:03:36 +01:00
checker Merge pull request #4089 from greatroar/errors 2022-12-24 10:41:56 +01:00
crypto crypto: move crypto buffer helpers 2022-07-17 13:42:23 +02:00
debug Replace most usages of ioutil with the underlying function 2022-12-02 19:36:43 +01:00
dump convert uid/gid -1 to 0 only in 32-bit tar dump 2022-12-30 18:12:12 +01:00
errors errors: Drop WithMessage 2022-10-14 14:06:47 +02:00
filter remove no longer necessary conditional compiles 2022-11-27 13:18:44 +01:00
fs all: Replace some errors.Wrap calls by errors.WithStack 2022-12-17 09:41:07 +01:00
fuse Merge pull request #4255 from greatroar/fuse-hash 2023-04-07 12:56:57 +02:00
hashing Replace most usages of ioutil with the underlying function 2022-12-02 19:36:43 +01:00
index repository: Reuse buffers in Repository.LoadUnpacked 2023-01-30 22:01:01 +01:00
migrations repository: Remove empty cleanup functions in tests 2022-12-11 11:06:25 +01:00
options backend, options: Prefer strings.Cut to SplitN 2022-12-02 19:19:14 +01:00
pack repository: optimize MasterIndex.Each 2022-09-24 12:21:59 +02:00
repository repository: Reuse buffers in Repository.LoadUnpacked 2023-01-30 22:01:01 +01:00
restic cmd, restic: Refactor and fix snapshot filtering 2023-02-19 15:04:25 +01:00
restorer restore: Add progress bar 2023-04-07 12:08:23 +02:00
selfupdate self-update: add basic test for extractToFile 2023-01-22 15:39:42 +01:00
test test: Use testing.T.Cleanup to remove tempdirs 2022-12-09 14:23:55 +01:00
textfile Replace most usages of ioutil with the underlying function 2022-12-02 19:36:43 +01:00
ui restore: Add progress bar 2023-04-07 12:08:23 +02:00
walker rewrite: Fail if a tree contains an unknown field 2022-11-12 19:55:22 +01:00