mirror of
https://github.com/matrix-construct/construct
synced 2024-06-10 05:58:56 +02:00
ircd::db: Yield context on stall condition callback to relieve some pressure.
This commit is contained in:
parent
9a15f712c5
commit
245921c2b6
14
ircd/db.cc
14
ircd/db.cc
|
@ -3158,6 +3158,8 @@ noexcept
|
|||
info.num_entries,
|
||||
info.num_deletes
|
||||
};
|
||||
|
||||
ctx::yield();
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -3250,6 +3252,8 @@ void
|
|||
ircd::db::database::events::OnStallConditionsChanged(const rocksdb::WriteStallInfo &info)
|
||||
noexcept
|
||||
{
|
||||
using rocksdb::WriteStallCondition;
|
||||
|
||||
const auto level
|
||||
{
|
||||
info.condition.cur == rocksdb::WriteStallCondition::kNormal?
|
||||
|
@ -3266,6 +3270,16 @@ noexcept
|
|||
reflect(info.condition.prev),
|
||||
reflect(info.condition.cur)
|
||||
};
|
||||
|
||||
int i
|
||||
{
|
||||
info.condition.prev == WriteStallCondition::kDelayed? 4:
|
||||
info.condition.prev == WriteStallCondition::kStopped? 8:
|
||||
0
|
||||
};
|
||||
|
||||
while(i--)
|
||||
ctx::yield();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -342,6 +342,7 @@ try
|
|||
pretty(pbuf[3], iec(db_bytes / std::max(elapsed, 1L)), 1),
|
||||
};
|
||||
|
||||
ctx::yield();
|
||||
ctx::yield();
|
||||
ctx::interruption_point();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue