23 #include <dhcpsrv/testutils/pgsql_schema.h> 40 void SetUp(::benchmark::State
const&)
override {
41 destroyPgSQLSchema(
false);
42 createPgSQLSchema(
false);
44 HostDataSourceFactory::destroy();
45 HostDataSourceFactory::create(validPgSQLConnectionString());
47 cerr <<
"ERROR: unable to open database" << endl;
50 hdsptr_ = HostDataSourceFactory::getHostDataSourcePtr();
54 void TearDown(::benchmark::State
const&)
override {
58 cerr <<
"WARNING: rollback has failed, this is expected if database" 59 " is opened in read-only mode, continuing..." 62 HostDataSourceFactory::destroy();
63 destroyPgSQLSchema(
false);
69 BENCHMARK_DEFINE_F(PgSqlHostDataSourceBenchmark, insertHosts)(benchmark::State& state) {
70 const size_t host_count = state.range(0);
71 while (state.KeepRunning()) {
72 setUp(state, host_count);
79 BENCHMARK_DEFINE_F(PgSqlHostDataSourceBenchmark, updateHosts)(benchmark::State& state) {
80 const size_t host_count = state.range(0);
81 while (state.KeepRunning()) {
82 setUpWithInserts(state, host_count);
89 BENCHMARK_DEFINE_F(PgSqlHostDataSourceBenchmark, getAllByHWAddrDuid)(benchmark::State& state) {
90 const size_t host_count = state.range(0);
91 while (state.KeepRunning()) {
92 setUpWithInserts(state, host_count);
93 benchGetAllByHWAddrDuid();
99 BENCHMARK_DEFINE_F(PgSqlHostDataSourceBenchmark, getAll)(benchmark::State& state) {
100 const size_t host_count = state.range(0);
101 while (state.KeepRunning()) {
102 setUpWithInserts(state, host_count);
109 BENCHMARK_DEFINE_F(PgSqlHostDataSourceBenchmark, getAllv4Resv)(benchmark::State& state) {
110 const size_t host_count = state.range(0);
111 while (state.KeepRunning()) {
112 setUpWithInserts(state, host_count);
119 BENCHMARK_DEFINE_F(PgSqlHostDataSourceBenchmark, get4BySubnetHWAddrDuid)(benchmark::State& state) {
120 const size_t host_count = state.range(0);
121 while (state.KeepRunning()) {
122 setUpWithInserts(state, host_count);
123 benchGet4BySubnetHWAddrDuid();
129 BENCHMARK_DEFINE_F(PgSqlHostDataSourceBenchmark, get4IdentifierSubnetId)(benchmark::State& state) {
130 const size_t host_count = state.range(0);
131 while (state.KeepRunning()) {
132 setUpWithInserts(state, host_count);
133 benchGet4IdentifierSubnetId();
139 BENCHMARK_DEFINE_F(PgSqlHostDataSourceBenchmark, get4SubnetIdv4Resrv)(benchmark::State& state) {
140 const size_t host_count = state.range(0);
141 while (state.KeepRunning()) {
142 setUpWithInserts(state, host_count);
143 benchGet4SubnetIdv4Resrv();
149 BENCHMARK_DEFINE_F(PgSqlHostDataSourceBenchmark, get6SubnetIdDuidHWAddr)(benchmark::State& state) {
150 const size_t host_count = state.range(0);
151 while (state.KeepRunning()) {
152 setUpWithInserts(state, host_count);
153 benchGet6SubnetIdDuidHWAddr();
159 BENCHMARK_DEFINE_F(PgSqlHostDataSourceBenchmark, get6IdentifierSubnetId)(benchmark::State& state) {
160 const size_t host_count = state.range(0);
161 while (state.KeepRunning()) {
162 setUpWithInserts(state, host_count);
163 benchGet6IdentifierSubnetId();
169 BENCHMARK_DEFINE_F(PgSqlHostDataSourceBenchmark, get6SubnetIdAddr)(benchmark::State& state) {
170 const size_t host_count = state.range(0);
171 while (state.KeepRunning()) {
172 setUpWithInserts(state, host_count);
173 benchGet6SubnetIdAddr();
179 BENCHMARK_DEFINE_F(PgSqlHostDataSourceBenchmark, get6Prefix)(benchmark::State& state) {
180 const size_t host_count = state.range(0);
181 while (state.KeepRunning()) {
182 setUpWithInserts(state, host_count);
189 BENCHMARK_REGISTER_F(PgSqlHostDataSourceBenchmark, insertHosts)
194 BENCHMARK_REGISTER_F(PgSqlHostDataSourceBenchmark, updateHosts)
199 BENCHMARK_REGISTER_F(PgSqlHostDataSourceBenchmark, getAllByHWAddrDuid)
204 BENCHMARK_REGISTER_F(PgSqlHostDataSourceBenchmark, getAll)
209 BENCHMARK_REGISTER_F(PgSqlHostDataSourceBenchmark, getAllv4Resv)
214 BENCHMARK_REGISTER_F(PgSqlHostDataSourceBenchmark, get4BySubnetHWAddrDuid)
219 BENCHMARK_REGISTER_F(PgSqlHostDataSourceBenchmark, get4IdentifierSubnetId)
224 BENCHMARK_REGISTER_F(PgSqlHostDataSourceBenchmark, get4SubnetIdv4Resrv)
229 BENCHMARK_REGISTER_F(PgSqlHostDataSourceBenchmark, get6SubnetIdDuidHWAddr)
234 BENCHMARK_REGISTER_F(PgSqlHostDataSourceBenchmark, get6IdentifierSubnetId)
239 BENCHMARK_REGISTER_F(PgSqlHostDataSourceBenchmark, get6SubnetIdAddr)
244 BENCHMARK_REGISTER_F(PgSqlHostDataSourceBenchmark, get6Prefix)
constexpr size_t MIN_HOST_COUNT
A minimum number of leases used in a benchmark.
constexpr benchmark::TimeUnit UNIT
A time unit used - all results to be expressed in us (microseconds)
constexpr size_t MAX_HOST_COUNT
A maximum number of leases used in a benchmark.
Base fixture class for benchmarking host backends.