Permalink
Comparing changes
Open a pull request
- 2 commits
- 13 files changed
- 0 commit comments
- 1 contributor
Commits on Mar 24, 2019
Commits on Apr 14, 2019
[WFCORE-3185] Run parallel boot tasks in coarser grained chunks
Unified
Split
Showing
with
431 additions
and 111 deletions.
- +12 −1 controller/src/main/java/org/jboss/as/controller/AbstractControllerService.java
- +10 −3 controller/src/main/java/org/jboss/as/controller/ModelControllerImpl.java
- +147 −43 controller/src/main/java/org/jboss/as/controller/ParallelBootOperationStepHandler.java
- +1 −1 controller/src/main/java/org/jboss/as/controller/extension/ExtensionAddHandler.java
- +76 −0 controller/src/main/java/org/jboss/as/controller/extension/ExtensionRegistry.java
- +71 −23 controller/src/main/java/org/jboss/as/controller/extension/ParallelExtensionAddHandler.java
- +9 −8 controller/src/main/java/org/jboss/as/controller/logging/ControllerLogger.java
- +78 −26 controller/src/main/java/org/jboss/as/controller/parsing/DeferredExtensionContext.java
- +2 −2 controller/src/main/java/org/jboss/as/controller/parsing/ExtensionXml.java
- +2 −1 host-controller/src/main/java/org/jboss/as/domain/controller/resources/DomainRootDefinition.java
- +8 −0 host-controller/src/main/java/org/jboss/as/host/controller/DomainModelControllerService.java
- +2 −1 host-controller/src/main/java/org/jboss/as/host/controller/model/host/HostResourceDefinition.java
- +13 −2 server/src/main/java/org/jboss/as/server/ServerService.java
| @@ -334,7 +334,10 @@ public void start(final StartContext context) throws StartException { | ||
| rootResourceRegistration, | ||
| new ContainerStateMonitor(container, getStabilityMonitor()), | ||
| configurationPersister, processType, runningModeControl, prepareStep, | ||
| processState, executorService, expressionResolver, authorizer, securityIdentitySupplier, auditLogger, notificationSupport, | ||
| processState, executorService, | ||
| getMaxParallelBootExtensionTasks(), | ||
| getMaxParallelBootSubsystemTasks(), | ||
| expressionResolver, authorizer, securityIdentitySupplier, auditLogger, notificationSupport, | ||
| bootErrorCollector, createExtraValidationStepHandler(), capabilityRegistry, getPartialModelIndicator(), | ||
| injectedInstabilityListener.getOptionalValue()); | ||
|
|
||
| @@ -395,6 +398,14 @@ public ServiceTarget getServiceTarget() { | ||
| bootThread.start(); | ||
| } | ||
|
|
||
| protected int getMaxParallelBootExtensionTasks() { | ||
| return 1; | ||
| } | ||
|
|
||
| protected int getMaxParallelBootSubsystemTasks() { | ||
| return 1; | ||
| } | ||
|
|
||
| /** | ||
| * Gets whether this controller service should install a {@link ModelControllerClientFactory} | ||
| * and a {@link org.jboss.as.controller.notification.NotificationHandlerRegistry} | ||
| @@ -125,6 +125,8 @@ | ||
| private final OperationStepHandler prepareStep; | ||
| private final ControlledProcessState processState; | ||
| private final ExecutorService executorService; | ||
| private final int maxParallelBootExtensionTasks; | ||
| private final int maxParallelBootSubsystemTasks; | ||
| private final ExpressionResolver expressionResolver; | ||
| private final Authorizer authorizer; | ||
| private final Supplier<SecurityIdentity> securityIdentitySupplier; | ||
| @@ -153,6 +155,8 @@ | ||
| final ContainerStateMonitor stateMonitor, final ConfigurationPersister persister, | ||
| final ProcessType processType, final RunningModeControl runningModeControl, | ||
| final OperationStepHandler prepareStep, final ControlledProcessState processState, final ExecutorService executorService, | ||
| final int maxParallelBootExtensionTasks, | ||
| final int maxParallelBootSubsystemTasks, | ||
| final ExpressionResolver expressionResolver, final Authorizer authorizer, final Supplier<SecurityIdentity> securityIdentitySupplier, | ||
| final ManagedAuditLogger auditLogger, NotificationSupport notificationSupport, | ||
| final BootErrorCollector bootErrorCollector, final OperationStepHandler extraValidationStepHandler, | ||
| @@ -186,6 +190,8 @@ | ||
| this.processState = processState; | ||
| this.serviceTarget.addMonitor(stateMonitor.getStabilityMonitor()); | ||
| this.executorService = executorService; | ||
| this.maxParallelBootExtensionTasks = maxParallelBootExtensionTasks; | ||
| this.maxParallelBootSubsystemTasks = maxParallelBootSubsystemTasks; | ||
| assert expressionResolver != null; | ||
| this.expressionResolver = expressionResolver; | ||
| assert securityIdentitySupplier != null; | ||
| @@ -600,9 +606,10 @@ private BootOperations organizeBootOperations(List<ModelNode> bootList, final in | ||
| final ManagementResourceRegistration rootRegistration = managementModel.get().getRootResourceRegistration(); | ||
| final MutableRootResourceRegistrationProvider parallellBRRRProvider = parallelBootRootResourceRegistrationProvider != null ? | ||
| parallelBootRootResourceRegistrationProvider : getMutableRootResourceRegistrationProvider(); | ||
| ParallelExtensionAddHandler parallelExtensionAddHandler = executorService == null ? null : new ParallelExtensionAddHandler(executorService, parallellBRRRProvider); | ||
| ParallelBootOperationStepHandler parallelSubsystemHandler = (executorService != null && processType.isServer() && runningModeControl.getRunningMode() == RunningMode.NORMAL) | ||
| ? new ParallelBootOperationStepHandler(executorService, rootRegistration, processState, this, lockPermit, extraValidationStepHandler) : null; | ||
| ParallelExtensionAddHandler parallelExtensionAddHandler = executorService == null || maxParallelBootExtensionTasks < 2 ? null : new ParallelExtensionAddHandler(executorService, maxParallelBootExtensionTasks, parallellBRRRProvider); | ||
| ParallelBootOperationStepHandler parallelSubsystemHandler = (executorService != null && maxParallelBootSubsystemTasks > 1 && processType.isServer() && runningModeControl.getRunningMode() == RunningMode.NORMAL) | ||
| ? new ParallelBootOperationStepHandler(executorService, maxParallelBootSubsystemTasks, rootRegistration, processState, this, lockPermit, extraValidationStepHandler) | ||
| : null; | ||
| boolean registeredParallelSubsystemHandler = false; | ||
| int subsystemIndex = 0; | ||
| for (ModelNode bootOp : bootList) { | ||
Oops, something went wrong.