/** * Sends an OPEN RPC to the specified server to open the specified region. * <p> * Open should not fail but can if server just crashed. * <p> * @param server server to open a region * @param region region to open * @param versionOfOfflineNode that needs to be present in the offline node * when RS tries to change the state from OFFLINE to other states. * @param favoredNodes */ public RegionOpeningState sendRegionOpen(final ServerName server, HRegionInfo region, int versionOfOfflineNode, List<ServerName> favoredNodes) throws IOException { AdminService.BlockingInterface admin = getRsAdmin(server); if (admin == null) { LOG.warn("Attempting to send OPEN RPC to server " + server.toString() + " failed because no RPC connection found to this server"); return RegionOpeningState.FAILED_OPENING; } OpenRegionRequest request = RequestConverter.buildOpenRegionRequest(server, region, versionOfOfflineNode, favoredNodes, (RecoveryMode.LOG_REPLAY == this.services.getMasterFileSystem().getLogRecoveryMode())); try { OpenRegionResponse response = admin.openRegion(null, request); return ResponseConverter.getRegionOpeningState(response); } catch (ServiceException se) { throw ProtobufUtil.getRemoteException(se); } }
/** * Sends an OPEN RPC to the specified server to open the specified region. * <p> * Open should not fail but can if server just crashed. * <p> * @param server server to open a region * @param regionOpenInfos info of a list of regions to open * @return a list of region opening states */ public List<RegionOpeningState> sendRegionOpen(ServerName server, List<Triple<HRegionInfo, Integer, List<ServerName>>> regionOpenInfos) throws IOException { AdminService.BlockingInterface admin = getRsAdmin(server); if (admin == null) { LOG.warn("Attempting to send OPEN RPC to server " + server.toString() + " failed because no RPC connection found to this server"); return null; } OpenRegionRequest request = RequestConverter.buildOpenRegionRequest(server, regionOpenInfos, (RecoveryMode.LOG_REPLAY == this.services.getMasterFileSystem().getLogRecoveryMode())); try { OpenRegionResponse response = admin.openRegion(null, request); return ResponseConverter.getRegionOpeningStateList(response); } catch (ServiceException se) { throw ProtobufUtil.getRemoteException(se); } }
/** * Create a protocol buffer OpenRegionRequest to open a list of regions * * @param server the serverName for the RPC * @param regionOpenInfos info of a list of regions to open * @param openForReplay * @return a protocol buffer OpenRegionRequest */ public static OpenRegionRequest buildOpenRegionRequest(ServerName server, final List<Triple<HRegionInfo, Integer, List<ServerName>>> regionOpenInfos, Boolean openForReplay) { OpenRegionRequest.Builder builder = OpenRegionRequest.newBuilder(); for (Triple<HRegionInfo, Integer, List<ServerName>> regionOpenInfo: regionOpenInfos) { Integer second = regionOpenInfo.getSecond(); int versionOfOfflineNode = second == null ? -1 : second.intValue(); builder.addOpenInfo(buildRegionOpenInfo(regionOpenInfo.getFirst(), versionOfOfflineNode, regionOpenInfo.getThird(), openForReplay)); } if (server != null) { builder.setServerStartCode(server.getStartcode()); } // send the master's wall clock time as well, so that the RS can refer to it builder.setMasterSystemTime(EnvironmentEdgeManager.currentTime()); return builder.build(); }
/** * Create a protocol buffer OpenRegionRequest to open a list of regions * * @param server the serverName for the RPC * @param regionOpenInfos info of a list of regions to open * @param openForReplay * @return a protocol buffer OpenRegionRequest */ public static OpenRegionRequest buildOpenRegionRequest(ServerName server, final List<Triple<HRegionInfo, Integer, List<ServerName>>> regionOpenInfos, Boolean openForReplay) { OpenRegionRequest.Builder builder = OpenRegionRequest.newBuilder(); for (Triple<HRegionInfo, Integer, List<ServerName>> regionOpenInfo: regionOpenInfos) { Integer second = regionOpenInfo.getSecond(); int versionOfOfflineNode = second == null ? -1 : second.intValue(); builder.addOpenInfo(buildRegionOpenInfo(regionOpenInfo.getFirst(), versionOfOfflineNode, regionOpenInfo.getThird(), openForReplay)); } if (server != null) { builder.setServerStartCode(server.getStartcode()); } return builder.build(); }
/** * Sends an OPEN RPC to the specified server to open the specified region. * <p> * Open should not fail but can if server just crashed. * <p> * @param server server to open a region * @param region region to open * @param versionOfOfflineNode that needs to be present in the offline node * when RS tries to change the state from OFFLINE to other states. * @param favoredNodes */ public RegionOpeningState sendRegionOpen(final ServerName server, HRegionInfo region, int versionOfOfflineNode, List<ServerName> favoredNodes) throws IOException { AdminService.BlockingInterface admin = getRsAdmin(server); if (admin == null) { LOG.warn("Attempting to send OPEN RPC to server " + server.toString() + " failed because no RPC connection found to this server"); return RegionOpeningState.FAILED_OPENING; } OpenRegionRequest request = RequestConverter.buildOpenRegionRequest(server, region, versionOfOfflineNode, favoredNodes); try { OpenRegionResponse response = admin.openRegion(null, request); return ResponseConverter.getRegionOpeningState(response); } catch (ServiceException se) { throw ProtobufUtil.getRemoteException(se); } }
/** * Sends an OPEN RPC to the specified server to open the specified region. * <p> * Open should not fail but can if server just crashed. * <p> * @param server server to open a region * @param regionOpenInfos info of a list of regions to open * @return a list of region opening states */ public List<RegionOpeningState> sendRegionOpen(ServerName server, List<Triple<HRegionInfo, Integer, List<ServerName>>> regionOpenInfos) throws IOException { AdminService.BlockingInterface admin = getRsAdmin(server); if (admin == null) { LOG.warn("Attempting to send OPEN RPC to server " + server.toString() + " failed because no RPC connection found to this server"); return null; } OpenRegionRequest request = RequestConverter.buildOpenRegionRequest(regionOpenInfos); try { OpenRegionResponse response = admin.openRegion(null, request); return ResponseConverter.getRegionOpeningStateList(response); } catch (ServiceException se) { throw ProtobufUtil.getRemoteException(se); } }
/** * Sends an OPEN RPC to the specified server to open the specified region. * <p> * Open should not fail but can if server just crashed. * <p> * @param server server to open a region * @param region region to open * @param versionOfOfflineNode that needs to be present in the offline node * when RS tries to change the state from OFFLINE to other states. * @param favoredNodes */ public RegionOpeningState sendRegionOpen(final ServerName server, HRegionInfo region, int versionOfOfflineNode, List<ServerName> favoredNodes) throws IOException { AdminService.BlockingInterface admin = getRsAdmin(server); if (admin == null) { LOG.warn("Attempting to send OPEN RPC to server " + server.toString() + " failed because no RPC connection found to this server"); return RegionOpeningState.FAILED_OPENING; } OpenRegionRequest request = RequestConverter.buildOpenRegionRequest(region, versionOfOfflineNode, favoredNodes); try { OpenRegionResponse response = admin.openRegion(null, request); return ResponseConverter.getRegionOpeningState(response); } catch (ServiceException se) { throw ProtobufUtil.getRemoteException(se); } }
/** * Sends an OPEN RPC to the specified server to open the specified region. * <p> * Open should not fail but can if server just crashed. * <p> * @param server server to open a region * @param region region to open * @param versionOfOfflineNode that needs to be present in the offline node * when RS tries to change the state from OFFLINE to other states. */ public RegionOpeningState sendRegionOpen(final ServerName server, HRegionInfo region, int versionOfOfflineNode) throws IOException { AdminProtocol admin = getServerConnection(server); if (admin == null) { LOG.warn("Attempting to send OPEN RPC to server " + server.toString() + " failed because no RPC connection found to this server"); return RegionOpeningState.FAILED_OPENING; } OpenRegionRequest request = RequestConverter.buildOpenRegionRequest(region, versionOfOfflineNode); try { OpenRegionResponse response = admin.openRegion(null, request); return ResponseConverter.getRegionOpeningState(response); } catch (ServiceException se) { throw ProtobufUtil.getRemoteException(se); } }
/** * Sends an OPEN RPC to the specified server to open the specified region. * <p> * Open should not fail but can if server just crashed. * <p> * @param server server to open a region * @param regionOpenInfos info of a list of regions to open * @return a list of region opening states */ public List<RegionOpeningState> sendRegionOpen(ServerName server, List<Pair<HRegionInfo, Integer>> regionOpenInfos) throws IOException { AdminProtocol admin = getServerConnection(server); if (admin == null) { LOG.warn("Attempting to send OPEN RPC to server " + server.toString() + " failed because no RPC connection found to this server"); return null; } OpenRegionRequest request = RequestConverter.buildOpenRegionRequest(regionOpenInfos); try { OpenRegionResponse response = admin.openRegion(null, request); return ResponseConverter.getRegionOpeningStateList(response); } catch (ServiceException se) { throw ProtobufUtil.getRemoteException(se); } }
/** * Create a protocol buffer OpenRegionRequest for a given region * * @param server the serverName for the RPC * @param region the region to open * @param versionOfOfflineNode that needs to be present in the offline node * @param favoredNodes * @param openForReplay * @return a protocol buffer OpenRegionRequest */ public static OpenRegionRequest buildOpenRegionRequest(ServerName server, final HRegionInfo region, final int versionOfOfflineNode, List<ServerName> favoredNodes, Boolean openForReplay) { OpenRegionRequest.Builder builder = OpenRegionRequest.newBuilder(); builder.addOpenInfo(buildRegionOpenInfo(region, versionOfOfflineNode, favoredNodes, openForReplay)); if (server != null) { builder.setServerStartCode(server.getStartcode()); } builder.setMasterSystemTime(EnvironmentEdgeManager.currentTime()); return builder.build(); }
/** * A helper to open a region using admin protocol. * @param admin * @param region * @throws IOException */ public static void openRegion(final RpcController controller, final AdminService.BlockingInterface admin, ServerName server, final HRegionInfo region) throws IOException { OpenRegionRequest request = RequestConverter.buildOpenRegionRequest(server, region, -1, null, null); try { admin.openRegion(controller, request); } catch (ServiceException se) { throw ProtobufUtil.getRemoteException(se); } }
/** * Create a protocol buffer OpenRegionRequest for a given region * * @param server the serverName for the RPC * @param region the region to open * @param versionOfOfflineNode that needs to be present in the offline node * @param favoredNodes * @param openForReplay * @return a protocol buffer OpenRegionRequest */ public static OpenRegionRequest buildOpenRegionRequest(ServerName server, final HRegionInfo region, final int versionOfOfflineNode, List<ServerName> favoredNodes, Boolean openForReplay) { OpenRegionRequest.Builder builder = OpenRegionRequest.newBuilder(); builder.addOpenInfo(buildRegionOpenInfo(region, versionOfOfflineNode, favoredNodes, openForReplay)); if (server != null) { builder.setServerStartCode(server.getStartcode()); } return builder.build(); }
/** * A helper to open a region using admin protocol. * @param admin * @param region * @throws IOException */ public static void openRegion(final AdminService.BlockingInterface admin, ServerName server, final HRegionInfo region) throws IOException { OpenRegionRequest request = RequestConverter.buildOpenRegionRequest(server, region, -1, null, null); try { admin.openRegion(null, request); } catch (ServiceException se) { throw ProtobufUtil.getRemoteException(se); } }
/** * Create a protocol buffer OpenRegionRequest to open a list of regions * * @param regionOpenInfos info of a list of regions to open * @return a protocol buffer OpenRegionRequest */ public static OpenRegionRequest buildOpenRegionRequest(final List<Triple<HRegionInfo, Integer, List<ServerName>>> regionOpenInfos) { OpenRegionRequest.Builder builder = OpenRegionRequest.newBuilder(); for (Triple<HRegionInfo, Integer, List<ServerName>> regionOpenInfo: regionOpenInfos) { Integer second = regionOpenInfo.getSecond(); int versionOfOfflineNode = second == null ? -1 : second.intValue(); builder.addOpenInfo(buildRegionOpenInfo( regionOpenInfo.getFirst(), versionOfOfflineNode, regionOpenInfo.getThird())); } return builder.build(); }
/** * Create a protocol buffer OpenRegionRequest for a given region * * @param server the serverName for the RPC * @param region the region to open * @param versionOfOfflineNode that needs to be present in the offline node * @param favoredNodes * @return a protocol buffer OpenRegionRequest */ public static OpenRegionRequest buildOpenRegionRequest(ServerName server, final HRegionInfo region, final int versionOfOfflineNode, List<ServerName> favoredNodes) { OpenRegionRequest.Builder builder = OpenRegionRequest.newBuilder(); builder.addOpenInfo(buildRegionOpenInfo(region, versionOfOfflineNode, favoredNodes)); if (server != null) { builder.setServerStartCode(server.getStartcode()); } return builder.build(); }
/** * A helper to open a region using admin protocol. * @param admin * @param region * @throws IOException */ public static void openRegion(final AdminService.BlockingInterface admin, ServerName server, final HRegionInfo region) throws IOException { OpenRegionRequest request = RequestConverter.buildOpenRegionRequest(server, region, -1, null); try { admin.openRegion(null, request); } catch (ServiceException se) { throw ProtobufUtil.getRemoteException(se); } }
/** * A helper to open a region using admin protocol. * @param admin * @param region * @throws IOException */ public static void openRegion(final AdminService.BlockingInterface admin, final HRegionInfo region) throws IOException { OpenRegionRequest request = RequestConverter.buildOpenRegionRequest(region, -1, null); try { admin.openRegion(null, request); } catch (ServiceException se) { throw ProtobufUtil.getRemoteException(se); } }
/** * Create a protocol buffer OpenRegionRequest to open a list of regions * * @param regionOpenInfos info of a list of regions to open * @return a protocol buffer OpenRegionRequest */ public static OpenRegionRequest buildOpenRegionRequest(final List<Pair<HRegionInfo, Integer>> regionOpenInfos) { OpenRegionRequest.Builder builder = OpenRegionRequest.newBuilder(); for (Pair<HRegionInfo, Integer> regionOpenInfo: regionOpenInfos) { Integer second = regionOpenInfo.getSecond(); int versionOfOfflineNode = second == null ? -1 : second.intValue(); builder.addOpenInfo(buildRegionOpenInfo( regionOpenInfo.getFirst(), versionOfOfflineNode)); } return builder.build(); }
/** * A helper to open a region using admin protocol. * @param admin * @param region * @throws IOException */ public static void openRegion(final AdminProtocol admin, final HRegionInfo region) throws IOException { OpenRegionRequest request = RequestConverter.buildOpenRegionRequest(region, -1); try { admin.openRegion(null, request); } catch (ServiceException se) { throw ProtobufUtil.getRemoteException(se); } }
@Override public OpenRegionResponse openRegion(RpcController controller, OpenRegionRequest request) throws ServiceException { // TODO Auto-generated method stub return null; }
/** * Create a protocol buffer OpenRegionRequest for a given region * * @param region the region to open * @param versionOfOfflineNode that needs to be present in the offline node * @param favoredNodes * @return a protocol buffer OpenRegionRequest */ public static OpenRegionRequest buildOpenRegionRequest( final HRegionInfo region, final int versionOfOfflineNode, List<ServerName> favoredNodes) { OpenRegionRequest.Builder builder = OpenRegionRequest.newBuilder(); builder.addOpenInfo(buildRegionOpenInfo(region, versionOfOfflineNode, favoredNodes)); return builder.build(); }
/** * Create a protocol buffer OpenRegionRequest for a given region * * @param region the region to open * @param versionOfOfflineNode that needs to be present in the offline node * @return a protocol buffer OpenRegionRequest */ public static OpenRegionRequest buildOpenRegionRequest( final HRegionInfo region, final int versionOfOfflineNode) { OpenRegionRequest.Builder builder = OpenRegionRequest.newBuilder(); builder.addOpenInfo(buildRegionOpenInfo(region, versionOfOfflineNode)); return builder.build(); }