Baidu restructure la base de données en mémoire Feed Stream

Grâce à la mémoire persistante Intel® Optane™ DC, Feed-Cube de Baidu offre un coût total de possession (TCO) inférieur tout en maintenant son avantage en termes de performance.

Avec la couverture étendue de l'Internet mobile dont nous bénéficions aujourd'hui, nous nous attendons tous à accéder à nos actualités, courts-métrages vidéo et informations promotionnelles préférés, en cliquant ou appuyant simplement sur nos téléphones portables. En conséquence, les services Feed Stream, qui regroupent les informations et fournissent du contenu personnalisé aux utilisateurs, deviennent un outil de plus en plus important pour les entreprises Internet cherchant à attirer de nouveaux clients. En tant que leader mondial de l'informatique et de l'Internet, Baidu* cherche à devenir la société de haute technologie qui connaît le mieux ses utilisateurs. Ses services Feed Stream, qui ont été déployés et développés il y a plusieurs années, deviennent un des principaux moteurs de croissance de l'entreprise.

Pour fournir aux utilisateurs des services Feed Stream plus efficaces et plus fluides, Baidu a tiré parti de son avantage technique dans le domaine des moteurs de recherche et de l'intelligence artificielle pour construire un base de données en mémoire fondamentalement très performante, Feed-Cube*. Feed-Cube fournit des services de stockage et d'accès aux données à haute simultanéité, de grande capacité et hautement performants. Alors que les activités de Baidu continuent de s'étendre, Feed-Cube doit également déployer une mémoire plus importante pour soutenir la croissance explosive des données. Cependant, le coût élevé de la mémoire DRAM (Dynamic Random-Access Memory) affecte de manière croissante le coût total de possession (TCO) lors de la mises à l'échelle de la mémoire.

Pour réduire le TCO tout en assurant de remarquables performances, Baidu et Intel ont commencé une collaboration étroite qui introduit la mémoire persistante Intel® Optane™ DC et qui fait passer le modèle d'exploitation principal de Feed-Cube sur une nouvelle plate-forme de mémoire construite en l'utilisant. Les données des tests internes réalisés par Baidu montrent que le Feed-Cube basé sur la mémoire persistante Intel® Optane™ DC peut maintenir son avantage en termes de performance dans un modèle d'exploitation Feed Stream hautement simultané et réduire considérablement les coûts. Cela a également incité Baidu à réaliser davantage de vérifications et de tests sur la faisabilité et la valeur pratique de la mémoire persistante Intel® Optane™ DC dans des modèles applicatifs plus critiques indépendants de Feed Stream.

« Les services Feed Stream créent des profils d'utilisateurs et fournissent aux utilisateurs un contenu personnalisé en fonction de leurs préférences. Ils nécessitent un stockage en ligne hautement performant. La mémoire persistante Intel® Optane™ DC aide Feed-Cube, le module principal des services Feed Stream, à réduire considérablement le TCO tout en assurant une haute simultanéité, une grande capacité et de hautes performances. » — Tao Wang, architecte en chef, Recommendation Technology Architecture, Baidu

L'avenir des services Feed Stream de Baidu

L'Internet mobile est devenu une des approches les plus importantes de la connexion réseau. D'après les statistiques du CNNIC (China Internet Network Information Center*), la proportion d'utilisateurs qui accèdent à Internet sur leurs téléphones portables avait atteint 98,6 % en Chine à la fin 2018.1 Avec un téléphone intelligent, les utilisateurs ont davantage tendance à obtenir des informations « en balayant l'écran plutôt qu'avec la méthode textuelle traditionnelle », ce qui accroît la nécessité des services Feed Stream afin de regrouper automatiquement les informations et d'offrir un flux d'informations précis.

