From b28d6ee657b5affa16d92640eca7096b49d45258 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Thu, 8 Sep 2022 19:56:37 +0200 Subject: [PATCH] recompress: only read metadata to check for ctype/clevel --- src/borg/archive.py | 2 +- src/borg/remote.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/borg/archive.py b/src/borg/archive.py index ef41df413..f30597c1c 100644 --- a/src/borg/archive.py +++ b/src/borg/archive.py @@ -2269,7 +2269,7 @@ class ArchiveRecreater: overwrite = self.recompress if self.recompress and not self.always_recompress and chunk_id in self.cache.chunks: # Check if this chunk is already compressed the way we want it - old_meta = self.repo_objs.parse_meta(chunk_id, self.repository.get(chunk_id)) + old_meta = self.repo_objs.parse_meta(chunk_id, self.repository.get(chunk_id, read_data=False)) compr_hdr = bytes((old_meta["ctype"], old_meta["clevel"])) compressor_cls, level = Compressor.detect(compr_hdr) if ( diff --git a/src/borg/remote.py b/src/borg/remote.py index de0002ba2..dd7861122 100644 --- a/src/borg/remote.py +++ b/src/borg/remote.py @@ -1258,7 +1258,6 @@ class RepositoryCache(RepositoryNoCache): shutil.rmtree(self.basedir) def get_many(self, keys, read_data=True, cache=True): - # TODO: this currently always requests the full chunk from self.repository (read_data=True). # It could use different cache keys depending on read_data and cache full vs. meta-only chunks. unknown_keys = [key for key in keys if self.prefixed_key(key, complete=read_data) not in self.cache] repository_iterator = zip(unknown_keys, self.repository.get_many(unknown_keys, read_data=read_data))