forked from Tencent/3TS
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig.cfg.template
85 lines (72 loc) · 3.53 KB
/
config.cfg.template
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Target = ("FilterRun"); // The runner to run.
/* ========== runners ========= */
// For each algorithm's result, do filter if <filter> field is set. If <filter> is set true/false,
// only output the result when the algorithm consider the history OK/NG.
FilterRun = {
thread_num = 10L; // number of threads
generator = "TraversalGenerator"; // history generator
outputters = ("CompareOutputter", "RollbackRateOutputter"); // result outputters
algorithms = ( // concurrency control algorithms and filters
{ name = "SerializableAlgorithm_COMMIT_SAME_SI"; },
{ name = "BOCC"; }
);
};
// Output time required for each algorithm in different transaction or variable item numbers.
BenchmarkRun = {
trans_nums = (2L, 4L, 6L); // numbers of transactions
item_nums = (2L, 4L, 6L); // numbers of variable items
algorithms = ("SSI"); // concurrent algorithms
history_num = 1024L; // number of histories to generate
with_abort = true; // generate history with Abort operation
tcl_position = "TAIL"; // generate TCL operation in history position ("TAIL", "ANYWHERE", "NOWHERE")
os = "cout"; // filename the benchmark result output to, "cout" means standard output
};
/* ========== history generators ========= */
// Generate all histories meeting such conditions.
TraversalGenerator = {
trans_num = 2L; // number of transactions
item_num = 2L; // number of variable items
max_dml = 6L; // max number of DML operations
subtask_num = 10L; // number of subtasks
subtask_id = 0L; // the id of subtask to run
with_abort = true; // generate history with Abort operation
with_scan = "NONE_HAVE"; // generate history with ScanOdd operation ("NONE_HAVE", "ALL_HAVE", "NO_LIMIT")
with_write = "NO_LIMIT"; // generate history with Write operation ("NONE_HAVE", "ALL_HAVE", "NO_LIMIT")
tcl_position = "ANYWHERE"; // generate TCL operation in history position ("TAIL", "ANYWHERE", "NOWHERE")
allow_empty_trans = false; // transactions generated can be without DML operations
dynamic_history_len = false; // number of DML operation can be less than <max_dml>
};
// Generate histories described in the file.
InputGenerator = {
file = "input.txt"; // input file contains histories
}
// Generate random histories.
RandomGenerator = {
trans_num = 1L; // number of transactions
item_num = 7L; // number of variable items
max_dml = 2L; // max number of DML operations
history_num = 100L; // number of histories to generate
with_abort = true; // generate history with Abort operation
with_scan = "NONE_HAVE"; // generate history with ScanOdd operation ("NONE_HAVE", "ALL_HAVE", "NO_LIMIT")
tcl_position = "TAIL"; // generate TCL operation in history position ("TAIL", "ANYWHERE", "NOWHERE")
allow_empty_trans = false; // transactions generated can be without DML operations
dynamic_history_len = false; // number of DML operation can be less than <max_dml>
}
/* ========== result outputters ========= */
// Output the rollback rate information of each algorithm supporing rollback rate statistic.
RollbackRateOutputter = {
file = "rollback_rate.txt"; // filename to output
}
// Output the detail information of each algorithm in each history.
DetailOutputter = {
file = "detail.txt"; // filename to output
}
// Compare each algorithm's result and output in classification.
CompareOutputter = {
file = "compare.txt"; // filename to output
}
// Pick the first algorithm as datum algorithm, and calculate each algorithm's miss/wrong judgment
// rate or true/false rollback rate with the datum algorithm.
DatumOutputter = {
file = "testall.txt"; // filename to output
}