Added some profiling events in DB

This commit is contained in:
emeric
2024-03-09 18:57:45 +01:00
parent aca6c00414
commit 3155be0732
3 changed files with 14 additions and 1 deletions
+3
View File
@@ -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() };
+6
View File
@@ -27,6 +27,7 @@
#include <Wt/WDateTime.h>
#include "database/Types.hpp"
#include "utils/IProfiler.hpp"
namespace Database::Utils
{
@@ -47,6 +48,8 @@ namespace Database::Utils
template <typename ResultType, typename Query>
RangeResults<ResultType> execQuery(Query& query, std::optional<Range> range)
{
LMS_SCOPED_PROFILE_DETAILED("Database", "ExecQueryRange");
RangeResults<ResultType> 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);
@@ -22,6 +22,7 @@
#include <Wt/Dbo/Dbo.h>
#include <Wt/Dbo/SqlConnectionPool.h>
#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<RecursiveSharedMutex> _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;
};