You thought Postgres-XL was just a clustered solution?
Postgres-XL works well on a single server for a data warehouse or reporting server.
PostgreSQL is a fantastic multi-purpose database, but there is still no parallel query capability. What this means is, even if you have a 16 core server, your query is just going to use one single core while it processes that query, leaving the other 15 cores idle.
Of course, if there are a lot of other concurrent sessions sharing resources, that may be acceptable. If there are very few, or automated reports that run, there are a lot of wasted resources.
Instead, you could use Postgres-XL. Just install a GTM, a single coordinator, and multiple “datanodes” on the server, all running on different ports, and you have a one box cluster.
Now when you submit a query to a coordinator, it will be parallelized and push down as much work as it can to the datanodes, getting more of those cores working and processing your queries faster. For even better performance, consider splitting the datanodes across multiple storage devices, instead of them contending for the same device.
What about redundancy?
You could setup each component to have a standby on another server, with a GTM standby, coordinator standby, and one datanode standby for each datanode on the primary server.