38
38
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
41
["Measure various aspects of Mnesia",
42
"Verify that Mnesia has predictable response times,",
43
"that the transaction system has fair algoritms,",
44
"resource consumption, scalabilitym system limits etc.",
45
"Perform some benchmarks."];
41
[{group, prediction}, {group, consumption},
42
{group, scalability}, {group, benchmarks}].
46
[reader_disturbed_by_node_down,
47
writer_disturbed_by_node_down,
48
reader_disturbed_by_node_up,
49
writer_disturbed_by_node_up,
50
reader_disturbed_by_schema_ops,
51
writer_disturbed_by_schema_ops,
52
reader_disturbed_by_checkpoint,
53
writer_disturbed_by_checkpoint,
54
reader_disturbed_by_dump_log,
55
writer_disturbed_by_dump_log,
56
reader_disturbed_by_backup, writer_disturbed_by_backup,
57
reader_disturbed_by_restore,
58
writer_disturbed_by_restore, {group, fairness}]},
60
[reader_competing_with_reader,
61
reader_competing_with_writer,
62
writer_competing_with_reader,
63
writer_competing_with_writer]},
65
[measure_resource_consumption,
66
determine_resource_leakage]},
68
[determine_system_limits, performance_at_min_config,
69
performance_at_max_config, performance_at_full_load,
70
resource_consumption_at_min_config,
71
resource_consumption_at_max_config,
72
resource_consumption_at_full_load]},
74
[{group, meter}, cost, dbn_meters,
75
measure_all_api_functions, {group, tpcb},
76
mnemosyne_vs_mnesia_kernel]},
77
{tpcb, [], [ram_tpcb, disc_tpcb, disc_only_tpcb]},
78
{meter, [], [ram_meter, disc_meter, disc_only_meter]}].
80
init_per_group(_GroupName, Config) ->
83
end_per_group(_GroupName, Config) ->
54
87
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
56
["The system must have predictable response times.",
57
"The maintenance of the system should not impact on the",
58
"availability. Make sure that the response times does not vary too",
59
"much from the undisturbed normal usage.",
60
"Verify that deadlocks never occurs."];
63
reader_disturbed_by_node_down,
64
writer_disturbed_by_node_down,
65
reader_disturbed_by_node_up,
66
writer_disturbed_by_node_up,
67
reader_disturbed_by_schema_ops,
68
writer_disturbed_by_schema_ops,
69
reader_disturbed_by_checkpoint,
70
writer_disturbed_by_checkpoint,
71
reader_disturbed_by_dump_log,
72
writer_disturbed_by_dump_log,
73
reader_disturbed_by_backup,
74
writer_disturbed_by_backup,
75
reader_disturbed_by_restore,
76
writer_disturbed_by_restore,
80
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
82
["Verify that the transaction system behaves fair, even under intense",
83
"stress. Combine different access patterns (transaction profiles)",
84
"in order to verify that concurrent applications gets a fair share",
85
"of the database resource. Verify that starvation never may occur."];
88
reader_competing_with_reader,
89
reader_competing_with_writer,
90
writer_competing_with_reader,
91
writer_competing_with_writer
94
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
96
["Measure the resource consumption and publish the outcome. Make",
97
"sure that resources are released after failures."];
100
measure_resource_consumption,
101
determine_resource_leakage
104
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
106
["Try out where the system limits are. We must at least meet the",
107
"documented system limits.",
108
"Redo the performance meters for various configurations and load,",
109
"especially near system limits."];
110
scalability(suite) ->
112
determine_system_limits,
113
performance_at_min_config,
114
performance_at_max_config,
115
performance_at_full_load,
116
resource_consumption_at_min_config,
117
resource_consumption_at_max_config,
118
resource_consumption_at_full_load
121
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
123
["Measure typical database operations and publish them. Try to",
124
"verify that new releases of Mnesia always outperforms old",
125
"releases, or at least that the meters does not get worse."];
131
measure_all_api_functions,
133
mnemosyne_vs_mnesia_kernel
89
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
91
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
93
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
95
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
136
97
dbn_meters(suite) -> [];
137
98
dbn_meters(Config) when is_list(Config) ->