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
@@ -100,7 +100,7 @@ namespace Recommendation
TrackContainer tracks;
Session& dbSession{ _db.getTLSSession() };
auto transaction{ dbSession.createSharedTransaction() };
auto transaction{ dbSession.createReadTransaction() };
Track::FindParameters params;
params.setTrackList(tracklistId);
@@ -37,7 +37,7 @@ namespace Recommendation
{
Database::ScanSettings::SimilarityEngineType getSimilarityEngineType(Database::Session& session)
{
auto transaction{ session.createSharedTransaction() };
auto transaction{ session.createReadTransaction() };
return Database::ScanSettings::get(session)->getSimilarityEngineType();
}
@@ -42,7 +42,7 @@ namespace Recommendation {
return {};
Session& dbSession{ _db.getTLSSession() };
auto transaction{ dbSession.createSharedTransaction() };
auto transaction{ dbSession.createReadTransaction() };
const auto similarTrackIds{ Track::findSimilarTrackIds(dbSession, trackIds, Range {0, maxCount}) };
return std::move(similarTrackIds.results);
@@ -56,7 +56,7 @@ namespace Recommendation {
{
Session& dbSession{ _db.getTLSSession() };
auto transaction{ dbSession.createSharedTransaction() };
auto transaction{ dbSession.createReadTransaction() };
const TrackList::pointer trackList{ TrackList::find(dbSession, tracklistId) };
if (!trackList)
@@ -78,7 +78,7 @@ namespace Recommendation {
{
Session& dbSession{ _db.getTLSSession() };
auto transaction{ dbSession.createSharedTransaction() };
auto transaction{ dbSession.createReadTransaction() };
auto release{ Release::find(dbSession, releaseId) };
if (!release)
@@ -98,7 +98,7 @@ namespace Recommendation {
return {};
Session& dbSession{ _db.getTLSSession() };
auto transaction{ dbSession.createSharedTransaction() };
auto transaction{ dbSession.createReadTransaction() };
auto artist{ Artist::find(dbSession, artistId) };
if (!artist)
@@ -117,7 +117,7 @@ FeaturesEngine::loadFromTraining(const TrainSettings& trainSettings, const Progr
RangeResults<TrackFeaturesId> trackFeaturesIds;
{
auto transaction {session.createSharedTransaction()};
auto transaction {session.createReadTransaction()};
LMS_LOG(RECOMMENDATION, DEBUG) << "Getting Track features...";
trackFeaturesIds = TrackFeatures::find(session);
@@ -137,7 +137,7 @@ FeaturesEngine::loadFromTraining(const TrainSettings& trainSettings, const Progr
if (_loadCancelled)
return;
auto transaction {session.createSharedTransaction()};
auto transaction {session.createReadTransaction()};
TrackFeatures::pointer trackFeatures {TrackFeatures::find(session, trackFeaturesId)};
if (!trackFeatures)
@@ -228,7 +228,7 @@ FeaturesEngine::findSimilarTracksFromTrackList(TrackListId trackListId, std::siz
Session& session {_db.getTLSSession()};
auto transaction {session.createSharedTransaction()};
auto transaction {session.createReadTransaction()};
const TrackList::pointer trackList {TrackList::find(session, trackListId)};
if (trackList)
@@ -249,7 +249,7 @@ FeaturesEngine::findSimilarTracks(const std::vector<TrackId>& tracksIds, std::si
{
// Report only existing ids, as tracks may have been removed a long time ago (refreshing the SOM takes some time)
auto transaction {session.createSharedTransaction()};
auto transaction {session.createReadTransaction()};
similarTrackIds.erase(std::remove_if(std::begin(similarTrackIds), std::end(similarTrackIds),
[&](TrackId trackId)
@@ -271,7 +271,7 @@ FeaturesEngine::getSimilarReleases(ReleaseId releaseId, std::size_t maxCount) co
if (!similarReleaseIds.empty())
{
// Report only existing ids
auto transaction {session.createSharedTransaction()};
auto transaction {session.createReadTransaction()};
similarReleaseIds.erase(std::remove_if(std::begin(similarReleaseIds), std::end(similarReleaseIds),
[&](ReleaseId releaseId)
@@ -312,7 +312,7 @@ FeaturesEngine::getSimilarArtists(ArtistId artistId, EnumSet<TrackArtistLinkType
Session& session {_db.getTLSSession()};
{
// Report only existing ids
auto transaction {session.createSharedTransaction()};
auto transaction {session.createReadTransaction()};
res.erase(std::remove_if(std::begin(res), std::end(res),
[&](ArtistId artistId)
@@ -384,7 +384,7 @@ FeaturesEngine::load(const SOM::Network& network, const TrackPositions& trackPos
if (_loadCancelled)
return;
auto transaction {session.createSharedTransaction()};
auto transaction {session.createReadTransaction()};
const Track::pointer track {Track::find(session, trackId)};
if (!track)
@@ -80,7 +80,7 @@ namespace Recommendation::PlaylistGeneratorConstraint
ArtistContainer res;
Session& dbSession {_db.getTLSSession()};
auto transaction {dbSession.createSharedTransaction()};
auto transaction {dbSession.createReadTransaction()};
const Track::pointer track {Track::find(dbSession, trackId)};
if (!track)
@@ -61,7 +61,7 @@ namespace Recommendation::PlaylistGeneratorConstraint
using namespace Database;
Session& dbSession {_db.getTLSSession()};
auto transaction {dbSession.createSharedTransaction()};
auto transaction {dbSession.createReadTransaction()};
const Track::pointer track {Track::find(dbSession, trackId)};
if (!track)