Added some profiling events in DB
This commit is contained in:
@@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
#include "utils/Exception.hpp"
|
#include "utils/Exception.hpp"
|
||||||
#include "utils/ILogger.hpp"
|
#include "utils/ILogger.hpp"
|
||||||
|
#include "utils/IProfiler.hpp"
|
||||||
|
|
||||||
#include "database/Artist.hpp"
|
#include "database/Artist.hpp"
|
||||||
#include "database/AuthToken.hpp"
|
#include "database/AuthToken.hpp"
|
||||||
@@ -189,6 +190,7 @@ namespace Database
|
|||||||
|
|
||||||
void Session::analyze()
|
void Session::analyze()
|
||||||
{
|
{
|
||||||
|
LMS_SCOPED_PROFILE_DETAILED("Database", "Analyze");
|
||||||
LMS_LOG(DB, INFO, "Analyzing database...");
|
LMS_LOG(DB, INFO, "Analyzing database...");
|
||||||
{
|
{
|
||||||
auto transaction{ createWriteTransaction() };
|
auto transaction{ createWriteTransaction() };
|
||||||
@@ -199,6 +201,7 @@ namespace Database
|
|||||||
|
|
||||||
void Session::optimize()
|
void Session::optimize()
|
||||||
{
|
{
|
||||||
|
LMS_SCOPED_PROFILE_DETAILED("Database", "Optimize");
|
||||||
LMS_LOG(DB, INFO, "Optimizing database...");
|
LMS_LOG(DB, INFO, "Optimizing database...");
|
||||||
{
|
{
|
||||||
auto transaction{ createWriteTransaction() };
|
auto transaction{ createWriteTransaction() };
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
#include <Wt/WDateTime.h>
|
#include <Wt/WDateTime.h>
|
||||||
|
|
||||||
#include "database/Types.hpp"
|
#include "database/Types.hpp"
|
||||||
|
#include "utils/IProfiler.hpp"
|
||||||
|
|
||||||
namespace Database::Utils
|
namespace Database::Utils
|
||||||
{
|
{
|
||||||
@@ -47,6 +48,8 @@ namespace Database::Utils
|
|||||||
template <typename ResultType, typename Query>
|
template <typename ResultType, typename Query>
|
||||||
RangeResults<ResultType> execQuery(Query& query, std::optional<Range> range)
|
RangeResults<ResultType> execQuery(Query& query, std::optional<Range> range)
|
||||||
{
|
{
|
||||||
|
LMS_SCOPED_PROFILE_DETAILED("Database", "ExecQueryRange");
|
||||||
|
|
||||||
RangeResults<ResultType> res;
|
RangeResults<ResultType> res;
|
||||||
|
|
||||||
if (range)
|
if (range)
|
||||||
@@ -76,7 +79,10 @@ namespace Database::Utils
|
|||||||
applyRange(query, range);
|
applyRange(query, range);
|
||||||
|
|
||||||
for (const auto& res : query.resultList())
|
for (const auto& res : query.resultList())
|
||||||
|
{
|
||||||
|
LMS_SCOPED_PROFILE_DETAILED("Database", "ExecQueryResult");
|
||||||
func(res);
|
func(res);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Wt::WDateTime normalizeDateTime(const Wt::WDateTime& dateTime);
|
Wt::WDateTime normalizeDateTime(const Wt::WDateTime& dateTime);
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
#include <Wt/Dbo/Dbo.h>
|
#include <Wt/Dbo/Dbo.h>
|
||||||
#include <Wt/Dbo/SqlConnectionPool.h>
|
#include <Wt/Dbo/SqlConnectionPool.h>
|
||||||
|
|
||||||
|
#include "utils/IProfiler.hpp"
|
||||||
#include "utils/RecursiveSharedMutex.hpp"
|
#include "utils/RecursiveSharedMutex.hpp"
|
||||||
#include "database/Object.hpp"
|
#include "database/Object.hpp"
|
||||||
#include "database/TransactionChecker.hpp"
|
#include "database/TransactionChecker.hpp"
|
||||||
@@ -32,6 +33,7 @@ namespace Database
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
~WriteTransaction();
|
~WriteTransaction();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class Session;
|
friend class Session;
|
||||||
WriteTransaction(RecursiveSharedMutex& mutex, Wt::Dbo::Session& session);
|
WriteTransaction(RecursiveSharedMutex& mutex, Wt::Dbo::Session& session);
|
||||||
@@ -40,6 +42,7 @@ namespace Database
|
|||||||
WriteTransaction& operator=(const WriteTransaction&) = delete;
|
WriteTransaction& operator=(const WriteTransaction&) = delete;
|
||||||
|
|
||||||
std::unique_lock<RecursiveSharedMutex> _lock;
|
std::unique_lock<RecursiveSharedMutex> _lock;
|
||||||
|
profiling::ScopedEvent _profilingEvent{ "Database", profiling::Level::Detailed, "WriteTransaction" }; // before actual transaction
|
||||||
Wt::Dbo::Transaction _transaction;
|
Wt::Dbo::Transaction _transaction;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -47,14 +50,15 @@ namespace Database
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
~ReadTransaction();
|
~ReadTransaction();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class Session;
|
friend class Session;
|
||||||
ReadTransaction(Wt::Dbo::Session& session);
|
ReadTransaction(Wt::Dbo::Session& session);
|
||||||
|
|
||||||
|
|
||||||
ReadTransaction(const ReadTransaction&) = delete;
|
ReadTransaction(const ReadTransaction&) = delete;
|
||||||
ReadTransaction& operator=(const ReadTransaction&) = delete;
|
ReadTransaction& operator=(const ReadTransaction&) = delete;
|
||||||
|
|
||||||
|
profiling::ScopedEvent _profilingEvent{ "Database", profiling::Level::Detailed, "ReadTransaction" }; // before actual transaction
|
||||||
Wt::Dbo::Transaction _transaction;
|
Wt::Dbo::Transaction _transaction;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user