Feed Stream est un service Internet qui regroupe du contenu et le présente continuellement aux utilisateurs. Il peut être mis en œuvre par Timeline, PageRank, ou des algorithmes d'intelligence artificielle spécifiques. Les services Feed Stream peuvent fournir aux utilisateurs des informations plus personnalisées et éviter de fournir des informations non pertinentes. Simultanément, les annonceurs de la plate-forme peuvent obtenir de meilleurs résultats marketing.

Figure 1. Services Feed Stream dans les applications centrales de Baidu

Avec des centaines de millions d'utilisateurs, Baidu doit prendre en considération des millions de services simultanés et une moindre latence lors de la construction de son système de services Feed Stream. Et la clé de tout ça, c'est la construction de ses capacités de stockage et de récupération des informations. Pour l'optimiser, Baidu utilise la base de données en mémoire à cœur avancé Feed-Cube pour fournir aux services Feed Stream une prise en charge essentielle au stockage de données et à la récupération des informations.

Feed-Cube s'appuie sur la mémoire et utilise la structure de stockage par paires clé-valeur (Key-Value Pair, or KVP). Comme le montre la figure 2, les clés et la référence de stockage des fichiers contenant les clés et les valeurs sont stockées dans des tables de hachage, alors que les valeurs elles-mêmes sont stockées séparément dans un autre fichier de données. Les tables de hachage et les fichiers de données sont tous stockés en mémoire. Grâce à la capacité d'E/S au débit de la mémoire, Feed-Cube fournit d'excellentes performances en lecture-écriture et une très faible latence.

Figure 2 Organigramme du Feed-Cube de Baidu.

Lorsque l'application frontale doit demander certaines données, elle accède à la table de hachage une ou plusieurs fois en recherchant la valeur Clé, obtient la référence de l'emplacement de stockage du fichier de données dans lequel se trouve la Valeur et finalement accède au fichier de données pour obtenir la valeur voulue.

Bien que le Feed-Cube de Baidu s'appuyant sur de la DRAM ait toujours fourni d'excellentes performances dans des environnements à haute/grande simultanéité (millions de requêtes par secondes) et à stockage de données massif (péta-octets), il est confronté à de nouveaux défis émergeants et à l'expansion continue des services Feed Stream de Baitu. L'utilisation d'une mémoire DRAM honéreuse pour créer un grand pool de mémoire entraîne la montée en flèche du TCO de Baidu, alors que la capacité limitée de DRAM restreint davantage les possibilités d'amélioration de la capacité de traitement du streaming Feed-Cube.

Amélioration grâce à la mémoire persistante Intel® Optane™ DC

En réponse à ces défis, Baidu a tenté d'utiliser des périphériques de stockage hautes performances à mémoire non volatile (NVM), comme les lecteurs SSD NVMe*, pour stocker les fichiers de données et les tables de hachage dans Feed-Cube. Pour vérifier les performances du système équipé de lecteurs SSD NVMe, Baidu a réalisé des tests comparatifs sur deux clusters Feed-Cube, l'un équipé de DRAM et l'autre de lecteurs SSD NVMe.

Les résultats des tests montrent que les Feed-Cube équipés de lecteurs SSD NVMe présentent trois inconvénients majeurs par rapport aux Feed-Cube équipés de DRAM :

  • dans une situation utilisant une application à haute simultanéité, les lecteurs SSD NVMe ont rencontré de sérieux retards de file d'attente et la garantie QoS à 100 % ne pouvait pas être honorée avec une grande longueur de file d'attente (par exemple, supérieure à 1 024) ;
  • dans une situation où un stockage de données de grande capacité était testé, les lecteurs SSD NVMe n'offraient que des performances marginalement médiocres. Plus la quantité de données déployées était grande, plus la durée d'exécution des requêtes prenait de temps et le taux d'utilisation de l'espace disque était également inférieur ;
  • il existe toujours un écart important entre la vitesse d'E/S des lecteurs SSD NVMe et celle de la DRAM. En conséquence, il est toujours nécessaire de déployer une grande quantité de DRAM comme cache dans le système pour assurer de bonnes performances.

