Zero  0.1.0
kits_cmd.h
Go to the documentation of this file.
1 #ifndef __KITS_CMD_H
2 #define __KITS_CMD_H
3 
4 #include "command.h"
5 #include "shore_client.h"
6 
7 class ShoreEnv;
8 class sm_options;
9 class FailureThread;
10 class SkewShiftingThread;
11 
12 template<class T> class CrashThread;
13 
14 class KitsCommand : public Command {
16 public:
17  KitsCommand();
18 
19  virtual ~KitsCommand() {}
20 
21  virtual void setupOptions();
22 
23  virtual void run();
24 
25  void mediaFailure(unsigned);
26 
27  void randomRootPageFailure();
28 
29  void crashFilthy();
30 
31  bool running();
32 
33  void set_stop_benchmark(bool);
34 
36 
37 protected:
39 
41 
42  bool opt_load;
43 
44  string opt_benchmark;
45 
46  string opt_conffile;
47 
49 
50  unsigned opt_duration;
51 
52  unsigned opt_log_volume;
53 
55 
57 
59 
61 
63 
64  bool opt_eager;
65 
66  bool opt_skew;
67 
68  bool opt_spread;
69 
71 
72  bool opt_warmup;
73 
75 
77 
79 
81 
82  bool hasFailed;
83 
85 
86  std::shared_ptr<CrashThread<ShoreEnv>> pre_init_crash_thread;
87 
88  std::shared_ptr<SkewShiftingThread> skew_shifter;
89 
90  // overridden in sub-commands to set their own options
91  virtual void loadOptions(sm_options& opt);
92 
93  template<class Client, class Environment>
94  void runBenchmarkSpec();
95 
96  void runBenchmark();
97 
98  virtual void doWork();
99 
100  template<class Client, class Environment>
101  void createClients();
102 
103  void forkClients();
104 
105  void joinClients();
106 
107  template<class Environment>
108  void initShoreEnv();
109 
110  void init();
111 
112  void finish();
113 
114  // Filesystem functions
115  void mkdirs(string);
116 
117  void ensureEmptyPath(string);
118 
119  void ensureParentPathExists(string);
120 
122  return opt_duration > 0 || opt_num_trxs > 0 || opt_log_volume > 0 || opt_no_stop == true;
123  }
124 
125 private:
126  std::vector<base_client_t*> clients;
127 
129 
131 };
132 
133 #endif // __KITS_CMD_H
std::shared_ptr< CrashThread< ShoreEnv > > pre_init_crash_thread
Definition: kits_cmd.h:86
int opt_queried_sf
Definition: kits_cmd.h:60
MeasurementType
Definition: shore_client.h:108
void forkClients()
Definition: kits_cmd.cpp:354
bool opt_asyncCommit
Definition: kits_cmd.h:70
ShoreEnv * getShoreEnv()
Definition: kits_cmd.cpp:164
MeasurementType mtype
Definition: kits_cmd.h:84
string opt_conffile
Definition: kits_cmd.h:46
Start-up parameters for the storage engine. See OPTIONS.
Definition: sm_options.h:24
Definition: command.h:14
virtual void doWork()
Definition: kits_cmd.cpp:378
bool opt_sharpBackup
Definition: kits_cmd.h:40
virtual void setupOptions()=0
bool opt_spread
Definition: kits_cmd.h:68
void randomRootPageFailure()
Definition: kits_cmd.cpp:219
: Wrapper for Shore client threads
void mediaFailure(unsigned)
Definition: kits_cmd.cpp:212
int opt_select_trx
Definition: kits_cmd.h:58
bool clientsForked
Definition: kits_cmd.h:128
KitsCommand()
Definition: kits_cmd.cpp:168
int opt_update_freq
Definition: kits_cmd.h:62
int opt_num_threads
Definition: kits_cmd.h:56
int opt_failDelay
Definition: kits_cmd.h:78
void initShoreEnv()
Definition: kits_cmd.cpp:427
virtual void loadOptions(sm_options &opt)
Definition: kits_cmd.cpp:508
void joinClients()
Definition: kits_cmd.cpp:362
ShoreEnv * shoreEnv
Definition: kits_cmd.h:38
Definition: kits_cmd.h:14
unsigned opt_log_volume
Definition: kits_cmd.h:52
int opt_num_trxs
Definition: kits_cmd.h:48
virtual void setupOptions()
Definition: kits_cmd.cpp:107
int opt_crashDelay
Definition: kits_cmd.h:74
void runBenchmarkSpec()
Definition: kits_cmd.cpp:259
void runBenchmark()
Definition: kits_cmd.cpp:246
virtual void run()
Definition: kits_cmd.cpp:173
bool opt_no_stop
Definition: kits_cmd.h:54
bool hasFailed
Definition: kits_cmd.h:82
FailureThread * failure_thread
Definition: kits_cmd.h:130
void init()
Definition: kits_cmd.cpp:233
bool runBenchAfterLoad()
Definition: kits_cmd.h:121
void set_stop_benchmark(bool)
Definition: kits_cmd.cpp:98
void finish()
Definition: kits_cmd.cpp:515
Definition: kits_cmd.cpp:29
void mkdirs(string)
Definition: kits_cmd.cpp:455
void ensureParentPathExists(string)
Definition: kits_cmd.cpp:472
bool running()
Definition: kits_cmd.cpp:520
string opt_benchmark
Definition: kits_cmd.h:44
bool opt_skew
Definition: kits_cmd.h:66
void ensureEmptyPath(string)
Definition: kits_cmd.cpp:489
void crashFilthy()
Definition: kits_cmd.cpp:102
bool opt_warmup
Definition: kits_cmd.h:72
bool opt_load
Definition: kits_cmd.h:42
Definition: kits_cmd.cpp:56
Definition: shore_env.h:349
Definition: kits_cmd.cpp:82
int opt_skewShiftDelay
Definition: kits_cmd.h:80
void createClients()
Definition: kits_cmd.cpp:319
virtual ~KitsCommand()
Definition: kits_cmd.h:19
std::shared_ptr< SkewShiftingThread > skew_shifter
Definition: kits_cmd.h:88
bool opt_eager
Definition: kits_cmd.h:64
std::vector< base_client_t * > clients
Definition: kits_cmd.h:126
bool opt_crashDelayAfterInit
Definition: kits_cmd.h:76
unsigned opt_duration
Definition: kits_cmd.h:50