Import Template Performance Issue after upgrade to 4.7.0 from 4.3.1
-
Observed a significant performance degradation with the template import API after upgrading from version 4.3.1 to 4.7.0.
In 4.3.1, It used to take 15s to 20s to import a template.
In 4.7.0, It took around 1m.Setup:
Configured azure file share for persistence storage via volume mounts in nodejs app and deployed to azure container app.Error:
fs.lock file permissions: -rwxrwxrwx2024-11-14T16:02:31.722Z - debug: import found 5 objects
Failed to refresh the file system lock [Error: EPERM: operation not permitted, utime '/app/data/fs.lock'] {
errno: -1,
code: 'EPERM',
syscall: 'utime',
path: '/app/data/fs.lock'
}Failed to refresh the file system lock [Error: EPERM: operation not permitted, utime '/app/data/fs.lock'] {
errno: -1,
code: 'EPERM',
syscall: 'utime',
path: '/app/data/fs.lock'
}Failed to refresh the file system lock [Error: EPERM: operation not permitted, utime '/app/data/fs.lock'] {
errno: -1,
code: 'EPERM',
syscall: 'utime',
path: '/app/data/fs.lock'
}
2024-11-14T16:03:23.975Z - debug: import finishedDocker Setup:
-
I've tried the azure web app with all defaults and azure file share mount with defaults.
The import of Stock report showcase merge/full takes the same amount of time (10s) for both 4.7.0 and 4.3.1 jsreprot images.Would you email me the data you have stored and the export that you are importing?
-
I have tried with the sample Invoice template.
After the through analysis, i figured out the time taking is based on the number of existing templates in the playground.
When i removed the existing templates from the playground and uploaded a new template the time reduced to around 20s.Initially, the jsreport team had suggested us to use Azure File Share for persistent storage because Azure Blob Storage does not support managed identity for persistent storage. If you could provide managed identity support for Azure Blob Storage in an upcoming release, we would switch to Blob Storage, thereby permanently avoiding this performance issue.
-
The support for managed identity will be part of the next release.
-
Does this mean that you are replacing the dependency of the deprecated module azure-storage with the successor Azure Storage Blob client library for JavaScript?
What is the expected release date and is there a beta for testing available?
We are also depending heavily on this extension, so this can probably solve are current issues.
-
Does this mean that you are replacing the dependency of the deprecated module azure-storage with the successor Azure Storage Blob client library for JavaScript?
Yes
What is the expected release date and is there a beta for testing available?
You can use dep
@jsreport/jsreport-fs-store-azure-storage-persistence@4.1.0