Voici la situation. Site Web de plusieurs millions d'utilisateurs. La page de chaque utilisateur a une section de message. Tout le monde peut visiter la page d'un utilisateur, où il peut laisser un message ou afficher les 100 derniers messages.Événement après scalabilité: Haut n par utilisateur, 1 mise à jour, lecture lourde
Les messages sont de courts fragments de texte avec quelques métadonnées supplémentaires. Chaque message doit être stocké en permanence, la seule chose qui doit être rapide en temps réel est la mise à jour des messages et la lecture (les gens l'utilisent comme un chat). Un nombre de messages sera lu très souvent pour vérifier les changements. Périodiquement, vous pouvez archiver les anciens messages (ceux de plus de 100), mais ils doivent être accessibles.
Actuellement tout dans une grande table DB, et la contention entre les personnes lisant les listes de messages et envoyant plus de mises à jour devient un problème.
Si vous deviez réorganiser le système, quel mécanisme de stockage/cache utiliseriez-vous? quel type d'apprentissage en informatique peut être utilisé ici? (par exemple, collections, accès à la liste, etc.)
Difficile de recommander une solution architecturale sans connaître votre environnement. – skaffman