Add stopwatch

This commit is contained in:
Antonio Andelic 2024-05-22 11:56:45 +02:00
parent f1e4403f98
commit acc08c65d9
2 changed files with 11 additions and 2 deletions

View File

@ -448,11 +448,19 @@ void KeeperDispatcher::initialize(const Poco::Util::AbstractConfiguration & conf
if (auto request_queue_it = xid_to_request_queue.find(request_for_session.request->xid);
request_queue_it != xid_to_request_queue.end())
{
Stopwatch watch;
if (server->isLeaderAlive())
server->putLocalReadRequest(request_queue_it->second);
else
addErrorResponses(request_queue_it->second, Coordination::Error::ZCONNECTIONLOSS);
if (request_queue_it->second.size() > 500)
LOG_INFO(
getLogger("Speed"),
"It took {}ms for {} requests",
watch.elapsedMilliseconds(),
request_queue_it->second.size());
xid_to_request_queue.erase(request_queue_it);
}
}

View File

@ -768,14 +768,15 @@ void KeeperStateMachine::processReadRequest(const KeeperStorage::RequestsForSess
/// Pure local request, just process it with storage
std::lock_guard lock(process_and_responses_lock);
std::vector<KeeperStorage::ResponsesForSessions> all_responses;
if (request_for_session.size() > 50)
if (request_for_session.size() > 100)
{
all_responses.resize(request_for_session.size());
//LOG_INFO(getLogger("Keeper"), "Has read requests {}", request_queue_it->second.size());
for (size_t i = 0; i < request_for_session.size(); ++i)
{
read_pool.scheduleOrThrowOnError([&, i, read_request = request_for_session[i]]
read_pool.scheduleOrThrowOnError([&, i]
{
const auto & read_request = request_for_session[i];
all_responses[i] = storage->processRequest(
read_request.request, read_request.session_id, std::nullopt, true /*check_acl*/, true /*is_local*/);
});