25.01.2015 Views

Cost-Based Optimization of Integration Flows - Datenbanken ...

Cost-Based Optimization of Integration Flows - Datenbanken ...

Cost-Based Optimization of Integration Flows - Datenbanken ...

SHOW MORE
SHOW LESS
  • 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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!