Reduced exclusive lock durations

This commit is contained in:
emeric
2023-11-19 16:17:27 +01:00
parent 575fec5727
commit 17a2a969e2
104 changed files with 881 additions and 705 deletions
@@ -36,7 +36,7 @@ namespace Scanner
Session& dbSession{ _db.getTLSSession() };
const std::size_t clusterCount{ [&] {
auto transaction{ dbSession.createSharedTransaction() };
auto transaction{ dbSession.createReadTransaction() };
return Cluster::getCount(dbSession);
}() };
@@ -50,7 +50,7 @@ namespace Scanner
params.setRange(range);
{
auto transaction{ dbSession.createSharedTransaction() };
auto transaction{ dbSession.createReadTransaction() };
return std::move(Cluster::findIds(dbSession, params).results);
}
}() };
@@ -61,14 +61,14 @@ namespace Scanner
std::size_t releaseCount;
{
auto transaction{ dbSession.createSharedTransaction() };
auto transaction{ dbSession.createReadTransaction() };
trackCount = Cluster::computeTrackCount(dbSession, clusterId);
releaseCount = Cluster::computeReleaseCount(dbSession, clusterId);
}
{
auto transaction{ dbSession.createUniqueTransaction() };
auto transaction{ dbSession.createWriteTransaction() };
auto cluster{ Cluster::find(dbSession, clusterId) };
cluster.modify()->setTrackCount(trackCount);