From 3155be07328c5a66d6d4623e561472c90e24492b Mon Sep 17 00:00:00 2001 From: emeric Date: Sat, 9 Mar 2024 18:57:45 +0100 Subject: [PATCH] Added some profiling events in DB --- src/libs/database/impl/Session.cpp | 3 +++ src/libs/database/impl/Utils.hpp | 6 ++++++ src/libs/database/include/database/Session.hpp | 6 +++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/libs/database/impl/Session.cpp b/src/libs/database/impl/Session.cpp index 56db76f0..0eba00f5 100644 --- a/src/libs/database/impl/Session.cpp +++ b/src/libs/database/impl/Session.cpp @@ -23,6 +23,7 @@ #include "utils/Exception.hpp" #include "utils/ILogger.hpp" +#include "utils/IProfiler.hpp" #include "database/Artist.hpp" #include "database/AuthToken.hpp" @@ -189,6 +190,7 @@ namespace Database void Session::analyze() { + LMS_SCOPED_PROFILE_DETAILED("Database", "Analyze"); LMS_LOG(DB, INFO, "Analyzing database..."); { auto transaction{ createWriteTransaction() }; @@ -199,6 +201,7 @@ namespace Database void Session::optimize() { + LMS_SCOPED_PROFILE_DETAILED("Database", "Optimize"); LMS_LOG(DB, INFO, "Optimizing database..."); { auto transaction{ createWriteTransaction() }; diff --git a/src/libs/database/impl/Utils.hpp b/src/libs/database/impl/Utils.hpp index 68e82cda..25041b91 100644 --- a/src/libs/database/impl/Utils.hpp +++ b/src/libs/database/impl/Utils.hpp @@ -27,6 +27,7 @@ #include #include "database/Types.hpp" +#include "utils/IProfiler.hpp" namespace Database::Utils { @@ -47,6 +48,8 @@ namespace Database::Utils template RangeResults execQuery(Query& query, std::optional range) { + LMS_SCOPED_PROFILE_DETAILED("Database", "ExecQueryRange"); + RangeResults res; if (range) @@ -76,7 +79,10 @@ namespace Database::Utils applyRange(query, range); for (const auto& res : query.resultList()) + { + LMS_SCOPED_PROFILE_DETAILED("Database", "ExecQueryResult"); func(res); + } } Wt::WDateTime normalizeDateTime(const Wt::WDateTime& dateTime); diff --git a/src/libs/database/include/database/Session.hpp b/src/libs/database/include/database/Session.hpp index 9b96ea0a..601e32d1 100644 --- a/src/libs/database/include/database/Session.hpp +++ b/src/libs/database/include/database/Session.hpp @@ -22,6 +22,7 @@ #include #include +#include "utils/IProfiler.hpp" #include "utils/RecursiveSharedMutex.hpp" #include "database/Object.hpp" #include "database/TransactionChecker.hpp" @@ -32,6 +33,7 @@ namespace Database { public: ~WriteTransaction(); + private: friend class Session; WriteTransaction(RecursiveSharedMutex& mutex, Wt::Dbo::Session& session); @@ -40,6 +42,7 @@ namespace Database WriteTransaction& operator=(const WriteTransaction&) = delete; std::unique_lock _lock; + profiling::ScopedEvent _profilingEvent{ "Database", profiling::Level::Detailed, "WriteTransaction" }; // before actual transaction Wt::Dbo::Transaction _transaction; }; @@ -47,14 +50,15 @@ namespace Database { public: ~ReadTransaction(); + private: friend class Session; ReadTransaction(Wt::Dbo::Session& session); - ReadTransaction(const ReadTransaction&) = delete; ReadTransaction& operator=(const ReadTransaction&) = delete; + profiling::ScopedEvent _profilingEvent{ "Database", profiling::Level::Detailed, "ReadTransaction" }; // before actual transaction Wt::Dbo::Transaction _transaction; };