aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bas (JIRA)" <>
Subject [jira] [Commented] (ARIES-1357) BasicSubsystem can be used by the subsystem install process a factor 6 times faster
Date Tue, 25 Aug 2015 10:07:45 GMT


Bas commented on ARIES-1357:

The resolve process is using the methods that we now improved performance wise. For each requirement
that is processed during install of a subsystem it will try to find providers. When the systemrepository
is searching for providers it will iterate through all the subsystems already installed on
the subsystem and call the getCapabilities method on those subsystems. The getCapabilities
method uses the manifest and parses it each time it is called. This is where a lot of time
is then spent. 

So this triggered us to look at this class to see if we could improve it performance wise.
In the process of improving the getCapabilities method we also checked other methods in the
same class for usage in the resolve process(high usage, where a lot of subsequent iterating
across the same data is done) and we did the same pre-loading improvement for these methods.

This patch had the best improvement because the getCapabilities method is always used in the
resolve process (among others). And apparently the creation of a capability takes some time.
We also install 2 subsystems that are nested so this increases the install time twice as much

I did find a bug in my patch so I will upload a new patch with the bug fix. The bug is related
to starting already installed subsystems. It uses a different constructor (directory based)
which didn't trigger the pre-loading.

I hope this clarifies the flow which causes this patch to be an improvement, if not please
let me know I can explain more elaborate.

> BasicSubsystem can be used by the subsystem install process a factor 6 times faster
> -----------------------------------------------------------------------------------
>                 Key: ARIES-1357
>                 URL:
>             Project: Aries
>          Issue Type: Improvement
>          Components: Subsystem
>    Affects Versions: subsystem-core-1.2.0, subsystem-2.0.1
>         Environment: linux windows java
>            Reporter: Bas
>            Assignee: John Ross
>              Labels: patch, performance
>             Fix For: subsystem-core-1.2.0, subsystem-2.0.1
>         Attachments: subsystem-basicsubsystem-patch.txt
> The problem was poor performance while installing a subsystem on a container with 200+
subsystems installed.
> While doing performance analyses on the subsystem install process we noticed the BasicSubsystem
is working a lot with its manifest instead of pre-calculating data that is used a lot.
> While using the pre-patch version of BasicSubsystem a subsystem install (while having
200+ running subsystems) could take more than a minute. While using the patched version where
we pre-calculate highly used data when a new subsystem manifest or deployment manifest is
set we could bring it down to 10 seconds. We only pre-calculated the data that was highly

This message was sent by Atlassian JIRA

View raw message