Elevation of response times, particularly on GWTRPC commands, has occurred as a result of the new permissions model and in particular because of the DatabaseProvider implementation.
To improve performance across the board, the following actions have been taken:
- Request caching of DatabaseMeta and DatabaseGrants.
- Improvement of DatabaseCatalog routine so that UserDatabaseMeta are only requested when needed.
- Batch requests for DatabaseMeta, DatabaseGrant and UserDatabaseMeta - including requests for FormClasses and versions.
- Classes which require fetches of a number of UserDatabaseMeta in a request should now batch their requests (e.g. BatchingFormTreeBuilder, FormSupervisorAdapter).
- The FormSupervisorAdapter now includes a request cache for FormPermissions to avoid duplicate fetches.
The effect of these performance enhancements will be monitored, and further choke points will be addressed if required.