Cost-Based Optimization of Integration Flows - Datenbanken ...
Cost-Based Optimization of Integration Flows - Datenbanken ...
Cost-Based Optimization of Integration Flows - Datenbanken ...
- No tags were found...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
3 Fundamentals <strong>of</strong> Optimizing <strong>Integration</strong> <strong>Flows</strong><br />
@type='MATMAS04'<br />
Translation (o3)<br />
[in: msg1, out: msg2]<br />
Receive (o1)<br />
[service: s3, out: msg1]<br />
Switch (o2)<br />
[in: msg1]<br />
@type='MATMAS05'<br />
Translation (o5)<br />
[in: msg1, out: msg2]<br />
@type='MATMAS04'<br />
Translation (o3)<br />
[in: msg1, out: msg2]<br />
Receive (o1)<br />
[service: s3, out: msg1]<br />
Switch (o2)<br />
[in: msg1]<br />
@type='MATMAS05'<br />
Translation (o5)<br />
[in: msg1, out: msg2]<br />
Assign (o4)<br />
[in: msg2, out: msg3]<br />
Assign (o6)<br />
[in: msg2, out: msg3]<br />
Assign (o4)<br />
[in: msg2, out: msg3]<br />
Assign (o6)<br />
[in: msg2, out: msg3]<br />
Invoke (o7)<br />
[service s1, in: msg3]<br />
Fork (o-1)<br />
Assign (o8)<br />
[in: msg2, out: msg4]<br />
Invoke (o9)<br />
[service s2, in: msg4]<br />
Invoke (o7)<br />
[service s1, in: msg3]<br />
Assign (o8)<br />
[in: msg2, out: msg4]<br />
Invoke (o9)<br />
[service s2, in: msg4]<br />
(a) Plan P 1<br />
(b) Plan P ′ 1<br />
@type='MATMAS05'<br />
Translation (o5)<br />
[in: msg1, out: msg2]<br />
Receive (o1)<br />
[service: s3, out: msg1]<br />
Switch (o2)<br />
[in: msg1]<br />
@type='MATMAS04'<br />
Translation (o3)<br />
[in: msg1, out: msg2]<br />
@type='MATMAS05'<br />
Translation (o5)<br />
[in: msg1, out: msg2]<br />
Receive (o1)<br />
[service: s3, out: msg1]<br />
Switch (o2)<br />
[in: msg1]<br />
@type='MATMAS04'<br />
Translation (o3)<br />
[in: msg1, out: msg2]<br />
Assign (o6)<br />
[in: msg2, out: msg3]<br />
Assign (o4)<br />
[in: msg2, out: msg3]<br />
Assign (o6)<br />
[in: msg2, out: msg3]<br />
Assign (o4)<br />
[in: msg2, out: msg3]<br />
Fork (o-1)<br />
Fork (o-1)<br />
Invoke (o7)<br />
[service s1, in: msg3]<br />
Assign (o8)<br />
[in: msg2, out: msg4]<br />
Assign (o8)<br />
[in: msg2, out: msg4]<br />
Invoke (o7)<br />
[service s1, in: msg3]<br />
Invoke (o9)<br />
[service s2, in: msg4]<br />
Invoke (o9)<br />
[service s2, in: msg4]<br />
(c) Plan P ′′<br />
1<br />
(d) Plan P ′′′<br />
1<br />
Figure 3.7: Example Execution <strong>of</strong> the <strong>Optimization</strong> Algorithm<br />
At operator o 1 we find no optimization technique. At operator o 2 , we recursively invoke the<br />
algorithm for the operator sequences (o 3 , o 4 ) and (o 5 , o 6 ) but do not find a different plan.<br />
Afterwards, the reordering <strong>of</strong> switch paths according to their cost-weighted path probabilities<br />
is applied, where the resulting plan P ′′ is shown in Figure 3.7(c). Further, we apply<br />
the rescheduling <strong>of</strong> parallel flows in order to start the most time-consuming flow first (Figure<br />
3.7(d)). Note that the application order <strong>of</strong> different optimization techniques influences<br />
the resulting plan. For this reason, we predefined this application order for existing optimization<br />
techniques. Finally, we recursively invoke the algorithm for the sequences (o 7 )<br />
and (o 8 , o 9 ) but do not find another plan.<br />
This overall cost-based optimization algorithm represents the framework for applying<br />
arbitrary optimization techniques. We describe selected techniques in Section 3.4 but one<br />
can easily extend the set <strong>of</strong> used techniques with additional ones.<br />
3.3.2 Search Space Reduction Heuristics<br />
Our core optimization algorithm produces the globally optimal plan with regard to set<br />
<strong>of</strong> used optimization techniques and the monitored statistics. Additionally, we now provide<br />
heuristic optimization algorithms. Although these heuristics reduce the costs <strong>of</strong> pe-<br />
50