Closed yy20716 closed 6 years ago
Cool !
Great! What I'm going to do is fix up the dev machine (tomodachi) with the node updates and switch owltools over to this branch for testing.
Okay, so we have a chain of issues going back to how stale tomodachi is. I'll try and clean this up on Monday up the hill.
Updated on server for testing. @yy20716 Could you look into the conflicts with master?
I resolved the conflicts as requested. The index dump for solr seems okay from my side, but I really did not have any other ways to confirm them... I hope that everything would work as intended.
The lessons I learned from this task can be summarized as follows:
FYI. I just wanted to note that it's not safe to merge this patch yet into the main branch, i.e. this one still uses the codes before this pull request. Once we confirm that the codes in that pull request work as expected, I will then incorporate the codes from that request and make an additional commit into this branch. Thank you for your patience.
I've merged #249 into master.
@yy20716 How is the status now? Tagging #212
Seth (@kltm), I think it's now good to go but please let me know if you encounter any issues. I only tested this with dummy solr loader, so maybe there are something I couldn't consider before. Thank you for your time.
@yy20716 @cmungall As per our discussion, let's go ahead with this code and test in amigo 2.5.x/master to optimize the time we have with @yy20716 .
This patch is for solving the memory leak issue that arises while generating solr indexes from go-cam model files.
Problem: Loading each model file involves (i) retrieving some literal values from ontology objects and (ii) materializing implicit axioms. These literals and axioms are later directly referenced and fed into the object used for solr document objects. The problem is that, even if we put codes that remove ontology objects, garbage collectors in Java skipped releasing the literals and the axioms because they are still in use, therefore all connected objects still stay in memory.
Solution: I cloned new objects from reasoning and reasoner objects (and then dispose them once they are converted them as solr index entries).
I believe similar issues would arise for many other parts of owltools but I minimally fixed the codes to avoid any other potential bugs for now.