- Instale o docker-compose
- Instale as bibliotecas presentes no requirements.txt
- Crie um arquivo chamado
.env.local
com as informações necessárias, seguindo o exemplo de.env.local.example
.
- Entre em uma das pastas com nome "Dockercompose_n
<nós>
" - Inicialize a instância com o comando:
sudo docker-compose up -d # inicializa os nós e o kibana
- Para conferir se o kibana está executando, acesse: http://localhost:5601/app/discover
- Na pasta do projeto, crie um arquivo
.env
e insira as chaves e variáveis de ambiente da instância do docker nele.
Obs.: para mais informações leia README-DOCKER
O script script.sh
executará a indexação, a busca e comparação e salvará os resultados na pasta ./logs/<INDEX>_<timestamp>
.
chmod +x script.sh
bash script.sh
O script script-compare.sh
executará a comparação com todos os resultados na pasta ./logs/<FOLDER_PATH>
. Não esqueça de definir em .env.local
, a pasta FOLDER_PATH
, e as combinações de NODES_LIST
e SHARDS_LIST
existentes nos logs da pasta.
chmod +x script-compare.sh
bash script-compare.sh
O script indexing.py
executará a indexação e salvará o resultado na pasta.
Os parâmetros são:
- func (obrigatório): função a ser executada. (id - index_documents, ib - index_documents_bulk)
- shards: quantidade de shards. Caso não seja passado, a quantidade de shards será estabelecida pela variável de ambiente SHARDS, do
.env.local
. - folder_name: caminho da pasta onde será guardado o resultado. (Caso não seja passado, será a pasta
./logs/
)
indexing.py [-h] func [shards] [folder_name]
Os exemplos a seguir executam indexações e salvam os logs em ./logs/
:
python3 indexing.py id # index_documents
python3 indexing.py ib # index_documents_bulk
O script searching.py
executará a busca de acordo com os parâmetros e salvará o resultado na pasta.
Os parâmetros são:
- func (obrigatório): função a ser executada. (ls - linear_search, lm - linear_msearch, ps - parallel_search)
- folder_name: caminho da pasta onde será guardado o resultado. (Caso não seja passado, será a pasta
./logs/
)
searching.py [-h] func [folder_name]
Os exemplos a seguir executam buscas e salvam os logs em /logs
:
python3 searching.py ls # linear_search
python3 searching.py lm # linear_msearch
python3 searching.py ps # parallel_search
O script compare.py
fará a comparação e geração de gráficos para os arquivos de log do linear_search
, linear_msearch
e parallel_search
que estão dentro da pasta. Para isto é necessário já ter executado a "busca".
Os parâmetros da execução são:
- nodes (obrigatório): quantidade de nodes do arquivo de log
- shards (obrigatório): quantidade de shards do arquivo de log
- folder_name: caminho da pasta onde estão os logs e onde será guardado o resultado. (Caso não seja passado, será a pasta
./logs/
)
compare.py [-h] nodes shards [folder_name]
O exemplo a seguir fará comparações e gerará gráficos para os arquivos da pasta ./logs/
de nomes: n1_s4_log_linear_search.json
, n1_s4_log_linear_msearch.json
e n1_s4_log_parallel_search.json
.
python3 compare.py 1 4
O script compare_results.py
fará a comparação e geração de gráficos para todos os arquivos da pasta. Para isto é necessário já ter executado a "busca".
Os parâmetros da execução são:
- folder_name: caminho da pasta onde estão os logs e onde será guardado o resultado. (Caso não seja passado, será a pasta
./logs/
) - nodes_list: lista de nós dos logs das pasta. (Se não for fornecido, será [1,2,3,4])
- shards_list: lista de shards dos logs da pasta. (Se não for fornecido, será [1,2,4,8,12,16,32])
compare_results.py [-h] [--nodes_list [NODES_LIST ...]] [--shards_list [SHARDS_LIST ...]] [folder_name]
Obs.: A pasta deve conter logs para todas as combinações de nodes_list e shards_list fornecidos.
O exemplo a seguir fará comparações e gerará gráficos para os arquivos de logs da pasta ./logs/contextos_0621/
:
python compare_results.py ./logs/contextos_0621/ --nodes_list 1 2 3 4 --shards_list 1 2 4 8 12 16 32