Git Product home page Git Product logo

tp2-pod's Introduction

TP2-POD

Repositorio para el trabajo práctico N°2 de la materia "72.42 - Programación de Objetos Distribuidos" - ITBA

1. Compilar el proyecto

Siguiendo los pasos provistos por la cátedra en el archivo Hazelcast - Configuración Java, es necesario primero construir el proyecto corriendo:

mvn clean install

Esto generará los archivos necesarios para correr el trabajo práctico. En la raíz del proyecto encontrarán archivos .sh usados para correr el servidor y las consultas.

2. Correr el servidor

./runserver.sh

3. Correr los clientes de las queries

./queryX.sh -Daddresses='xx.xx.xx.xx:XXXX;yy.yy.yy.yy:YYYY' -DinPath=XX -DoutPath=YY [params]

Donde

  • queryX es el script que corre la query X.
  • Daddresses refiere a las direcciones IP de los nodos con sus puertos (una o más, separadas por punto y coma)
  • DinPath indica el path donde están los archivos de entrada bikes.csv y stations.csv.
  • DoutPath indica el path donde estarán ambos archivos de salida.
  • params son los parámetros extras que corresponden para algunas queries.

Las queries 1 y 3 se corren sin parametros adicionales, mientras que la query 2 utiliza un -Dn=n (numero entero) y la y la query 4 utiliza -DstartDate=dd/MM/yyyy y -DendDate=dd/MM/yyyy.

Observaciones

  • En la consigna se pedía que los clientes corrieran desde terminal sin incluir la extensión .sh (Ejemplo: ./query1 ...). Esto depende de la configuración de la terminal, pero en el caso de este desarrollo (y como está aclarado en este README), el proyecto se corrió con la extensión incluida.
  • Es importante notar que la compilación de los .sh presenta inconvenientes cuando se compilan en windows. Al compilarse el proyecto en windows, se genera al final de las lineas el \n\r. Esto es algo que impide la correcta ejecución de los scripts, dado que marca un error al no reconocer las lineas desde un sistema Linux. Para esto, se tiene el siguiente comando que elimina el \r de todas las lineas, dejando así comandos ejecutables en un sistema Linux:
find . -name '*.sh' -exec sed -i -e 's/\r$//' {} \;
  • Aunque no fue aclarado en la consigna, la lectura de un .csv de 14 millones de líneas es imposible (hazelcast da un error de heap space). Debido a esta imposibilidad, se fijo, en la clase ParsingUtils.java, una constante denominada MAX_LINES_TO_READ, que indica el valor máximo de entradas que se leerán de un archivo. De ser más corto, no habrá inconveniente.
  • Si se quiere modificar, alcanza con entrar a la clase, cambiar el valor por el deseado, y comenzar desde el paso 1.
  • Tambien, existe la funcion para realizar la lectura del archivo en forma de batch, sin embargo, para los testeos y el analisis de la performance se desperdiciaba mucho tiempo.

Integrantes:

Nombre Legajo
De Simone, Franco 61100
Dizenhaus, Manuel 61101
Anselmo, Sol 61278

tp2-pod's People

Contributors

manueldizen avatar sanselmo avatar desimonef avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.