hyrise / index_selection_evaluation

Platform to evaluate index selection algorithms
MIT License
82 stars 27 forks source link

Add mock connector and an example + refactored MS algorithm #21

Closed klauck closed 4 years ago

klauck commented 4 years ago

This is for discussion:

I would like to have a Mock Connector for testing with consistent what-if-call results. Unfortunate, even simple workload examples imply a huge number of index combinations, all of them having an own cache entry; and providing what-if-cost requires some programming which make the connector slightly complex. (Maybe there is a better way to specify costs for subsets of index combinations.)

klauck commented 4 years ago

Besides consistent examples, the approach allows testing algorithmns in advanced configurations, e.g., DropHeuristic with multi-column indexes, for which specifying costs manually is practically impossible.

klauck commented 4 years ago

In general, that looks good to me. It would be nice to have such a general solution. Are index sizes taken into account at all?

No, but can be added.

I am not sure if that makes it easy to test specific scenarios for the algorithms where more flexibility is needed: for example create indexes with high benefit and low costs and test the result and also create indexes with high benefit and high costs for another scenario

The approach is flexible, because you can specify and overwrite cost for each index combination. (We can discuss this offline.)

klauck commented 4 years ago

There are still some tests missings, and probably some improvements possible.

Bensk1 commented 4 years ago

I added the fix for the max_indexes and max_indexes_naive problem we discussed on Monday. Can we assert anything there, like max_indexes_naive < max_indexes or similar?

Bensk1 commented 4 years ago

Is this ready to merge apart from the merge conflict? I think it is