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());
     }