Search in sources :

Example 1 with PSAttemptRegisterEvent

use of com.tencent.angel.master.ps.attempt.PSAttemptRegisterEvent in project angel by Tencent.

the class MasterService method psRegister.

/**
 * response for parameter server register.
 *
 * @param controller rpc controller of protobuf
 * @param request register request
 */
@SuppressWarnings("unchecked")
@Override
public PSRegisterResponse psRegister(RpcController controller, PSRegisterRequest request) throws ServiceException {
    if (LOG.isDebugEnabled()) {
        LOG.debug("receive ps register request. request=" + request);
    }
    PSAttemptId psAttemptId = ProtobufUtil.convertToId(request.getPsAttemptId());
    PSRegisterResponse.Builder resBuilder = PSRegisterResponse.newBuilder();
    // if psAttemptId is not in monitor set, just return a PSCOMMAND_SHUTDOWN command.
    if (!context.getParameterServerManager().isAlive(psAttemptId)) {
        LOG.info(psAttemptId + " doesn't exists!");
        resBuilder.setPsCommand(PSCommandProto.PSCOMMAND_SHUTDOWN);
    } else {
        context.getParameterServerManager().alive(psAttemptId);
        context.getEventHandler().handle(new PSAttemptRegisterEvent(psAttemptId, new Location(request.getLocation().getIp(), request.getLocation().getPort())));
        LOG.info(psAttemptId + " is registered now!");
        resBuilder.setPsCommand(PSCommandProto.PSCOMMAND_OK);
    }
    LOG.info(psAttemptId + " register finished!");
    return resBuilder.build();
}
Also used : PSAttemptRegisterEvent(com.tencent.angel.master.ps.attempt.PSAttemptRegisterEvent) PSAttemptId(com.tencent.angel.ps.PSAttemptId) PSRegisterResponse(com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse) PSLocation(com.tencent.angel.ps.server.data.PSLocation) Location(com.tencent.angel.common.location.Location)

Aggregations

Location (com.tencent.angel.common.location.Location)1 PSAttemptRegisterEvent (com.tencent.angel.master.ps.attempt.PSAttemptRegisterEvent)1 PSRegisterResponse (com.tencent.angel.protobuf.generated.PSMasterServiceProtos.PSRegisterResponse)1 PSAttemptId (com.tencent.angel.ps.PSAttemptId)1 PSLocation (com.tencent.angel.ps.server.data.PSLocation)1