Mercurial > hg > Database > Christie
changeset 193:f4343de364da
fix paxos
author | akahori |
---|---|
date | Tue, 26 Feb 2019 18:33:49 +0900 |
parents | 149d7fb0cfa6 |
children | 28c26ea5ef86 |
files | src/main/java/christie/test/topology/paxos/acceptor/AcceptCodeGear.java src/main/java/christie/test/topology/paxos/acceptor/AcceptorCodeGear.java src/main/java/christie/test/topology/paxos/acceptor/PromiseCodeGear.java |
diffstat | 3 files changed, 13 insertions(+), 43 deletions(-) [+] |
line wrap: on
line diff
--- 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<String> _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()); + } - - }
--- 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()); } }
--- 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()); }