distribution/registry/storage/driver
Milos Gajdos b888b14b39
Optimise push in S3 driver
This commit cleans up and attempts to optimise the performance of image push in S3 driver.
There are 2 main changes:
* we refactor the S3 driver Writer where instead of using separate bytes
  slices for ready and pending parts which get constantly appended data
  into them causing unnecessary allocations we use optimised bytes
  buffers; we make sure these are used efficiently when written to.
* we introduce a memory pool that is used for allocating the byte
  buffers introduced above

These changes should alleviate high memory pressure on the push path to S3.

Co-authored-by: Cory Snider <corhere@gmail.com>
Signed-off-by: Milos Gajdos <milosthegajdos@gmail.com>
2023-09-27 21:33:22 +01:00
..
azure Enable prealloc linter 2023-09-03 22:41:51 +01:00
base Pass the last paging flag to storage drivers 2023-08-29 11:27:42 +01:00
factory go.mod: change imports to github.com/distribution/distribution/v3 2021-02-08 18:30:46 +01:00
filesystem Pass the last paging flag to storage drivers 2023-08-29 11:27:42 +01:00
gcs Pass the last paging flag to storage drivers 2023-08-29 11:27:42 +01:00
inmemory Avoid unnecessary type assertion in mfs driver 2023-09-03 23:23:25 +01:00
middleware Enable bodyclose linter 2023-08-19 09:45:44 +01:00
s3-aws Optimise push in S3 driver 2023-09-27 21:33:22 +01:00
testsuites Handle rand deprecations in go 1.20 2023-08-28 09:33:12 +01:00
fileinfo.go format code with gofumpt 2022-11-03 22:48:20 +01:00
storagedriver.go Pass the last paging flag to storage drivers 2023-08-29 11:27:42 +01:00
walk.go Pass the last paging flag to storage drivers 2023-08-29 11:27:42 +01:00
walk_test.go Pass the last paging flag to storage drivers 2023-08-29 11:27:42 +01:00