From: Zac Medico Date: Tue, 10 Apr 2007 06:04:10 +0000 (-0000) Subject: Efficiently recycle partial valid vdb cache when possible. This reduces disk load... X-Git-Tag: v2.1.2.4~16 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=d67222fbc42ec341d3368056b1f6134cdffa2d01;p=portage.git Efficiently recycle partial valid vdb cache when possible. This reduces disk load when switching between versions of portage that cache different keys. (trunk r6359:6360) svn path=/main/branches/2.1.2/; revision=6361 --- diff --git a/pym/portage.py b/pym/portage.py index b61b4e22f..ebf7e3463 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -5303,13 +5303,16 @@ class vardbapi(dbapi): if pkg_data: cache_mtime, metadata = pkg_data cache_valid = cache_mtime == mydir_mtime - if cache_valid and set(metadata) != self._aux_cache_keys: + if cache_valid: + cache_incomplete = self._aux_cache_keys.difference(metadata) + if cache_incomplete: # Allow self._aux_cache_keys to change without a cache version - # bump. + # bump and efficiently recycle partial cache whenever possible. cache_valid = False - if cache_valid: + pull_me = cache_incomplete.union(wants) + else: + pull_me = set(wants).difference(self._aux_cache_keys) mydata.update(metadata) - pull_me = set(wants).difference(self._aux_cache_keys) else: pull_me = self._aux_cache_keys.union(wants) if pull_me: