Mercurial > hg > Database > Christie
view src/main/java/christie/test/topology/paxos/acceptor/AcceptCodeGear.java @ 193:f4343de364da
fix paxos
author | akahori |
---|---|
date | Tue, 26 Feb 2019 18:33:49 +0900 |
parents | 2d0d41b648fa |
children |
line wrap: on
line source
package christie.test.topology.paxos.acceptor; import christie.annotation.Peek; import christie.annotation.Take; import christie.codegear.CodeGear; import christie.codegear.CodeGearManager; import christie.test.topology.paxos.Proposal; import christie.topology.TopologyDataGear; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; public class AcceptCodeGear extends CodeGear { @Peek TopologyDataGear topoDG; @Take Proposal acceptProposal; @Take Proposal promisedProposal; Logger logger = LogManager.getLogger(AcceptCodeGear.class); @Override protected void run(CodeGearManager cgm) { List<String> _CLIST = topoDG.getConnectionList(); if(acceptProposal.getNumber() >= promisedProposal.getNumber()) { acceptProposal.setAccepted(true); acceptProposal.setAcceptorName(topoDG.getNodeName()); promisedProposal = acceptProposal; for (String connectionNodeName : _CLIST){ if(connectionNodeName.matches("learner" + ".*")) { logger.debug("send " + connectionNodeName + " " + promisedProposal); getDGM(connectionNodeName).put("acceptedProposal", promisedProposal); } } } put(acceptProposal.getProposerName(), "acceptedProposal", promisedProposal); put("promisedProposal", promisedProposal); cgm.setup(new AcceptCodeGear()); } }