view src/main/java/christie/test/Paxos/StartLocalPaxos.java @ 148:301c1633745e

update paxos
author akahori
date Tue, 08 Jan 2019 16:24:14 +0900
parents src/main/java/christie/test/Paxos/StartPaxos.java@e1e919f12ed9
children 7a2108775da7
line wrap: on
line source

package christie.test.Paxos;

import christie.codegear.CodeGearManager;

import christie.codegear.StartCodeGear;

import java.util.ArrayList;
import java.util.HashMap;

public class StartLocalPaxos extends StartCodeGear{

    public StartLocalPaxos(CodeGearManager cgm) {
        super(cgm);

    }

    public static void main(String args[]){
        int proposer_port = 10000;
        int proposers_num = 2;
        int acceptor_port = proposer_port + proposers_num;
        int acceptors_num = 3;

        ArrayList<CodeGearManager> proposers = new ArrayList<>();
        ArrayList<CodeGearManager> acceptors = new ArrayList<>();


        for(int i = 0; i < acceptors_num; i++){
            String nodeName = "acceptor" + i;
            CodeGearManager acceptor = createCGM(acceptor_port + i);
            acceptor.getLocalDGM().put("nodeName", nodeName);
            acceptor.setup(new AcceptorCodeGear());
            acceptors.add(acceptor);
        }

        for(int i = 0; i < proposers_num; i++){
            String nodeName = "proposer" + i;
            CodeGearManager proposer = createCGM(proposer_port + i);
            proposer.getLocalDGM().put("nodeName", nodeName);
            proposer.getLocalDGM().put("nodeNum", proposers_num + acceptors_num);
            proposer.getLocalDGM().put("id", i);
            proposer.getLocalDGM().put("acceptorNodeNum", acceptors_num);
            proposers.add(proposer);
        }


        for(int i = 0; i < proposers_num; i++){

            for(int j = 0; j < acceptors_num; j++){
                proposers.get(i).createRemoteDGM("acceptor" + j, "localhost", acceptors.get(j).localPort);
                acceptors.get(j).createRemoteDGM("proposer" + i, "localhost", proposers.get(i).localPort);
            }
            proposers.get(i).setup(new ProposerCodeGear());
        }

    }
}