Java 类org.apache.hadoop.hbase.protobuf.generated.MasterProtos.ExecProcedureResponse 实例源码

项目:pbase    文件:HBaseAdmin.java   
/**
 * Execute a distributed procedure on a cluster synchronously with return data
 *
 * @param signature A distributed procedure is uniquely identified
 * by its signature (default the root ZK node name of the procedure).
 * @param instance The instance name of the procedure. For some procedures, this parameter is
 * optional.
 * @param props Property/Value pairs of properties passing to the procedure
 * @return data returned after procedure execution. null if no return data.
 * @throws IOException
 */
@Override
public byte[] execProcedureWithRet(String signature, String instance,
    Map<String, String> props) throws IOException {
  ProcedureDescription.Builder builder = ProcedureDescription.newBuilder();
  builder.setSignature(signature).setInstance(instance);
  for (Entry<String, String> entry : props.entrySet()) {
    NameStringPair pair = NameStringPair.newBuilder().setName(entry.getKey())
        .setValue(entry.getValue()).build();
    builder.addConfiguration(pair);
  }

  final ExecProcedureRequest request = ExecProcedureRequest.newBuilder()
      .setProcedure(builder.build()).build();
  // run the procedure on the master
  ExecProcedureResponse response = executeCallable(new MasterCallable<ExecProcedureResponse>(
      getConnection()) {
    @Override
    public ExecProcedureResponse call(int callTimeout) throws ServiceException {
      return master.execProcedureWithRet(null, request);
    }
  });

  return response.hasReturnData() ? response.getReturnData().toByteArray() : null;
}
项目:ditb    文件:MasterRpcServices.java   
/**
 * 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.mpmHost.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(ByteString.copyFrom(data));
    }
    return builder.build();
  } catch (IOException e) {
    throw new ServiceException(e);
  }
}
项目:ditb    文件:HBaseAdmin.java   
/**
 * Execute a distributed procedure on a cluster synchronously with return data
 *
 * @param signature A distributed procedure is uniquely identified
 * by its signature (default the root ZK node name of the procedure).
 * @param instance The instance name of the procedure. For some procedures, this parameter is
 * optional.
 * @param props Property/Value pairs of properties passing to the procedure
 * @return data returned after procedure execution. null if no return data.
 * @throws IOException
 */
@Override
public byte[] execProcedureWithRet(String signature, String instance,
    Map<String, String> props) throws IOException {
  ProcedureDescription.Builder builder = ProcedureDescription.newBuilder();
  builder.setSignature(signature).setInstance(instance);
  for (Entry<String, String> entry : props.entrySet()) {
    NameStringPair pair = NameStringPair.newBuilder().setName(entry.getKey())
        .setValue(entry.getValue()).build();
    builder.addConfiguration(pair);
  }

  final ExecProcedureRequest request = ExecProcedureRequest.newBuilder()
      .setProcedure(builder.build()).build();
  // run the procedure on the master
  ExecProcedureResponse response = executeCallable(new MasterCallable<ExecProcedureResponse>(
      getConnection()) {
    @Override
    public ExecProcedureResponse call(int callTimeout) throws ServiceException {
      PayloadCarryingRpcController controller = rpcControllerFactory.newController();
      controller.setCallTimeout(callTimeout);
      return master.execProcedureWithRet(controller, request);
    }
  });

  return response.hasReturnData() ? response.getReturnData().toByteArray() : null;
}
项目:pbase    文件:MasterRpcServices.java   
/**
 * 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.mpmHost.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 (IOException e) {
    throw new ServiceException(e);
  }
}
项目:pbase    文件:MasterRpcServices.java   
/**
 * 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.mpmHost.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(ByteString.copyFrom(data));
    }
    return builder.build();
  } catch (IOException e) {
    throw new ServiceException(e);
  }
}
项目:HIndex    文件:HMaster.java   
/**
 * Triggers an asynchronous attempt to run a distributed procedure.
 * {@inheritDoc}
 */
@Override
public ExecProcedureResponse execProcedure(RpcController controller,
    ExecProcedureRequest request) throws ServiceException {
  ProcedureDescription desc = request.getProcedure();
  MasterProcedureManager mpm = this.mpmHost.getProcedureManager(desc
      .getSignature());
  if (mpm == null) {
    throw new ServiceException("The procedure is not registered: "
        + desc.getSignature());
  }

  LOG.info(getClientIdAuditPrefix() + " procedure request for: "
      + desc.getSignature());

  try {
    mpm.execProcedure(desc);
  } catch (IOException e) {
    throw new ServiceException(e);
  }

  // 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();
}
项目:PyroDB    文件:MasterRpcServices.java   
/**
 * 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.mpmHost.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 (IOException e) {
    throw new ServiceException(e);
  }
}
项目:ditb    文件:HBaseAdmin.java   
/**
 * Execute a distributed procedure on a cluster.
 *
 * @param signature A distributed procedure is uniquely identified
 * by its signature (default the root ZK node name of the procedure).
 * @param instance The instance name of the procedure. For some procedures, this parameter is
 * optional.
 * @param props Property/Value pairs of properties passing to the procedure
 * @throws IOException
 */
