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.

6 On-Demand Re-<strong>Optimization</strong><br />

ical re-optimization increases due to the increasing total execution time because more<br />

re-optimization steps have taken place (Figure 6.16(h)).<br />

Third, we varied the optimization interval ∆t ∈ {1 s, 3 s, 6 s, 12 s, 24 s, 48 s, 92 s, 184 s}.<br />

Obviously, the execution time <strong>of</strong> unoptimized execution, and on-demand re-optimization<br />

are independent <strong>of</strong> this optimization interval (Figure 6.16(c)). The same is also true for<br />

the optimization time and the number <strong>of</strong> optimization steps <strong>of</strong> on-demand re-optimization<br />

(Figures 6.16(f) and 6.16(i)). In contrast, the optimization interval is a high-influence parameter<br />

for periodical re-optimization. For an increasing optimization interval, we observe<br />

a degradation <strong>of</strong> the execution time because we miss more optimization opportunities due<br />

to longer adaptation delays. Interestingly, for specific configurations, the execution time is<br />

even significantly worse than the unoptimized execution because we switch to the optimal<br />

plan just before the next workload shift occurs. However, if we further increase the optimization<br />

interval, the execution time converges to the unoptimized case. The benefit <strong>of</strong><br />

on-demand re-optimization mainly depends the benefit <strong>of</strong> applied optimization techniques.<br />

For really short optimization intervals <strong>of</strong> several seconds, we observe the best configuration<br />

<strong>of</strong> periodical re-optimization, which is still slower than on-demand re-optimization. For<br />

these configurations, we observe a significant increase <strong>of</strong> the cumulative re-optimization<br />

time because the number <strong>of</strong> re-optimization steps increased up to 544.<br />

Finally, we can summarize that on-demand re-optimization always lead to the lowest<br />

execution time, where we observed execution time reductions compared to periodical<br />

re-optimization <strong>of</strong> up-to 44.7%. However, the maximum benefit depends on applied optimization<br />

techniques, where in this setting we only used selection re-ordering. Furthermore,<br />

on-demand re-optimization shows much better robustness <strong>of</strong> execution time when varying<br />

the tested influencing aspects.<br />

Directed Re-<strong>Optimization</strong> Benefit<br />

In addition, we evaluated the benefit <strong>of</strong> directed re-optimization, where we re-used the<br />

different plans from Chapter 3 that included a varying number <strong>of</strong> join operators with<br />

m = {2, 4, 6, 8, 10, 12, 14} as a clique query (all directly connected). We compared the<br />

optimization time <strong>of</strong> (1) the full join enumeration using the standard DPSize algorithm<br />

[Moe09], (2) our join enumeration heuristic with quadratic time complexity that we use<br />

if the number <strong>of</strong> joins exceed eight joins (see Section 3.3.2), and (3) our directed reoptimization<br />

that only takes operators into account that are included in violated optimality<br />

conditions. Before optimization, we randomly generated statistics for input cardinalities<br />

and join selectivities. For directed re-optimization, we used an optimized plan and<br />

randomly changed the statistics <strong>of</strong> one join. The experiment was repeated 100 times.<br />

Figure 6.17: Directed Join Enumeration Benefit<br />

194

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

Saved successfully!

Ooh no, something went wrong!