/** * Test BOGUS_SERVER_NAME among groups do not overwrite each other. */ @Test public void testRoundRobinAssignment() throws Exception { List<ServerName> onlineServers = new ArrayList<ServerName>(servers.size()); onlineServers.addAll(servers); List<RegionInfo> regions = randomRegions(25); int bogusRegion = 0; for(RegionInfo region : regions){ String group = tableMap.get(region.getTable()); if("dg3".equals(group) || "dg4".equals(group)){ bogusRegion++; } } Set<Address> offlineServers = new HashSet<Address>(); offlineServers.addAll(groupMap.get("dg3").getServers()); offlineServers.addAll(groupMap.get("dg4").getServers()); for(Iterator<ServerName> it = onlineServers.iterator(); it.hasNext();){ ServerName server = it.next(); Address address = server.getAddress(); if(offlineServers.contains(address)){ it.remove(); } } Map<ServerName, List<RegionInfo>> assignments = loadBalancer .roundRobinAssignment(regions, onlineServers); assertEquals(bogusRegion, assignments.get(LoadBalancer.BOGUS_SERVER_NAME).size()); } }
List<RegionInfo> regions = randomRegions(25); Map<ServerName, List<RegionInfo>> assignments = loadBalancer .roundRobinAssignment(regions, servers); loadBalancer.roundRobinAssignment(regions, Collections.emptyList());
/** * Test BOGUS_SERVER_NAME among groups do not overwrite each other. */ @Test public void testRoundRobinAssignment() throws Exception { List<ServerName> onlineServers = new ArrayList<ServerName>(servers.size()); onlineServers.addAll(servers); List<RegionInfo> regions = randomRegions(25); int bogusRegion = 0; for(RegionInfo region : regions){ String group = tableMap.get(region.getTable()); if("dg3".equals(group) || "dg4".equals(group)){ bogusRegion++; } } Set<Address> offlineServers = new HashSet<Address>(); offlineServers.addAll(groupMap.get("dg3").getServers()); offlineServers.addAll(groupMap.get("dg4").getServers()); for(Iterator<ServerName> it = onlineServers.iterator(); it.hasNext();){ ServerName server = it.next(); Address address = server.getAddress(); if(offlineServers.contains(address)){ it.remove(); } } Map<ServerName, List<RegionInfo>> assignments = loadBalancer .roundRobinAssignment(regions, onlineServers); assertEquals(bogusRegion, assignments.get(LoadBalancer.BOGUS_SERVER_NAME).size()); }
List<RegionInfo> regions = randomRegions(25); Map<ServerName, List<RegionInfo>> assignments = loadBalancer .roundRobinAssignment(regions, servers); loadBalancer.roundRobinAssignment(regions, Collections.EMPTY_LIST);