@Override public RSGroupInfo getRSGroupInfo(String groupName) throws IOException { return rsGroupInfoManager.getRSGroup(groupName); }
@Override public RSGroupInfo getRSGroupInfoOfTable(TableName tableName) throws IOException { // We are reading across two Maps in the below with out synchronizing across // them; should be safe most of the time. String groupName = rsGroupInfoManager.getRSGroupOfTable(tableName); return groupName == null? null: rsGroupInfoManager.getRSGroup(groupName); }
groupName = RSGroupInfo.DEFAULT_GROUP; RSGroupInfo info = rsGroupInfoManager.getRSGroup(groupName); if (assignedServer == null) { LOG.debug("There is no assigned server for {}", region);
groupName = RSGroupInfo.DEFAULT_GROUP; targetRSGInfo = rsGroupInfoManager.getRSGroup(groupName); } catch (IOException exp) { LOG.debug("RSGroup information null for region of table " + region.getTable(),
@Test public void testGroupInfoMultiAccessing() throws Exception { RSGroupInfoManager manager = rsGroupAdminEndpoint.getGroupInfoManager(); RSGroupInfo defaultGroup = manager.getRSGroup("default"); // getRSGroup updates default group's server list // this process must not affect other threads iterating the list Iterator<Address> it = defaultGroup.getServers().iterator(); manager.getRSGroup("default"); it.next(); }
Map<RegionInfo, ServerName> currentAssignmentMap = new TreeMap<RegionInfo, ServerName>(); List<RegionInfo> regionList = groupToRegion.get(key); RSGroupInfo info = rsGroupInfoManager.getRSGroup(key); List<ServerName> candidateList = filterOfflineServers(info, servers); for (RegionInfo region : regionList) { groupName = RSGroupInfo.DEFAULT_GROUP; RSGroupInfo info = rsGroupInfoManager.getRSGroup(groupName); List<ServerName> candidateList = filterOfflineServers(info, servers); ServerName server = this.internalBalancer.randomAssignment(region,
RSGroupInfo rsGroupInfo = rsGroupInfoManager.getRSGroup(name); if (rsGroupInfo == null) { throw new ConstraintException("RSGroup " + name + " does not exist");
protected static RSGroupInfoManager getMockedGroupInfoManager() throws IOException { RSGroupInfoManager gm = Mockito.mock(RSGroupInfoManager.class); Mockito.when(gm.getRSGroup(Mockito.any())).thenAnswer(new Answer<RSGroupInfo>() { @Override public RSGroupInfo answer(InvocationOnMock invocation) throws Throwable { return groupMap.get(invocation.getArgument(0)); } }); Mockito.when(gm.listRSGroups()).thenReturn( Lists.newLinkedList(groupMap.values())); Mockito.when(gm.isOnline()).thenReturn(true); Mockito.when(gm.getRSGroupOfTable(Mockito.any())) .thenAnswer(new Answer<String>() { @Override public String answer(InvocationOnMock invocation) throws Throwable { return tableMap.get(invocation.getArgument(0)); } }); return gm; }
@Override public RSGroupInfo getRSGroupInfo(String groupName) throws IOException { return rsGroupInfoManager.getRSGroup(groupName); }
private void generateGroupMaps( List<RegionInfo> regions, List<ServerName> servers, ListMultimap<String, RegionInfo> regionMap, ListMultimap<String, ServerName> serverMap) throws HBaseIOException { try { for (RegionInfo region : regions) { String groupName = rsGroupInfoManager.getRSGroupOfTable(region.getTable()); if (groupName == null) { LOG.info("Group not found for table " + region.getTable() + ", using default"); groupName = RSGroupInfo.DEFAULT_GROUP; } regionMap.put(groupName, region); } for (String groupKey : regionMap.keySet()) { RSGroupInfo info = rsGroupInfoManager.getRSGroup(groupKey); serverMap.putAll(groupKey, filterOfflineServers(info, servers)); if(serverMap.get(groupKey).size() < 1) { serverMap.put(groupKey, LoadBalancer.BOGUS_SERVER_NAME); } } } catch(IOException e) { throw new HBaseIOException("Failed to generate group maps", e); } }
@Override public RSGroupInfo getRSGroupInfo(String groupName) throws IOException { return rsGroupInfoManager.getRSGroup(groupName); }
RSGroupInfo destGroup = rsGroupInfoManager.getRSGroup(targetGroup); if(destGroup == null) { throw new ConstraintException("Target " + targetGroup + " RSGroup does not exist.");
@Test public void testGroupInfoMultiAccessing() throws Exception { RSGroupInfoManager manager = rsGroupAdminEndpoint.getGroupInfoManager(); RSGroupInfo defaultGroup = manager.getRSGroup("default"); // getRSGroup updates default group's server list // this process must not affect other threads iterating the list Iterator<Address> it = defaultGroup.getServers().iterator(); manager.getRSGroup("default"); it.next(); }
/** * All regions have an assignment. */ protected void assertImmediateAssignment(List<RegionInfo> regions, List<ServerName> servers, Map<RegionInfo, ServerName> assignments) throws IOException { for (RegionInfo region : regions) { assertTrue(assignments.containsKey(region)); ServerName server = assignments.get(region); TableName tableName = region.getTable(); String groupName = getMockedGroupInfoManager().getRSGroupOfTable(tableName); assertTrue(StringUtils.isNotEmpty(groupName)); RSGroupInfo gInfo = getMockedGroupInfoManager().getRSGroup(groupName); assertTrue("Region is not correctly assigned to group servers.", gInfo.containsServer(server.getAddress())); } }
getMockedGroupInfoManager().getRSGroupOfTable(tableName); assertTrue(StringUtils.isNotEmpty(groupName)); RSGroupInfo gInfo = getMockedGroupInfoManager().getRSGroup( groupName); assertTrue(
getMockedGroupInfoManager().getRSGroupOfTable(tableName); assertTrue(StringUtils.isNotEmpty(groupName)); RSGroupInfo gInfo = getMockedGroupInfoManager().getRSGroup( groupName); assertTrue(
@Override public RSGroupInfo getRSGroupInfoOfTable(TableName tableName) throws IOException { // We are reading across two Maps in the below with out synchronizing across // them; should be safe most of the time. String groupName = rsGroupInfoManager.getRSGroupOfTable(tableName); return groupName == null? null: rsGroupInfoManager.getRSGroup(groupName); }
@Override public RSGroupInfo getRSGroupInfoOfTable(TableName tableName) throws IOException { // We are reading across two Maps in the below with out synchronizing across // them; should be safe most of the time. String groupName = rsGroupInfoManager.getRSGroupOfTable(tableName); return groupName == null? null: rsGroupInfoManager.getRSGroup(groupName); }
private static RSGroupInfoManager getMockedGroupInfoManager() throws IOException { RSGroupInfoManager gm = Mockito.mock(RSGroupInfoManager.class); Mockito.when(gm.getRSGroup(groups[0])).thenReturn( groupMap.get(groups[0])); Mockito.when(gm.getRSGroup(groups[1])).thenReturn( groupMap.get(groups[1])); Mockito.when(gm.getRSGroup(groups[2])).thenReturn( groupMap.get(groups[2])); Mockito.when(gm.getRSGroup(groups[3])).thenReturn( groupMap.get(groups[3])); Mockito.when(gm.listRSGroups()).thenReturn( Lists.newLinkedList(groupMap.values())); Mockito.when(gm.isOnline()).thenReturn(true); Mockito.when(gm.getRSGroupOfTable(Mockito.any())) .thenAnswer(new Answer<String>() { @Override public String answer(InvocationOnMock invocation) throws Throwable { return tableMap.get(invocation.getArgument(0)); } }); return gm; }
/** * All regions have an assignment. */ private void assertImmediateAssignment(List<RegionInfo> regions, List<ServerName> servers, Map<RegionInfo, ServerName> assignments) throws IOException { for (RegionInfo region : regions) { assertTrue(assignments.containsKey(region)); ServerName server = assignments.get(region); TableName tableName = region.getTable(); String groupName = getMockedGroupInfoManager().getRSGroupOfTable(tableName); assertTrue(StringUtils.isNotEmpty(groupName)); RSGroupInfo gInfo = getMockedGroupInfoManager().getRSGroup(groupName); assertTrue("Region is not correctly assigned to group servers.", gInfo.containsServer(server.getAddress())); } }