0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-06-28 23:08:20 +02:00

ircd::db: Simplify internal seek stack; minor cleanup.

This commit is contained in:
Jason Volk 2018-08-18 18:29:00 -07:00
parent e2c17d2595
commit 1b7e3af966
3 changed files with 23 additions and 20 deletions

View file

@ -31,9 +31,9 @@ struct ircd::db::database::env::state
std::array<ctx::pool, POOLS> pool
{{
// name of pool stack size initial workers
{ "bottom", 128_KiB, 0 },
{ "low", 128_KiB, 0 },
{ "high", 128_KiB, 0 },
{ "rdb bott", 128_KiB, 0 },
{ "rdb low", 128_KiB, 0 },
{ "rdb high", 128_KiB, 0 },
}};
state(database *const &d)

View file

@ -60,17 +60,17 @@
// Misc / General linkages
//
/// Dedicated logging facility for the database subsystem
decltype(ircd::db::log)
ircd::db::log
{
// Dedicated logging facility for the database subsystem
"db", 'D'
};
/// Dedicated logging facility for rocksdb's log callbacks
decltype(ircd::db::rog)
ircd::db::rog
{
// Dedicated logging facility for rocksdb's log callbacks
"rdb", 'R'
};
@ -4514,11 +4514,11 @@ ircd::db::seek(row &r,
return 0;
#ifdef RB_DEBUG_DB_SEEK
const column &c(r[0]);
const database &d(c);
const ircd::timer timer;
#endif
const column &c(r[0]);
const database &d(c);
const auto ret
{
std::count_if(begin(r), end(r), [&p]
@ -5641,8 +5641,8 @@ namespace ircd::db
static rocksdb::Iterator &_seek_(rocksdb::Iterator &, const string_view &);
static rocksdb::Iterator &_seek_lower_(rocksdb::Iterator &, const string_view &);
static rocksdb::Iterator &_seek_upper_(rocksdb::Iterator &, const string_view &);
bool _seek(database::column &, const pos &, const rocksdb::ReadOptions &, std::unique_ptr<rocksdb::Iterator> &it);
bool _seek(database::column &, const string_view &, const rocksdb::ReadOptions &, std::unique_ptr<rocksdb::Iterator> &it);
bool _seek(database::column &, const pos &, const rocksdb::ReadOptions &, rocksdb::Iterator &it);
bool _seek(database::column &, const string_view &, const rocksdb::ReadOptions &, rocksdb::Iterator &it);
}
std::unique_ptr<rocksdb::Iterator>
@ -5687,19 +5687,21 @@ ircd::db::seek(database::column &c,
it.reset(d.d->NewIterator(opts, cf));
}
return _seek(c, p, opts, it);
return _seek(c, p, opts, *it);
}
bool
ircd::db::_seek(database::column &c,
const string_view &p,
const rocksdb::ReadOptions &opts,
std::unique_ptr<rocksdb::Iterator> &it)
rocksdb::Iterator &it)
{
#ifdef RB_DEBUG_DB_SEEK
database &d(*c.d);
const ircd::timer timer;
#endif
_seek_(*it, p);
_seek_(it, p);
#ifdef RB_DEBUG_DB_SEEK
log::debug
@ -5708,29 +5710,31 @@ ircd::db::_seek(database::column &c,
name(d),
sequence(d),
sequence(opts.snapshot),
it->status().ToString(),
it.status().ToString(),
timer.at<microseconds>().count(),
name(c)
};
#endif
return valid(*it);
return valid(it);
}
bool
ircd::db::_seek(database::column &c,
const pos &p,
const rocksdb::ReadOptions &opts,
std::unique_ptr<rocksdb::Iterator> &it)
rocksdb::Iterator &it)
{
#ifdef RB_DEBUG_DB_SEEK
database &d(*c.d);
const ircd::timer timer;
const bool valid_it
{
valid(*it)
valid(it)
};
#endif
_seek_(*it, p);
_seek_(it, p);
#ifdef RB_DEBUG_DB_SEEK
log::debug
@ -5741,13 +5745,13 @@ ircd::db::_seek(database::column &c,
sequence(opts.snapshot),
reflect(p),
valid_it? "VALID" : "INVALID",
it->status().ToString(),
it.status().ToString(),
timer.at<microseconds>().count(),
name(c)
};
#endif
return valid(*it);
return valid(it);
}
/// Seek to entry NOT GREATER THAN key. That is, equal to or less than key

View file

@ -38,7 +38,6 @@ namespace ircd::db
const auto NON_BLOCKING = rocksdb::ReadTier::kBlockCacheTier;
const auto DEFAULT_READAHEAD = 4_MiB;
// Dedicated logging facility for rocksdb's log callbacks
extern log::log rog;
string_view reflect(const rocksdb::Env::Priority &p);