Reduced exclusive lock durations
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user