mirror of
https://github.com/matrix-construct/construct
synced 2024-11-29 18:22:50 +01:00
ircd:Ⓜ️:room::state::space: Improve rebuilder.
This commit is contained in:
parent
758a266b1b
commit
f8a2bab2ca
1 changed files with 22 additions and 7 deletions
|
@ -2978,12 +2978,18 @@ const
|
||||||
|
|
||||||
ircd::m::room::state::space::rebuild::rebuild()
|
ircd::m::room::state::space::rebuild::rebuild()
|
||||||
{
|
{
|
||||||
|
static const size_t interval
|
||||||
|
{
|
||||||
|
500000UL
|
||||||
|
};
|
||||||
|
|
||||||
auto &column
|
auto &column
|
||||||
{
|
{
|
||||||
dbs::event_column.at(json::indexof<m::event>("state_key"_sv))
|
dbs::event_column.at(json::indexof<m::event>("state_key"_sv))
|
||||||
};
|
};
|
||||||
|
|
||||||
size_t ret(0);
|
size_t total(0);
|
||||||
|
size_t current(0);
|
||||||
db::txn txn
|
db::txn txn
|
||||||
{
|
{
|
||||||
*m::dbs::events
|
*m::dbs::events
|
||||||
|
@ -3006,16 +3012,24 @@ ircd::m::room::state::space::rebuild::rebuild()
|
||||||
seek(event, event_idx);
|
seek(event, event_idx);
|
||||||
wopts.event_idx = event_idx;
|
wopts.event_idx = event_idx;
|
||||||
dbs::write(txn, event, wopts);
|
dbs::write(txn, event, wopts);
|
||||||
++ret;
|
|
||||||
|
|
||||||
if(unlikely(ret % 250000UL == 0))
|
++total;
|
||||||
|
++current;
|
||||||
|
if(current >= interval)
|
||||||
|
{
|
||||||
log::info
|
log::info
|
||||||
{
|
{
|
||||||
log, "room::state::space::rebuild building events:%zu elems:%zu size:%s",
|
log, "room::state::space::rebuild total:%zu committing events:%zu elems:%zu size:%s",
|
||||||
ret,
|
total,
|
||||||
|
current,
|
||||||
txn.size(),
|
txn.size(),
|
||||||
pretty(iec(txn.bytes()))
|
pretty(iec(txn.bytes()))
|
||||||
};
|
};
|
||||||
|
|
||||||
|
txn();
|
||||||
|
txn.clear();
|
||||||
|
current = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch(const ctx::interrupted &)
|
catch(const ctx::interrupted &)
|
||||||
{
|
{
|
||||||
|
@ -3032,8 +3046,9 @@ ircd::m::room::state::space::rebuild::rebuild()
|
||||||
|
|
||||||
log::info
|
log::info
|
||||||
{
|
{
|
||||||
log, "room::state::space::rebuild committing transaction events:%zu elems:%zu size:%s",
|
log, "room::state::space::rebuild total:%zu final transaction events:%zu elems:%zu size:%s",
|
||||||
ret,
|
total,
|
||||||
|
current,
|
||||||
txn.size(),
|
txn.size(),
|
||||||
pretty(iec(txn.bytes()))
|
pretty(iec(txn.bytes()))
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue