Assume-se que as máquinas já tenham instalado Java e Maven. Rodar o script initialization_script.sh. Esse script vai instalar o docker, clonar o código dos serviços e compilar tudo. Dependendo de como estiver configurada a máquina, pode ser necessário alguma intervenção manual após criar o usuário docker.
Após compilar os serviços, rodar os seguintes comandos em máquinas separadas. Assume-se que o IP da máquina do zookeeper é 10.10.1.1. Caso seja um IP diferente, é necessário alterar o código:
Levantar o zookeeper:
cd ~/shared-logger-client; docker-compose up -d zookeeperRodar o proposer:
cd ~/shared-logger-client/URingPaxos/target/Paxos-trunk ; ./thriftnode.sh 1 1:PA 10.10.1.1Rodar o acceptor:
cd ~/shared-logger-client/URingPaxos/target/Paxos-trunk ; ./ringpaxos.sh 2 1:A 10.10.1.1Rodar a réplica (serviço do smr):
cd ~/shared-logger-client/URingPaxos/clients/SMR/target/SMR-trunk ; ./replica.sh 1:L,4,0 0 10.10.1.1Rodar o serviço de réplicas log e criar um log nele:
cd ~/shared-logger-client/server
mvn quarkus:dev &
sleep 10
curl -X POST "http://localhost:8888/register" -H "accept: */*" -H "Content-Type: application/json" -d "{\"id\":4,\"pathPrefix\":\"/tmp/\",\"replicas\":2,\"ring\":\"1\"}"
fgRodar o cliente. No caso, o comando levanta 10 threads, que enviam 100 comandos com tanho de 1kb usando o zookeeper na máquina 10.10.1.1.
~/shared-logger-client/run_experiment.sh 10 100 1024 10.10.1.1Executar o comando:
/opt/zookeeper/bin/zkCli.sh set /ringpaxos/topology1/config/learner_recovery 0
/opt/zookeeper/bin/zkCli.sh set /ringpaxos/topology2/config/learner_recovery 0Dentro da máquina docker do zookeeper