Was talking with a guy yesterday who mentioned he had 10 line patch that sped up current portage a lot with regard to updating metadata. I asked him to send it to me and here it is:
--- - 2005-10-29 18:49:15.156173000 +0900 +++ /usr/lib/portage/pym/portage_db_cpickle.py 2005-10-08 11:13:37.000000000 +0900 @@ -61,6 +61,9 @@ return False def sync(self): + return + + def realsync(self): if self.modified: try: if os.path.exists(self.filename): @@ -74,6 +77,6 @@ pass def close(self): - self.sync() + self.realsync() self.db = None; Obvious why it speeds it up. ;) I remembered seeing sync_rate when glancing through the new cache stuff and then had a look into mirror_cache(). Playing with trg_cache.sync(x), I got the following numbers. x total #1 total #2 total #3 median sys 1 13.651 13.451 13.727 2.712 10 13.413 13.412 13.645 2.538 100 13.605 13.498 13.405 2.700 1000 13.673 13.726 13.748 2.839 10000 14.541 14.054 13.447 2.743 100000 13.973 13.951 14.512 2.881 1000000 13.583 13.622 13.935 2.669 Command run was: rm -rf /var/cache/edb/dep/*; time emerge -q metadata So what does changing the sync_rate actually do? Ease seeks? Should I re-run these tests with a reboot in between? (And what happened to the 4 seconds I was getting with earlier patches? Bug fixes turn quantity into quality? :) -- Jason Stubbs -- [email protected] mailing list
