mirror of
https://github.com/matrix-construct/construct
synced 2024-11-29 18:22:50 +01:00
ircd:Ⓜ️:homeserver: Tweak bootstrap vector options; smaller batch size.
This commit is contained in:
parent
6c1e9786b5
commit
028fb60d1f
1 changed files with 9 additions and 8 deletions
|
@ -236,11 +236,15 @@ try
|
||||||
|
|
||||||
// Primary interest is to perform the INDEX and WRITE phase which create
|
// Primary interest is to perform the INDEX and WRITE phase which create
|
||||||
// a database transaction and commit it respectively.
|
// a database transaction and commit it respectively.
|
||||||
vmopts.mprefetch_refs = true;
|
|
||||||
vmopts.phase.set(vm::phase::PREINDEX, true);
|
|
||||||
vmopts.phase.set(vm::phase::INDEX, true);
|
vmopts.phase.set(vm::phase::INDEX, true);
|
||||||
vmopts.phase.set(vm::phase::WRITE, true);
|
vmopts.phase.set(vm::phase::WRITE, true);
|
||||||
|
|
||||||
|
// Perform prefetches over the whole batch;
|
||||||
|
vmopts.mprefetch_refs = true;
|
||||||
|
|
||||||
|
//XXX Consider enable for large batch size.
|
||||||
|
//vmopts.phase.set(vm::phase::PREINDEX, true);
|
||||||
|
|
||||||
// Optimize the bootstrap by not updating room heads at every step.
|
// Optimize the bootstrap by not updating room heads at every step.
|
||||||
vmopts.wopts.appendix.set(dbs::appendix::ROOM_HEAD, false);
|
vmopts.wopts.appendix.set(dbs::appendix::ROOM_HEAD, false);
|
||||||
vmopts.wopts.appendix.set(dbs::appendix::ROOM_HEAD_RESOLVE, false);
|
vmopts.wopts.appendix.set(dbs::appendix::ROOM_HEAD_RESOLVE, false);
|
||||||
|
@ -274,7 +278,7 @@ try
|
||||||
// Outputs to infolog for each event; may be noisy;
|
// Outputs to infolog for each event; may be noisy;
|
||||||
vmopts.infolog_accept = false;
|
vmopts.infolog_accept = false;
|
||||||
|
|
||||||
static const size_t batch_max {2048};
|
static const size_t batch_max {64};
|
||||||
std::vector<m::event> vec(batch_max);
|
std::vector<m::event> vec(batch_max);
|
||||||
size_t count {0}, ebytes[2] {0, 1}, accept {0};
|
size_t count {0}, ebytes[2] {0, 1}, accept {0};
|
||||||
vm::eval eval
|
vm::eval eval
|
||||||
|
@ -323,10 +327,8 @@ try
|
||||||
|
|
||||||
// advise dontneed
|
// advise dontneed
|
||||||
ebytes[0] += evict(map, incore, opts);
|
ebytes[0] += evict(map, incore, opts);
|
||||||
|
if(count % (batch_max * 64) != 0)
|
||||||
if(validate_json_only)
|
continue;
|
||||||
if(count % (batch_max * 64) != 0)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
const auto db_bytes
|
const auto db_bytes
|
||||||
{
|
{
|
||||||
|
@ -351,7 +353,6 @@ try
|
||||||
pretty(pbuf[3], iec(db_bytes / std::max(elapsed, 1L)), 1),
|
pretty(pbuf[3], iec(db_bytes / std::max(elapsed, 1L)), 1),
|
||||||
};
|
};
|
||||||
|
|
||||||
ctx::yield();
|
|
||||||
ctx::yield();
|
ctx::yield();
|
||||||
ctx::interruption_point();
|
ctx::interruption_point();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue