Stiamo introducendo uno schema di replica master / slave nella nostra applicazione web. In determinati scenari preferiremmo dirigere esplicitamente le letture su uno slave e scrivere al master, il che per me è un evidente vantaggio dello schema.
Istintivamente, preferirei che il passaggio accadesse da qualche parte nell'ORM, usiamo Doctrine e offre un soluzione pulita . Ma non è davvero una soluzione per noi, perché non abbiamo un modo molto pratico di distinguere quando una lettura è in realtà una scrittura (come negli scenari di aggiornamento).
La prossima cosa migliore sarebbe delegare la responsibillità per il passaggio al controller e / o alcune librerie personalizzate che in un cliché l'approccio MVC potrebbe essere considerato come modelli sovralimentati. Anche se questa è una soluzione molto pratica e probabilmente quella che richiederebbe meno tempo, temo in qualche modo che ci sia qualcosa di molto importante che mi manca e che tornerà e morderò duramente.
Ci sono limiti di tempo vaghi e supporto gestionale a referee febbrili, ma per questo specifico scenario concordiamo per lo più che dovremmo seguire l'approccio pratico, anche se ciò significa limitarci solo dove abbiamo identificato il database come uno dei principali collo di bottiglia.
Per aggiungere confusione, non posso davvero dire di essere esperto in schemi di replica, quando il problema è stato discusso per la prima volta ho pensato che una soluzione migliore sarebbe stata adottare uno schema multi-master, ma quando ho iniziato a cercare come è facile che falliscano e quanto sia solida la loro implementazione, ha smesso di essere ragionevole.
Aiuto?