Karaf: Globally Prevent AutoRefresh Cascade on Feature Install
Description
Acceptance / Success Criteria
Attachments
- 16 Nov 2021, 09:31 AM
- 16 Nov 2021, 09:11 AM
- 16 Nov 2021, 09:11 AM
Lucidchart Diagrams
Activity
Stefan Wachter February 15, 2022 at 2:47 PM
The change seems to increase flakiness which outweighs the improvement.
Stefan Wachter January 27, 2022 at 4:01 PM
Karaf was updated in the meantime.
Stefan Wachter November 26, 2021 at 10:11 AM
It seems that then logic with the newly added autoFlush
property got mixed up in Karaf: KARAF-7282
Stefan Wachter November 16, 2021 at 9:38 AM
The attached files show the FeaturesServiceImpl
log output when the Alec plugin is installed, one time with bundle refreshs and the other time without.
When bundles are refreshed there is an additional "Stopping bundles" phase that takes 502 ms and the "Starting bundles" phase takes 2,707 ms.
When bundles are not refreshed the "Starting bundles" phase takes 2,540 ms.
The difference in time is 669 ms.
Looking at the complete log files I found a surprising pause time between feature installs. This is true for both, the install with and without refreshs. There is a significant pause in the output of the FeatureServicesImpl
between its "Done" message for a feature and the following "Changes to Perform" message for the next feature. In karaf-28.x.log
these times amount to approx. 10 + 4 + 4 seconds.
Karaf 4.3.1 contains the new feature KARAF-6953: Globally Prevent AutoRefresh Cascade on Feature Install.
ATM when additional features are installed some core features get refreshed (cf. NMS-12766). This causes a lot of additional bundle shutdown / startup activities during OpenNMS startup. Preventing AutoRefresh cascades on feature installs will speedup startup time.