Mercurial > hg > Database > Christie
view src/main/java/christie/test/topology/paxos/acceptor/PromiseCodeGear.java @ 183:1bffd8151c6a
fix paxos
author | akahori |
---|---|
date | Sat, 02 Feb 2019 15:19:20 +0900 |
parents | 33b4966d4d24 |
children | 2d0d41b648fa |
line wrap: on
line source
package christie.test.topology.paxos.acceptor; import christie.annotation.Take; import christie.codegear.CodeGear; import christie.codegear.CodeGearManager; import christie.test.topology.paxos.Proposal; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class PromiseCodeGear extends CodeGear { @Take Proposal promisedProposal; @Take Proposal prepareProposal; Logger logger = LogManager.getLogger(PromiseCodeGear.class); public PromiseCodeGear(){ } @Override protected void run(CodeGearManager cgm) { if(promisedProposal.getNumber() < prepareProposal.getNumber()) { if(promisedProposal.isAccepted()){ promisedProposal.setNumber(prepareProposal.getNumber()); }else{ promisedProposal = prepareProposal; } } put("promisedProposal", promisedProposal); logger.debug("promise " + promisedProposal); put(prepareProposal.getProposerName(),"receivePromise", promisedProposal); cgm.setup(new PromiseCodeGear()); } }