geneontology / noctua

Graph-based modeling environment for biology, including prototype editor and services
http://noctua.geneontology.org/
BSD 3-Clause "New" or "Revised" License
38 stars 12 forks source link

Minerva startup should be independent of svn #457

Closed cmungall closed 7 years ago

cmungall commented 7 years ago

Lot's of hardwired dependencies:

https://github.com/geneontology/noctua/search?utf8=%E2%9C%93&q=~%2Flocal%2Fsrc%2Fsvn%2Fgeneontology.org%2Ftrunk%2Fontology%2Fextensions%2Fcatalog-v001.xml&type=

The most straightforward approach is not to use a local catalog file at all

e.g. in

java -Xmx128G -cp ../minerva/minerva-cli/bin/minerva-cli.jar org.geneontology.minerva.server.StartUpTool --use-golr-url-logging --use-request-logging --arachne -g http://purl.obolibrary.org/obo/go/extensions/go-lego.owl --set-important-relation-parent http://purl.obolibrary.org/obo/LEGOREL_0000000 --port 6800 -f /srv/noctua/blazegraph.jnl --export-folder ~/local/src/git/noctua-models/models/ -c ~/local/src/svn/geneontology.org/trunk/ontology/extensions/catalog-v001.xml --golr-labels http://noctua-golr.berkeleybop.org --golr-seed http://amigo-dev-golr.berkeleybop.org --skip-class-id-validation

Simply remove -c ~/local/src/svn/geneontology.org/trunk/ontology/extensions/catalog-v001.xml

The downside is that startup is now less resilient in the face of network glitches, in addition to being slower. Approaches to try here would be:

  1. dumb retry of minerva startup if startup fails
  2. add java code that performs retries on individual imports if they fail
  3. Add an upstream step:
    • Use robot mirror OR simply merge the import closure into a single file
    • Use either the mirror or the megafile when starting up minerva
cmungall commented 7 years ago

Related document on rethinking go-lego strategy: https://docs.google.com/document/d/1rOXCoJ-ZKGCGQ_0LpJOlsVVfVyKgUez52Kdq_VnUxEk/edit#heading=h.2xfrimu18i3h

kltm commented 7 years ago

I think just yanking the catalog is the easiest thing to do. supervisor will already retry if startup fails (and it might even shutdown properly as a reasoner might not be started yet). Given the infrequency of restarts, I think it would be reasonable to just make the default invocation leave it out.