tools/prune-trace: various improvements

- Variants/benchmarks can now be selected with wildcards
  (--variant/--benchmark), and can be excluded from pruning
  (--variant-exclude/--benchmark-exclude).
- The database clearing step can be skipped with --no-delete to
  avoid deadlocks with concurrent DB accesses.
- Internals:
  * injection_instr / injection_instr_absolute moves from
    fspgroup to fsppilot.  fsppilot now contains all information we
    need for running FI experiments.
    TODO: generic campaign needs to be modified, too.
  * Force MySQL to use an efficient join order (STRAIGHT_JOIN).

Change-Id: I6241ea2de9da1a1e709fae6374df4fc06ef262a0
This commit is contained in:
Horst Schirmeier
2013-04-10 11:55:08 +02:00
parent 79363aec21
commit 56bfa6c693
4 changed files with 138 additions and 67 deletions

View File

@ -1,24 +1,29 @@
#ifndef __PRUNER_H__
#define __PRUNER_H__
#include <vector>
#include <string>
#include "util/Database.hpp"
class Pruner {
protected:
int m_variant_id;
int m_method_id;
fail::Database *db;
int m_method_id;
std::string m_variant_id_query;
fail::Database *db;
public:
bool init(const std::string &variant, const std::string &benchmark,
fail::Database *sql);
bool init(fail::Database *db,
const std::vector<std::string>& variants,
const std::vector<std::string>& variants_exclude,
const std::vector<std::string>& benchmarks,
const std::vector<std::string>& benchmarks_exclude);
virtual std::string method_name() = 0;
virtual std::string method_name() = 0;
virtual bool create_database();
virtual bool clear_database();
virtual bool prune_all() = 0;
virtual bool prune_all() = 0;
};
#endif