diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index 8323d3b3f66..e242c54d75c 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -1069,6 +1069,8 @@ Release 2.7.3 - UNRELEASED YARN-4380. TestResourceLocalizationService.testDownloadingResourcesOnContainerKill fails intermittently. (Varun Saxena via ozawa) + YARN-4398. Remove unnecessary synchronization in RMStateStore. (Ning Ding via jianhe) + Release 2.7.2 - UNRELEASED INCOMPATIBLE CHANGES diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/event/AsyncDispatcher.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/event/AsyncDispatcher.java index 6cdfaad839b..403381ba8b5 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/event/AsyncDispatcher.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/event/AsyncDispatcher.java @@ -64,7 +64,7 @@ public class AsyncDispatcher extends AbstractService implements Dispatcher { // For drainEventsOnStop enabled only, block newly coming events into the // queue while stopping. private volatile boolean blockNewEvents = false; - private EventHandler handlerInstance = null; + private final EventHandler handlerInstance = new GenericEventHandler(); private Thread eventHandlingThread; protected final Map, EventHandler> eventDispatchers; @@ -224,9 +224,6 @@ public class AsyncDispatcher extends AbstractService implements Dispatcher { @Override public EventHandler getEventHandler() { - if (handlerInstance == null) { - handlerInstance = new GenericEventHandler(); - } return handlerInstance; } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateStore.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateStore.java index bced5b80873..ec42cbe3c60 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateStore.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/recovery/RMStateStore.java @@ -737,7 +737,7 @@ public abstract class RMStateStore extends AbstractService { * RMAppStoredEvent will be sent on completion to notify the RMApp */ @SuppressWarnings("unchecked") - public synchronized void storeNewApplication(RMApp app) { + public void storeNewApplication(RMApp app) { ApplicationSubmissionContext context = app .getApplicationSubmissionContext(); assert context instanceof ApplicationSubmissionContextPBImpl; @@ -748,7 +748,7 @@ public abstract class RMStateStore extends AbstractService { } @SuppressWarnings("unchecked") - public synchronized void updateApplicationState( + public void updateApplicationState( ApplicationStateData appState) { dispatcher.getEventHandler().handle(new RMStateUpdateAppEvent(appState)); } @@ -780,7 +780,7 @@ public abstract class RMStateStore extends AbstractService { * This does not block the dispatcher threads * RMAppAttemptStoredEvent will be sent on completion to notify the RMAppAttempt */ - public synchronized void storeNewApplicationAttempt(RMAppAttempt appAttempt) { + public void storeNewApplicationAttempt(RMAppAttempt appAttempt) { Credentials credentials = getCredentialsFromAppAttempt(appAttempt); AggregateAppResourceUsage resUsage = @@ -798,7 +798,7 @@ public abstract class RMStateStore extends AbstractService { } @SuppressWarnings("unchecked") - public synchronized void updateApplicationAttemptState( + public void updateApplicationAttemptState( ApplicationAttemptStateData attemptState) { dispatcher.getEventHandler().handle( new RMStateUpdateAppAttemptEvent(attemptState)); @@ -963,7 +963,7 @@ public abstract class RMStateStore extends AbstractService { * There is no notification of completion for this operation. */ @SuppressWarnings("unchecked") - public synchronized void removeApplication(RMApp app) { + public void removeApplication(RMApp app) { ApplicationStateData appState = ApplicationStateData.newInstance(app.getSubmitTime(), app.getStartTime(), app.getApplicationSubmissionContext(),