🚀 Try Zilliz Cloud, the fully managed Milvus, for free—experience 10x faster performance! Try Now>>

milvus-logo
LFAI
Casa
  • Concetti

Strategie multi-tenancy

In molti casi d'uso, gli sviluppatori vogliono gestire un cluster Milvus e servire più tenancy, come un paio di team di prodotto o milioni di utenti finali. Questa guida illustra alcune strategie diverse per ottenere la multi-tenancy su Milvus.

Milvus è progettato per supportare la multi-tenancy a livello di database, collezione o partizione. L'obiettivo della multi-tenancy è quello di separare i dati e le risorse tra loro. L'implementazione della multi-tenancy a diversi livelli può raggiungere un diverso grado di isolamento, ma comporta anche un diverso overhead. Qui spieghiamo i loro compromessi.

Multi-tenancy orientata al database

Dalla versione 2.2.9 di Milvus, è possibile creare più database in un singolo cluster Milvus. Questa funzione consente di ottenere una multi-tenancy orientata al database, assegnando un database per ogni tenant, in modo che questi possano creare le proprie collezioni. Questo approccio offre il miglior isolamento dei dati e delle risorse per i tenant, ma è limitato a 64 database in un cluster al massimo.

Multi-tenancy orientata alle collezioni

Esistono due modi possibili per ottenere la multi-tenancy orientata alle collezioni.

Una collezione per tutti i tenant

L'uso di una singola collezione per implementare la multi-tenancy, aggiungendo un campo tenant per distinguere i tenant, è un'opzione semplice. Quando si effettua una ricerca RNA per uno specifico tenant, si aggiunge un'espressione di filtro per filtrare tutte le entità che appartengono ad altri tenant. Questo è il modo più semplice per ottenere la multi-tenancy. Tuttavia, occorre tenere presente che le prestazioni del filtro possono diventare il collo di bottiglia delle ricerche ANN. Per migliorare le prestazioni della ricerca, si può ottimizzare con la multi-tenancy orientata alle partizioni.

Una raccolta per ogni tenancy

Un altro approccio consiste nel creare una collezione per ogni tenant per memorizzare i propri dati, invece di memorizzare i dati di tutti i tenant in una singola collezione. In questo modo si ottiene un migliore isolamento dei dati e migliori prestazioni di interrogazione. Tuttavia, bisogna tenere presente che questo approccio richiede più risorse per la pianificazione ed è limitato a un massimo di 10.000 raccolte in un cluster.

Multi-tenancy orientata alle partizioni

Esistono due modi per ottenere la multi-tenancy orientata alle partizioni:

Una partizione per tenant

La gestione di una singola raccolta è molto più semplice di quella di più raccolte. Invece di creare più collezioni, si può pensare di assegnare una partizione per ogni tenant per ottenere un isolamento dei dati e una gestione della memoria flessibili. Le prestazioni di ricerca della multi-tenancy orientata alle partizioni sono molto migliori di quelle della multi-tenancy orientata alle collezioni. Tuttavia, si noti che il numero di tenant della collezione non deve superare il numero massimo di partizioni che una collezione può contenere.

Multi-tenancy basata su chiavi di partizione

Milvus 2.2.9 introduce una nuova funzione chiamata chiave di partizione. Al momento della creazione di una collezione, si nomina un campo tenancy e lo si rende il campo chiave della partizione. Milvus memorizzerà le entità in una partizione in base al valore hash del campo chiave della partizione. Quando si effettuano ricerche su RNA, Milvus cerca solo nella partizione che contiene la chiave di partizione. In questo modo si riduce notevolmente la portata della ricerca e si ottengono prestazioni migliori rispetto a quelle ottenute senza la chiave di partizione.

Questa strategia elimina il limite del numero massimo di tenant che una collezione Milvus può supportare e semplifica notevolmente la gestione delle risorse perché Milvus gestisce automaticamente le partizioni per voi.

Riassumendo, è possibile utilizzare una o alcune delle strategie multi-tenancy sopra descritte per creare la propria soluzione. La tabella seguente mette a confronto queste strategie in termini di isolamento dei dati, prestazioni di ricerca e numero massimo di tenant.

Isolamento dei datiPrestazioni di ricercaNumero massimo di tenantScenari consigliati
Orientato al databaseForteForte64Per chi ha bisogno di collezioni che variano a seconda dei progetti, particolarmente adatte per l'isolamento dei dati tra i reparti dell'organizzazione.
Una raccolta per tuttiDeboleMedioN/DPer chi ha risorse limitate ed è insensibile all'isolamento dei dati.
Una raccolta per inquilinoForteForteMeno di 10.000Per chi ha meno di 10.000 tenant per cluster.
Una partizione per tenantMedioForte4,096Per chi ha meno di 4.096 tenant per collezione.
Basato su chiavi di partizioneMedioForte10,000,000+Per chi prevede un rapido aumento degli inquilini fino a milioni.

Cosa c'è dopo

Gestirelo schema deidatabase

Tradotto daDeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Questa pagina è stata utile?