Skip to content

Repository files navigation

Estrutura do Projeto

A organização deste projeto baseia-se nos padrões de estilo descritos neste blog: https://goodresearch.dev/. Ademais, o projeto contém diretórios não especificados no blog.
A lista a seguir apresenta o esqueleto do projeto.

  • /data: diretório para armazenamento dos conjuntos de dados;
    • /raw: diretório para armazenamento dos conjuntos de dados originais.
    • /predicates: diretório para armazenamento dos predicados.
  • /estimators: (nossa) implementação dos estimadores IEJoin e Repas et al (baseado em histogramas);
  • /inequality-join-estimation: diretório para armazenamento das variáveis de configuração e módulos, e.g., geração dos conjuntos de dados;
  • /notebooks: Notebook's Jupyter dos experimentos;
  • /scripts: scripts para execução dos experimentos;
  • /third_party: código-fonte utilizado ou adaptado de trabalhos anteriores;
    • /estimators/grid-ar: "Grid-AR: A Grid–based Booster for Learned Cardinality Estimation and Range Joins".
      • Código-fonte adaptado para suportar outros modelos durante a construção do grid (arquivos criados/modificados: eval_ineq_join.py, multidimensional_grid.py, range_regressor.py).

Reprodutibilidade

Para garantir reprodutibilidade, execute os Notebooks sequencialmente com base na enumeração (crescente).

OBS. (1): este projeto utiliza dois ambientes conda devido a dependências desatualizadas do Grid-AR. Portanto, utilize o ambiente grid-ar para executar o Notebook 3_grid_ar.ipynb. Os outros Notebooks devem ser executados com o ambiente iejoinest.

OBS. (2): é possível pular a etapa de geração dos conjuntos de dados sintéticos (em 1_workload.ipynb). Para facilidade, disponibilizamos todos os conjuntos de dados utilizados no experimento no Google Drive.

Criação dos ambientes

Antes de executar qualquer experimento, crie os ambientes Conda por meio dos arquivos de configuração.

iejoinest:

conda env create -f environment.yml

grid-ar:

conda env create -f environment_gridar.yml

About

Projeto final das disciplinas PPGCC15 (Tópicos em Engenharia de Software) e PPGCC21 (Reconhecimento de Padrões) do PPGCC da UTFPR-CM.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages