Search in sources :

Example 1 with MasterProcedureManager

use of org.apache.hadoop.hbase.procedure.MasterProcedureManager in project hbase by apache.

the class MasterRpcServices method isProcedureDone.

/**
   * Checks if the specified procedure is done.
   * @return true if the procedure is done, false if the procedure is in the process of completing
   * @throws ServiceException if invalid procedure or failed procedure with progress failure reason.
   */
@Override
public IsProcedureDoneResponse isProcedureDone(RpcController controller, IsProcedureDoneRequest request) throws ServiceException {
    try {
        master.checkInitialized();
        ProcedureDescription desc = request.getProcedure();
        MasterProcedureManager mpm = master.getMasterProcedureManagerHost().getProcedureManager(desc.getSignature());
        if (mpm == null) {
            throw new ServiceException("The procedure is not registered: " + desc.getSignature());
        }
        LOG.debug("Checking to see if procedure from request:" + desc.getSignature() + " is done");
        IsProcedureDoneResponse.Builder builder = IsProcedureDoneResponse.newBuilder();
        boolean done = mpm.isProcedureDone(desc);
        builder.setDone(done);
        return builder.build();
    } catch (ForeignException e) {
        throw new ServiceException(e.getCause());
    } catch (IOException e) {
        throw new ServiceException(e);
    }
}
Also used : ServiceException(org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException) ForeignException(org.apache.hadoop.hbase.errorhandling.ForeignException) ProcedureDescription(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription) IsProcedureDoneResponse(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse) MasterProcedureManager(org.apache.hadoop.hbase.procedure.MasterProcedureManager) IOException(java.io.IOException) DoNotRetryIOException(org.apache.hadoop.hbase.DoNotRetryIOException)

Example 2 with MasterProcedureManager

use of org.apache.hadoop.hbase.procedure.MasterProcedureManager in project hbase by apache.

the class MasterRpcServices method execProcedure.

/**
   * Triggers an asynchronous attempt to run a distributed procedure.
   * {@inheritDoc}
   */
@Override
public ExecProcedureResponse execProcedure(RpcController controller, ExecProcedureRequest request) throws ServiceException {
    try {
        master.checkInitialized();
        ProcedureDescription desc = request.getProcedure();
        MasterProcedureManager mpm = master.getMasterProcedureManagerHost().getProcedureManager(desc.getSignature());
        if (mpm == null) {
            throw new ServiceException("The procedure is not registered: " + desc.getSignature());
        }
        LOG.info(master.getClientIdAuditPrefix() + " procedure request for: " + desc.getSignature());
        mpm.execProcedure(desc);
        // send back the max amount of time the client should wait for the procedure
        // to complete
        long waitTime = SnapshotDescriptionUtils.DEFAULT_MAX_WAIT_TIME;
        return ExecProcedureResponse.newBuilder().setExpectedTimeout(waitTime).build();
    } catch (ForeignException e) {
        throw new ServiceException(e.getCause());
    } catch (IOException e) {
        throw new ServiceException(e);
    }
}
Also used : ServiceException(org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException) ForeignException(org.apache.hadoop.hbase.errorhandling.ForeignException) ProcedureDescription(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription) MasterProcedureManager(org.apache.hadoop.hbase.procedure.MasterProcedureManager) IOException(java.io.IOException) DoNotRetryIOException(org.apache.hadoop.hbase.DoNotRetryIOException)

Example 3 with MasterProcedureManager

use of org.apache.hadoop.hbase.procedure.MasterProcedureManager in project hbase by apache.

the class MasterRpcServices method execProcedureWithRet.

/**
   * Triggers a synchronous attempt to run a distributed procedure and sets
   * return data in response.
   * {@inheritDoc}
   */
@Override
public ExecProcedureResponse execProcedureWithRet(RpcController controller, ExecProcedureRequest request) throws ServiceException {
    try {
        master.checkInitialized();
        ProcedureDescription desc = request.getProcedure();
        MasterProcedureManager mpm = master.getMasterProcedureManagerHost().getProcedureManager(desc.getSignature());
        if (mpm == null) {
            throw new ServiceException("The procedure is not registered: " + desc.getSignature());
        }
        LOG.info(master.getClientIdAuditPrefix() + " procedure request for: " + desc.getSignature());
        byte[] data = mpm.execProcedureWithRet(desc);
        ExecProcedureResponse.Builder builder = ExecProcedureResponse.newBuilder();
        // set return data if available
        if (data != null) {
            builder.setReturnData(UnsafeByteOperations.unsafeWrap(data));
        }
        return builder.build();
    } catch (IOException e) {
        throw new ServiceException(e);
    }
}
Also used : ServiceException(org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException) ProcedureDescription(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription) MasterProcedureManager(org.apache.hadoop.hbase.procedure.MasterProcedureManager) IOException(java.io.IOException) DoNotRetryIOException(org.apache.hadoop.hbase.DoNotRetryIOException) ExecProcedureResponse(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse)

Aggregations

IOException (java.io.IOException)3 DoNotRetryIOException (org.apache.hadoop.hbase.DoNotRetryIOException)3 MasterProcedureManager (org.apache.hadoop.hbase.procedure.MasterProcedureManager)3 ServiceException (org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException)3 ProcedureDescription (org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.ProcedureDescription)3 ForeignException (org.apache.hadoop.hbase.errorhandling.ForeignException)2 ExecProcedureResponse (org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.ExecProcedureResponse)1 IsProcedureDoneResponse (org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.IsProcedureDoneResponse)1