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?

1 votes

1 answers

1371 views

ANSWER



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.

1 votes



ron
Is it possible to identify some high-value operations and configure them to be handled using a "read-only" data source? Some WebDAV and CMIS read-only operations might fit this category. Also, the Web UI Advanced Search seems like another high-value candidate.

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?

03/29/2012

Yes probably a subset of operations could be identified and bound to a specific datasource.

However this is high-performance work for which we'll probably need a paying customer sponsoring the work to move forward.

04/03/2012