You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@sentry.apache.org by "Alexander Kolbasov (JIRA)" <ji...@apache.org> on 2016/11/14 21:28:00 UTC

[jira] [Resolved] (SENTRY-1501) SentryStore shouldn't synchronize openTransaction() and commitUpdateTransaction()

     [ https://issues.apache.org/jira/browse/SENTRY-1501?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexander Kolbasov resolved SENTRY-1501.
----------------------------------------
       Resolution: Fixed
    Fix Version/s: sentry-ha-redesign
                   1.8.0

This is fixed by SENTRY-1422 and SENTRY-1512

> SentryStore shouldn't synchronize openTransaction() and commitUpdateTransaction()
> ---------------------------------------------------------------------------------
>
>                 Key: SENTRY-1501
>                 URL: https://issues.apache.org/jira/browse/SENTRY-1501
>             Project: Sentry
>          Issue Type: Improvement
>          Components: Sentry
>    Affects Versions: 1.7.0, sentry-ha-redesign
>            Reporter: Alexander Kolbasov
>            Assignee: Alexander Kolbasov
>             Fix For: 1.8.0, sentry-ha-redesign
>
>
> SentryStore.openTransaction() is synchronized for no reason - the peristence manager factory is thread-safe. 
> The synchronization here doesn't make any sense at all:
> {code}
>   /**
>    * Synchronized due to sequence id generation
>    */
>   public synchronized CommitContext commitUpdateTransaction(PersistenceManager pm) {
>     commitTransaction(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;
>   }
> {code}
> 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 instead.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)