2 snelle webservers en onze Ajax implementatie zorgen voor een klein probleempje. Onze MySQL master-slave replicatie is niet zo snel als dat de webservers de data serveren. Namelijk; POST naar webserver, schrijft gegevens naar Master-db. Daarna volgt een reload en worden de gegevens opnieuw opgehaald. Echter is de data dan nog niet geupdate op de Slave, dus krijg je oude informatie.
Nu was het idee dat een usleep(50) voor het ophalen van de gegevens het probleem op zou lossen. Dat is ook zo, alleen vraag ik mij af wat je met 500 concurent users voor situatie krijgt op je webservers... Is er een andere manier om dit op te lossen?
Config:
Server 1: Master server (MySQL 5.1.46), tabellen InnoDB
Server 2: Webserver (PHP 5.3.2) & Slave (MySQL 5.1.46) tabellen MEMORY & MyISAM
Server 3: Webserver (PHP 5.3.2) & Slave (MySQL 5.1.46) tabellen MEMORY & MyISAM
De webservers doen hun selects via de lokale socket (niet TCP_IP). Replication-mode staat op MIXED, dus statement based & row based replication.
Heeft het zin om de slaves ook naar InnoDB te converteren? MyISAM is in enkele gevallen sneller met SELECTs & COUNTs dus vandaar de keuze.
Nu was het idee dat een usleep(50) voor het ophalen van de gegevens het probleem op zou lossen. Dat is ook zo, alleen vraag ik mij af wat je met 500 concurent users voor situatie krijgt op je webservers... Is er een andere manier om dit op te lossen?
Config:
Server 1: Master server (MySQL 5.1.46), tabellen InnoDB
Server 2: Webserver (PHP 5.3.2) & Slave (MySQL 5.1.46) tabellen MEMORY & MyISAM
Server 3: Webserver (PHP 5.3.2) & Slave (MySQL 5.1.46) tabellen MEMORY & MyISAM
De webservers doen hun selects via de lokale socket (niet TCP_IP). Replication-mode staat op MIXED, dus statement based & row based replication.
Heeft het zin om de slaves ook naar InnoDB te converteren? MyISAM is in enkele gevallen sneller met SELECTs & COUNTs dus vandaar de keuze.