La mémoire persistante Intel Optane DC offre un nouveau moyen de résoudre ces problèmes. Comparé aux lecteurs SSD, ce nouveau produit, qui révolutionne l'architecture de la mémoire et du stockage, offre de meilleures performances en lecture/écriture, une moindre latence et une plus grande endurance, et possède de nombreux avantages applicatifs dans un environnement multi-utilisateur, à haute simultanéité et de haute capacité.

En conséquence, Baidu a d'abord introduit la mémoire persistante Intel Optane DC pour stocker les fichiers de données dans Feed-Cube, tout en utilisant de la DRAM pour stocker les tables de hachage. L'objectif de cette configuration hybride était de vérifier les performances de la mémoire persistante Intel Optane DC dans Feed-Cube, tout en réduisant les répercussions sur les performances de Feed-Cube. Cela a été réalisé en remplaçant d'abord la mémoire qui stocke les fichiers de données, car Feed-Cube lit les tables de hachage beaucoup plus souvent que les fichiers de données lors de la recherche de valeurs.

Pour que la mémoire persistante Intel Optane DC puisse être implémentée avec succès sur Feed-Cube, Baidu et Intel ont réalisé une optimisation complète du matériel, du système d'exploitation, des cœurs et des autres composants du système. Les deux parties ont tout d'abord déployé Feed-Cube sur une plate-forme construite avec des processeurs Intel® Xeon® Scalable de 2e génération, qui offrent non seulement une robuste puissance de traitement mais qui représentent également un « bon parti » pour la mémoire persistante Intel Optane DC. Ensuite, Intel a introduit un pilote prenant en charge la mémoire persistante Intel Optane DC dans le BIOS du serveur conformément aux exigences de l'application Feed-Cube, et a ajouté des correctifs connexes à la fondation du noyau Linux* 4x développé par Baitu afin de libérer pleinement le potentiel de performance du nouveau matériel.

Après avoir terminé cette série d'optimisations, Baidu a réalisé un test comparatif entre la configuration utilisant uniquement de la DRAM et la configuration hybride, simulant l'accès simultané à grande échelle pouvant se produire dans une situation réelle. Lors du test, un réglage de 200 000 requêtes par seconde (QPS) a été utilisé avec 100 ensembles de paires clé-valeur extraites par accès et la charge d'accès totale appliquée au système s'élevait donc à 20 millions d'accès par seconde. Les résultats du test sont indiqués dans la figure 3 et le tableau 1.

Figure 3 et tableau 1. Résultat du test comparatif entre Feed-Cube équipé uniquement de DRAM et dans une configuration hybride utilisant DRAM + Mémoire persistante Intel Optane DC.2

Dans la configuration hybride, Feed-Cube présente un accroissement du temps d'accès moyen d'environ 24 % (30 microsecondes) avec une charge de travail de 20 millions d'accès simultanés2, et le taux d'utilisation du CPU s'accroît de 7 %2, ce qui signifie que les fluctuations de performance se trouvent dans les limites acceptables de Baidu. Parallèlement, l'utilisation de la DRAM sur un même serveur est réduite de plus de 50 %, ce qui réduira sans aucun doûte le coût de la capacité de stockage en pétaoctets du Feed-Cube.

Comme le montre la figure 4, le succès de la configuration hybride ci-dessus a incité Baidu à tester davantage la configuration en utilisant uniquement de la mémoire persistante Intel Optane DC. Un problème particulier devait cependant être surmonté : les tables de hachage de la DRAM utilisent généralement des commandes d'allocation de mémoire comme malloc/free, et de nouvelles commandes doivent donc les remplacer après l'introduction de la mémoire persistante Intel Optane DC. Pour répondre à ce problème, Baidu a utilisé une bibliothèque d'attribution d'espace développée en interne s'appuyant sur la bibliothèque libmemkind* afin d'améliorer l'utilisation de l'espace tout en offrant des capacités d'allocation d'espace.

