Improving scalability by routing read-only transactions to PostgreSQL 9 HotStandbys
Does Nuxeo support routing read-only database transactions to PostgreSQL 9 HotStandby servers as a way to improve the overall scalability of a Nuxeo deployment?
That's something I would really like to be able to do, but it's not possible at the moment.
You would need to know at the load-balancer level if the HTTP request is going to correspond to a read-only transaction or not. And we don't have any global convention for that at the moment, as some read-only transactions are using POST methods (due to JSF), and some GET methods are used to trigger possibly anything in Nuxeo, which could potentially write to the database.
If you code a JAX-RS-based application and strictly adhere to a convention that allows you to decide from the HTTP request if there will be database writes or not, then you could go a long way toward what you're suggesting.
I would be happy to configure separate "read" and "write" data sources if even just a couple of these high-value operations could be pinned to a "read-only" data source. Is this a long-term goal that product could begin migrating towards incrementally?
However this is high-performance work for which we'll probably need a paying customer sponsoring the work to move forward.