YARN-4398. Remove unnecessary synchronization in RMStateStore. Contributed by Ning Ding

This commit is contained in:
Jian He 2015-12-02 11:07:18 -08:00
parent 53e3bf7e70
commit 6b9a5beb2b
3 changed files with 8 additions and 9 deletions

View File

@ -1121,6 +1121,8 @@ Release 2.7.3 - UNRELEASED
YARN-4380. TestResourceLocalizationService.testDownloadingResourcesOnContainerKill YARN-4380. TestResourceLocalizationService.testDownloadingResourcesOnContainerKill
fails intermittently. (Varun Saxena via ozawa) fails intermittently. (Varun Saxena via ozawa)
YARN-4398. Remove unnecessary synchronization in RMStateStore. (Ning Ding via jianhe)
Release 2.7.2 - UNRELEASED Release 2.7.2 - UNRELEASED
INCOMPATIBLE CHANGES INCOMPATIBLE CHANGES

View File

@ -64,7 +64,7 @@ public class AsyncDispatcher extends AbstractService implements Dispatcher {
// For drainEventsOnStop enabled only, block newly coming events into the // For drainEventsOnStop enabled only, block newly coming events into the
// queue while stopping. // queue while stopping.
private volatile boolean blockNewEvents = false; private volatile boolean blockNewEvents = false;
private EventHandler handlerInstance = null; private final EventHandler handlerInstance = new GenericEventHandler();
private Thread eventHandlingThread; private Thread eventHandlingThread;
protected final Map<Class<? extends Enum>, EventHandler> eventDispatchers; protected final Map<Class<? extends Enum>, EventHandler> eventDispatchers;
@ -224,9 +224,6 @@ public class AsyncDispatcher extends AbstractService implements Dispatcher {
@Override @Override
public EventHandler getEventHandler() { public EventHandler getEventHandler() {
if (handlerInstance == null) {
handlerInstance = new GenericEventHandler();
}
return handlerInstance; return handlerInstance;
} }

View File

@ -737,7 +737,7 @@ public abstract class RMStateStore extends AbstractService {
* RMAppStoredEvent will be sent on completion to notify the RMApp * RMAppStoredEvent will be sent on completion to notify the RMApp
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public synchronized void storeNewApplication(RMApp app) { public void storeNewApplication(RMApp app) {
ApplicationSubmissionContext context = app ApplicationSubmissionContext context = app
.getApplicationSubmissionContext(); .getApplicationSubmissionContext();
assert context instanceof ApplicationSubmissionContextPBImpl; assert context instanceof ApplicationSubmissionContextPBImpl;
@ -748,7 +748,7 @@ public abstract class RMStateStore extends AbstractService {
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public synchronized void updateApplicationState( public void updateApplicationState(
ApplicationStateData appState) { ApplicationStateData appState) {
dispatcher.getEventHandler().handle(new RMStateUpdateAppEvent(appState)); dispatcher.getEventHandler().handle(new RMStateUpdateAppEvent(appState));
} }
@ -780,7 +780,7 @@ public abstract class RMStateStore extends AbstractService {
* This does not block the dispatcher threads * This does not block the dispatcher threads
* RMAppAttemptStoredEvent will be sent on completion to notify the RMAppAttempt * 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); Credentials credentials = getCredentialsFromAppAttempt(appAttempt);
AggregateAppResourceUsage resUsage = AggregateAppResourceUsage resUsage =
@ -798,7 +798,7 @@ public abstract class RMStateStore extends AbstractService {
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public synchronized void updateApplicationAttemptState( public void updateApplicationAttemptState(
ApplicationAttemptStateData attemptState) { ApplicationAttemptStateData attemptState) {
dispatcher.getEventHandler().handle( dispatcher.getEventHandler().handle(
new RMStateUpdateAppAttemptEvent(attemptState)); new RMStateUpdateAppAttemptEvent(attemptState));
@ -963,7 +963,7 @@ public abstract class RMStateStore extends AbstractService {
* There is no notification of completion for this operation. * There is no notification of completion for this operation.
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public synchronized void removeApplication(RMApp app) { public void removeApplication(RMApp app) {
ApplicationStateData appState = ApplicationStateData appState =
ApplicationStateData.newInstance(app.getSubmitTime(), ApplicationStateData.newInstance(app.getSubmitTime(),
app.getStartTime(), app.getApplicationSubmissionContext(), app.getStartTime(), app.getApplicationSubmissionContext(),