Figure 4 Voie de transition du matériel mémoire du Feed-Cube de Baidu.

Après avoir construit le Feed-Cube en utilisant uniquement de la mémoire persistante Intel Optane DC, Baidu a également testé ses performances et sa consommation de ressources. Comme le montre la figure 5, une charge d'accès de 500 000 requêtes par seconde (QPS) a été utilisée dans cet exemple. Le résultat du test montre que la latence moyenne de la configuration utilisant uniquement la mémoire persistante Intel Optane DC est environ 9,66 % supérieure à celle de la configuration utilisant uniquement de la DRAM.2 Les fluctuations de performance se trouvent également dans la plage acceptable de Baidu.

Figure 5. Comparaison de la de latence dans différentes configurations.

Vérifier la valeur de la technologie Intel® Optane™ dans d'autres modèles applicatifs.

Tout en réalisant la vérification et les tests liés aux services Feed Stream, Baidu a également étudié la faisabilité et les options d'utilisation de la mémoire persistante Intel Optane DC dans de nombreux autres scénarios opérationnels.

Par exemple, dans le cas de la récupération après incident d'un module opérationnel essentiel, lorsque le module opérationnel a été initialement configuré avec de la DRAM, il a été nécessaire de recharger les données des lecteurs SSD/disques durs pour restaurer le service après une panne d'électricité ou une immobilisation, etc. Ce processus peut prendre jusqu'à 10 minutes et affecter gravement le lancement de ces services. Cependant, grâce aux hautes performances des opérations de lecture/écriture et à la rémanence de la mémoire persistante Intel Optane DC, la durée de chargement est maintenant réduite à seulement quelques secondes2

La combinaison d'une mémoire persistante Intel Optane DC de grande capacité et du processeur Intel Xeon® Scalable de 2e génération prenant en charge une grande quantité de mémoire aide Baitu à accroître la densité de mémoire par appareil et l'efficacité du traitement tout en réduisant considérablement le TCO sur une base de données en mémoire Redis* et le moteur de traitement en mémoire distribuée Spark*. Spark déployé dans certains domaines opérationnels clés utilise le stockage système s'appuyant sur de la DRAM et des disques durs locaux/Cloud. Lorsque le système traite des données, les données doivent être lues dans les disques durs locaux/Cloud et transférées dans la DRAM. Cependant, avec l'expansion des demandes de traitement, le déplacement des données entre les disques durs locaux/Cloud et la DRAM est devenu un goulot d'étranglement. Pour résoudre ce problème, Baidu prévoit d'ajouter de la mémoire persistante Intel Optane DC au système Spark afin d'accroître considérablement la densité de mémoire système par appareil.

Dans ces situations, il est clair que la haute densité de mémoire et les capacités de démarrage à chaud de la mémoire persistante Intel Optane DC contribuent à l'innovation et au développement continus de « Fonctions en tant que service (FaaS) » chez Baidu. En tant que partie importante des services Cloud à venir, FaaS s'appuie sur une structure fonctionnelle sans serveurs. Son cycle de vie court (même seulement quelques secondes) nécessite une vitesse d'amorçage supérieure et davantage de mémoire. L'exploration de Baidu dans le domaine des FaaS a déjà porté ses fruits en termes de vitesse d'amorçage et de TCO, avec l'aide de la mémoire persistante Intel Optane DC.

Perspectives

À l'avenir, Baidu et Intel procèderont à une collaboration et à des échanges techniques plus approfondis portant sur une série de technologies et de produits avancés, notamment la mémoire persistante Intel Optane DC et les processeurs Intel Xeon Scalable de 2e génération. Baidu et Intel collaboreront pour permettre à ces produits et technologies de jouer un rôle de plus en plus important dans les modèles opérationnels Internet essentiels en pleine croissance et les applications et services critiques. La collaboration plus étroite entre Baidu et Intel aidera Baidu à fournir une expérience utilisateur plus diversifiée et plus engageante.

