Outcomes of MidScale Milestone M2

Last modified 27 Oct 2021 12:21 +02:00

Milestone goal: Perf evaluation and repository analysis/design
Status: DONE (15 Jan 2021, on time)

Activities and Outcomes

There were several major parallel activities during this milestone:

  1. Repository analysis and design. There was major progress in design of the repository compoment. This component is a crucial part of scalability solution. Major design decisions were made, there was a significant amount of research and prototyping work. As of M2, we consider repository design to be stable, moving to repository implementation effort. Just before the milestone there was a preparatory work for repository implementation, such as adjusting the component structure to make space for the new repository component.

  2. Performance evaluation. The work on performance environment that started in M1 continued in M2. Basic test environment framework is in place, as is performance data collection and processing environment. Unit test data are collected, charted and evaluated. There is ongoing work on preparing end-to-end testing images. Part of the performance evaluation work was also done in other parallel activities.

  3. Query language. New, user-friendly query language was designed during M2. The query language provides an essential tool for system engineers and administrators to work with large data sets. Also, basic implementation of the language-processing code was developed and partially integrated with core midPoint code.

  4. Schroedinger testing environment. The work on Schroedinger continued in M2. Most of the work focused on fluent API improvements, to clean up the framework and support ease of writing of future tests.

  5. Multithreaded tasks and diagnostics. The work started on multithreaded task improvements, mostly by improving diagnostics and error handling.

Planning Delta

The activities of this milestone were mostly carried out according to original plan. Yet, there were some differences:

  • Several activities have started ahead of plan, to utilize free resources and reduce future risks. This includes query language, Schroedinger and multithreaded tasks.

  • 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š).


We have utilized the results of midPrivacy initiative in this project, especially the Axiom modeling language. The ideas of Axiom were applied especially to the design of query language, making the midPoint design more consistent. This was not included in the original design of midScale, as Axiom did not exist at that time yet.