@Override
public void execProcedure(String signature, String instance,
    Map<String, String> props) throws IOException {
  ProcedureDescription.Builder builder = ProcedureDescription.newBuilder();
  builder.setSignature(signature).setInstance(instance);
  for (Entry<String, String> entry : props.entrySet()) {
    NameStringPair pair = NameStringPair.newBuilder().setName(entry.getKey())
        .setValue(entry.getValue()).build();
    builder.addConfiguration(pair);
  }

  final ExecProcedureRequest request = ExecProcedureRequest.newBuilder()
      .setProcedure(builder.build()).build();
  // run the procedure on the master
  ExecProcedureResponse response = executeCallable(new MasterCallable<ExecProcedureResponse>(
      getConnection()) {
    @Override
    public ExecProcedureResponse call(int callTimeout) throws ServiceException {
      PayloadCarryingRpcController controller = rpcControllerFactory.newController();
      controller.setCallTimeout(callTimeout);
      return master.execProcedure(controller, request);
    }
  });

  long start = EnvironmentEdgeManager.currentTime();
  long max = response.getExpectedTimeout();
  long maxPauseTime = max / this.numRetries;
  int tries = 0;
  LOG.debug("Waiting a max of " + max + " ms for procedure '" +
      signature + " : " + instance + "'' to complete. (max " + maxPauseTime + " ms per retry)");
  boolean done = false;
  while (tries == 0
      || ((EnvironmentEdgeManager.currentTime() - start) < max && !done)) {
    try {
      // sleep a backoff <= pauseTime amount
      long sleep = getPauseTime(tries++);
      sleep = sleep > maxPauseTime ? maxPauseTime : sleep;
      LOG.debug("(#" + tries + ") Sleeping: " + sleep +
        "ms while waiting for procedure completion.");
      Thread.sleep(sleep);
    } catch (InterruptedException e) {
      throw (InterruptedIOException)new InterruptedIOException("Interrupted").initCause(e);
    }
    LOG.debug("Getting current status of procedure from master...");
    done = isProcedureFinished(signature, instance, props);
  }
  if (!done) {
    throw new IOException("Procedure '" + signature + " : " + instance
        + "' wasn't completed in expectedTime:" + max + " ms");
  }
}
项目:pbase    文件:HBaseAdmin.java   
/**
 * Execute a distributed procedure on a cluster.
 *
 * @param signature A distributed procedure is uniquely identified
 * by its signature (default the root ZK node name of the procedure).
 * @param instance The instance name of the procedure. For some procedures, this parameter is
 * optional.
 * @param props Property/Value pairs of properties passing to the procedure
 * @throws IOException
 */
@Override
public void execProcedure(String signature, String instance,
    Map<String, String> props) throws IOException {
  ProcedureDescription.Builder builder = ProcedureDescription.newBuilder();
  builder.setSignature(signature).setInstance(instance);
  for (Entry<String, String> entry : props.entrySet()) {
    NameStringPair pair = NameStringPair.newBuilder().setName(entry.getKey())
        .setValue(entry.getValue()).build();
    builder.addConfiguration(pair);
  }

  final ExecProcedureRequest request = ExecProcedureRequest.newBuilder()
      .setProcedure(builder.build()).build();
  // run the procedure on the master
  ExecProcedureResponse response = executeCallable(new MasterCallable<ExecProcedureResponse>(
      getConnection()) {
    @Override
    public ExecProcedureResponse call(int callTimeout) throws ServiceException {
      return master.execProcedure(null, request);
    }
  });

  long start = EnvironmentEdgeManager.currentTime();
  long max = response.getExpectedTimeout();
  long maxPauseTime = max / this.numRetries;
  int tries = 0;
  LOG.debug("Waiting a max of " + max + " ms for procedure '" +
      signature + " : " + instance + "'' to complete. (max " + maxPauseTime + " ms per retry)");
  boolean done = false;
  while (tries == 0
      || ((EnvironmentEdgeManager.currentTime() - start) < max && !done)) {
    try {
      // sleep a backoff <= pauseTime amount
      long sleep = getPauseTime(tries++);
      sleep = sleep > maxPauseTime ? maxPauseTime : sleep;
      LOG.debug("(#" + tries + ") Sleeping: " + sleep +
        "ms while waiting for procedure completion.");
      Thread.sleep(sleep);
    } catch (InterruptedException e) {
      throw (InterruptedIOException)new InterruptedIOException("Interrupted").initCause(e);
    }
    LOG.debug("Getting current status of procedure from master...");
    done = isProcedureFinished(signature, instance, props);
  }
  if (!done) {
    throw new IOException("Procedure '" + signature + " : " + instance
        + "' wasn't completed in expectedTime:" + max + " ms");
  }
}
项目:HIndex    文件:HBaseAdmin.java   
/**
 * Execute a distributed procedure on a cluster.
 *
 * @param signature A distributed procedure is uniquely identified
 * by its signature (default the root ZK node name of the procedure).
 * @param instance The instance name of the procedure. For some procedures, this parameter is
 * optional.
 * @param props Property/Value pairs of properties passing to the procedure
 */