Avantages de la solution réalisée par Baidu

  • La configuration du Feed-Cube, le module principal des services Feed Stream, passe d'une configuration utilisant uniquement de la DRAM à une configuration hybride utilisant à la fois de la DRAM et la mémoire persistante Intel Optane DC, et finalement à une configuration utilisant uniquement la mémoire persistante Intel Optane DC. Les performances et la consommation de ressources associées à ces modifications sous une grosse charge d'accès simultanés sont conformes aux attentes de Baidu et les tests montrent que la plate-forme peut prendre pleinement en charge les services Feed Stream avec un accès hautement performant aux données.
  • Alors que Feed-Cube passe progressivement d'une configuration utilisant uniquement de la DRAM à une configuration utilisant uniquement la mémoire persistante Intel Optane DC, les coûts ont également diminué, ce qui aide Baidu à réduire le TCO.

Explorer les produits Intel® associés

Processeurs Intel® Xeon® Scalable

Générez des données exploitables, faites confiance à la sécurité assistée par matériel et mettez en place des prestations de services dynamiques avec les processeurs Intel® Xeon® Scalable.

En savoir plus

Mémoire rémanente Intel® Optane™ DC

Extraire des données des informations plus exploitables - du cloud et des bases de données, à l'analyse en mémoire et aux réseaux de diffusion de contenu.

En savoir plus

Avis et avertissements

Les fonctionnalités et avantages des technologies Intel® dépendent de la configuration du système et peuvent nécessiter du matériel et des logiciels compatibles et l'activation de certains services. Les performances varient d'une configuration à une autre. Aucun ordinateur ne saurait être totalement sécurisé. Consultez le constructeur ou le revendeur de votre ordinateur.vous pouvez consulter le site https://www.intel.fr pour en savoir plus. // Les logiciels et charges de travail utilisés dans les tests de performance ont peut-être été optimisés uniquement pour les microprocesseurs Intel®. Les tests de performance tels que SYSmark* et MobileMark* portent sur des configurations, composants, logiciels, opérations et fonctions spécifiques. Les résultats peuvent varier en fonction de ces facteurs. Pour l'évaluation d'un produit, il convient de consulter d'autres tests et d'autres sources d'information, notamment pour connaître le comportement de ce produit avec d'autres composants. Pour des informations plus complètes, visitez https://www.intel.fr/benchmarks. // Les résultats de performances s'appuient sur les tests réalisés aux dates indiquées dans les configurations et peuvent ne pas refléter toutes les mises à jour de sécurité disponibles. Pour obtenir plus de détails, veuillez lire les informations de configuration. Aucun produit ou composant ne saurait être totalement sécurisé. // Les scénarios de réduction de coûts décrits sont fournis à titre d'exemples montrant comment un produit de technologie Intel® donné, dans les circonstances et configurations spécifiées, peut affecter les coûts futurs et entraîner des économies de coûts. Les circonstances peuvent varier selon les cas. Intel ne garantit aucun coût ni réduction de coûts. // Intel ne maîtrise et ne vérifie pas les bancs d'essai cités ici ou sur les sites Web mentionnés en référence. Vous êtes invité à consulter vous-même ces sites Web et à vérifier l'exactitude des données. // Dans certains cas, les résultats ont été estimés ou simulés à l'aide d'une analyse, d'une simulation ou d'une modélisation d'architecture réalisée en interne par Intel et sont mentionnés à titre indicatif. Toute différence matérielle, logicielle ou de configuration du système peut avoir une incidence sur vos performances effectives.

Infos sur le produit et ses performances

1

Données provenant du 43ème « Rapport statistique sur le développement d'Internet en Chine » du CNNIC (China Internet Network Information Center).

2

Données issues des tests et vérifications internes de Baidu sur le processeur Intel® Xeon® Scalable de 2e génération et la mémoire persistante Intel® Optane™ DC. Pour en savoir plus sur ces tests, veuillez contacter Baidu.