perf: Parallelize bundled app install at startup - #24109
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #24109 +/- ##
=============================================
- Coverage 69.04% 56.95% -12.09%
+ Complexity 709 618 -91
=============================================
Files 3684 3686 +2
Lines 141646 142012 +366
Branches 16453 16517 +64
=============================================
- Hits 97797 80887 -16910
- Misses 36243 54285 +18042
+ Partials 7606 6840 -766
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 1058 files with indirect coverage changes Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
|



Summary
This change was prompted after AWS S3 (filestore provider) testing during JClouds replacement.
Installation on AWS S3 goes from
~30minsto~1min 15seconds.--- title: New Bundled App Installation Process --- flowchart TD M[main thread<br/>startup] --> A0[app-install-0<br/>Maintenance] M --> A1[app-install-1<br/>Metadata Mgmt] M --> A2[app-install-...<br/>up to 16 apps in parallel,<br/>largest first] A0 --> P A1 --> P A2 --> P P[shared upload pool<br/>32 concurrent file uploads<br/>bounded across all apps] --> S[(S3 / file store)]Performance
Iterations
Several iterations resulted in reduced upload times as follows:
App startup
The app will now use more CPU on startup and slightly more RAM but takes far less time to startup on first install when using file storage over the network.
Before
After
App file count
Total: 8,252 files across 30 bundled apps.
Testing
Mac M2 Pro 16GB
Network: 80 Mbps download, 25 Mbps upload
Tested filesystem, MinIO, transient & AWS S3