All,
I'm currently thinking about how to scale a Magma based Seaside Application efficiently. As the majority of requests are read-only the idea of using Magma HA came to my mind ... thus a few points I'm not quite sure about.
Multiple Magma Servers on one physical server: As Squeak/Pharo is not SMP-capable I was thinking of running one server image per physical CPU core on the DB Server. One of those images would host the primary while all other images would host read-only secondaries. As the requests are primarily read-only this should give (in theory) a more or less linear increase (with cores) in read performance ... or did I miss something?
Local secondary server on Web frontend server: Given that the intended webserver machines are quad core I was thinking of running three seaside images + one secondary magma image on them. The idea is that a local read-only replica should be much faster to query than over the network. However I'm not even sure if it is possible for a MagmaClient to configure preferred servers. My current thinking is start a remote MagmaSession against the locally running (secondary) Magma server image. My understanding is that all read requests are handled by this server then - only write requests will be sent to the primary.
Am I making things much too complicated?
Best Regards,
Udo