On Saturday 04 August 2007 01:34:00 Michael Andres wrote:
On Sat, Aug 04, Michael Andres wrote:
- Susetags DiskUsage parser is done, and feeds the data to the CacheStore via CacheStore::consumeDiskUsage.
Parsing ALL metadata file for 10.3 takes about 4.32 sec.
But when writing them to the database, CacheStore::consumeDiskUsage is too slow.
The whole packages files takes about 40 sec., but I aborted the packages.DU after 10 minutes.
Duncan, please check consumeDiskUsage. Some du-enties take more than a minute.
I disabled the DU parsing in zypp/parser/susetags/RepoParser.cc, line 429.
I just implemented some "smartness" for the parser. First, it assumes YaST would set the system partitions, if they are empty, it tries to detect them: _mounts = getZYpp()->getPartitions(); if (_mounts.empty() ) _mounts = DiskUsageCounter::detectMountPoints(); Then it parses the disk usage file and it only takes in counts entries that are not below (or are the same) than the user partitions. Appart of that, a quick already-seen in-memory cache for directory entries while inserting them, I can get stable cache to build in 1 minute and 20 seconds which is only a litte more than ussual. Now the question is. During installation, YaST sets the partitions to ZYpp after repos are cached. - would DiskUsageCounter::detectMountPoints(); work before that? - can we set them before? or are repositories set before partitioning is done? - any workaround here? I am committing this code, and see how can we find a workaround for the second part. I have to implement the retrieval of the disk usage too. Duncan -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org