From 9c2291057071ca8d44199c39b28d536801834399 Mon Sep 17 00:00:00 2001 From: Jian He Date: Wed, 2 Dec 2015 11:07:18 -0800 Subject: [PATCH] YARN-4398. Remove unnecessary synchronization in RMStateStore. Contributed by Ning Ding (cherry picked from commit 48cbde908319775b82ae30f262cca0503866e88e) Conflicts: hadoop-yarn-project/CHANGES.txt --- hadoop-yarn-project/CHANGES.txt | 2 ++ .../org/apache/hadoop/yarn/event/AsyncDispatcher.java | 5 +---- .../server/resourcemanager/recovery/RMStateStore.java | 10 +++++----- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index 1d2a618e15d..02dbf3dd71b 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -1099,6 +1099,8 @@ Release 2.7.3 - UNRELEASED YARN-4452. NPE when submit Unmanaged application. (Naganarasimha G R via junping_du) + 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(),