Sunday, January 22, 2017

GMP Performance

I know performance is a point of frustration with Genome Mate Pro (GMP) for some.  I can see a significant difference when loading data into my husband’s computer versus mine.
There is no doubt that GMP is much slower importing data than the old app. This is because the old app kept all data in memory and saved to disk every 5 minutes. Memory access is much faster than disk access but due to a Silverlight constraint, the in-memory database was limited in size.
The new app is virtually unlimited in size as it keeps the data in an SQLite database on disk.  However, the time it takes to load is a function of disk access speed and this varies from user to user.  I have been told that a solid state drive (SSD) is very efficient.
One way to improve performance without replacing your hardware is to set the import criteria in Options as highlighted below.  This will reduce the number of writes to the log file.
Starting with the 2016r01 release, it will be possible to enable in-memory journaling.  What this does is to write the SQLite journal file to memory rather than disk.  This is not recommended because there is a risk that if GMP is shutdown abnormally, the database may become corrupted and unusable.  If you do choose to use this option, BACKUP (File -> Backup) first.
~ Becky ~
P.S.  Tested loading data on my husband’s slow computer with these two options and the import time was amazing (197k records in less than 30 mins).

1 comment:

  1. Silverlight hopefully allows putting multiple SQL writes into a transaction. By doing so, SQLite can do 100 or even a thousand writes at a time. In my programming work and my tests with SQLite, I've found that speeds things up incredibly. I'm not familiar with Silverlight though.