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
> 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 > |