Alexander Kolbasov created SENTRY-1501:

             Summary: SentryStore shouldn't synchronize openTransaction() and 
                 Key: SENTRY-1501
             Project: Sentry
          Issue Type: Improvement
          Components: Sentry
    Affects Versions: 1.7.0, sentry-ha-redesign
            Reporter: Alexander Kolbasov

SentryStore.openTransaction() is synchronized for no reason - the peristence 
manager factory is thread-safe. 

The synchronization here doesn't make any sense at all:

   * Synchronized due to sequence id generation
  public synchronized CommitContext commitUpdateTransaction(PersistenceManager 
pm) {
    return new CommitContext(SERVER_UUID, incrementGetSequenceId());

   * Increments commitSequenceId which should not be modified outside
   * this method.
   * @return sequence id
  private synchronized long incrementGetSequenceId() {
    return ++commitSequenceId;

Note that incrementGetSequenceId() is synchronized so there is no need to 
synchronize commitUpdateTransaction(). More over, there is no need to 
synchronize incrementGetSequenceId(), it can just use atomic for the index. And 
I think that handling of this atomic should be moved to the CommitContext 

This message was sent by Atlassian JIRA

Reply via email to