diff options
author | Lars Wirzenius <liw@liw.fi> | 2010-12-04 14:07:29 +0000 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2010-12-04 14:07:29 +0000 |
commit | 97aa4d99ae1919583330d8bbb8fc60548a88eb79 (patch) | |
tree | 8a30b06de484093cdb1afcdb72c133f4480ec978 | |
parent | 3d3b0df260b8f8f47a3e414db793d4afd41fdc25 (diff) | |
download | obnam-97aa4d99ae1919583330d8bbb8fc60548a88eb79.tar.gz |
Optimize by not doing two checksum lookups for each chunk id.
-rw-r--r-- | obnamlib/store.py | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/obnamlib/store.py b/obnamlib/store.py index 59e52606..2f2315ef 100644 --- a/obnamlib/store.py +++ b/obnamlib/store.py @@ -393,21 +393,17 @@ class Store(object): if chunk_id not in other_chunks] return chunk_ids - def remove_from_chunksums_for_this_client(chunk_ids): - for chunk_id in chunk_ids: - checksum = self.chunklist.get_checksum(chunk_id) - self.chunksums.remove(checksum, chunk_id, self.current_client_id) - def remove_unused_chunks(chunk_ids): for chunk_id in chunk_ids: checksum = self.chunklist.get_checksum(chunk_id) + self.chunksums.remove(checksum, chunk_id, + self.current_client_id) if not self.chunksums.chunk_is_used(checksum, chunk_id): self.remove_chunk(chunk_id) logging.debug('_really_remove_generation: %d' % gen_id) chunk_ids = self.client.list_chunks_in_generation(gen_id) chunk_ids = filter_away_chunks_used_by_other_gens(chunk_ids, gen_id) - remove_from_chunksums_for_this_client(chunk_ids) remove_unused_chunks(chunk_ids) self.client.remove_generation(gen_id) |