1
0
Fork 0
mirror of https://github.com/borgbackup/borg.git synced 2025-01-30 19:21:17 +00:00

RepositoryCache: don't cache large objects

avoids excessive cache repository disk usage
This commit is contained in:
Marian Beermann 2016-05-20 02:01:07 +02:00
parent d043794757
commit f7f95ae731
No known key found for this signature in database
GPG key ID: 9B8450B91D1362C1

View file

@ -414,6 +414,9 @@ class RepositoryCache(RepositoryNoCache):
Caches Repository GET operations using a local temporary Repository.
"""
# maximum object size that will be cached, 64 kiB.
THRESHOLD = 2**16
def __init__(self, repository):
super().__init__(repository)
tmppath = tempfile.mkdtemp(prefix='borg-tmp')
@ -434,7 +437,8 @@ def get_many(self, keys):
except Repository.ObjectNotFound:
for key_, data in repository_iterator:
if key_ == key:
self.caching_repo.put(key, data)
if len(data) <= self.THRESHOLD:
self.caching_repo.put(key, data)
yield data
break
# Consume any pending requests