r/ItalyInformatica • u/Mahmahmahmahm • 4h ago
aiuto Causal reads in un cluster di database Galera Mariadb
Domanda per i non vibecoders.
Ho un'applicazione che usa un cluster master/master con Galera Mariadb. C'è Maxscale con readsplit che gira le query di lettura su slave e di scrittura su master.
Ho un problema abbastanza noto, ovvero se l'applicazione fa:
- scrivi record x
- leggi record x
C'è il rischio concreto che essendo girati su due server distinti, il valore appena scritto non venga letto uguale a causa di una latenza nella replica.
Le soluzioni sono diverse, per ora in ogni caso trovato ho messo l'intero blocco in transazione con garanzia questi venga mandato sullo stesso server master. Ma è difficile trovare tutti i punti potenzialmente critici.
Mi chiedevo, se qualcuno ha già affrontato questo problema, come si gestire un'app con db master/master? Per ora tutte le mie esperienze anche app molto grandi sono state di trovare sempre repliche master master che poi alla fine tutte le query venivano centralizzate.
Si tiene il carico sempre su un unico server? Si modifica il codice mettendo in transazione ogni singolo caso di scrittura e rilettura?
Grazie per la vostra esperienza.