Reduced exclusive lock durations
This commit is contained in:
@@ -60,7 +60,7 @@ namespace Feedback
|
||||
std::optional<Database::FeedbackBackend> feedbackBackend;
|
||||
|
||||
Session& session{ _db.getTLSSession() };
|
||||
auto transaction{ session.createSharedTransaction() };
|
||||
auto transaction{ session.createReadTransaction() };
|
||||
if (const User::pointer user{ User::find(session, userId) })
|
||||
feedbackBackend = user->getFeedbackBackend();
|
||||
|
||||
@@ -101,7 +101,7 @@ namespace Feedback
|
||||
searchParams.setRange(params.range);
|
||||
|
||||
Session& session{ _db.getTLSSession() };
|
||||
auto transaction{ session.createSharedTransaction() };
|
||||
auto transaction{ session.createReadTransaction() };
|
||||
|
||||
return Artist::findIds(session, searchParams);
|
||||
}
|
||||
@@ -139,7 +139,7 @@ namespace Feedback
|
||||
searchParams.setRange(params.range);
|
||||
|
||||
Session& session{ _db.getTLSSession() };
|
||||
auto transaction{ session.createSharedTransaction() };
|
||||
auto transaction{ session.createReadTransaction() };
|
||||
|
||||
return Release::findIds(session, searchParams);
|
||||
}
|
||||
@@ -177,7 +177,7 @@ namespace Feedback
|
||||
searchParams.setRange(params.range);
|
||||
|
||||
Session& session{ _db.getTLSSession() };
|
||||
auto transaction{ session.createSharedTransaction() };
|
||||
auto transaction{ session.createReadTransaction() };
|
||||
|
||||
return Track::findIds(session, searchParams);
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace Feedback
|
||||
typename StarredObjType::IdType starredObjId;
|
||||
{
|
||||
Session& session{ _db.getTLSSession() };
|
||||
auto transaction{ session.createUniqueTransaction() };
|
||||
auto transaction{ session.createWriteTransaction() };
|
||||
|
||||
typename StarredObjType::pointer starredObj{ StarredObjType::find(session, objId, userId, *backend) };
|
||||
if (!starredObj)
|
||||
@@ -68,7 +68,7 @@ namespace Feedback
|
||||
typename StarredObjType::IdType starredObjId;
|
||||
{
|
||||
Session& session{ _db.getTLSSession() };
|
||||
auto transaction{ session.createSharedTransaction() };
|
||||
auto transaction{ session.createReadTransaction() };
|
||||
|
||||
typename StarredObjType::pointer starredObj{ StarredObjType::find(session, objId, userId, *backend) };
|
||||
if (!starredObj)
|
||||
@@ -83,7 +83,7 @@ namespace Feedback
|
||||
bool FeedbackService::isStarred(UserId userId, ObjIdType objId)
|
||||
{
|
||||
Session& session{ _db.getTLSSession() };
|
||||
auto transaction{ session.createSharedTransaction() };
|
||||
auto transaction{ session.createReadTransaction() };
|
||||
|
||||
typename StarredObjType::pointer starredObj{ StarredObjType::find(session, objId, userId) };
|
||||
return starredObj && (starredObj->getSyncState() != SyncState::PendingRemove);
|
||||
@@ -93,7 +93,7 @@ namespace Feedback
|
||||
Wt::WDateTime FeedbackService::getStarredDateTime(UserId userId, ObjIdType objId)
|
||||
{
|
||||
Session& session{ _db.getTLSSession() };
|
||||
auto transaction{ session.createSharedTransaction() };
|
||||
auto transaction{ session.createReadTransaction() };
|
||||
|
||||
typename StarredObjType::pointer starredObj{ StarredObjType::find(session, objId, userId) };
|
||||
if (starredObj && (starredObj->getSyncState() != SyncState::PendingRemove))
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace Feedback
|
||||
template <typename StarredObjType>
|
||||
void onStarred(Database::Session& session, typename StarredObjType::IdType id)
|
||||
{
|
||||
auto transaction{ session.createUniqueTransaction() };
|
||||
auto transaction{ session.createWriteTransaction() };
|
||||
|
||||
if (auto starredObj{ StarredObjType::find(session, id) })
|
||||
starredObj.modify()->setSyncState(Database::SyncState::Synchronized);
|
||||
@@ -41,7 +41,7 @@ namespace Feedback
|
||||
template <typename StarredObjType>
|
||||
void onUnstarred(Database::Session& session, typename StarredObjType::IdType id)
|
||||
{
|
||||
auto transaction{ session.createUniqueTransaction() };
|
||||
auto transaction{ session.createWriteTransaction() };
|
||||
|
||||
if (auto starredObj{ StarredObjType::find(session, id) })
|
||||
starredObj.remove();
|
||||
|
||||
@@ -77,7 +77,7 @@ namespace Feedback::ListenBrainz
|
||||
{
|
||||
Database::Session& session{ _db.getTLSSession() };
|
||||
|
||||
auto transaction{ session.createUniqueTransaction() };
|
||||
auto transaction{ session.createWriteTransaction() };
|
||||
|
||||
Database::StarredTrack::pointer starredTrack{ Database::StarredTrack::find(session, starredTrackId) };
|
||||
if (!starredTrack)
|
||||
@@ -151,7 +151,7 @@ namespace Feedback::ListenBrainz
|
||||
assert(_strand.running_in_this_thread());
|
||||
|
||||
Database::Session& session{ _db.getTLSSession() };
|
||||
auto transaction{ session.createUniqueTransaction() };
|
||||
auto transaction{ session.createWriteTransaction() };
|
||||
|
||||
Database::StarredTrack::pointer starredTrack{ Database::StarredTrack::find(session, starredTrackId) };
|
||||
if (!starredTrack)
|
||||
@@ -202,7 +202,7 @@ namespace Feedback::ListenBrainz
|
||||
{
|
||||
Database::Session& session {_db.getTLSSession()};
|
||||
|
||||
auto transaction {session.createSharedTransaction()};
|
||||
auto transaction {session.createReadTransaction()};
|
||||
|
||||
StarredTrack::FindParameters params;
|
||||
params.setFeedbackBackend(Database::FeedbackBackend::ListenBrainz, scrobblingState)
|
||||
@@ -277,7 +277,7 @@ namespace Feedback::ListenBrainz
|
||||
Database::RangeResults<Database::UserId> userIds;
|
||||
{
|
||||
Database::Session& session{ _db.getTLSSession() };
|
||||
auto transaction{ session.createSharedTransaction() };
|
||||
auto transaction{ session.createReadTransaction() };
|
||||
userIds = Database::User::find(_db.getTLSSession(), Database::User::FindParameters{}.setFeedbackBackend(Database::FeedbackBackend::ListenBrainz));
|
||||
}
|
||||
|
||||
@@ -437,7 +437,7 @@ namespace Feedback::ListenBrainz
|
||||
TrackId trackId;
|
||||
|
||||
{
|
||||
auto transaction{ session.createSharedTransaction() };
|
||||
auto transaction{ session.createReadTransaction() };
|
||||
const std::vector<Track::pointer> tracks{ Track::findByRecordingMBID(session, feedback.recordingMBID) };
|
||||
if (tracks.size() > 1)
|
||||
{
|
||||
@@ -463,7 +463,7 @@ namespace Feedback::ListenBrainz
|
||||
{
|
||||
LOG(DEBUG) << "Importing feedback '" << feedback << "'";
|
||||
|
||||
auto transaction{ session.createUniqueTransaction() };
|
||||
auto transaction{ session.createWriteTransaction() };
|
||||
|
||||
const Track::pointer track{ Track::find(session, trackId) };
|
||||
if (!track)
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace Feedback::ListenBrainz
|
||||
template <typename StarredObjType>
|
||||
void onStarred(Database::Session& session, typename StarredObjType::IdType id)
|
||||
{
|
||||
auto transaction{ session.createUniqueTransaction() };
|
||||
auto transaction{ session.createWriteTransaction() };
|
||||
|
||||
if (auto starredObj{ StarredObjType::find(session, id) })
|
||||
{
|
||||
@@ -49,7 +49,7 @@ namespace Feedback::ListenBrainz
|
||||
template <typename StarredObjType>
|
||||
void onUnstarred(Database::Session& session, typename StarredObjType::IdType id)
|
||||
{
|
||||
auto transaction{ session.createUniqueTransaction() };
|
||||
auto transaction{ session.createWriteTransaction() };
|
||||
|
||||
if (auto starredObj{ StarredObjType::find(session, id) })
|
||||
starredObj.remove();
|
||||
|
||||
@@ -29,7 +29,7 @@ namespace Feedback::ListenBrainz::Utils
|
||||
{
|
||||
std::optional<UUID> getListenBrainzToken(Database::Session& session, Database::UserId userId)
|
||||
{
|
||||
auto transaction{ session.createSharedTransaction() };
|
||||
auto transaction{ session.createReadTransaction() };
|
||||
|
||||
const Database::User::pointer user{ Database::User::find(session, userId) };
|
||||
if (!user)
|
||||
|
||||
Reference in New Issue
Block a user