aboutsummaryrefslogtreecommitdiff

Introduction

This directory contains scripts that are used to instrument the performance of fetching a trait using the GN2 API vs using LMDB. Assuming you have a script called ,runcmd:

#!/bin/sh

env GN2_PROFILE=$HOME/opt/genenetwork2 \
    TMPDIR=$HOME/tmp SERVER_PORT=5004 \
    WEBSERVER_MODE=DEV \
    GENENETWORK_FILES=$HOME/data/genotype_files/ \
    SPARQL_ENDPOINT=http://localhost:8892/sparql\
    SQL_URI="mysql://root:root@localhost:3306/db_webqtl_s"\
    GN_PROXY_URL=http://localhost:8080 \
    GN_SERVER_URL=http://localhost:8083/api \
    GN3_LOCAL_URL=http://localhost:8083 \
    GN_LOCAL_URL=http://localhost:8083 \
    $HOME/projects/oqo-genenetwork2/bin/genenetwork2 \
    $HOME/projects/oqo-genenetwork2/gn2/default_settings.py\
    -cli $*

To run the script 10 times, execute:

,runcmd testing python $HOME/projects/oqo-genenetwork2/testing/scripts/performance/timeit_gn2.py 10
,runcmd testing python $HOME/projects/oqo-genenetwork2/testing/scripts/performance/timeit_lmdb.py 10

Here are some rudimentary results:

Assuming you have already dumped "HLCPublish/10001" - which contains 476 strains - somewhere in LMDB, the time it takes to fetch "HLCPublish/10001" N times is:

Number gn2 (seconds) lmdb (seconds) gn2/lmdb
10 0.5971280680023483 0.04270002100020065 13.984257
50 3.6268229950001114 0.15371317300014198 23.594744
100 5.885073402001581 0.3161755159999302 18.613312
1000 60.6393681030022 3.107457533998968 19.514142
10000 723.0237347940019 27.541215700002795 26.252426