@Test public void testRemove() { String node1 = "node-A"; nodes.add(node1); String node2 = "node-B"; nodes.add(node2); int totalNodes = nodes.getTotalNodes(); assertEquals(4, totalNodes); nodes.remove(node1); totalNodes = nodes.getTotalNodes(); assertEquals(2, totalNodes); }
public static void main(String[] args) { Map<String, AtomicInteger> distribution = Maps.newHashMap(); System.out.println("======: ConsistentHash :========"); ConsistentHash<String, String> c = new ConsistentHash(hfunc, strFunnel, strFunnel, getNodes(distribution)); for (int i = 0; i < 10000; i++) { distribution.get(c.get("" + i)).incrementAndGet(); } for (Entry<String, AtomicInteger> e : distribution.entrySet()) { System.out.println(e.getKey() + "," + e.getValue().get()); e.getValue().set(0); } System.out.println("====== remove 2 ========"); for (int i = 0; i < 2; i++) { c.remove("Node" + i); distribution.remove("Node" + i); } for (int i = 0; i < 10000; i++) { distribution.get(c.get("" + i)).incrementAndGet(); } for (Entry<String, AtomicInteger> e : distribution.entrySet()) { System.out.println(e.getKey() + "," + e.getValue().get()); } System.out.println("======: RendezvousHash :========"); distribution = Maps.newHashMap(); RendezvousHash<String, String> r = new RendezvousHash(hfunc, strFunnel, strFunnel, getNodes(distribution)); for (int i = 0; i < 10000; i++) { distribution.get(r.get("" + i)).incrementAndGet(); } for (Entry<String, AtomicInteger> e : distribution.entrySet()) { System.out.println(e.getKey() + "," + e.getValue().get()); e.getValue().set(0); } System.out.println("====== remove 2 ========"); for (int i = 0; i < 2; i++) { r.remove("Node" + i); distribution.remove("Node" + i); } for (int i = 0; i < 10000; i++) { distribution.get(r.get("" + i)).incrementAndGet(); } for (Entry<String, AtomicInteger> e : distribution.entrySet()) { System.out.println(e.getKey() + "," + e.getValue().get()); } }