Reduced exclusive lock durations
This commit is contained in:
@@ -42,7 +42,7 @@ dumpTrackCovers(Database::Session& session, Image::ImageSize width)
|
||||
|
||||
RangeResults<Database::TrackId> trackIds;
|
||||
{
|
||||
auto transaction {session.createSharedTransaction()};
|
||||
auto transaction {session.createReadTransaction()};
|
||||
trackIds = Database::Track::findIds(session, Database::Track::FindParameters {});
|
||||
}
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@ namespace
|
||||
|
||||
while(remainingCount > 0)
|
||||
{
|
||||
auto transaction{ context.session.createUniqueTransaction() };
|
||||
auto transaction{ context.session.createWriteTransaction() };
|
||||
std::cout << "Generating album #" << params.releaseCount - remainingCount << " / " << params.releaseCount << std::endl;
|
||||
|
||||
for (std::size_t i{}; i < params.releaseCountPerBatch && remainingCount-- > 0; ++i)
|
||||
@@ -126,7 +126,7 @@ namespace
|
||||
|
||||
void prepareContext(const GeneratorParameters& params, GenerationContext& context)
|
||||
{
|
||||
auto transaction{ context.session.createUniqueTransaction() };
|
||||
auto transaction{ context.session.createWriteTransaction() };
|
||||
|
||||
// create some random genres/moods
|
||||
{
|
||||
|
||||
@@ -42,7 +42,7 @@ static void dumpTracksRecommendation(Session session, Recommendation::IRecommend
|
||||
{
|
||||
const RangeResults<TrackId> trackIds{ [&]
|
||||
{
|
||||
auto transaction {session.createSharedTransaction()};
|
||||
auto transaction {session.createReadTransaction()};
|
||||
return Track::findIds(session, Track::FindParameters{});
|
||||
}() };
|
||||
|
||||
@@ -52,7 +52,7 @@ static void dumpTracksRecommendation(Session session, Recommendation::IRecommend
|
||||
auto trackToString = [&](const TrackId trackId)
|
||||
{
|
||||
std::string res;
|
||||
auto transaction{ session.createSharedTransaction() };
|
||||
auto transaction{ session.createReadTransaction() };
|
||||
const Track::pointer track{ Track::find(session, trackId) };
|
||||
|
||||
res += track->getName();
|
||||
@@ -76,7 +76,7 @@ static void dumpReleasesRecommendation(Session session, Recommendation::IRecomme
|
||||
{
|
||||
const RangeResults<ReleaseId> releaseIds{ std::invoke([&]
|
||||
{
|
||||
auto transaction {session.createSharedTransaction()};
|
||||
auto transaction {session.createReadTransaction()};
|
||||
return Release::findIds(session, Release::FindParameters {});
|
||||
}) };
|
||||
|
||||
@@ -85,7 +85,7 @@ static void dumpReleasesRecommendation(Session session, Recommendation::IRecomme
|
||||
{
|
||||
auto releaseToString = [&](ReleaseId releaseId) -> std::string
|
||||
{
|
||||
auto transaction{ session.createSharedTransaction() };
|
||||
auto transaction{ session.createReadTransaction() };
|
||||
|
||||
Release::pointer release{ Release::find(session, releaseId) };
|
||||
return release->getName();
|
||||
@@ -101,7 +101,7 @@ static void dumpArtistsRecommendation(Session session, Recommendation::IRecommen
|
||||
{
|
||||
const RangeResults<ArtistId> artistIds = std::invoke([&]()
|
||||
{
|
||||
auto transaction{ session.createSharedTransaction() };
|
||||
auto transaction{ session.createReadTransaction() };
|
||||
return Artist::findIds(session, Artist::FindParameters{});
|
||||
});
|
||||
|
||||
@@ -110,7 +110,7 @@ static void dumpArtistsRecommendation(Session session, Recommendation::IRecommen
|
||||
{
|
||||
auto artistToString = [&](ArtistId artistId)
|
||||
{
|
||||
auto transaction{ session.createSharedTransaction() };
|
||||
auto transaction{ session.createReadTransaction() };
|
||||
|
||||
Artist::pointer artist{ Artist::find(session, artistId) };
|
||||
return artist->getName();
|
||||
|
||||
@@ -170,7 +170,7 @@ constructFeaturesCache(Database::Session& session, const FeatureSettingsMap& fea
|
||||
std::transform(std::cbegin(featureSettings), std::cend(featureSettings), std::inserter(names, std::begin(names)),
|
||||
[](const auto& itFeature) { return itFeature.first; });
|
||||
|
||||
auto transaction {session.createSharedTransaction()};
|
||||
auto transaction {session.createReadTransaction()};
|
||||
|
||||
for (auto trackId : Database::Track::getAllIdsWithFeatures(session))
|
||||
{
|
||||
@@ -225,7 +225,7 @@ std::string
|
||||
trackToString(Database::Session& session, Database::IdType trackId)
|
||||
{
|
||||
std::string res;
|
||||
auto transaction {session.createSharedTransaction()};
|
||||
auto transaction {session.createReadTransaction()};
|
||||
Database::Track::pointer track {Database::Track::getById(session, trackId)};
|
||||
|
||||
res += track->getName();
|
||||
@@ -245,7 +245,7 @@ computeTrackScore(Database::Session& session, Database::IdType track1Id, Databas
|
||||
{
|
||||
SimilarityScore score {};
|
||||
|
||||
auto transaction {session.createSharedTransaction()};
|
||||
auto transaction {session.createReadTransaction()};
|
||||
|
||||
auto track1 {Database::Track::getById(session, track1Id)};
|
||||
auto track2 {Database::Track::getById(session, track2Id)};
|
||||
@@ -294,7 +294,7 @@ computeSimilarityScore(Database::Session& session, FeaturesSearcher::TrainSettin
|
||||
|
||||
const std::vector<Database::IdType> trackIds = std::invoke([&]()
|
||||
{
|
||||
auto transaction {session.createSharedTransaction()};
|
||||
auto transaction {session.createReadTransaction()};
|
||||
return Database::Track::getAllIdsWithFeatures(session);
|
||||
});
|
||||
|
||||
@@ -328,7 +328,7 @@ printBadlyClassifiedTracks(Database::Session& session, FeaturesSearcher::TrainSe
|
||||
|
||||
const std::vector<Database::IdType> trackIds = std::invoke([&]()
|
||||
{
|
||||
auto transaction {session.createSharedTransaction()};
|
||||
auto transaction {session.createReadTransaction()};
|
||||
return Database::Track::getAllIdsWithFeatures(session);
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user