• Tentang Milvus
  • Mulailah
  • Konsep
  • Panduan Pengguna
  • Impor Data
  • Alat AI
  • Panduan Administrasi
  • Alat
  • Integrasi
  • Tutorial
  • Pertanyaan yang Sering Diajukan
  • API Reference

Konsistensi

Topik ini memperkenalkan empat tingkat konsistensi dalam Milvus dan skenario yang paling sesuai. Mekanisme di balik memastikan konsistensi dalam Milvus juga dibahas dalam topik ini.

Gambaran Umum

Konsistensi dalam basis data terdistribusi secara khusus mengacu pada properti yang memastikan setiap node atau replika memiliki tampilan data yang sama ketika menulis atau membaca data pada waktu tertentu.

Milvus mendukung empat tingkat konsistensi: strong, bounded staleness, session, dan eventually. Tingkat konsistensi default di Milvus adalah bounded staleness. Anda dapat dengan mudah mengatur tingkat konsistensi ketika melakukan pencarian vektor tunggal, pencarian hibrida, atau kueri agar sesuai dengan aplikasi Anda.

Tingkat konsistensi

Seperti yang didefinisikan oleh teorema PACELC, basis data terdistribusi harus mengorbankan konsistensi, ketersediaan, dan latensi. Konsistensi yang tinggi menyiratkan akurasi yang tinggi tetapi juga latensi pencarian yang tinggi, sementara konsistensi yang rendah mengarah pada kecepatan pencarian yang cepat tetapi kehilangan visibilitas data. Oleh karena itu, tingkat konsistensi yang berbeda sesuai dengan skenario yang berbeda.

Berikut ini menjelaskan perbedaan dari empat tingkat konsistensi yang didukung oleh Milvus dan skenario yang sesuai dengan masing-masing tingkat konsistensi.

Kuat

Strong adalah tingkat konsistensi tertinggi dan paling ketat. Ini memastikan bahwa pengguna dapat membaca data versi terbaru.

Strong consistency Konsistensi yang kuat

Menurut teorema PACELC, jika tingkat konsistensi diatur ke strong, latensi akan meningkat. Oleh karena itu, kami merekomendasikan untuk memilih konsistensi yang kuat selama pengujian fungsional untuk memastikan keakuratan hasil pengujian. Konsistensi yang kuat juga paling cocok untuk aplikasi yang memiliki permintaan ketat untuk konsistensi data dengan mengorbankan kecepatan pencarian. Contohnya adalah sistem keuangan online yang berhubungan dengan pembayaran pesanan dan penagihan.

Keusangan terbatas

Bounded staleness, seperti namanya, memungkinkan ketidakkonsistenan data selama periode waktu tertentu. Namun, secara umum, data selalu konsisten secara global di luar periode waktu tersebut.

Bounded staleness consistency Konsistensi keusangan yang terbatas

Bounded staleness cocok untuk skenario yang perlu mengontrol latensi pencarian dan dapat menerima ketidaktampakan data secara sporadis. Misalnya, dalam sistem pemberi rekomendasi seperti mesin rekomendasi video, ketidaktampakan data terkadang berdampak kecil pada tingkat penarikan secara keseluruhan, tetapi dapat secara signifikan meningkatkan kinerja sistem pemberi rekomendasi.

Sesi

Sesi memastikan bahwa semua penulisan data dapat langsung dirasakan saat dibaca selama sesi yang sama. Dengan kata lain, ketika Anda menulis data melalui satu klien, data yang baru dimasukkan langsung dapat dicari.

Session consistency Konsistensi sesi

Kami merekomendasikan untuk memilih sesi sebagai tingkat konsistensi untuk skenario-skenario di mana permintaan akan konsistensi data dalam sesi yang sama sangat tinggi. Contohnya adalah menghapus data entri buku dari sistem perpustakaan, dan setelah konfirmasi penghapusan dan penyegaran halaman (sesi yang berbeda), buku tersebut seharusnya tidak lagi terlihat dalam hasil pencarian.

Akhirnya

Tidak ada jaminan urutan pembacaan dan penulisan, dan replika pada akhirnya akan menyatu pada kondisi yang sama mengingat tidak ada operasi penulisan lebih lanjut yang dilakukan. Di bawah konsistensi "akhirnya", replika mulai mengerjakan permintaan baca dengan nilai terbaru yang diperbarui. Konsistensi akhirnya adalah level terlemah di antara keempat level tersebut.

Eventual consistency Konsistensi akhirnya

Namun, menurut teorema PACELC, latensi pencarian dapat sangat dipersingkat dengan mengorbankan konsistensi. Oleh karena itu, akhirnya konsisten paling cocok untuk skenario yang tidak memiliki permintaan tinggi untuk konsistensi data tetapi membutuhkan kinerja pencarian yang sangat cepat. Contohnya adalah mengambil ulasan dan peringkat produk Amazon dengan tingkat akhirnya konsisten.

Menjamin stempel waktu

Milvus menyadari tingkat konsistensi yang berbeda dengan memperkenalkan stempel waktu Jaminan (GuaranteeTs).

GuaranteeTs berfungsi untuk memberi tahu node kueri bahwa pencarian atau permintaan kueri tidak akan dilakukan hingga semua data sebelum GuaranteeTs dapat dilihat oleh node kueri. Ketika Anda menentukan tingkat konsistensi, tingkat konsistensi akan dipetakan ke nilai GuaranteeTs tertentu. Nilai GuaranteeTs yang berbeda sesuai dengan tingkat konsistensi yang berbeda:

  • Kuat: GuaranteeTs ditetapkan identik dengan stempel waktu sistem terbaru, dan simpul kueri menunggu hingga semua data sebelum stempel waktu sistem terbaru dapat dilihat, sebelum memproses permintaan pencarian atau kueri.

  • Keusangan yangdibatasi: GuaranteeTs diatur relatif lebih kecil dari stempel waktu sistem terbaru, dan simpul kueri mencari pada tampilan data yang tidak terlalu diperbarui.

  • Sesi: Klien menggunakan stempel waktu dari operasi penulisan terbaru sebagai GuaranteeTs, sehingga setiap klien setidaknya dapat mengambil data yang dimasukkan oleh klien yang sama.

  • Akhirnya: GuaranteeTs diatur ke nilai yang sangat kecil untuk melewatkan pemeriksaan konsistensi. Node kueri langsung mencari pada tampilan data yang ada.

Lihat Cara Kerja GuaranteeTs untuk informasi lebih lanjut tentang mekanisme di balik memastikan berbagai tingkat konsistensi di Milvus.

Selanjutnya

Diterjemahkan olehDeepL

Coba Milvus yang Dikelola secara Gratis

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

Mulai
Umpan balik

Apakah halaman ini bermanfaat?