Vous ne pouvez pas utiliser MySQL sans connaître Jeremy. Ancien Yahoo! il a été l’un des premiers à utiliser MySQL pour Yahoo! Finance et est co-auteur de MySQL High Performance, la 1ère édition. Après des années à avoir travaillé et évangélisé MySQL, Jeremy fut un responsable du développement du YDN. Il a décidé, il y a quelques temps de retourner dans la sphére de MySQL en devenant expert pour Craig List. Un de ses premiers challenges chez CL, a été d’optimiser les FULL TEXT search.
Les challenges chez CL:
- high ad churn rate – la durée de vie des annonces sur le site. Vous ne voulez plus recevoir de mails sur un item déjà vendu
- croissance
- trés gros traffic
- outil d’analyse & backend
- croissance ( et oui )
- besoin d’archiver tous les messages ( 100s de milions ) et pour toujours
- Internationalisation& utf8
Les briques logicielles sont:
- Load Balancer
- Read Proxy ( Perl + Memcached ) & Write Procxy
- Wed Read Proxy ( apache / mod_perl )
- Object Cache ( Perl / Memcached ) & Search Cluster ( Sphinx )
- Read DB Cluster ( MySQL 5.0 )
Toutes les datas sont en clusters avec un content specifique – User DB, Stats, Archive, Classified, Forum
Full Text Search chez CL en quelques points
- partition par ville
- attributs vs keywords
- connections persistantes
- 2 clusters ( 1 master, 4 slaves )
- indexing incremental
- slaves – requètes live
- 1000 QPS
- 25 MySQL -> 10 Sphinx
- recherche alentour
- 50M QPD ( par jour )
- archive des messages – une DB sans schema – couchdb?
