Skip to content

Commit

Permalink
[AMORO-3346] Extract the implementation of OptimizerManager
Browse files Browse the repository at this point in the history
  • Loading branch information
mansonliwh committed Feb 6, 2025
1 parent 677e344 commit f6e0c92
Show file tree
Hide file tree
Showing 6 changed files with 511 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
import org.apache.amoro.server.persistence.HttpSessionHandlerFactory;
import org.apache.amoro.server.persistence.SqlSessionFactoryProvider;
import org.apache.amoro.server.resource.ContainerMetadata;
import org.apache.amoro.server.resource.DefaultOptimizerManager;
import org.apache.amoro.server.resource.OptimizerManager;
import org.apache.amoro.server.resource.ResourceContainers;
import org.apache.amoro.server.table.DefaultTableManager;
Expand Down Expand Up @@ -101,6 +102,7 @@ public class AmoroServiceContainer {
private TableManager tableManager;
private TableService tableService;
private DefaultOptimizingService optimizingService;
private DefaultOptimizerManager optimizerManager;
private TerminalManager terminalManager;
private Configurations serviceConfig;
private TServer tableManagementServer;
Expand Down Expand Up @@ -157,12 +159,13 @@ public void startService() throws Exception {
tableManager = new DefaultTableManager(serviceConfig, catalogManager);

tableService = new DefaultTableService(serviceConfig, catalogManager);
optimizerManager = new DefaultOptimizerManager(serviceConfig, catalogManager, tableManager);
optimizingService =
new DefaultOptimizingService(serviceConfig, catalogManager, tableManager, tableService);

LOG.info("Setting up AMS table executors...");
AsyncTableExecutors.getInstance().setup(tableService, serviceConfig);
addHandlerChain(optimizingService.getTableRuntimeHandler());
addHandlerChain(optimizerManager.getTableRuntimeHandler());
addHandlerChain(AsyncTableExecutors.getInstance().getDataExpiringExecutor());
addHandlerChain(AsyncTableExecutors.getInstance().getSnapshotsExpiringExecutor());
addHandlerChain(AsyncTableExecutors.getInstance().getOrphanFilesCleaningExecutor());
Expand Down Expand Up @@ -219,10 +222,11 @@ public void dispose() {
terminalManager.dispose();
terminalManager = null;
}
if (optimizingService != null) {
LOG.info("Stopping optimizing service...");
optimizingService.dispose();
optimizingService = null;

if (optimizerManager != null) {
LOG.info("Stopping optimizing manager...");
optimizerManager.dispose();
optimizerManager = null;
}

if (amsServiceMetrics != null) {
Expand Down Expand Up @@ -253,7 +257,7 @@ private void startThriftServer(TServer server, String threadName) {
private void initHttpService() {
DashboardServer dashboardServer =
new DashboardServer(
serviceConfig, catalogManager, tableManager, optimizingService, terminalManager);
serviceConfig, catalogManager, tableManager, optimizerManager, terminalManager);
RestCatalogService restCatalogService = new RestCatalogService(catalogManager, tableManager);

httpServer =
Expand Down Expand Up @@ -559,6 +563,6 @@ public CatalogManager getCatalogManager() {

@VisibleForTesting
public OptimizerManager getOptimizingService() {
return this.optimizingService;
return this.optimizerManager;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
import org.apache.amoro.exception.ForbiddenException;
import org.apache.amoro.exception.SignatureCheckException;
import org.apache.amoro.server.AmoroManagementConf;
import org.apache.amoro.server.DefaultOptimizingService;
import org.apache.amoro.server.RestCatalogService;
import org.apache.amoro.server.catalog.CatalogManager;
import org.apache.amoro.server.dashboard.controller.CatalogController;
Expand All @@ -51,6 +50,7 @@
import org.apache.amoro.server.dashboard.controller.VersionController;
import org.apache.amoro.server.dashboard.response.ErrorResponse;
import org.apache.amoro.server.dashboard.utils.ParamSignatureCalculator;
import org.apache.amoro.server.resource.OptimizerManager;
import org.apache.amoro.server.table.TableManager;
import org.apache.amoro.server.terminal.TerminalManager;
import org.apache.amoro.shade.guava32.com.google.common.base.Preconditions;
Expand Down Expand Up @@ -99,7 +99,7 @@ public DashboardServer(
Configurations serviceConfig,
CatalogManager catalogManager,
TableManager tableManager,
DefaultOptimizingService optimizerManager,
OptimizerManager optimizerManager,
TerminalManager terminalManager) {
PlatformFileManager platformFileManager = new PlatformFileManager();
this.catalogController = new CatalogController(catalogManager, platformFileManager);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@
import org.apache.amoro.resource.Resource;
import org.apache.amoro.resource.ResourceGroup;
import org.apache.amoro.resource.ResourceType;
import org.apache.amoro.server.DefaultOptimizingService;
import org.apache.amoro.server.dashboard.response.OkResponse;
import org.apache.amoro.server.resource.ContainerMetadata;
import org.apache.amoro.server.resource.OptimizerInstance;
import org.apache.amoro.server.resource.OptimizerManager;
import org.apache.amoro.server.resource.ResourceContainers;
import org.apache.amoro.shade.guava32.com.google.common.base.Preconditions;

Expand All @@ -36,9 +36,9 @@
/** The controller that handles optimizer requests. */
public class OptimizerController {

private final DefaultOptimizingService optimizerManager;
private final OptimizerManager optimizerManager;

public OptimizerController(DefaultOptimizingService optimizerManager) {
public OptimizerController(OptimizerManager optimizerManager) {
this.optimizerManager = optimizerManager;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,13 @@
import org.apache.amoro.resource.Resource;
import org.apache.amoro.resource.ResourceGroup;
import org.apache.amoro.resource.ResourceType;
import org.apache.amoro.server.DefaultOptimizingService;
import org.apache.amoro.server.dashboard.model.OptimizerInstanceInfo;
import org.apache.amoro.server.dashboard.model.OptimizerResourceInfo;
import org.apache.amoro.server.dashboard.model.TableOptimizingInfo;
import org.apache.amoro.server.dashboard.response.OkResponse;
import org.apache.amoro.server.dashboard.response.PageResult;
import org.apache.amoro.server.optimizing.OptimizingStatus;
import org.apache.amoro.server.resource.ContainerMetadata;
import org.apache.amoro.server.resource.OptimizerInstance;
import org.apache.amoro.server.resource.ResourceContainers;
import org.apache.amoro.server.resource.*;
import org.apache.amoro.server.table.TableManager;
import org.apache.amoro.shade.guava32.com.google.common.base.Preconditions;
import org.apache.commons.lang3.tuple.Pair;
Expand All @@ -56,10 +53,9 @@ public class OptimizerGroupController {

private static final String ALL_GROUP = "all";
private final TableManager tableManager;
private final DefaultOptimizingService optimizerManager;
private final OptimizerManager optimizerManager;

public OptimizerGroupController(
TableManager tableManager, DefaultOptimizingService optimizerManager) {
public OptimizerGroupController(TableManager tableManager, OptimizerManager optimizerManager) {
this.tableManager = tableManager;
this.optimizerManager = optimizerManager;
}
Expand Down
Loading

0 comments on commit f6e0c92

Please sign in to comment.