Commit 9e188391 authored by Juan José Miranda's avatar Juan José Miranda

Subimos archivo que contiene la guia para correr los experimentos realizados.

parent 283ecea4
Se utiliza la imagen de Docker 'bitnami-docker-mongodb-sharded'
1. Correr la imagen de docker:
cd docker
docker-compose up -d
Las sigueintes veces solo de debe levantar la imagen con los siguientes comandos:
para acceder a la VM con mongo: docker exec -it -u root:root bitnami_mongodb-sharded_1 bash
para acceder a la VM con del shard 0: docker exec -it -u root:root bitnami_mongodb-shard0_1 bash
para acceder a la VM con del shard 1: docker exec -it -u root:root bitnami_mongodb-shard1_1 bash
para acceder a la VM con del shard 2: docker exec -it -u root:root bitnami_mongodb-shard2_1 bash
2. Para instalar python en la VM (solo necesario en la VM con mongo):
apt-get update && apt-get install -y python3 python3-pip
apt-get -y install python3.7
pip3 install pymongo
3. Para acceder a mongo desde la VM, correr: mongo admin -u root -p password123
4. Para configurar la base de datos, correr:
use tweeter
db
db.createCollection('tweets')
show collections
sh.status()
db.tweets.createIndex({'key':1})
sh.enableSharding("tweeter")
sh.shardCollection("tweeter.tweets", {key:1})
sh.addShardToZone("shard0", "shard0")
sh.updateZoneKeyRange("tweeter.tweets", { key: "0" }, { key: "333333" }, "shard0")
sh.addShardToZone("shard1", "shard1")
sh.updateZoneKeyRange("tweeter.tweets", { key: "333333" }, { key: "666666" }, "shard1")
sh.addShardToZone("shard2", "shard2")
sh.updateZoneKeyRange("tweeter.tweets", { key: "666666" }, { key: "999999" }, "shard2")
sh.status()
5. Para copiar los scripts y el json del SO nativo a docker:
1. crear las siguientes carpetas dentro de docker:
mkdir scripts
cd scprpts
mkdir read
cd read
mkdir big_range
mkdir single_key
mkdir single_key
2. salir de docker (volver al SO nativo)
3. ejecutar: docker ps
4. obtener el ID del container de mongo (ej: ad8b855f68dc) y utilzarlo en los siguientes comandos:
docker cp tweets/tweets_3.json ad8b855f68dc:/tweets_3.json
docker cp write/b_random.py ad8b855f68dc:/scripts/b_random.py
docker cp write/m_random.py ad8b855f68dc:/scripts/m_random.py
docker cp write/m_sort.py ad8b855f68dc:/scripts/m_sort.py
docker cp write/random_t.py ad8b855f68dc:/scripts/random_t.py
docker cp write/random_combined.py ad8b855f68dc:/scripts/random_combined.py
docker cp write/sort.py ad8b855f68dc:/scripts/sort.py
docker cp read/random_t_index.py ad8b855f68dc:/scripts/read/random_t_index.py
docker cp read/random_t_index_single.py ad8b855f68dc:/scripts/read/random_t_index_single.py
docker cp read/big_range/sort_read.py ad8b855f68dc:/scripts/read/big_range/sort_read.py
docker cp read/big_range/b_random_read.py ad8b855f68dc:/scripts/read/big_range/b_random_read.py
docker cp read/big_range/m_random_read.py ad8b855f68dc:/scripts/read/big_range/m_random_read.py
docker cp read/big_range/m_sort_read.py ad8b855f68dc:/scripts/read/big_range/m_sort_read.py
docker cp read/big_range/random_combined_read.py ad8b855f68dc:/scripts/read/big_range/random_combined_read.py
docker cp read/big_range/random_t_read.py ad8b855f68dc:/scripts/read/big_range/random_t_read.py
docker cp read/single_key/single_key_b_random.py ad8b855f68dc:/scripts/read/single_key/single_key_b_random.py
docker cp read/single_key/single_key_m_random.py ad8b855f68dc:/scripts/read/single_key/single_key_m_random.py
docker cp read/single_key/single_key_m_sort.py ad8b855f68dc:/scripts/read/single_key/single_key_m_sort.py
docker cp read/single_key/single_key_random_combinated.py ad8b855f68dc:/scripts/read/single_key/single_key_random_combinated.py
docker cp read/single_key/single_key_sort.py ad8b855f68dc:/scripts/read/single_key/single_key_sort.py
docker cp read/single_key/single_key_random_t.py ad8b855f68dc:/scripts/read/single_key/single_key_random_t.py
docker cp read/small_range/sort_read.py ad8b855f68dc:/scripts/read/small_range/sort_read.py
docker cp read/small_range/b_random_read.py ad8b855f68dc:/scripts/read/small_range/b_random_read.py
docker cp read/small_range/m_random_read.py ad8b855f68dc:/scripts/read/small_range/m_random_read.py
docker cp read/small_range/m_sort_read.py ad8b855f68dc:/scripts/read/small_range/m_sort_read.py
docker cp read/small_range/random_combined_read.py ad8b855f68dc:/scripts/read/small_range/random_combined_read.py
docker cp read/small_range/random_t_read.py ad8b855f68dc:/scripts/read/small_range/random_t_read.py
6. Para cada script de escritura:
1. asignar los recursos necesarios:
1. en Windows, cerrar docker y ejecutar: wsl --shutdown
Luego crear el archivo .wslconfig en C:\Users\<user>, con los siguientes datos:
[wsl2]
memory=12GB # limited to 12 GB or RAM
processors=3 # Makes the WSL 2 VM use three virtual processors
2. ejecutar docker, entrar, acceder a la carpeta scripts, y ejecutar un scripts de escritura, por ejemplo:
python3 b_random.py
3. ejecutar todos los scripts de lectura relacionados al paso anterior
4. obtener los tiempos de escritura y lectura
5. borrar los datos de mongo:
mongo admin -u root -p password123
use tweeter
db.tweets.remove({})
6. para el caso de los scripts de lectura index, es necesario borrar los datos de mongo, ejecutar el script
read/random_t_index.py y luego ejecutar los 3 scirpts de index.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment