Stratégies multi-locataires
Dans de nombreux cas d'utilisation, les développeurs souhaitent exécuter un cluster Milvus et servir plusieurs locataires, tels que quelques équipes de produits ou des millions d'utilisateurs finaux. Ce guide explique quelques stratégies différentes pour parvenir à une multi-tenance sur Milvus.
Milvus est conçu pour prendre en charge le multi-tenant au niveau de la base de données, de la collection ou de la partition. L'objectif de la multi-location est de séparer les données et les ressources les unes des autres. La mise en œuvre de l'utilisation multiple à différents niveaux peut permettre d'atteindre différents degrés d'isolation, mais implique également différents frais généraux. Nous expliquons ici les compromis entre ces différents niveaux.
Multi-tenance orientée base de données
Depuis la version 2.2.9 de Milvus, vous pouvez créer plusieurs bases de données dans un seul cluster Milvus. Cette fonctionnalité permet d'obtenir une multi-location orientée base de données en attribuant une base de données à chaque locataire, de sorte qu'ils puissent créer leurs propres collections. Cette approche offre la meilleure isolation des données et des ressources pour les locataires, mais elle est limitée à 64 bases de données au maximum dans un cluster.
Multi-tenance orientée collection
Il existe deux façons d'obtenir une multi-location orientée collection.
Une collection pour tous les locataires
L'utilisation d'une collection unique pour mettre en œuvre la multi-location en ajoutant un champ de locataire pour distinguer les locataires est une option simple. Lorsque vous effectuez des recherches ANN pour un locataire spécifique, ajoutez une expression de filtrage pour éliminer toutes les entités qui appartiennent à d'autres locataires. Il s'agit de la méthode la plus simple pour parvenir à la multi-location. Toutefois, sachez que les performances du filtre peuvent devenir le goulot d'étranglement des recherches ANN. Pour améliorer les performances de recherche, vous pouvez optimiser la multi-location orientée partition ci-dessous.
Une collection par locataire
Une autre approche consiste à créer une collection pour chaque locataire afin de stocker ses propres données, au lieu de stocker les données de tous les locataires dans une seule collection. Cela permet de mieux isoler les données et d'améliorer les performances des requêtes. Cependant, il faut garder à l'esprit que cette approche nécessite plus de ressources pour la planification et qu'elle est limitée à 10 000 collections au maximum dans une grappe.
Multi-tenance orientée partition
Il existe deux façons d'obtenir une multi-location orientée partition :
Une partition par locataire
La gestion d'une seule collection est beaucoup plus facile que la gestion de plusieurs collections. Au lieu de créer plusieurs collections, envisagez d'attribuer une partition à chaque locataire afin d'obtenir une isolation des données et une gestion de la mémoire flexibles. Les performances de recherche de la multi-location orientée partition sont bien meilleures que celles de la multi-location orientée collection. Il convient toutefois de noter que le nombre de locataires de la collection ne doit pas dépasser le nombre maximal de partitions qu'une collection peut contenir.
Multi-location basée sur les clés de partition
Milvus 2.2.9 introduit une nouvelle fonctionnalité appelée clé de partition. Lors de la création d'une collection, nommez un champ de locataire et faites-en le champ de clé de partition. Milvus stocke les entités dans une partition en fonction de la valeur de hachage du champ de clé de partition. Lorsqu'il effectue des recherches ANN, Milvus ne recherche que la partition qui contient la clé de partition. Cela réduit considérablement la portée de la recherche et permet d'obtenir de meilleures performances qu'en l'absence de clé de partition.