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

milvus-logo
LFAI
Beranda
  • Konsep
  • Home
  • Docs
  • Konsep

  • Arsitektur

  • Penyimpanan/Komputasi

Pemilahan Penyimpanan/Komputasi

Mengikuti prinsip disagregasi bidang data dan bidang kontrol, Milvus terdiri dari empat lapisan yang saling independen dalam hal skalabilitas dan pemulihan bencana.

Lapisan akses

Terdiri dari sekelompok proksi tanpa kewarganegaraan, lapisan akses adalah lapisan depan sistem dan titik akhir bagi pengguna. Lapisan ini memvalidasi permintaan klien dan mengurangi hasil yang dikembalikan:

  • Proxy dengan sendirinya tidak memiliki kewarganegaraan. Ia menyediakan alamat layanan terpadu menggunakan komponen penyeimbang beban seperti Nginx, Kubernetes Ingress, NodePort, dan LVS.
  • Karena Milvus menggunakan arsitektur pemrosesan paralel masif (MPP), proksi mengumpulkan dan memproses hasil antara sebelum mengembalikan hasil akhir ke klien.

Layanan koordinator

Layanan koordinator memberikan tugas kepada node pekerja dan berfungsi sebagai otak sistem. Tugas-tugas yang dilakukannya meliputi manajemen topologi cluster, penyeimbangan beban, pembuatan stempel waktu, deklarasi data, dan manajemen data.

Ada tiga jenis koordinator: koordinator akar (root coord), koordinator data (data coord), dan koordinator kueri (query coord).

Koordinator akar (root coord)

Root coord menangani permintaan bahasa definisi data (DDL) dan bahasa kontrol data (DCL), seperti membuat atau menghapus koleksi, partisi, atau indeks, serta mengelola TSO (stempel waktu Oracle) dan penerbitan penunjuk waktu.

Koordinator kueri (query coord)

Query coord mengelola topologi dan penyeimbangan beban untuk node kueri, dan melakukan handoff dari segmen yang sedang berkembang ke segmen yang disegel.

Koordinator data (data coord)

Data coord mengelola topologi node data dan node indeks, memelihara metadata, dan memicu flush, compact, dan pembangunan indeks serta operasi data latar belakang lainnya.

Simpul pekerja

Lengan dan kaki. Node pekerja adalah eksekutor bodoh yang mengikuti instruksi dari layanan koordinator dan menjalankan perintah bahasa manipulasi data (DML) dari proksi. Node pekerja tidak memiliki kewarganegaraan berkat pemisahan penyimpanan dan komputasi, dan dapat memfasilitasi perluasan sistem dan pemulihan bencana saat digunakan di Kubernetes. Ada tiga jenis simpul pekerja:

Node kueri

Node kueri mengambil data log tambahan dan mengubahnya menjadi segmen yang terus bertambah dengan berlangganan log broker, memuat data historis dari penyimpanan objek, dan menjalankan pencarian hibrida antara data vektor dan skalar.

Simpul data

Simpul data mengambil data log tambahan dengan berlangganan ke log broker, memproses permintaan mutasi, dan mengemas data log ke dalam snapshot log dan menyimpannya di penyimpanan objek.

Simpul indeks

Simpul indeks membangun indeks. Node indeks tidak perlu menjadi residen memori, dan dapat diimplementasikan dengan kerangka kerja tanpa server.

Penyimpanan

Penyimpanan adalah tulang punggung sistem, yang bertanggung jawab atas persistensi data. Ini terdiri dari penyimpanan meta, perantara log, dan penyimpanan objek.

Penyimpanan meta

Penyimpanan meta menyimpan snapshot metadata seperti skema koleksi, dan pos pemeriksaan konsumsi pesan. Menyimpan metadata menuntut ketersediaan yang sangat tinggi, konsistensi yang kuat, dan dukungan transaksi, sehingga Milvus memilih etcd untuk meta store. Milvus juga menggunakan etcd untuk registrasi layanan dan pemeriksaan kesehatan.

Penyimpanan objek

Penyimpanan objek menyimpan file snapshot dari log, file indeks untuk data skalar dan vektor, dan hasil kueri menengah. Milvus menggunakan MinIO sebagai penyimpanan objek dan dapat dengan mudah digunakan di AWS S3 dan Azure Blob, dua layanan penyimpanan yang paling populer dan hemat biaya di dunia. Namun, penyimpanan objek memiliki latensi akses yang tinggi dan biaya berdasarkan jumlah permintaan. Untuk meningkatkan kinerjanya dan menurunkan biaya, Milvus berencana untuk menerapkan pemisahan data dingin-panas pada kumpulan cache berbasis memori atau SSD.

Pialang log

Log broker adalah sistem pub-sub yang mendukung pemutaran. Sistem ini bertanggung jawab untuk streaming persistensi data dan pemberitahuan peristiwa. Ini juga memastikan integritas data tambahan ketika node pekerja pulih dari kerusakan sistem. Cluster Milvus menggunakan Pulsar sebagai perantara log; Milvus mandiri menggunakan RocksDB sebagai perantara log. Selain itu, log broker dapat dengan mudah diganti dengan platform penyimpanan data streaming seperti Kafka.

Milvus dibangun di sekitar log broker dan mengikuti prinsip "log sebagai data", sehingga Milvus tidak memelihara tabel fisik tetapi menjamin keandalan data melalui persistensi pencatatan dan snapshot log.

Log_mechanism Mekanisme log

Log broker adalah tulang punggung Milvus. Ia bertanggung jawab atas persistensi data dan pemilahan baca-tulis, berkat mekanisme pub-sub bawaannya. Ilustrasi di atas menunjukkan penggambaran mekanisme yang disederhanakan, di mana sistem dibagi menjadi dua peran, log broker (untuk menjaga urutan log) dan log subscriber. Yang pertama mencatat semua operasi yang mengubah status koleksi; yang kedua berlangganan urutan log untuk memperbarui data lokal dan menyediakan layanan dalam bentuk salinan hanya-baca. Mekanisme pub-sub juga menyediakan ruang untuk perluasan sistem dalam hal pengambilan data perubahan (CDC) dan penyebaran yang didistribusikan secara global.

Selanjutnya

  • Baca Komponen Utama untuk detail lebih lanjut tentang arsitektur Milvus.

Coba Milvus yang Dikelola secara Gratis

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

Mulai
Umpan balik

Apakah halaman ini bermanfaat?