2
0
Эх сурвалжийг харах

Merge pull request #1066 from enkore/issue/1063

RepositoryCache: don't cache large objects
TW 9 жил өмнө
parent
commit
f974770db5
1 өөрчлөгдсөн 5 нэмэгдсэн , 1 устгасан
  1. 5 1
      borg/remote.py

+ 5 - 1
borg/remote.py

@@ -414,6 +414,9 @@ class RepositoryCache(RepositoryNoCache):
 
 
     Caches Repository GET operations using a local temporary Repository.
     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):
     def __init__(self, repository):
         super().__init__(repository)
         super().__init__(repository)
         tmppath = tempfile.mkdtemp(prefix='borg-tmp')
         tmppath = tempfile.mkdtemp(prefix='borg-tmp')
@@ -434,7 +437,8 @@ class RepositoryCache(RepositoryNoCache):
             except Repository.ObjectNotFound:
             except Repository.ObjectNotFound:
                 for key_, data in repository_iterator:
                 for key_, data in repository_iterator:
                     if key_ == key:
                     if key_ == key:
-                        self.caching_repo.put(key, data)
+                        if len(data) <= self.THRESHOLD:
+                            self.caching_repo.put(key, data)
                         yield data
                         yield data
                         break
                         break
         # Consume any pending requests
         # Consume any pending requests