/** * Returns a list of members which left from view one to two * @param one * @param two */ public static List<Address> leftMembers(View one, View two) { if(one == null || two == null) return null; List<Address> retval=new ArrayList<>(one.getMembers()); retval.removeAll(two.getMembers()); return retval; }
/** * @return an unmodifiable collection with the current cluster members. */ final Collection<Address> getViewMembers() { synchronized (deliverySet) { return currentView == null ? Collections.emptyList() : currentView.getMembers(); } }
public void viewAccepted(View new_view) { this.view=new_view; System.out.println("** view: " + new_view); members.clear(); members.addAll(new_view.getMembers()); }
void populateAnycastList(View view) { if(!anycasting) return; anycast_mbrs.clear(); List<Address> mbrs=view.getMembers(); int index=mbrs.indexOf(local_addr); for(int i=index + 1; i < index + 1 + anycast_count; i++) { int new_index=i % mbrs.size(); anycast_mbrs.add(mbrs.get(new_index)); } System.out.println("local_addr=" + local_addr + ", anycast_mbrs = " + anycast_mbrs); }
@Override public void viewAccepted(View view) { System.out.println("New View: " + view); super.viewAccepted(view); synchronized (this) { members = view.getMembers().size(); this.notify(); } }
protected void handleViewChange(View v) { List<Address> new_members=v.getMembers(); synchronized(members) { members.clear(); members.addAll(new_members); } state_requesters.retainAll(new_members); // remove non members from list of members requesting state }
public void viewAccepted(View new_view) { List<Address> new_mbrs=new_view.getMembers(); if(new_mbrs != null) { sendViewChangeNotifications(new_view, new_mbrs, new ArrayList<>(members)); // notifies observers (joined, left) members.clear(); members.addAll(new_mbrs); } }
public void viewAccepted(View new_view) { List<Address> new_mbrs=new_view.getMembers(); if(new_mbrs != null) { notifyViewChange(new_view); members.clear(); members.addAll(new_mbrs); } //if size is bigger than one, there are more peers in the group //otherwise there is only one server. send_message=members.size() > 1; }
protected void handleView(View view) { members=view.getMembers(); for(Iterator<Map.Entry<Short,Entry>> it=ids.entrySet().iterator(); it.hasNext();) { Entry entry=it.next().getValue(); if(entry != null && entry.retainAll(view.getMembers()) && entry.size() == 0) { entry.destroy(); it.remove(); } } }
protected void handleViewChange(View view) { List<Address> new_mbrs=view.getMembers(); List<Address> left_mbrs=Util.determineLeftMembers(members, new_mbrs); members.clear(); members.addAll(new_mbrs); for(Address mbr: left_mbrs) { // the new view doesn't contain the sender, it must have left, hence we will clear its fragmentation tables fragment_list.remove(mbr); log.trace("%s: removed %s from fragmentation table", local_addr, mbr); } }
protected void handleViewChange(View view) { List<Address> new_mbrs=view.getMembers(); List<Address> left_mbrs=Util.determineLeftMembers(members, new_mbrs); members.clear(); members.addAll(new_mbrs); for(Address mbr: left_mbrs) { // the new view doesn't contain the sender, it must have left, hence we will clear its fragmentation tables fragment_list.remove(mbr); log.trace("%s: removed %s from fragmentation table", local_addr, mbr); } }
public void viewAccepted(View v) { List<Address> mbrs=v.getMembers(); System.out.println("View accepted: " + v); member_size=v.size(); if(mbr_label != null) mbr_label.setText(member_size + " mbr(s)"); members.clear(); members.addAll(mbrs); }
@ManagedOperation(description="Sends information about my cache to everyone but myself") public void sendCacheInformation() { List<Address> current_members=new ArrayList<>(view.getMembers()); disseminateDiscoveryInformation(current_members, null, current_members); }
protected void handleView(View view) { view_size=view.size(); Address tmp=Util.pickNext(view.getMembers(), local_addr); if(tmp != null && !tmp.equals(local_addr)) { next=tmp; if(log.isDebugEnabled()) log.debug("next=" + next); } }
public void viewAccepted(View v) { if(v != null && mbr_label != null) mbr_label.setText(v.size() + " mbr(s)"); if(panel != null) panel.adjustNodes(v.getMembers()); }
protected void handleViewChange(View v) { super.handleViewChange(v); if(state_provider != null && !v.getMembers().contains(state_provider)) { openBarrierAndResumeStable(); Exception ex=new EOFException("state provider " + state_provider + " left"); up_prot.up(new Event(Event.STATE_TRANSFER_INPUTSTREAM_CLOSED, new StateTransferResult(ex))); } }
private void createJChannel() throws Exception { System.out.println("Creating Channel"); receiver = new MyReceiver(numberOfNodes, this); jChannel = new JChannel(config); jChannel.setReceiver(receiver); jChannel.connect(CLUSTER); receiver.waitUntilClusterIsFormed(); Util.registerChannel(jChannel, JMX_DOMAIN); members.addAll(jChannel.getView().getMembers()); }
public Object up(Event evt) { switch(evt.getType()) { case Event.VIEW_CHANGE: handleViewChange(((View)evt.getArg()).getMembers()); break; } return up_prot.up(evt); }
protected void handleViewChange(View v) { super.handleViewChange(v); if(state_provider != null && !v.getMembers().contains(state_provider)) { Util.close(input_stream); openBarrierAndResumeStable(); Exception ex=new EOFException("state provider " + state_provider + " left"); up_prot.up(new Event(Event.STATE_TRANSFER_INPUTSTREAM_CLOSED, new StateTransferResult(ex))); } }
public Object down(Event evt) { switch(evt.getType()) { case Event.SET_LOCAL_ADDRESS: local_addr=evt.getArg(); break; case Event.VIEW_CHANGE: View v=evt.getArg(); adjustSuspectedMembers(v.getMembers()); break; } return down_prot.down(evt); }