mirror of
https://github.com/matrix-construct/construct
synced 2024-11-25 16:22:35 +01:00
ircd::db: Improve request pool initialization and size determination.
This commit is contained in:
parent
7a87f2eda9
commit
4a1f04823f
2 changed files with 31 additions and 2 deletions
|
@ -84,6 +84,7 @@ namespace ircd
|
|||
/// Database subsystem initialization and destruction
|
||||
struct ircd::db::init
|
||||
{
|
||||
static void request_pool();
|
||||
static void compressions();
|
||||
static void directory();
|
||||
static void test_direct_io();
|
||||
|
|
32
ircd/db.cc
32
ircd/db.cc
|
@ -66,7 +66,7 @@ ircd::db::request_pool_size
|
|||
{
|
||||
{
|
||||
{ "name", "ircd.db.request_pool.size" },
|
||||
{ "default", 32L },
|
||||
{ "default", 0L },
|
||||
}, []
|
||||
{
|
||||
request.set(size_t(request_pool_size));
|
||||
|
@ -131,9 +131,9 @@ try
|
|||
#endif
|
||||
compressions();
|
||||
directory();
|
||||
request_pool();
|
||||
test_direct_io();
|
||||
test_hw_crc32();
|
||||
request.add(request_pool_size);
|
||||
}
|
||||
catch(const std::exception &e)
|
||||
{
|
||||
|
@ -350,6 +350,34 @@ catch(const std::exception &e)
|
|||
throw;
|
||||
}
|
||||
|
||||
void
|
||||
ircd::db::init::request_pool()
|
||||
{
|
||||
char buf[32];
|
||||
const string_view value
|
||||
{
|
||||
conf::get(buf, "ircd.fs.aio.max_events")
|
||||
};
|
||||
|
||||
const size_t aio_max_events
|
||||
{
|
||||
lex_castable<size_t>(value)?
|
||||
lex_cast<size_t>(value):
|
||||
0UL
|
||||
};
|
||||
|
||||
const size_t new_size
|
||||
{
|
||||
size_t(request_pool_size)?
|
||||
request_pool_size:
|
||||
aio_max_events?
|
||||
aio_max_events:
|
||||
1UL
|
||||
};
|
||||
|
||||
request_pool_size.set(lex_cast(new_size));
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// database
|
||||
|
|
Loading…
Reference in a new issue