This commit is contained in:
Pascal Fischer
2024-04-25 15:17:57 +02:00
parent 8f8cfcbc20
commit e50ed290d9

View File

@@ -128,6 +128,12 @@ func (s *SqliteStore) AcquireGlobalLock() (unlock func()) {
} }
func (s *SqliteStore) AcquireAccountLock(accountID string) (unlock func()) { func (s *SqliteStore) AcquireAccountLock(accountID string) (unlock func()) {
startTime := time.Now()
defer func() {
duration := time.Since(startTime)
log.Debugf("AcquireAccountLock took %s", duration)
}()
log.Tracef("acquiring lock for account %s", accountID) log.Tracef("acquiring lock for account %s", accountID)
start := time.Now() start := time.Now()
@@ -144,6 +150,12 @@ func (s *SqliteStore) AcquireAccountLock(accountID string) (unlock func()) {
} }
func (s *SqliteStore) SaveAccount(account *Account) error { func (s *SqliteStore) SaveAccount(account *Account) error {
startTime := time.Now()
defer func() {
duration := time.Since(startTime)
log.Debugf("SaveAccount took %s", duration)
}()
start := time.Now() start := time.Now()
for _, key := range account.SetupKeys { for _, key := range account.SetupKeys {
@@ -268,10 +280,20 @@ func (s *SqliteStore) SavePeerStatus(accountID, peerID string, peerStatus nbpeer
duration := time.Since(startTime) duration := time.Since(startTime)
log.Debugf("SavePeerStatus took %s", duration) log.Debugf("SavePeerStatus took %s", duration)
}() }()
var peer nbpeer.Peer
log.Infof("saving peer status") result := s.db.First(&peer, "account_id = ? and id = ?", accountID, peerID)
s.db.Where("account_id = ? and id = ?", accountID, peerID).Update("status", peerStatus) if result.Error != nil {
return nil if errors.Is(result.Error, gorm.ErrRecordNotFound) {
return status.Errorf(status.NotFound, "peer %s not found", peerID)
}
log.Errorf("error when getting peer from the store: %s", result.Error)
return status.Errorf(status.Internal, "issue getting peer from store")
}
peer.Status = &peerStatus
return s.db.Save(peer).Error
} }
func (s *SqliteStore) SavePeerLocation(accountID string, peerWithLocation *nbpeer.Peer) error { func (s *SqliteStore) SavePeerLocation(accountID string, peerWithLocation *nbpeer.Peer) error {
@@ -375,6 +397,12 @@ func (s *SqliteStore) GetUserByTokenID(tokenID string) (*User, error) {
} }
func (s *SqliteStore) GetAllAccounts() (all []*Account) { func (s *SqliteStore) GetAllAccounts() (all []*Account) {
startTime := time.Now()
defer func() {
duration := time.Since(startTime)
log.Debugf("GetAllAccounts took %s", duration)
}()
var accounts []Account var accounts []Account
result := s.db.Find(&accounts) result := s.db.Find(&accounts)
if result.Error != nil { if result.Error != nil {
@@ -464,6 +492,12 @@ func (s *SqliteStore) GetAccount(accountID string) (*Account, error) {
} }
func (s *SqliteStore) GetAccountByUser(userID string) (*Account, error) { func (s *SqliteStore) GetAccountByUser(userID string) (*Account, error) {
startTime := time.Now()
defer func() {
duration := time.Since(startTime)
log.Debugf("GetAccountByUser took %s", duration)
}()
var user User var user User
result := s.db.Select("account_id").First(&user, "id = ?", userID) result := s.db.Select("account_id").First(&user, "id = ?", userID)
if result.Error != nil { if result.Error != nil {
@@ -482,6 +516,11 @@ func (s *SqliteStore) GetAccountByUser(userID string) (*Account, error) {
} }
func (s *SqliteStore) GetAccountByPeerID(peerID string) (*Account, error) { func (s *SqliteStore) GetAccountByPeerID(peerID string) (*Account, error) {
startTime := time.Now()
defer func() {
duration := time.Since(startTime)
log.Debugf("GetAccountByPeerID took %s", duration)
}()
var peer nbpeer.Peer var peer nbpeer.Peer
result := s.db.Select("account_id").First(&peer, "id = ?", peerID) result := s.db.Select("account_id").First(&peer, "id = ?", peerID)
if result.Error != nil { if result.Error != nil {
@@ -500,6 +539,12 @@ func (s *SqliteStore) GetAccountByPeerID(peerID string) (*Account, error) {
} }
func (s *SqliteStore) GetAccountByPeerPubKey(peerKey string) (*Account, error) { func (s *SqliteStore) GetAccountByPeerPubKey(peerKey string) (*Account, error) {
startTime := time.Now()
defer func() {
duration := time.Since(startTime)
log.Debugf("GetAccountByPubKey took %s", duration)
}()
var peer nbpeer.Peer var peer nbpeer.Peer
result := s.db.Select("account_id").First(&peer, "key = ?", peerKey) result := s.db.Select("account_id").First(&peer, "key = ?", peerKey)
@@ -520,6 +565,12 @@ func (s *SqliteStore) GetAccountByPeerPubKey(peerKey string) (*Account, error) {
// SaveUserLastLogin stores the last login time for a user in DB. // SaveUserLastLogin stores the last login time for a user in DB.
func (s *SqliteStore) SaveUserLastLogin(accountID, userID string, lastLogin time.Time) error { func (s *SqliteStore) SaveUserLastLogin(accountID, userID string, lastLogin time.Time) error {
startTime := time.Now()
defer func() {
duration := time.Since(startTime)
log.Debugf("SaveUserLastLogin took %s", duration)
}()
var user User var user User
result := s.db.First(&user, "account_id = ? and id = ?", accountID, userID) result := s.db.First(&user, "account_id = ? and id = ?", accountID, userID)