Search in sources :

Example 1 with WorkerMap

use of io.mantisrx.runtime.WorkerMap in project mantis by Netflix.

the class LocalJobExecutorNetworked method execute.

@SuppressWarnings({ "rawtypes", "unchecked" })
public static void execute(Job job, SchedulingInfo schedulingInfo, Parameter... parameters) throws IllegalMantisJobException {
    // validate job
    try {
        new ValidateJob(job).execute();
    } catch (CommandException e) {
        throw new IllegalMantisJobException(e);
    }
    // execute job
    List<StageConfig> stages = job.getStages();
    final SourceHolder source = job.getSource();
    final SinkHolder sink = job.getSink();
    final PortSelector portSelector = new PortSelectorInRange(8000, 9000);
    // register netty metrics
    RxNetty.useMetricListenersFactory(new MantisNettyEventsListenerFactory());
    // start our metrics server
    MetricsServer metricsServer = new MetricsServer(portSelector.acquirePort(), 1, Collections.EMPTY_MAP);
    metricsServer.start();
    Lifecycle lifecycle = job.getLifecycle();
    lifecycle.startup();
    // create job context
    Map parameterDefinitions = job.getParameterDefinitions();
    final String user = Optional.ofNullable(System.getenv("USER")).orElse("userUnknown");
    String jobId = String.format("localJob-%s-%d", user, (int) (Math.random() * 10000));
    logger.info("jobID {}", jobId);
    final ServiceLocator serviceLocator = lifecycle.getServiceLocator();
    int numInstances = schedulingInfo.forStage(1).getNumberOfInstances();
    BehaviorSubject<Integer> workersInStageOneObservable = BehaviorSubject.create(numInstances);
    BehaviorSubject<WorkerMap> workerMapObservable = BehaviorSubject.create();
    if (stages.size() == 1) {
        // single stage job
        final StageConfig stage = stages.get(0);
        // use latch to wait for all instances to complete
        final CountDownLatch waitUntilAllCompleted = new CountDownLatch(numInstances);
        Action0 countDownLatchOnComplete = new Action0() {

            @Override
            public void call() {
                waitUntilAllCompleted.countDown();
            }
        };
        Action0 nullOnCompleted = new Action0() {

            @Override
            public void call() {
            }
        };
        Action1<Throwable> nullOnError = new Action1<Throwable>() {

            @Override
            public void call(Throwable t) {
            }
        };
        Map<Integer, List<WorkerInfo>> workerInfoMap = new HashMap<>();
        List<WorkerInfo> workerInfoList = new ArrayList<>();
        // run for num of instances
        for (int i = 0; i < numInstances; i++) {
            WorkerPorts workerPorts = new WorkerPorts(portSelector.acquirePort(), portSelector.acquirePort(), portSelector.acquirePort(), portSelector.acquirePort(), portSelector.acquirePort());
            WorkerInfo workerInfo = new WorkerInfo(jobId, jobId, 1, i, i + 1, MantisJobDurationType.Perpetual, "localhost", workerPorts);
            workerInfoList.add(workerInfo);
            Context context = new Context(ParameterUtils.createContextParameters(parameterDefinitions, parameters), lifecycle.getServiceLocator(), // new WorkerInfo(jobId, jobId, 1, i, i, MantisJobDurationType.Perpetual, "localhost", new ArrayList<>(),-1,-1),
            workerInfo, MetricsRegistry.getInstance(), () -> {
                System.exit(0);
            }, workerMapObservable);
            // workers for stage 1
            workerInfoMap.put(1, workerInfoList);
            workerMapObservable.onNext(new WorkerMap(workerInfoMap));
            StageExecutors.executeSingleStageJob(source, stage, sink, () -> workerInfo.getWorkerPorts().getSinkPort(), new RxMetrics(), context, countDownLatchOnComplete, i, workersInStageOneObservable, null, null, nullOnCompleted, nullOnError);
        }
        // wait for all instances to complete
        try {
            waitUntilAllCompleted.await();
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
    } else {
        // multi-stage job
        int workerNumber = 0;
        // start source stages
        StageConfig currentStage = stages.get(0);
        StageConfig previousStage = null;
        StageSchedulingInfo currentStageScalingInfo = schedulingInfo.forStage(1);
        StageSchedulingInfo nextStageScalingInfo = schedulingInfo.forStage(2);
        // num ports
        int[] previousPorts = new int[currentStageScalingInfo.getNumberOfInstances()];
        Map<Integer, List<WorkerInfo>> workerInfoMap = new HashMap<>();
        List<WorkerInfo> workerInfoList = new ArrayList<>();
        for (int i = 0; i < currentStageScalingInfo.getNumberOfInstances(); i++) {
            WorkerPorts workerPorts = new WorkerPorts(portSelector.acquirePort(), portSelector.acquirePort(), portSelector.acquirePort(), portSelector.acquirePort(), portSelector.acquirePort());
            WorkerInfo workerInfo = new WorkerInfo(jobId, jobId, 1, i, i + 1, MantisJobDurationType.Perpetual, "localhost", workerPorts);
            workerInfoList.add(workerInfo);
            // int sourcePort = portSelector.acquirePort();
            int sourcePort = workerInfo.getWorkerPorts().getSinkPort();
            previousPorts[i] = sourcePort;
            Context context = new Context(ParameterUtils.createContextParameters(parameterDefinitions, parameters), serviceLocator, workerInfo, MetricsRegistry.getInstance(), nullAction, workerMapObservable);
            startSource(i, sourcePort, nextStageScalingInfo.getNumberOfInstances(), job.getSource(), currentStage, context, workersInStageOneObservable);
        }
        // workers for stage 1
        workerInfoMap.put(1, workerInfoList);
        workerMapObservable.onNext(new WorkerMap(workerInfoMap));
        // start intermediate stages, all but last stage
        for (int i = 1; i < stages.size() - 1; i++) {
            previousStage = currentStage;
            StageSchedulingInfo previousStageScalingInfo = schedulingInfo.forStage(i);
            // stages indexed starting at 1
            currentStageScalingInfo = schedulingInfo.forStage(i + 1);
            currentStage = stages.get(i);
            // stages indexed starting at 1
            nextStageScalingInfo = schedulingInfo.forStage(i + 2);
            int[] currentPorts = new int[currentStageScalingInfo.getNumberOfInstances()];
            workerInfoList = new ArrayList<>();
            for (int j = 0; j < currentStageScalingInfo.getNumberOfInstances(); j++) {
                WorkerPorts workerPorts = new WorkerPorts(portSelector.acquirePort(), portSelector.acquirePort(), portSelector.acquirePort(), portSelector.acquirePort(), portSelector.acquirePort());
                WorkerInfo workerInfo = new WorkerInfo(jobId, jobId, i + 1, j, workerNumber++, MantisJobDurationType.Perpetual, "localhost", workerPorts);
                workerInfoList.add(workerInfo);
                // int port = portSelector.acquirePort();
                int port = workerInfo.getWorkerPorts().getSinkPort();
                currentPorts[j] = port;
                Context context = new Context(ParameterUtils.createContextParameters(parameterDefinitions, parameters), serviceLocator, workerInfo, MetricsRegistry.getInstance(), nullAction, workerMapObservable);
                startIntermediate(previousPorts, port, currentStage, context, j, nextStageScalingInfo.getNumberOfInstances(), i, previousStageScalingInfo.getNumberOfInstances());
            }
            // workers for current stage
            workerInfoMap.put(i + 1, workerInfoList);
            workerMapObservable.onNext(new WorkerMap(workerInfoMap));
            previousPorts = currentPorts;
        }
        // start sink stage
        StageSchedulingInfo previousStageScalingInfo = schedulingInfo.forStage(stages.size() - 1);
        previousStage = stages.get(stages.size() - 2);
        currentStage = stages.get(stages.size() - 1);
        currentStageScalingInfo = schedulingInfo.forStage(stages.size());
        numInstances = currentStageScalingInfo.getNumberOfInstances();
        // use latch to wait for all instances to complete
        final CountDownLatch waitUntilAllCompleted = new CountDownLatch(numInstances);
        Action0 countDownLatchOnTerminated = new Action0() {

            @Override
            public void call() {
                waitUntilAllCompleted.countDown();
            }
        };
        Action0 nullOnCompleted = new Action0() {

            @Override
            public void call() {
            }
        };
        Action1<Throwable> nullOnError = new Action1<Throwable>() {

            @Override
            public void call(Throwable t) {
            }
        };
        workerInfoList = new ArrayList<>();
        for (int i = 0; i < numInstances; i++) {
            WorkerPorts workerPorts = new WorkerPorts(portSelector.acquirePort(), portSelector.acquirePort(), portSelector.acquirePort(), portSelector.acquirePort(), portSelector.acquirePort());
            WorkerInfo workerInfo = new WorkerInfo(jobId, jobId, stages.size(), i, workerNumber++, MantisJobDurationType.Perpetual, "localhost", workerPorts);
            workerInfoList.add(workerInfo);
            Context context = new Context(ParameterUtils.createContextParameters(parameterDefinitions, parameters), serviceLocator, workerInfo, MetricsRegistry.getInstance(), nullAction, workerMapObservable);
            startSink(previousStage, previousPorts, currentStage, () -> workerInfo.getWorkerPorts().getSinkPort(), sink, context, countDownLatchOnTerminated, nullOnCompleted, nullOnError, stages.size(), i, previousStageScalingInfo.getNumberOfInstances());
        }
        workerInfoMap.put(stages.size(), workerInfoList);
        workerMapObservable.onNext(new WorkerMap(workerInfoMap));
        // wait for all instances to complete
        try {
            waitUntilAllCompleted.await();
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
    }
    lifecycle.shutdown();
    metricsServer.shutdown();
}
Also used : HashMap(java.util.HashMap) MetricsServer(io.mantisrx.common.metrics.MetricsServer) ArrayList(java.util.ArrayList) WorkerInfo(io.mantisrx.runtime.WorkerInfo) ValidateJob(io.mantisrx.runtime.command.ValidateJob) MantisNettyEventsListenerFactory(io.mantisrx.common.metrics.netty.MantisNettyEventsListenerFactory) RxMetrics(io.reactivex.mantis.remote.observable.RxMetrics) ArrayList(java.util.ArrayList) List(java.util.List) WorkerMap(io.mantisrx.runtime.WorkerMap) Context(io.mantisrx.runtime.Context) Action0(rx.functions.Action0) Action1(rx.functions.Action1) SourceHolder(io.mantisrx.runtime.SourceHolder) Lifecycle(io.mantisrx.runtime.lifecycle.Lifecycle) CommandException(io.mantisrx.runtime.command.CommandException) CountDownLatch(java.util.concurrent.CountDownLatch) StageConfig(io.mantisrx.runtime.StageConfig) Endpoint(io.mantisrx.common.network.Endpoint) ServiceLocator(io.mantisrx.runtime.lifecycle.ServiceLocator) WorkerPorts(io.mantisrx.common.WorkerPorts) SinkHolder(io.mantisrx.runtime.SinkHolder) StageSchedulingInfo(io.mantisrx.runtime.descriptor.StageSchedulingInfo) HashMap(java.util.HashMap) Map(java.util.Map) WorkerMap(io.mantisrx.runtime.WorkerMap)

Example 2 with WorkerMap

use of io.mantisrx.runtime.WorkerMap in project mantis by Netflix.

the class WorkerExecutionOperationsNetworkStageTest method convertJobSchedulingInfoToWorkerMapInvalidInputTest.

@Test
public void convertJobSchedulingInfoToWorkerMapInvalidInputTest() {
    String jobName = "convertJobSchedulingInfoToWorkerMapInvalidInputTest";
    String jobId = jobName + "-1";
    MantisJobDurationType durationType = MantisJobDurationType.Perpetual;
    WorkerAssignments workerAssignmentsStage1 = createWorkerAssignments(1, 2);
    WorkerAssignments workerAssignmentsStage2 = createWorkerAssignments(2, 4);
    Map<Integer, WorkerAssignments> workerAssignmentsMap = new HashMap<>();
    workerAssignmentsMap.put(1, workerAssignmentsStage1);
    workerAssignmentsMap.put(2, workerAssignmentsStage2);
    JobSchedulingInfo jobSchedulingInfo = new JobSchedulingInfo(jobId, workerAssignmentsMap);
    WorkerMap workerMap = WorkerExecutionOperationsNetworkStage.convertJobSchedulingInfoToWorkerMap(null, jobId, durationType, jobSchedulingInfo);
    assertTrue(workerMap.isEmpty());
    workerMap = WorkerExecutionOperationsNetworkStage.convertJobSchedulingInfoToWorkerMap(jobName, null, durationType, jobSchedulingInfo);
    assertTrue(workerMap.isEmpty());
    workerMap = WorkerExecutionOperationsNetworkStage.convertJobSchedulingInfoToWorkerMap(jobName, jobId, durationType, null);
    assertTrue(workerMap.isEmpty());
    jobSchedulingInfo = new JobSchedulingInfo(jobId, null);
    workerMap = WorkerExecutionOperationsNetworkStage.convertJobSchedulingInfoToWorkerMap(jobName, jobId, durationType, jobSchedulingInfo);
    assertTrue(workerMap.isEmpty());
    workerAssignmentsMap = new HashMap<>();
    workerAssignmentsMap.put(1, null);
    workerAssignmentsMap.put(2, workerAssignmentsStage2);
    jobSchedulingInfo = new JobSchedulingInfo(jobId, workerAssignmentsMap);
    workerMap = WorkerExecutionOperationsNetworkStage.convertJobSchedulingInfoToWorkerMap(jobName, jobId, durationType, jobSchedulingInfo);
    assertTrue(workerMap.isEmpty());
}
Also used : MantisJobDurationType(io.mantisrx.runtime.MantisJobDurationType) HashMap(java.util.HashMap) WorkerAssignments(io.mantisrx.server.core.WorkerAssignments) JobSchedulingInfo(io.mantisrx.server.core.JobSchedulingInfo) WorkerMap(io.mantisrx.runtime.WorkerMap) Test(org.junit.Test)

Example 3 with WorkerMap

use of io.mantisrx.runtime.WorkerMap in project mantis by Netflix.

the class WorkerExecutionOperationsNetworkStageTest method convertJobSchedulingInfoToWorkerMapTest.

@Test
public void convertJobSchedulingInfoToWorkerMapTest() {
    String jobName = "convertJobSchedulingInfoToWorkerMapTest";
    String jobId = jobName + "-1";
    MantisJobDurationType durationType = MantisJobDurationType.Perpetual;
    WorkerAssignments workerAssignmentsStage1 = createWorkerAssignments(1, 2);
    WorkerAssignments workerAssignmentsStage2 = createWorkerAssignments(2, 4);
    Map<Integer, WorkerAssignments> workerAssignmentsMap = new HashMap<>();
    workerAssignmentsMap.put(1, workerAssignmentsStage1);
    workerAssignmentsMap.put(2, workerAssignmentsStage2);
    JobSchedulingInfo jobSchedulingInfo = new JobSchedulingInfo(jobId, workerAssignmentsMap);
    WorkerMap workerMap = WorkerExecutionOperationsNetworkStage.convertJobSchedulingInfoToWorkerMap(jobName, jobId, durationType, jobSchedulingInfo);
    List<WorkerInfo> workersForStage1 = workerMap.getWorkersForStage(1);
    assertTrue(workersForStage1 != null);
    assertEquals(2, workersForStage1.size());
    for (int i = 0; i < workersForStage1.size(); i++) {
        WorkerInfo workerInfo = workersForStage1.get(i);
        assertEquals(i, workerInfo.getWorkerIndex());
        assertEquals(i + 1, workerInfo.getWorkerNumber());
        assertEquals(durationType, workerInfo.getDurationType());
        assertEquals(i, workerInfo.getWorkerPorts().getMetricsPort());
        assertEquals(i + 1, workerInfo.getWorkerPorts().getCustomPort());
    }
    List<WorkerInfo> workersForStage2 = workerMap.getWorkersForStage(2);
    assertTrue(workersForStage2 != null);
    assertEquals(4, workersForStage2.size());
    for (int i = 0; i < workersForStage2.size(); i++) {
        WorkerInfo workerInfo = workersForStage2.get(i);
        assertEquals(i, workerInfo.getWorkerIndex());
        assertEquals(i + 1, workerInfo.getWorkerNumber());
        assertEquals(durationType, workerInfo.getDurationType());
        assertEquals(i, workerInfo.getWorkerPorts().getMetricsPort());
        assertEquals(i + 1, workerInfo.getWorkerPorts().getCustomPort());
    }
}
Also used : MantisJobDurationType(io.mantisrx.runtime.MantisJobDurationType) HashMap(java.util.HashMap) WorkerAssignments(io.mantisrx.server.core.WorkerAssignments) JobSchedulingInfo(io.mantisrx.server.core.JobSchedulingInfo) WorkerInfo(io.mantisrx.runtime.WorkerInfo) WorkerMap(io.mantisrx.runtime.WorkerMap) Test(org.junit.Test)

Example 4 with WorkerMap

use of io.mantisrx.runtime.WorkerMap in project mantis by Netflix.

the class WorkerExecutionOperationsNetworkStage method convertJobSchedulingInfoToWorkerMap.

/**
 * Converts a JobSchedulingInfo object to a simple WorkerMap to be used from within the context.
 * Static for easier testing.
 *
 * @param jobName
 * @param jobId
 * @param durationType
 * @param js
 *
 * @return
 */
static WorkerMap convertJobSchedulingInfoToWorkerMap(String jobName, String jobId, MantisJobDurationType durationType, JobSchedulingInfo js) {
    Map<Integer, List<WorkerInfo>> stageToWorkerInfoMap = new HashMap<>();
    WorkerMap workerMap = new WorkerMap(stageToWorkerInfoMap);
    if (jobName == null || jobName.isEmpty() || jobId == null || jobId.isEmpty()) {
        logger.warn("Job name/jobId cannot be null in convertJobSchedulingInfoToWorkerMap");
        return workerMap;
    }
    if (js == null || js.getWorkerAssignments() == null) {
        logger.warn("JobSchedulingInfo or workerAssignments cannot be null in convertJobSchedulingInfoToWorkerMap");
        return workerMap;
    }
    try {
        Map<Integer, WorkerAssignments> workerAssignments = js.getWorkerAssignments();
        Iterator<Map.Entry<Integer, WorkerAssignments>> entryIterator = workerAssignments.entrySet().iterator();
        while (entryIterator.hasNext()) {
            Map.Entry<Integer, WorkerAssignments> next = entryIterator.next();
            int stageNo = next.getKey();
            WorkerAssignments workerAssignmentsForStage = next.getValue();
            Map<Integer, WorkerHost> hosts = workerAssignmentsForStage.getHosts();
            if (hosts != null) {
                List<WorkerInfo> workerInfoList = hosts.values().stream().map((workerHost) -> {
                    return generateWorkerInfo(jobName, jobId, stageNo, workerHost.getWorkerIndex(), workerHost.getWorkerNumber(), durationType, workerHost.getHost(), workerHost);
                }).collect(Collectors.toList());
                stageToWorkerInfoMap.put(stageNo, workerInfoList);
            }
        }
        workerMap = new WorkerMap(stageToWorkerInfoMap);
    } catch (Exception e) {
        logger.warn("Exception converting JobSchedulingInfo " + js + " to worker Map " + e.getMessage());
        return workerMap;
    }
    return workerMap;
}
Also used : Strings(io.mantisrx.shaded.com.google.common.base.Strings) Arrays(java.util.Arrays) MantisJobDurationType(io.mantisrx.runtime.MantisJobDurationType) MantisJobState(io.mantisrx.runtime.MantisJobState) LoggerFactory(org.slf4j.LoggerFactory) StageSchedulingInfo(io.mantisrx.runtime.descriptor.StageSchedulingInfo) JobMasterStageConfig(io.mantisrx.server.worker.jobmaster.JobMasterStageConfig) Lifecycle(io.mantisrx.runtime.lifecycle.Lifecycle) WorkerConsumer(io.mantisrx.runtime.executor.WorkerConsumer) ServiceRegistry(io.mantisrx.server.core.ServiceRegistry) JOB_MASTER_AUTOSCALE_METRIC_SYSTEM_PARAM(io.mantisrx.runtime.parameter.ParameterUtils.JOB_MASTER_AUTOSCALE_METRIC_SYSTEM_PARAM) WorkerPorts(io.mantisrx.common.WorkerPorts) ParameterUtils(io.mantisrx.runtime.parameter.ParameterUtils) Map(java.util.Map) Schedulers(rx.schedulers.Schedulers) VirtualMachineTaskStatus(io.mantisrx.server.worker.mesos.VirtualMachineTaskStatus) RxMetrics(io.reactivex.mantis.remote.observable.RxMetrics) Status(io.mantisrx.server.core.Status) StageExecutors(io.mantisrx.runtime.executor.StageExecutors) ScheduledThreadPoolExecutor(java.util.concurrent.ScheduledThreadPoolExecutor) WorkerAssignments(io.mantisrx.server.core.WorkerAssignments) Observer(rx.Observer) Collectors(java.util.stream.Collectors) JobMasterService(io.mantisrx.server.worker.jobmaster.JobMasterService) WorkerConsumerRemoteObservable(io.mantisrx.runtime.executor.WorkerConsumerRemoteObservable) CountDownLatch(java.util.concurrent.CountDownLatch) WorkerId(io.mantisrx.server.core.domain.WorkerId) List(java.util.List) ToDeltaEndpointInjector(io.reactivex.mantis.remote.observable.ToDeltaEndpointInjector) Action0(rx.functions.Action0) BehaviorSubject(rx.subjects.BehaviorSubject) Splitter(io.mantisrx.shaded.com.google.common.base.Splitter) Optional(java.util.Optional) WorkerMap(io.mantisrx.runtime.WorkerMap) PortSelector(io.mantisrx.runtime.executor.PortSelector) WorkerPublisherRemoteObservable(io.mantisrx.runtime.executor.WorkerPublisherRemoteObservable) StageConfig(io.mantisrx.runtime.StageConfig) MantisMasterClientApi(io.mantisrx.server.master.client.MantisMasterClientApi) MetricsRegistry(io.mantisrx.common.metrics.MetricsRegistry) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) Parameters(io.mantisrx.runtime.parameter.Parameters) HashMap(java.util.HashMap) AtomicReference(java.util.concurrent.atomic.AtomicReference) Observable(rx.Observable) Func1(rx.functions.Func1) WorkerMetricsClient(io.mantisrx.server.worker.client.WorkerMetricsClient) LinkedList(java.util.LinkedList) RemoteRxServer(io.reactivex.mantis.remote.observable.RemoteRxServer) AutoScaleMetricsConfig(io.mantisrx.server.worker.jobmaster.AutoScaleMetricsConfig) JobSchedulingInfo(io.mantisrx.server.core.JobSchedulingInfo) Logger(org.slf4j.Logger) Iterator(java.util.Iterator) Endpoint(io.mantisrx.common.network.Endpoint) TYPE(io.mantisrx.server.core.Status.TYPE) Context(io.mantisrx.runtime.Context) StatusPayloads(io.mantisrx.server.core.StatusPayloads) TimeUnit(java.util.concurrent.TimeUnit) ServiceLocator(io.mantisrx.runtime.lifecycle.ServiceLocator) ExecuteStageRequest(io.mantisrx.server.core.ExecuteStageRequest) Registry(com.netflix.spectator.api.Registry) WorkerConfiguration(io.mantisrx.server.worker.config.WorkerConfiguration) SpectatorRegistryFactory(io.mantisrx.common.metrics.spectator.SpectatorRegistryFactory) WorkerInfo(io.mantisrx.runtime.WorkerInfo) WorkerHost(io.mantisrx.server.core.WorkerHost) WorkerHost(io.mantisrx.server.core.WorkerHost) HashMap(java.util.HashMap) WorkerInfo(io.mantisrx.runtime.WorkerInfo) Endpoint(io.mantisrx.common.network.Endpoint) WorkerAssignments(io.mantisrx.server.core.WorkerAssignments) List(java.util.List) LinkedList(java.util.LinkedList) WorkerMap(io.mantisrx.runtime.WorkerMap) Map(java.util.Map) WorkerMap(io.mantisrx.runtime.WorkerMap) HashMap(java.util.HashMap)

Aggregations

WorkerMap (io.mantisrx.runtime.WorkerMap)4 HashMap (java.util.HashMap)4 MantisJobDurationType (io.mantisrx.runtime.MantisJobDurationType)3 WorkerInfo (io.mantisrx.runtime.WorkerInfo)3 JobSchedulingInfo (io.mantisrx.server.core.JobSchedulingInfo)3 WorkerAssignments (io.mantisrx.server.core.WorkerAssignments)3 WorkerPorts (io.mantisrx.common.WorkerPorts)2 Endpoint (io.mantisrx.common.network.Endpoint)2 Context (io.mantisrx.runtime.Context)2 StageConfig (io.mantisrx.runtime.StageConfig)2 StageSchedulingInfo (io.mantisrx.runtime.descriptor.StageSchedulingInfo)2 Lifecycle (io.mantisrx.runtime.lifecycle.Lifecycle)2 ServiceLocator (io.mantisrx.runtime.lifecycle.ServiceLocator)2 Registry (com.netflix.spectator.api.Registry)1 MetricsRegistry (io.mantisrx.common.metrics.MetricsRegistry)1 MetricsServer (io.mantisrx.common.metrics.MetricsServer)1 MantisNettyEventsListenerFactory (io.mantisrx.common.metrics.netty.MantisNettyEventsListenerFactory)1 SpectatorRegistryFactory (io.mantisrx.common.metrics.spectator.SpectatorRegistryFactory)1 MantisJobState (io.mantisrx.runtime.MantisJobState)1 SinkHolder (io.mantisrx.runtime.SinkHolder)1