1
0
Fork 0
mirror of https://github.com/restic/restic.git synced 2024-12-23 08:16:36 +00:00
restic/internal/repository
Michael Eischer 120ccc8754 repository: Rework blob saving to use an async pack uploader
Previously, SaveAndEncrypt would assemble blobs into packs and either
return immediately if the pack is not yet full or upload the pack file
otherwise. The upload will block the current goroutine until it
finishes.

Now, the upload is done using separate goroutines. This requires changes
to the error handling. As uploads are no longer tied to a SaveAndEncrypt
call, failed uploads are signaled using an errgroup.

To count the uploaded amount of data, the pack header overhead is no
longer returned by `packer.Finalize` but rather by
`packer.HeaderOverhead`. This helper method is necessary to continue
returning the pack header overhead directly to the responsible call to
`repository.SaveBlob`. Without the method this would not be possible,
as packs are finalized asynchronously.
2022-07-02 22:42:34 +02:00
..
testdata internal/repository: Fix LoadBlob + fuzz test 2022-06-06 17:02:28 +02:00
doc.go
fuzz_test.go repository: Rework blob saving to use an async pack uploader 2022-07-02 22:42:34 +02:00
index.go rebuild-index: correctly rebuild index for mixed packs 2022-07-02 19:24:02 +02:00
index_parallel.go repository: Remove RunWorkers, report ctx.Err() 2022-05-10 22:26:00 +02:00
index_parallel_test.go
index_test.go rebuild-index: correctly rebuild index for mixed packs 2022-07-02 19:24:02 +02:00
indexmap.go repository: Re-tune indexmap allocation strategy 2022-05-11 21:22:14 +02:00
indexmap_test.go
key.go Merge pull request #3798 from greatroar/errors 2022-06-17 19:01:40 +02:00
master_index.go rebuild-index: correctly rebuild index for mixed packs 2022-07-02 19:24:02 +02:00
master_index_test.go repository: hide MasterIndex.FinalizeFullIndexes / FinalizeNotFinalIndexes 2022-07-02 18:39:59 +02:00
packer_manager.go repository: Rework blob saving to use an async pack uploader 2022-07-02 22:42:34 +02:00
packer_manager_test.go repository: Rework blob saving to use an async pack uploader 2022-07-02 22:42:34 +02:00
packer_uploader.go repository: Rework blob saving to use an async pack uploader 2022-07-02 22:42:34 +02:00
repack.go repository: Rework blob saving to use an async pack uploader 2022-07-02 22:42:34 +02:00
repack_test.go repository: Rework blob saving to use an async pack uploader 2022-07-02 22:42:34 +02:00
repository.go repository: Rework blob saving to use an async pack uploader 2022-07-02 22:42:34 +02:00
repository_internal_test.go
repository_test.go repository: Rework blob saving to use an async pack uploader 2022-07-02 22:42:34 +02:00
testing.go repository: hide MasterIndex.FinalizeFullIndexes / FinalizeNotFinalIndexes 2022-07-02 18:39:59 +02:00