mirror of
https://github.com/matrix-construct/construct
synced 2024-09-29 20:28:52 +02:00
ircd::db: Simplify internal seek stack; minor cleanup.
This commit is contained in:
parent
e2c17d2595
commit
1b7e3af966
3 changed files with 23 additions and 20 deletions
6
include/ircd/db/database/env/state.h
vendored
6
include/ircd/db/database/env/state.h
vendored
|
@ -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)
|
||||
|
|
36
ircd/db.cc
36
ircd/db.cc
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue