Ça fait quelques jours Yandex dévoilé à travers un annoncé l’ouverture du code source de la plateforme YTsauru, qui est utilisé pour le stockage distribué et le traitement de grandes quantités de données, qui prend en charge la manipulation de données à l’aide du paradigme MapReduce, du moteur de requête SQL, du système de fichiers distribué et du stockage NoSQL au format clé-valeur.
YTsaurus on utilise sur l’infrastructure Yandex utiliser efficacement la puissance de calcul des supercalculateurs de l’entreprise. La plate-forme peut évoluer vers des clusters de plus de 10 000 nœuds, couvrant jusqu’à un million de processeurs et des milliers de GPU (pour les tâches d’apprentissage automatique).
Les conteneurs isolés exécutés sur des serveurs physiques peuvent être utilisés comme unités de cluster. Le stockage peut contenir des exaoctets de données situées sur divers supports tels que des disques durs, des SSD, des NVME et de la RAM.
Le cluster prend en charge l’ajout et la suppression dynamiques de nœuds, la redondance (pas de point de défaillance unique), la réplication automatique, les mises à niveau logicielles actives du cluster et la récupération automatique de la redondance en cas de défaillance du nœud.
Trois types de clusters sont pris en charge : clusters de calcul (pour le traitement massivement parallèle de données volumineuses à l’aide d’opérations MapReduce), clusters pour tableaux croisés dynamiques et stockage clé-valeur, et clusters distribués géographiquement.
Un service basé sur une plate-forme peut fournir les moyens de stocker et de traiter des données pour des dizaines de milliers d’utilisateurs. Les applications YTsaurus typiques dans Yandex incluent le stockage d’informations sur les utilisateurs du réseau publicitaire, la formation de modèles d’apprentissage automatique, la formation d’un index de recherche et la création d’un entrepôt de données pour des services tels que Yandex Taxi. , Food, Lavka et les livraisons
Parmi les cas d’utilisation de base, il est mentionné :
- Le traitement par lots: MapReduce et SPYT (Apache Spark comme moteur de calcul sur les données dans YTsaurus) pour le traitement de données structurées et semi-structurées : enregistrements ou transactions financières.
- Analyse ad hoc : Requêtes rapides via CHYT (un groupe de serveurs ClickHouse sur des nœuds de calcul YTsaurus) sans copier les données vers un système d’analyse séparé. ODBC et JDBC avec la possibilité de connecter BI pour la visualisation.
- Tâches OLTP : Travail transactionnel en temps réel avec stockage clé-valeur : par exemple, stockage de profil utilisateur, affichage d’annonces ou traitement de flux.
- Apprentissage automatique : Gérez les clusters GPU pour former des modèles avec des milliards de paramètres.
- Stockage des méta-informations : Stockage transactionnel des méta-informations et service fiable des verrous distribués.
- Création d’entrepôts de données et ETL pour le traitement de données multi-tiers à l’aide d’outils typiques : Apache Spark, SQL, MapReduce.
Alors que de la part des principaux éléments de l’architecture, les éléments suivants sont mentionnés:
- Système de fichiers distribué et stockage de méta-informations basé sur une arborescence tolérante aux pannes Cypress.
- Planificateur pour l’informatique distribuée avec prise en charge du modèle MapReduce, ainsi que des opérations de base avancées.
- Évolutivité horizontale des opérations informatiques.
- Isolation des ressources de calcul et possibilité d’allouer certaines ressources de calcul (CPU, GPU, RAM) dans des proportions différentes.
- Tableaux croisés dynamiques pour la création de stockage OLTP, prise en charge du stockage basé sur MVCC, transactions, possibilité de supprimer des données après expiration et files d’attente de messages pour le traitement des données en continu sur des tableaux croisés dynamiques.
- API et bibliothèques pour les langages de programmation C++, Python, Java, Go.
- Une interface Web pour les utilisateurs et les administrateurs qui prend en charge la navigation dans un stockage arborescent.
Finalement Si vous êtes intéressé à en savoir plus à ce sujet, sachez que le code du projet est écrit en C/C++ et est ouvert sous la licence Apache 2.0. Vous pouvez vérifier les détails dans le lien suivant.
Il référentiel github contient le code serveur pour YTsaurus, le cadre de déploiement utilisé par k8s, une interface Web pour le système et des SDK client pour les langages de programmation populaires tels que C++, Java, Go et Python.