public void execProcedure(String signature, String instance,
    Map<String, String> props) throws IOException {
  ProcedureDescription.Builder builder = ProcedureDescription.newBuilder();
  builder.setSignature(signature).setInstance(instance);
  for (String key : props.keySet()) {
    NameStringPair pair = NameStringPair.newBuilder().setName(key)
        .setValue(props.get(key)).build();
    builder.addConfiguration(pair);
  }

  final ExecProcedureRequest request = ExecProcedureRequest.newBuilder()
      .setProcedure(builder.build()).build();
  // run the procedure on the master
  ExecProcedureResponse response = executeCallable(new MasterCallable<ExecProcedureResponse>(
      getConnection()) {
    @Override
    public ExecProcedureResponse call() throws ServiceException {
      return master.execProcedure(null, request);
    }
  });

  long start = EnvironmentEdgeManager.currentTimeMillis();
  long max = response.getExpectedTimeout();
  long maxPauseTime = max / this.numRetries;
  int tries = 0;
  LOG.debug("Waiting a max of " + max + " ms for procedure '" +
      signature + " : " + instance + "'' to complete. (max " + maxPauseTime + " ms per retry)");
  boolean done = false;
  while (tries == 0
      || ((EnvironmentEdgeManager.currentTimeMillis() - start) < max && !done)) {
    try {
      // sleep a backoff <= pauseTime amount
      long sleep = getPauseTime(tries++);
      sleep = sleep > maxPauseTime ? maxPauseTime : sleep;
      LOG.debug("(#" + tries + ") Sleeping: " + sleep +
        "ms while waiting for procedure completion.");
      Thread.sleep(sleep);

    } catch (InterruptedException e) {
      LOG.debug("Interrupted while waiting for procedure " + signature + " to complete");
      Thread.currentThread().interrupt();
    }
    LOG.debug("Getting current status of procedure from master...");
    done = isProcedureFinished(signature, instance, props);
  }
  if (!done) {
    throw new IOException("Procedure '" + signature + " : " + instance
        + "' wasn't completed in expectedTime:" + max + " ms");
  }
}
项目:PyroDB    文件:HBaseAdmin.java   
/**
 * Execute a distributed procedure on a cluster.
 *
 * @param signature A distributed procedure is uniquely identified
 * by its signature (default the root ZK node name of the procedure).
 * @param instance The instance name of the procedure. For some procedures, this parameter is
 * optional.
 * @param props Property/Value pairs of properties passing to the procedure
 */
public void execProcedure(String signature, String instance,
    Map<String, String> props) throws IOException {
  ProcedureDescription.Builder builder = ProcedureDescription.newBuilder();
  builder.setSignature(signature).setInstance(instance);
  for (Entry<String, String> entry : props.entrySet()) {
    NameStringPair pair = NameStringPair.newBuilder().setName(entry.getKey())
        .setValue(entry.getValue()).build();
    builder.addConfiguration(pair);
  }

  final ExecProcedureRequest request = ExecProcedureRequest.newBuilder()
      .setProcedure(builder.build()).build();
  // run the procedure on the master
  ExecProcedureResponse response = executeCallable(new MasterCallable<ExecProcedureResponse>(
      getConnection()) {
    @Override
    public ExecProcedureResponse call(int callTimeout) throws ServiceException {
      return master.execProcedure(null, request);
    }
  });

  long start = EnvironmentEdgeManager.currentTimeMillis();
  long max = response.getExpectedTimeout();
  long maxPauseTime = max / this.numRetries;
  int tries = 0;
  LOG.debug("Waiting a max of " + max + " ms for procedure '" +
      signature + " : " + instance + "'' to complete. (max " + maxPauseTime + " ms per retry)");
  boolean done = false;
  while (tries == 0
      || ((EnvironmentEdgeManager.currentTimeMillis() - start) < max && !done)) {
    try {
      // sleep a backoff <= pauseTime amount
      long sleep = getPauseTime(tries++);
      sleep = sleep > maxPauseTime ? maxPauseTime : sleep;
      LOG.debug("(#" + tries + ") Sleeping: " + sleep +
        "ms while waiting for procedure completion.");
      Thread.sleep(sleep);
    } catch (InterruptedException e) {
      throw (InterruptedIOException)new InterruptedIOException("Interrupted").initCause(e);
    }
    LOG.debug("Getting current status of procedure from master...");
    done = isProcedureFinished(signature, instance, props);
  }
  if (!done) {
    throw new IOException("Procedure '" + signature + " : " + instance
        + "' wasn't completed in expectedTime:" + max + " ms");
  }
}