[midPoint] Projector waves

Radovan Semancik radovan.semancik at evolveum.com
Thu Jun 23 13:09:33 CEST 2016


Hi,

There are several reasons. But perhaps the most important is 
provisioning dependencies: 
https://wiki.evolveum.com/display/midPoint/Provisioning+Dependencies
Resources (or even projections) with dependencies need to be processed 
sequentially. Outbound expression of a dependent projection needs to be 
reflected in the input of the "dependee" projection. So our solution is 
to sort the projections into waves. All the independent projections are 
processed in the first wave, all the dependent in second wave, all that 
depends on those in third wave and so on.

The other reason is that there are also attributes that the resource 
sets or changes by itself (we call them "volatile attributes"). So after 
provisioning an account we need to re-read that account and apply 
inbound expressions to make sure that these volatile attribute are 
correctly applied to the focal object (e.g. user). Therefore even if 
there are no dependencies there is always a "half-wave" at the end of 
every projector run to make sure that provisioning side-effects are 
processed correctly.

Overall, I'm more than aware that the waves are not an ideal way how to 
process this partially parallel partially sequential computation. A 
parallel tree-like approach would be much more appropriate. But also 
much more complex and significantly harder to debug. Therefore we have 
decided to go with waves at the beginning and change the implementation 
to a tree-based processing when needed.

-- 
Radovan Semancik
Software Architect
evolveum.com



On 06/23/2016 11:28 AM, Дорофеев Илья wrote:
>
> Hi guys,
>
> Recently I’ve come across a wiki page 
> https://wiki.evolveum.com/display/midPoint/Simplification+of+processing+in+clockwork+and+projector 
> and have been trying to comprehend what projector waves are all about. 
> The given explanation, to be honest, isn’t clear enough. I have 
> examined the source code as well. Could you give a bit more detailed 
> reasons for waves and ideas behind them? Probably, some use cases or 
> anything else?
>
> __________________________
>
> Ilya Dorofeev
>
>
>
> _______________________________________________
> midPoint mailing list
> midPoint at lists.evolveum.com
> http://lists.evolveum.com/mailman/listinfo/midpoint


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20160623/66da182e/attachment.htm>


More information about the midPoint mailing list