I use MySQL in my system but the advice should be applicable to Postgres as well: keep your test database in a ramdisk. By moving my MySQL to ramdisk I got almost a tenfold improvement when running tests on a build server. Not so much (but also significant) improvement when running tests on my development machine.
We have benchmarked this at our company and notivced that using a ramdisk does not give much extra performance over just turning of synchronous_commit in PostgreSQL. Most of the slowdown from the database turned out to be latency from waiting on the background writer to fsync.
Why do you think there was a difference between tests on a build server and on your development machine? Was it just a case of the build server being configured for performance?
I'm pretty sure that it's down to hard disk performance. I don't recall exact numbers but difference in IOPS between my development machine and a build server in the cloud (Azure) was greatly in favour of the former.
Sad to say but it doesn't add much value and it makes certain tasks harder even. For instance it makes it very hard (or almost impossible) to use that same html templates on the backend and on the frontend side of things.
I wonder, how technically can you move something like Trello to AWS in such short period of time? Do you think they had a plan prepared for such contingency?
Poland, Gdansk based team of mobile developers. We specialize in Android and IOS development, we implement backend solutions in Java, .NET, PHP and Ruby on Rails. More than 7 years experience in the industry.
Check our website: www.bright-inventions.com and ask for quote. We are looking for a long term partnership.
We're a highly experienced, nimble team focused on crafting mobile solutions.
Technologies: iOS, Android, NodeJs, Java Spring, RubyOnRails
Portfolio: http://brightinventions.pl
Email: info@brightinventions.pl