20#include <mysql/testutils/mysql_schema.h>
29using namespace isc::db::test;
42 void SetUp(::benchmark::State
const&)
override {
49 cerr <<
"ERROR: unable to open database" << endl;
55 void SetUp(::benchmark::State& s)
override {
56 ::benchmark::State
const& cs = s;
61 void TearDown(::benchmark::State
const&)
override {
65 cerr <<
"WARNING: rollback has failed, this is expected if database"
66 " is opened in read-only mode, continuing..."
74 void TearDown(::benchmark::State& s)
override {
75 ::benchmark::State
const& cs = s;
82BENCHMARK_DEFINE_F(MySqlHostDataSourceBenchmark, insertHosts)(benchmark::State& state) {
83 const size_t host_count = state.range(0);
84 while (state.KeepRunning()) {
85 setUp(state, host_count);
92BENCHMARK_DEFINE_F(MySqlHostDataSourceBenchmark, getAll)(benchmark::State& state) {
93 const size_t host_count = state.range(0);
94 while (state.KeepRunning()) {
95 setUpWithInserts(state, host_count);
102BENCHMARK_DEFINE_F(MySqlHostDataSourceBenchmark, getAllv4Resv)(benchmark::State& state) {
103 const size_t host_count = state.range(0);
104 while (state.KeepRunning()) {
105 setUpWithInserts(state, host_count);
112BENCHMARK_DEFINE_F(MySqlHostDataSourceBenchmark, get4IdentifierSubnetId)(benchmark::State& state) {
113 const size_t host_count = state.range(0);
114 while (state.KeepRunning()) {
115 setUpWithInserts(state, host_count);
116 benchGet4IdentifierSubnetId();
122BENCHMARK_DEFINE_F(MySqlHostDataSourceBenchmark, get4SubnetIdv4Resrv)(benchmark::State& state) {
123 const size_t host_count = state.range(0);
124 while (state.KeepRunning()) {
125 setUpWithInserts(state, host_count);
126 benchGet4SubnetIdv4Resrv();
132BENCHMARK_DEFINE_F(MySqlHostDataSourceBenchmark, get6IdentifierSubnetId)(benchmark::State& state) {
133 const size_t host_count = state.range(0);
134 while (state.KeepRunning()) {
135 setUpWithInserts(state, host_count);
136 benchGet6IdentifierSubnetId();
142BENCHMARK_DEFINE_F(MySqlHostDataSourceBenchmark, get6SubnetIdAddr)(benchmark::State& state) {
143 const size_t host_count = state.range(0);
144 while (state.KeepRunning()) {
145 setUpWithInserts(state, host_count);
146 benchGet6SubnetIdAddr();
152BENCHMARK_DEFINE_F(MySqlHostDataSourceBenchmark, get6Prefix)(benchmark::State& state) {
153 const size_t host_count = state.range(0);
154 while (state.KeepRunning()) {
155 setUpWithInserts(state, host_count);
162BENCHMARK_REGISTER_F(MySqlHostDataSourceBenchmark, insertHosts)
167BENCHMARK_REGISTER_F(MySqlHostDataSourceBenchmark, getAll)
172BENCHMARK_REGISTER_F(MySqlHostDataSourceBenchmark, getAllv4Resv)
177BENCHMARK_REGISTER_F(MySqlHostDataSourceBenchmark, get4IdentifierSubnetId)
182BENCHMARK_REGISTER_F(MySqlHostDataSourceBenchmark, get4SubnetIdv4Resrv)
187BENCHMARK_REGISTER_F(MySqlHostDataSourceBenchmark, get6IdentifierSubnetId)
192BENCHMARK_REGISTER_F(MySqlHostDataSourceBenchmark, get6SubnetIdAddr)
197BENCHMARK_REGISTER_F(MySqlHostDataSourceBenchmark, get6Prefix)
static void create()
Creates new instance of the HostMgr.
static bool delBackend(const std::string &db_type)
Delete an alternate host backend (aka host data source).
static void addBackend(const std::string &access)
Add an alternate host backend (aka host data source).
HostDataSourcePtr getHostDataSource() const
Returns the first host data source.
static HostMgr & instance()
Returns a sole instance of the HostMgr.
Base fixture class for benchmarking host backends.
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.