The title has got a question mark for a reason this time, as using ARM architecture could mean a lot of things, varying from super low power, milliwatt range, Arduinos to Raspberry Pi-s, ending with specialized supercomputing clusters. Common denominator here being still efficiency, ARM architecture is designed to be very efficient, saving money on TCO in the end, as compared to exploiting traditional servers. From reliability side there is no problem at all, I know I could sleep peacefully, even when running my pet project’s database on a Raspberry Pi (given there is a backup) … but what about performance? Could Postgres-on-ARM be a viable option for more demanding projects where performance matters a bit still? The fuzzy answer – yes it can well be. First, allow me to introduce the M2DC project.
The M2DC project
During a recent conference, we came into contact with people working on an interesting hardware project called M2DC – the Modular Microserver Data Centre.
In short, the project is a joint effort of many companies (supported by the European Union!) about building modular and scalable ARM-based general purpose server clusters that will reduce TCO of exploiting servers by 50% in comparison to traditional approaches. Please read more about the project and participating companies here.
Now you may ask “How does PostgreSQL come into play?” Well PostgreSQL is one of those few RDBMS-s that runs just nicely on ARM architecture! And as the hardware specs looked intriguing (a cluster built on 4-core 2.2GHz Tegra modules) we were eager to see what it means in the real life.
Impression after testing Postgres on Tegra TK1 ARM cluster
After getting access to a demo system and testing Postgres basics on it, we thought we’ll document the process and the results in a nice PDF format for easier digestion. So to actually get all the details and pictures of the hardware, to get a better idea what we’re talking about exactly and what was tested plus the numerical results, please see the PDF below.
As for a conclusion – it’s difficult as always, especially as the cluster shines best for specialized applications (I compared it against a mainstream Amazon AWS instance though) and we had to leave out write tests due to slow disks. But in the end, I was still surprised by the Bang-for-Buck (Performance-per-Watt) ratio and the ARM approach could pay off big-time monetarily for example for data acquiring tasks that don’t require too many parallel database operations on a single cluster node.
But as said, more info here: