Speed up the Emulab database
It is becoming increasingly clear, if it wasn't already, that the database is one of our primary bottlenecks for allowing instantiation of large numbers of experiments at once. The options are either to speed up our mysql setup/schema or to switch to a different DB.
For the former, we can further attempt to optimize our MyISAM tables:
which is straight forward but will provide minimal payoff. We can switch to InnoDB that supports better parallelism but at non-trivial cost to convert:
or we could try clustering or replication:
- https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster.html
- https://dev.mysql.com/doc/refman/5.7/en/replication.html
but I am not sure that those make sense in our environment which doesn't need to scale that far and has a very small footprint infrastructure-wise (one or two servers).
Switching databases would be a lot more work and with no guarantee of better performance. MariaDB:
is a fork of mysql and claims to be faster/better/stronger. It would probably be the easiest to transition to. PostgreSQL:
is more featureful and better for very large DBs, but seems like overkill for us. The transition is likely to be extremely painful as well.