Funzionamento Cache drupal su replica MySql
Salve a tutti sono un programmatore che da un pò di tempo sviluppa su Drupal e questo e il mio primo post sul forum.
Vi scrivo in quanto ho un problema per quanto riguarda il meccanismo di cache di Drupal quando installato su un DB MySql con replica incrociata.
In particolare la tabella "cache" su un sito con molti visitatori riesce a produrre dei file di Bin Log da 1GB ogni 20-30 minuti.
Analizando un pò il problema e facendo delle prove ho osservato che la tabella che crea problemi è proprio la tabella "cache".
La suddetta tabella contiene 4 record nel quale viene salvato lo schema, le variabili, la lingua e gli orari.
Quello che non riesco a spiegarmi e perchè ad ogni pagina visitata da qualsiasi utente viene effettuata un UPDATE sulla riga contenente le variabili generando una mole immensa di dati.
Nel file includes/cache.inc diabilitando il codice che effettua l'UPDATE su tale riga, i Bin Log si sono stabilizzati e il sito sembra funzionare correttamente ma vorrei sapere se ci sono effetti
collaterali
Per risolvere il problema si potrebbe anche spostare le tabelle di cache su un altro DB senza replica ma vorrei farlo come ultima alternativa.
Risposte
Ciao, potresti provare ad
Ciao, potresti provare ad utilizzare http://drupal.org/project/cacherouter in modo da gestire diversamente le tabelle della cache e ridurre/eliminare l'utilizzo di mysql per le stesse, però non so se si può adattare al tuo caso.
La costruzione della cache comune, come nel caso dei linguaggi mi pare sia fatta "on demand" cioè solo quando è richiesta una determinata traduzione di un termine da un utente. A occhio e croce, interrompendo l'update in questo modo semplicemente non utilizzi appieno la cache ed è possibile che vengano effettuate più query sul db.
Se nel frattempo hai trovato qualche soluzione se puoi postala, è un argomento molto interessante.