changeset 172:2068aa841a4d

fix paxos
author akahori
date Fri, 25 Jan 2019 16:56:21 +0900
parents 7e97f59a13fa
children 6ea1f8958d1a
files src/main/java/christie/test/topology/paxos/StartPaxosNode.java src/main/java/christie/test/topology/paxos/acceptor/AcceptCodeGear.java src/main/java/christie/test/topology/paxos/acceptor/StartAcceptor.java src/main/java/christie/test/topology/paxos/learner/StartLearner.java src/main/java/christie/test/topology/paxos/proposer/StartProposer.java
diffstat 5 files changed, 28 insertions(+), 56 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/christie/test/topology/paxos/StartPaxosNode.java	Fri Jan 25 16:56:21 2019 +0900
@@ -0,0 +1,14 @@
+package christie.test.topology.paxos;
+
+import christie.topology.node.StartTopologyNode;
+import christie.topology.node.TopologyNodeConfig;
+
+public class StartPaxosNode {
+
+    public static void main(String[] args){
+        TopologyNodeConfig topologyNodeConfig = new TopologyNodeConfig(args);
+        new StartTopologyNode(topologyNodeConfig, new CheckMyName());
+    }
+
+}
+
--- a/src/main/java/christie/test/topology/paxos/acceptor/AcceptCodeGear.java	Tue Jan 22 18:35:44 2019 +0900
+++ b/src/main/java/christie/test/topology/paxos/acceptor/AcceptCodeGear.java	Fri Jan 25 16:56:21 2019 +0900
@@ -8,6 +8,8 @@
 import christie.topology.TopologyDataGear;
 
 import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 public class AcceptCodeGear extends CodeGear {
 
@@ -17,6 +19,9 @@
     @Take
     Proposal acceptProposal;
 
+    Pattern pattern = Pattern.compile("^(proposer|acceptor|learner)([0-9]+)$");
+
+
     @Take
     Proposal promisedProposal;
 
@@ -24,12 +29,18 @@
     protected void run(CodeGearManager cgm) {
         List<String> _CLIST = topoDG.getConnectionList();
 
-        if(acceptProposal.getNumber() >= promisedProposal.getNumber()){
+        if(acceptProposal.getNumber() >= promisedProposal.getNumber()) {
             acceptProposal.setAccepted(true);
             acceptProposal.setAcceptorName(topoDG.getNodeName());
-            for(String learnerName : _CLIST)
-                put(learnerName, "acceptedProposal", acceptProposal);
 
+            for (String connectionNodeName : _CLIST){
+                Matcher matcher = pattern.matcher(connectionNodeName);
+                matcher.find();
+                if(matcher.group(1).equals("learner")) {
+                    put(connectionNodeName, "acceptedProposal", acceptProposal);
+                }
+            }
+            put(acceptProposal.getProposerName(), acceptProposal);
             put("promisedProposal", acceptProposal);
 
         }else{
--- a/src/main/java/christie/test/topology/paxos/acceptor/StartAcceptor.java	Tue Jan 22 18:35:44 2019 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-package christie.test.topology.paxos.acceptor;
-
-
-import christie.test.topology.paxos.proposer.ProposerCodeGear;
-import christie.topology.node.StartTopologyNode;
-import christie.topology.node.TopologyNodeConfig;
-
-public class StartAcceptor {
-
-    public static void main(String[] args){
-        TopologyNodeConfig topologyNodeConfig = new TopologyNodeConfig(args);
-        new StartTopologyNode(topologyNodeConfig, new AcceptCodeGear());
-    }
-
-}
-
-
--- a/src/main/java/christie/test/topology/paxos/learner/StartLearner.java	Tue Jan 22 18:35:44 2019 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-package christie.test.topology.paxos.learner;
-
-
-import christie.test.topology.paxos.proposer.ProposerCodeGear;
-import christie.topology.node.StartTopologyNode;
-import christie.topology.node.TopologyNodeConfig;
-
-public class StartLearner {
-
-    public static void main(String[] args){
-        TopologyNodeConfig topologyNodeConfig = new TopologyNodeConfig(args);
-        new StartTopologyNode(topologyNodeConfig, new LearnerCodeGear());
-    }
-
-}
-
-
--- a/src/main/java/christie/test/topology/paxos/proposer/StartProposer.java	Tue Jan 22 18:35:44 2019 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-package christie.test.topology.paxos.proposer;
-
-
-import christie.codegear.CodeGearManager;
-import christie.codegear.StartCodeGear;
-
-import christie.topology.node.StartTopologyNode;
-import christie.topology.node.TopologyNodeConfig;
-
-public class StartProposer {
-
-    public static void main(String[] args){
-        TopologyNodeConfig topologyNodeConfig = new TopologyNodeConfig(args);
-        new StartTopologyNode(topologyNodeConfig, new ProposerCodeGear());
-    }
-
-}
-
-