🚀 Coba Zilliz Cloud, Milvus yang sepenuhnya terkelola, secara gratis—rasakan performa 10x lebih cepat! Coba Sekarang>>

milvus-logo
LFAI
Beranda
  • Konsep

Strategi multi-penyewaan

Dalam banyak kasus penggunaan, pengembang ingin menjalankan satu cluster Milvus dan melayani beberapa penyewa, seperti beberapa tim produk, atau jutaan pengguna akhir. Panduan ini menjelaskan beberapa strategi berbeda untuk mencapai multi-tenancy di Milvus.

Milvus dirancang untuk mendukung multi-tenancy di tingkat database, koleksi, atau partisi. Tujuan dari multi-tenancy adalah untuk memisahkan data dan sumber daya satu sama lain. Menerapkan multi-tenancy pada tingkat yang berbeda dapat mencapai tingkat isolasi yang berbeda tetapi juga melibatkan biaya yang berbeda. Di sini kami menjelaskan trade-off dari keduanya.

Multi-tenancy yang berorientasi pada basis data

Sejak Milvus versi 2.2.9, Anda dapat membuat beberapa database dalam satu cluster Milvus. Fitur ini memungkinkan untuk mencapai multi-tenancy berorientasi database dengan memberikan database untuk setiap penyewa, sehingga mereka dapat membuat koleksi mereka sendiri. Pendekatan ini memberikan isolasi data dan sumber daya terbaik untuk penyewa, tetapi terbatas pada 64 database dalam satu cluster.

Penyewaan multi-penyewa yang berorientasi pada koleksi

Ada dua cara yang memungkinkan untuk mencapai multi-penyewaan berorientasi koleksi.

Satu koleksi untuk semua penyewa

Menggunakan satu koleksi untuk mengimplementasikan multi-penyewaan dengan menambahkan bidang penyewa untuk membedakan antara penyewa adalah pilihan yang sederhana. Saat melakukan pencarian ANN untuk penyewa tertentu, tambahkan ekspresi filter untuk menyaring semua entitas yang dimiliki oleh penyewa lain. Ini adalah cara paling sederhana untuk mencapai multi-tenancy. Namun, perlu diketahui bahwa kinerja filter dapat menjadi penghambat pencarian ANN. Untuk meningkatkan kinerja pencarian, Anda dapat mengoptimalkan dengan multi-tenancy berorientasi partisi di bawah ini.

Satu koleksi per penyewa

Pendekatan lain adalah membuat koleksi untuk setiap penyewa untuk menyimpan datanya sendiri, alih-alih menyimpan data semua penyewa dalam satu koleksi. Hal ini memberikan isolasi data dan kinerja kueri yang lebih baik. Namun, perlu diingat bahwa pendekatan ini membutuhkan lebih banyak sumber daya dalam penjadwalan dan terbatas pada 10.000 koleksi dalam satu klaster.

Multi-penyewaan berorientasi partisi

Ada dua cara untuk mencapai multi-penyewaan berorientasi partisi:

Satu partisi per penyewa

Mengelola satu koleksi jauh lebih mudah daripada mengelola banyak koleksi. Daripada membuat banyak koleksi, pertimbangkan untuk menetapkan satu partisi untuk setiap penyewa untuk mencapai isolasi data yang fleksibel dan manajemen memori. Performa pencarian multi-penyewaan berorientasi partisi jauh lebih baik daripada multi-penyewaan berorientasi koleksi. Namun, perlu diperhatikan bahwa jumlah penyewa koleksi tidak boleh melebihi jumlah maksimum partisi yang dapat ditampung oleh sebuah koleksi.

Penyewaan multi-penyewa berbasis kunci partisi

Milvus 2.2.9 memperkenalkan fitur baru bernama kunci partisi. Pada saat pembuatan koleksi, tentukan bidang penyewa dan jadikan bidang tersebut sebagai kunci partisi. Milvus akan menyimpan entitas dalam sebuah partisi sesuai dengan nilai hash dari field kunci partisi. Ketika melakukan pencarian ANN, Milvus hanya mencari partisi yang berisi kunci partisi. Hal ini akan mengurangi cakupan pencarian sehingga mencapai kinerja yang lebih baik daripada tanpa kunci partisi.

Strategi ini menghilangkan batasan jumlah maksimum penyewa yang dapat didukung oleh koleksi Milvus dan sangat menyederhanakan manajemen sumber daya karena Milvus secara otomatis mengelola partisi untuk Anda.

Sebagai rangkuman, Anda bisa menggunakan salah satu atau beberapa strategi multi-tenancy di atas untuk membentuk solusi Anda sendiri. Tabel berikut membuat perbandingan di antara strategi-strategi ini dalam hal isolasi data, kinerja pencarian, dan jumlah maksimum penyewa.

Isolasi dataPerforma pencarian.Maks. jumlah penyewaMerekomendasikan skenario
Berorientasi pada basis dataKuatKuat64Untuk mereka yang membutuhkan koleksi yang bervariasi dengan proyek, terutama cocok untuk isolasi data antar departemen dalam organisasi Anda.
Satu koleksi untuk semuaLemahSedangN/AUntuk mereka yang memiliki sumber daya terbatas dan tidak peka terhadap isolasi data.
Satu koleksi per penyewaKuatKuatKurang dari 10.000Untuk yang memiliki kurang dari 10.000 penyewa per klaster.
Satu partisi per penyewaSedangKuat1,024Untuk yang memiliki kurang dari 1.024 penyewa per koleksi.
Berbasis kunci partisiSedangKuat10,000,000+Untuk mereka yang memprediksi peningkatan penyewa yang cepat menjadi jutaan.

Apa selanjutnya

MengelolaSkemaBasis Data

Coba Milvus yang Dikelola secara Gratis

Zilliz Cloud bebas masalah, didukung oleh Milvus dan 10x lebih cepat.

Mulai
Umpan balik

Apakah halaman ini bermanfaat?