Outcomes of MidScale Milestone M6
Milestone goal: Repository optimization, performance evaluation
Status: DONE (9 Jul 2021, on time)
Activities and Outcomes
There were many parallel activities during this milestone:
-
Native PostgreSQL Repository implementation Implementation of native PostgreSQL Repository continued, getting close to finish (planned for M7). Support for extension and shadow attributes was added in M6, as well as support for EXISTS, TYPE and similar queries.
-
User interface testing using Schrödinger testing framework. Code of Schrodinger framework was adapter due to changes in MidPoint GUI. New test scenarios were added to the test suite, including tests using OpenLDAP resource.
-
Task management improvements. Task management improvements proposed during M5 were implemented in M6. New "activity" framework was implemented - migrating existing framework features from the old (task-based) one: e.g. progress, error, and statistics reporting, error handling, bucketing, workers management, thresholds. Existing midPoint task handlers (import, reconciliation, recomputation, and so on), were migrated to the new activity framework. The improvements are necessary as a preparatory work for implementing task autoscaling capabilities. It was decided to start the preparation early, to reduce project risk.
-
Performance evaluation (projector). Code of projector component was profiled, analyzing performance characteristics. Projector is essential component, responsible for significant part of the identity logic, therefore there is potential for significant performance gains.
-
Connector autoloading. Connector loading mechanism was improved, allowing dynamic loading of new connectors, reducing need for system restarts and downtime.
-
Code structure improvements. Prism, a crucial component of midPoint was separated into its own project, together with related components. This was accompanied by necessary code changes in midPoint. The separation was necessary, allowing cleaner and more maintainable structure of associated midPoint components (e.g. Schrodinger, Studio).
-
Performance testing environment. Testing environment completed in M5, it was slightly extended and further improved in M6.
Planning Delta
The activities of this milestone were mostly carried out according to original plan. Yet, there were some differences:
-
Preparatory work on task management improvements was started earlier than planned (originally planned as part of autoscaling implementation).
-
More people were involved in the project, outside of the NGI funding. It was decided to strengthen the architectural part of the project (Radovan Semančík) and support for testing infrastructure (Kamil Jireš).