ArchiveChecker: use MAX_LOAD_FACTOR constant

This commit is contained in:
Marian Beermann 2016-09-09 16:11:06 +02:00
parent 197552526f
commit be3616b6b3
2 changed files with 5 additions and 4 deletions

View File

@ -853,8 +853,9 @@ class ArchiveChecker:
"""Fetch a list of all object keys from repository
"""
# Explicitly set the initial hash table capacity to avoid performance issues
# due to hash table "resonance"
capacity = int(len(self.repository) * 1.35 + 1) # > len * 1.0 / HASH_MAX_LOAD (see _hashindex.c)
# due to hash table "resonance".
# Since reconstruction of archive items can add some new chunks, add 10 % headroom
capacity = int(len(self.repository) / ChunkIndex.MAX_LOAD_FACTOR * 1.1)
self.chunks = ChunkIndex(capacity)
marker = None
while True:

View File

@ -279,5 +279,5 @@ def test_nsindex_segment_limit():
def test_max_load_factor():
assert NSIndex.MAX_LOAD_FACTOR < 1
assert ChunkIndex.MAX_LOAD_FACTOR < 1
assert NSIndex.MAX_LOAD_FACTOR < 1.0
assert ChunkIndex.MAX_LOAD_FACTOR < 1.0