use of org.apache.helix.participant.StateMachineEngine in project helix by apache.
the class TestJobFailureTaskNotStarted method startParticipantsWithStuckTaskStateModelFactory.
protected void startParticipantsWithStuckTaskStateModelFactory() {
Map<String, TaskFactory> taskFactoryReg = new HashMap<String, TaskFactory>();
taskFactoryReg.put(MockTask.TASK_COMMAND, new TaskFactory() {
@Override
public Task createNewTask(TaskCallbackContext context) {
return new MockTask(context);
}
});
List<String> instances = _setupTool.getClusterManagementTool().getInstancesInCluster(CLUSTER_NAME);
_participants[0] = new MockParticipantManager(ZK_ADDR, CLUSTER_NAME, instances.get(0));
StateMachineEngine stateMachine = _participants[0].getStateMachineEngine();
stateMachine.registerStateModelFactory("Task", new MockTaskStateModelFactory(_participants[0], taskFactoryReg));
_participants[0].syncStart();
_blockedParticipant = _participants[0];
_participants[1] = new MockParticipantManager(ZK_ADDR, CLUSTER_NAME, instances.get(1));
stateMachine = _participants[1].getStateMachineEngine();
stateMachine.registerStateModelFactory("Task", new TaskStateModelFactory(_participants[1], taskFactoryReg));
_participants[1].syncStart();
_normalParticipant = _participants[1];
}
use of org.apache.helix.participant.StateMachineEngine in project helix by apache.
the class TestJobTimeoutTaskNotStarted method startParticipantsWithStuckTaskStateModelFactory.
protected void startParticipantsWithStuckTaskStateModelFactory() {
Map<String, TaskFactory> taskFactoryReg = new HashMap<String, TaskFactory>();
taskFactoryReg.put(MockTask.TASK_COMMAND, new TaskFactory() {
@Override
public Task createNewTask(TaskCallbackContext context) {
return new MockTask(context);
}
});
// start dummy participants
for (int i = 0; i < _numNodes; i++) {
String instanceName = PARTICIPANT_PREFIX + "_" + (_startPort + i);
_participants[i] = new MockParticipantManager(ZK_ADDR, CLUSTER_NAME, instanceName);
// Register a Task state model factory.
StateMachineEngine stateMachine = _participants[i].getStateMachineEngine();
stateMachine.registerStateModelFactory("Task", new MockTaskStateModelFactory(_participants[i], taskFactoryReg));
_participants[i].syncStart();
}
}
use of org.apache.helix.participant.StateMachineEngine in project helix by apache.
the class TestUserContentStore method beforeClass.
@BeforeClass
public void beforeClass() throws Exception {
_participants = new MockParticipantManager[_numNodes];
String namespace = "/" + CLUSTER_NAME;
if (_gZkClient.exists(namespace)) {
_gZkClient.deleteRecursively(namespace);
}
// Setup cluster and instances
ClusterSetup setupTool = new ClusterSetup(ZK_ADDR);
setupTool.addCluster(CLUSTER_NAME, true);
for (int i = 0; i < _numNodes; i++) {
String storageNodeName = PARTICIPANT_PREFIX + "_" + (_startPort + i);
setupTool.addInstanceToCluster(CLUSTER_NAME, storageNodeName);
}
// start dummy participants
for (int i = 0; i < _numNodes; i++) {
final String instanceName = PARTICIPANT_PREFIX + "_" + (_startPort + i);
// Set task callbacks
Map<String, TaskFactory> taskFactoryReg = new HashMap<String, TaskFactory>();
taskFactoryReg.put("ContentStoreTask", new TaskFactory() {
@Override
public Task createNewTask(TaskCallbackContext context) {
return new ContentStoreTask();
}
});
taskFactoryReg.put("TaskOne", new TaskFactory() {
@Override
public Task createNewTask(TaskCallbackContext context) {
return new TaskOne();
}
});
taskFactoryReg.put("TaskTwo", new TaskFactory() {
@Override
public Task createNewTask(TaskCallbackContext context) {
return new TaskTwo();
}
});
_participants[i] = new MockParticipantManager(ZK_ADDR, CLUSTER_NAME, instanceName);
// Register a Task state model factory.
StateMachineEngine stateMachine = _participants[i].getStateMachineEngine();
stateMachine.registerStateModelFactory("Task", new TaskStateModelFactory(_participants[i], taskFactoryReg));
_participants[i].syncStart();
}
// Start controller
String controllerName = CONTROLLER_PREFIX + "_0";
_controller = new ClusterControllerManager(ZK_ADDR, CLUSTER_NAME, controllerName);
_controller.syncStart();
// Start an admin connection
_manager = HelixManagerFactory.getZKHelixManager(CLUSTER_NAME, "Admin", InstanceType.ADMINISTRATOR, ZK_ADDR);
_manager.connect();
_driver = new TaskDriver(_manager);
}
use of org.apache.helix.participant.StateMachineEngine in project helix by apache.
the class TestStateTransitionCancellation method registerParticipants.
private void registerParticipants(MockParticipantManager[] participants, int numNodes, int startPort, long sleepTime, long delay) throws InterruptedException {
Map<String, TaskFactory> taskFactoryReg = new HashMap<String, TaskFactory>();
taskFactoryReg.put(MockTask.TASK_COMMAND, new TaskFactory() {
@Override
public Task createNewTask(TaskCallbackContext context) {
return new MockTask(context);
}
});
for (int i = 0; i < numNodes; i++) {
String instanceName = PARTICIPANT_PREFIX + "_" + (startPort + i);
participants[i] = new MockParticipantManager(ZK_ADDR, CLUSTER_NAME, instanceName);
// add a state model with non-OFFLINE initial state
StateMachineEngine stateMach = participants[i].getStateMachineEngine();
stateMach.registerStateModelFactory("Task", new TaskStateModelFactory(participants[i], taskFactoryReg));
InMockDelayMSStateModelFactory delayFactory = new InMockDelayMSStateModelFactory().setDelay(delay);
stateMach.registerStateModelFactory(MASTER_SLAVE_STATE_MODEL, delayFactory);
participants[i].syncStart();
if (sleepTime > 0) {
Thread.sleep(sleepTime);
}
}
}
use of org.apache.helix.participant.StateMachineEngine in project helix by apache.
the class ClusterDistributedController method run.
@Override
public void run() {
try {
StateMachineEngine stateMach = getStateMachineEngine();
DistClusterControllerStateModelFactory lsModelFactory = new DistClusterControllerStateModelFactory(_zkAddress);
stateMach.registerStateModelFactory("LeaderStandby", lsModelFactory);
connect();
_startCountDown.countDown();
_stopCountDown.await();
} catch (Exception e) {
LOG.error("exception running controller-manager", e);
} finally {
_startCountDown.countDown();
disconnect();
_waitStopFinishCountDown.countDown();
}
}
Aggregations