Bonjour la liste,

Peut-être regarder du coté de MariaDB Galera Cluster ?

Tu fais tout en local et ta DB est identique entre tout tes "masters"...

Un peu simple comme réponse mais ça te donnera peut être des idées
différentes pour scaler ( désolé du franglicisime ).

My 2cents,

Tristan.

Le 09/09/2013 15:17, Frédéric de Villamil a écrit :
> Bonjour,
> 
> Pour la répartition de charge sur MySQL, nous sommes partis sur
> plusieurs choses :
> 
> Côté applicatif, séparation des requêtes lecture / écriture au niveau de
> notre framework de connexion à la base de données avec deux handlers, un
> pour les écritures et un pour les lectures.
> 
> Côté infrastructure :
> - Un master avec une VIP de réplication, du heartbeat et un script de
> bascule de la réplication en cas de crash du master.
> - Un load balancer avec une VIP pour la lecture, avec heartbeat + haproxy
> * des slaves derrière le haproxy
> * un script qui check le seconds_behind_master du show slave status et
> retire les slaves de la grappe en cas de seconds_behind_master > 0
> * le master en backup si aucun slave n'est disponible
> 
> Comme nous sommes tributaires d'un délai de réplication de l'ordre de la
> seconde, nous gérons en plus les retards de réplication au niveau
> applicatif quand celui-ci tente d'accéder à un objet qui n'existe pas
> encore sur le slave, en postposant la requête d'une seconde.
> 
> Hope it helps
> 
> Le 9 sept. 2013 à 15:10, Thomas Pedoussaut <tho...@pedoussaut.com
> <mailto:tho...@pedoussaut.com>> a écrit :
> 
>> Pour la partie repartition de charge entre les slaves, j'utilise
>> depuis des années (2006) du LVS géré par keepalived.
>>
>> En particulier une partie intéressante:
>>         MISC_CHECK {                # MISC healthchecker
>>             misc_path <STRING>|<QUOTED-STRING>    # External system
>> script or program
>>             misc_timeout <INTEGER>        # Script execution timeout
>>
>>             # If set, exit code from healthchecker is used
>>             # to dynamically adjust the weight as follows:
>>             #   exit status 0: svc check success, weight
>>             #     unchanged.
>>             #   exit status 1: svc check failed.
>>             #   exit status 2-255: svc check success, weight
>>             #     changed to 2 less than exit status.
>>             #   (for example: exit status of 255 would set
>>             #     weight to 253)
>>             misc_dynamic
>>
>> Donc en jouant bien sur ton script de monitoring, tu peux ejecter les
>> serveurs trop en retard, et alterer le poids de chaque serveur en
>> fonction de la charge.
>>
>> En faisant du lvs-dr ca depotte pas mal, meme avec une dizaine de
>> slaves, sans SPOF.
>>
>>
>> On 2013-09-09 09:45, Greg wrote:
>>> Bonjour,
>>>
>>> pour l'instant je n'ai pas trouvé mieux qu'une gestion coté
>>> applicatif pour répartir les requêtes de lecture (SELECT...) sur les
>>> slaves MySQL, et les requêtes d'écritures sur le master, avec gestion
>>> un peu plus intelligente qu'un simple load-balancer :
>>> - regex sur la requête pour pouvoir l'orienter
>>> - gestion des slaves down, spares
>>> - exclusion des slaves ayant trop de délais de réplication
>>>
>>> Pour tout ça MySQL Proxy semblait tout faire sur le papier, à l'aide
>>> de scripts LUA
>>> : http://dev.mysql.com/doc/relnotes/mysql-proxy/en/index.html
>>>
>>> Avez vous des retours sur cet outil ? Où sur d'autres outils ?
>>>
>>> Greg
>>>
>>>
>>> _______________________________________________
>>> Liste de diffusion du FRsAG
>>> http://www.frsag.org/
>>
>> _______________________________________________
>> Liste de diffusion du FRsAG
>> http://www.frsag.org/
> 
> -- 
> Frédéric de Villamil / @fdevillamil
> I'm not strange, weird, off, nor crazy, my reality is just different
> from yours.
> Le Rayon UX – http://t37.net
> 
> 
> 
> _______________________________________________
> Liste de diffusion du FRsAG
> http://www.frsag.org/
> 

Attachment: 0x78672493.asc
Description: application/pgp-keys

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Liste de diffusion du FRsAG
http://www.frsag.org/

Répondre à