protected void process(Collection<Request> requests) { if(requests.isEmpty()) return; Request firstReq=requests.iterator().next(); switch(firstReq.type) { case Request.JOIN: case Request.JOIN_WITH_STATE_TRANSFER: case Request.LEAVE: case Request.SUSPECT: impl.handleMembershipChange(requests); break; case Request.MERGE: impl.merge(firstReq.views); break; default: log.error("request " + firstReq.type + " is unknown; discarded"); } }
public void init() throws Exception { super.init(); join_promise.reset(); }
break; case GmsHeader.JOIN_RSP: impl.handleJoinResponse(hdr.join_rsp); break; case GmsHeader.LEAVE_REQ: break; case GmsHeader.LEAVE_RSP: impl.handleLeaveResponse(); break; case GmsHeader.VIEW: impl.handleViewChange(new_view, hdr.my_digest); impl.handleViewChange(new_view, hdr.my_digest); impl.handleMergeRequest(msg.getSrc(), hdr.merge_id); break; MergeData merge_data=new MergeData(msg.getSrc(), hdr.view, hdr.my_digest); merge_data.merge_rejected=hdr.merge_rejected; impl.handleMergeResponse(merge_data, hdr.merge_id); break; impl.handleMergeView(new MergeData(msg.getSrc(), hdr.view, hdr.my_digest), hdr.merge_id); down_prot.down(new Event(Event.RESUME_STABLE)); break; impl.handleMergeCancelled(hdr.merge_id);
JoinRsp join_rsp=readJoinRsp(msg.getRawBuffer(), msg.getOffset(), msg.getLength()); if(join_rsp != null) impl.handleJoinResponse(join_rsp); break; case GmsHeader.LEAVE_REQ: break; case GmsHeader.LEAVE_RSP: impl.handleLeaveResponse(); break; case GmsHeader.VIEW: impl.handleViewChange(new_view, tuple.getVal2()); impl.handleViewChange(new_view, tuple.getVal2()); Collection<? extends Address> mbrs=readMembers(msg.getRawBuffer(), msg.getOffset(), msg.getLength()); if(mbrs != null) impl.handleMergeRequest(msg.getSrc(), hdr.merge_id, mbrs); break; log.trace("%s: got merge response from %s, merge_id=%s, merge data is %s", local_addr, msg.getSrc(), hdr.merge_id, merge_data); impl.handleMergeResponse(merge_data, hdr.merge_id); break; if(tuple == null) return null; impl.handleMergeView(new MergeData(msg.getSrc(), tuple.getVal1(), tuple.getVal2()), hdr.merge_id);
impl.joinWithStateTransfer(local_addr, use_flush); else impl.join(local_addr, use_flush); return null; // don't pass down: event has already been passed down impl.leave(evt.getArg()); if(!(impl instanceof CoordGmsImpl)) {
impl.handleViewChange(full_view, digest); // install the view locally first down_prot.down(view_change_msg); sendJoinResponses(jr, joiners);
JoinRsp join_rsp=readJoinRsp(msg.getRawBuffer(), msg.getOffset(), msg.getLength()); if(join_rsp != null) impl.handleJoinResponse(join_rsp); break; case GmsHeader.LEAVE_REQ: break; case GmsHeader.LEAVE_RSP: impl.handleLeaveResponse(); break; case GmsHeader.VIEW: impl.handleViewChange(new_view, tuple.getVal2()); impl.handleViewChange(new_view, tuple.getVal2()); Collection<? extends Address> mbrs=readMembers(msg.getRawBuffer(), msg.getOffset(), msg.getLength()); if(mbrs != null) impl.handleMergeRequest(msg.getSrc(), hdr.merge_id, mbrs); break; log.trace("%s: got merge response from %s, merge_id=%s, merge data is %s", local_addr, msg.getSrc(), hdr.merge_id, merge_data); impl.handleMergeResponse(merge_data, hdr.merge_id); break; if(tuple == null) return null; impl.handleMergeView(new MergeData(msg.getSrc(), tuple.getVal1(), tuple.getVal2()), hdr.merge_id);
impl.joinWithStateTransfer(local_addr, use_flush); else impl.join(local_addr, use_flush); return null; // don't pass down: event has already been passed down impl.leave(evt.getArg()); if(!(impl instanceof CoordGmsImpl)) {
impl.handleViewChange(full_view, digest); // install the view locally first down_prot.down(view_change_msg); sendJoinResponses(jr, joiners);
protected void process(Collection<Request> requests) { if(requests.isEmpty()) return; Request firstReq=requests.iterator().next(); switch(firstReq.type) { case Request.JOIN: case Request.JOIN_WITH_STATE_TRANSFER: case Request.LEAVE: case Request.SUSPECT: impl.handleMembershipChange(requests); break; case Request.MERGE: impl.merge(firstReq.views); break; default: log.error("request " + firstReq.type + " is unknown; discarded"); } }
public void init() throws Exception { super.init(); leave_promise.reset(); }
impl.handleMembershipChange(newMembers, oldMembers, suspectedMembers); break; case Request.MERGE: if(requests.size() > 1) log.error("more than one MERGE request to process, ignoring the others"); impl.merge(firstReq.coordinators); break; case Request.VIEW:
public void init() throws Exception { merger=new Merger(this); if(view_ack_collection_timeout <= 0) throw new IllegalArgumentException("view_ack_collection_timeout has to be greater than 0"); if(merge_timeout <= 0) throw new IllegalArgumentException("merge_timeout has to be greater than 0"); prev_members=new BoundedList<>(num_prev_mbrs); prev_views=new BoundedList<>(num_prev_views); TP transport=getTransport(); timer=transport.getTimer(); if(timer == null) throw new Exception("timer is null"); if(impl != null) impl.init(); transport.registerProbeHandler(this); }
public void init() throws Exception { super.init(); join_promise.reset(); }
public void init() throws Exception { super.init(); suspected_mbrs.removeAllElements(); leave_promise.reset(); }
public void init() throws Exception { super.init(); synchronized(initial_mbrs) { initial_mbrs.clear(); initial_mbrs_received=false; } join_promise.reset(); }
public void init() throws Exception { super.init(); cancelMerge(); }
public void init() throws Exception { super.init(); leave_promise.reset(); }
public void init() throws Exception { prev_members=new BoundedList(num_prev_mbrs); timer=stack != null? stack.timer : null; if(timer == null) throw new Exception("GMS.init(): timer is null"); if(impl != null) impl.init(); }