Prev – The assumption around IO and SSD
To get around the IO issue with MySQL queries, I had already looked at in-memory and/or in-process DB options like MySQL memory engine, hsqldb,h2database, memsql. MySQL memory engine had some limitations over myisam engine and did not bring down the test time much. Hsqldb was not supporting many MySQL queries so was discarded. H2database looked promising as it could support many MySQL queries but still required couple of modifications to our code, which I thought was not worth the time and efforts. Secondly, it would have solved the issue just for our unit tests, but what would we do with the integration tests where code from two machines had to connect to the same db? In which case we couldn’t use the in-process option. Girish is still working on it. Let’s see where we land up with it. memsql looked most promising as it is wire compatible with MySQL, which means without code changes I could just point to memsql and be done with it. Two aspects discouraged me from going that path, firstly memsql can only be install on Linux, second I came across the blog MySQL is bazillion times faster than MemSQL