elasticsearch/modules/repository-url
Armin Braun ffeafae054
Save Memory on Large Repository Metadata Blob Writes (#74693)
This PR adds a new API for doing streaming serialization writes to a repository to enable repository metadata of arbitrary size and at bounded memory during writing.
The existing write-APIs require knowledge of the eventual blob size beforehand. This forced us to materialize the serialized blob in memory before writing, costing a lot of memory in case of e.g. very large RepositoryData (and limiting us to 2G max blob size).
With this PR the requirement to fully materialize the serialized metadata goes away and the memory overhead becomes completely bounded by the outbound buffer size of the repository implementation.

As we move to larger repositories this makes master node stability a lot more predictable since writing out RepositoryData does not take as much memory any longer (same applies to shard level metadata), enables aggregating multiple metadata blobs into a single larger blobs without massive overhead and removes the 2G size limit on RepositoryData.

backport of #74313 and #74620
2021-06-29 16:34:30 +02:00
..
licenses Add support for range reads and retries to URL repositories (#70133) 2021-03-09 12:51:27 +01:00
src Save Memory on Large Repository Metadata Blob Writes (#74693) 2021-06-29 16:34:30 +02:00
build.gradle Consolidate REST API specifications and publish under Apache 2.0 license (#70940) 2021-03-26 16:20:25 -07:00