protected RpcServerInterface createRpcServer(final Server server,
    final RpcSchedulerFactory rpcSchedulerFactory, final InetSocketAddress bindAddress,
    final String name) throws IOException {
    final Configuration conf = server.getConfiguration();
    boolean reservoirEnabled = conf.getBoolean(ByteBuffAllocator.ALLOCATOR_POOL_ENABLED_KEY, true);
    try {
      return RpcServerFactory.createRpcServer(server, name, getServices(), bindAddress, // use final
                                                                                        // bindAddress
                                                                                        // for this
                                                                                        // server.
        conf, rpcSchedulerFactory.create(conf, this, server), reservoirEnabled);
    } catch (BindException be) {
      throw new IOException(be.getMessage() + ". To switch ports use the '"
        + HConstants.REGIONSERVER_PORT + "' configuration property.",
        be.getCause() != null ? be.getCause() : be);
    }
  }
Execute a list of Put/Delete mutations. The function returns OperationStatus instead of
constructing MultiResponse to save a possible loop if caller doesn't need MultiResponse.
@return an array of OperationStatus which internally contains the OperationStatusCode and the
        exceptionMessage if any
@deprecated Since 3.0.0, will be removed in 4.0.0. We do not use this method for replaying
            edits for secondary replicas any more, see
            {@link #replicateToReplica(RpcController, ReplicateWALEntryRequest)}.
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java