Building a read pool of database replicas isn't something I usually think of doing with Oracle, mainly due to their non-zero license fees. It changes the scaling equation.
Still, if you are on Oracle and the fees work for you, consider Active Data Guard. Some key facts from the slides:
- Average latency for replication was 1 second
- The maximum latency spike they observed was 10 seconds.
- A node can take itself offline if it detects excessive latency.
- You can use DBLinks to allow applications to think they're writing to a read node. The node will transparently pass the writes through to the master.
- This can be done without any tricky JDBC proxies or load-balancing drivers, just the normal Oracle JDBC driver with the bugs we all know and love.
- Active Data Guard requires Oracle 11g.