Les défis de Twitter sont de délivrer en temps réel un très grand tweets à un très grand nombre de personnes. En effet, chez Twitter, ce n’est pas l’enregistrement des nouveaux tweets qui pose le plus de problèmes mais leur diffusion.
Twitter en chiffres :
- 500 millions de tweets chaque jour soit presque 6000 par seconde ;
- 320 millions d’utilisateurs mensuels ;
- 25000 requêtes par minute ;
- Plusieurs dizaines de milliers de serveurs
- 5 milliards de « métriques » générées par minute ce qui correspond à 1,5 Po.
Historiquement le réseau social Twitter était propulsé par un développement Ruby On Rail avec MySQL comme base de données. Ensuite, les développeurs, non satisfaits par les performances de différents outils OpenSource ont créé leur outil maison « Manhattan ». En vain, le besoin de croissance soutenu a nécessité le franchissement d’une nouvelle étape. Aujourd’hui, Twitter utilise :
- MetricsDB : le nouveau backend maison depuis 2017 (prévu pour durer 5 ans). À la clé : des coûts divisés par 10 par rapport à la solution précédente.
- Hadoop divisé en plusieurs groupes (stockage, temps réel, magasins de données, traitements)
- Graph pour les clusters MySQL décentralisés
- Blobstore pour les médias
- Des bases de données relationnelles (MySQL, Vertica et PostgreSQL) pour des usages divers (publicités, outils divers)