# HG changeset patch # User akahori # Date 1551173629 -32400 # Node ID f4343de364da63f0f0c1723c3cb938afd38a6280 # Parent 149d7fb0cfa668158e2f86a947e56ba1bbff080e fix paxos diff -r 149d7fb0cfa6 -r f4343de364da src/main/java/christie/test/topology/paxos/acceptor/AcceptCodeGear.java --- a/src/main/java/christie/test/topology/paxos/acceptor/AcceptCodeGear.java Tue Feb 12 16:11:16 2019 +0900 +++ b/src/main/java/christie/test/topology/paxos/acceptor/AcceptCodeGear.java Tue Feb 26 18:33:49 2019 +0900 @@ -10,6 +10,8 @@ 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 { @@ -19,26 +21,16 @@ @Take Proposal acceptProposal; - - //PromiseProposal promiseProposal; - - //@Take - //Proposal promisedProposal; + @Take + Proposal promisedProposal; Logger logger = LogManager.getLogger(AcceptCodeGear.class); - @Override protected void run(CodeGearManager cgm) { List _CLIST = topoDG.getConnectionList(); - // promise codegearでも使うので, lock - PromiseProposal.getInstance().lock(); - PromiseProposal promiseProposal = PromiseProposal.getInstance(); - Proposal promisedProposal = promiseProposal.getPromiseProposal(); - if(acceptProposal.getNumber() >= promisedProposal.getNumber()) { - logger.debug(acceptProposal + " >= " + promisedProposal); acceptProposal.setAccepted(true); acceptProposal.setAcceptorName(topoDG.getNodeName()); @@ -46,20 +38,16 @@ for (String connectionNodeName : _CLIST){ if(connectionNodeName.matches("learner" + ".*")) { - //logger.debug("send " + topoDG.getNodeName() + " to " - // + connectionNodeName + " " + promisedProposal); + logger.debug("send " + connectionNodeName + " " + promisedProposal); getDGM(connectionNodeName).put("acceptedProposal", promisedProposal); } } } - promiseProposal.setPromiseProposal(promisedProposal); - promiseProposal.unLock(); - logger.debug("accept " + topoDG.getNodeName() + " " + promisedProposal); + put(acceptProposal.getProposerName(), "acceptedProposal", promisedProposal); put("promisedProposal", promisedProposal); cgm.setup(new AcceptCodeGear()); + } - - } diff -r 149d7fb0cfa6 -r f4343de364da src/main/java/christie/test/topology/paxos/acceptor/AcceptorCodeGear.java --- a/src/main/java/christie/test/topology/paxos/acceptor/AcceptorCodeGear.java Tue Feb 12 16:11:16 2019 +0900 +++ b/src/main/java/christie/test/topology/paxos/acceptor/AcceptorCodeGear.java Tue Feb 26 18:33:49 2019 +0900 @@ -10,13 +10,8 @@ @Override protected void run(CodeGearManager cgm) { - PromiseProposal promiseProposal = PromiseProposal.getInstance(); - promiseProposal.setPromiseProposal(new Proposal()); cgm.setup(new PromiseCodeGear()); cgm.setup(new AcceptCodeGear()); - - /*cgm.setup(new PromiseCodeGear()); - cgm.setup(new AcceptCodeGear()); - put("promisedProposal", new Proposal());*/ + put("promisedProposal", new Proposal()); } } diff -r 149d7fb0cfa6 -r f4343de364da src/main/java/christie/test/topology/paxos/acceptor/PromiseCodeGear.java --- a/src/main/java/christie/test/topology/paxos/acceptor/PromiseCodeGear.java Tue Feb 12 16:11:16 2019 +0900 +++ b/src/main/java/christie/test/topology/paxos/acceptor/PromiseCodeGear.java Tue Feb 26 18:33:49 2019 +0900 @@ -1,22 +1,16 @@ 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.test.topology.paxos.proposer.ProposerCodeGear; -import christie.topology.TopologyDataGear; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class PromiseCodeGear extends CodeGear { - @Peek - TopologyDataGear topoDG; - - //@Peek - //Proposal promisedProposal; + @Take + Proposal promisedProposal; @Take Proposal prepareProposal; @@ -24,25 +18,18 @@ Logger logger = LogManager.getLogger(PromiseCodeGear.class); + public PromiseCodeGear(){ } + @Override protected void run(CodeGearManager cgm) { - // accept codegearでも使うので, lock - PromiseProposal.getInstance().lock(); - PromiseProposal promiseProposal = PromiseProposal.getInstance(); - Proposal promisedProposal = promiseProposal.getPromiseProposal(); - if(promisedProposal.getNumber() < prepareProposal.getNumber()) { if(!promisedProposal.isAccepted()){ promisedProposal = prepareProposal; } } - promiseProposal.setPromiseProposal(promisedProposal); - promiseProposal.unLock(); put("promisedProposal", promisedProposal); - logger.debug("promise " + topoDG.getNodeName() + " " + promisedProposal + ", " + promisedProposal.isAccepted()); + logger.debug("promise " + promisedProposal); put(prepareProposal.getProposerName(),"receivePromise", promisedProposal); - - //cgm.setup(new PromiseCodeGear(promiseProposal)); cgm.setup(new PromiseCodeGear()); }