Mailinglist Archive: zypp-devel (92 mails)

< Previous Next >
[zypp-devel] DiskUsage calculation status (update)
  • From: Duncan Mac-Vicar Prett <dmacvicar@xxxxxxx>
  • Date: Tue, 7 Aug 2007 14:47:47 +0200
  • Message-id: <200708071447.47709.dmacvicar@xxxxxxx>
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@xxxxxxxxxxxx
For additional commands, e-mail: zypp-devel+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups