PemanasanCompatible with Milvus 2.6.4+
Di Milvus, Pemanasan melengkapi Penyimpanan Berjenjang dengan mengurangi latensi yang terjadi saat data dingin diakses untuk pertama kalinya. Setelah dikonfigurasi, Pemanasan akan memuatkan jenis bidang atau indeks yang dipilih ke dalam cache sebelum sebuah segmen dapat di-query, sehingga memastikan bahwa data yang sering diakses akan segera tersedia setelah dimuat.
Mengapa pemanasan
Lazy Load di Penyimpanan Berjenjang meningkatkan efisiensi dengan hanya memuat metadata pada awalnya. Namun, hal ini dapat menyebabkan latensi pada kueri pertama ke data dingin, karena potongan atau indeks yang diperlukan harus diambil dari penyimpanan objek.
Warm Up memecahkan masalah ini dengan menyimpan data penting secara proaktif di cache selama inisialisasi segmen.
Ini sangat bermanfaat ketika:
Indeks skalar tertentu sering digunakan dalam kondisi filter.
Indeks vektor sangat penting untuk kinerja pencarian dan harus segera disiapkan.
Latensi cold-start setelah QueryNode dimulai ulang atau pemuatan segmen baru tidak dapat diterima.
Sebaliknya, Pemanasan tidak disarankan untuk bidang atau indeks yang jarang ditanyakan. Menonaktifkan Pemanasan akan mempersingkat waktu pemuatan segmen dan menghemat ruang cache - ideal untuk bidang vektor besar atau bidang skalar yang tidak kritis.
Konfigurasi
Pemanasan dikontrol di bawah queryNode.segcore.tieredStorage.warmup di milvus.yaml. Anda dapat mengonfigurasinya secara terpisah untuk bidang skalar, indeks skalar, bidang vektor, dan indeks vektor. Setiap target mendukung dua mode:
Mode |
Deskripsi |
Skenario umum |
|---|---|---|
|
Memuat sebelum segmen dapat di-query. Waktu muat sedikit meningkat, tetapi kueri pertama tidak menimbulkan latensi. |
Gunakan untuk data yang sangat penting bagi kinerja yang harus segera tersedia, seperti indeks skalar frekuensi tinggi atau indeks vektor kunci yang digunakan dalam pencarian. |
|
Lewati pemuatan awal. Segmen dapat di-query lebih cepat, tetapi query pertama dapat memicu pemuatan sesuai permintaan. |
Gunakan untuk data yang jarang diakses atau data besar seperti bidang vektor mentah atau bidang skalar yang tidak penting. |
Contoh YAML:
queryNode:
segcore:
tieredStorage:
warmup:
# options: sync, disable.
# Specifies the timing for warming up the Tiered Storage cache.
# - `sync`: data will be loaded into the cache before a segment is considered loaded.
# - `disable`: data will not be proactively loaded into the cache, and loaded only if needed by search/query tasks.
# Defaults to `sync`, except for vector field which defaults to `disable`.
scalarField: sync
scalarIndex: sync
vectorField: disable # cache warmup for vector field raw data is by default disabled.
vectorIndex: sync
Parameter |
Nilai |
Deskripsi |
Kasus penggunaan yang disarankan |
|---|---|---|---|
|
|
Mengontrol apakah data bidang skalar dimuat sebelumnya. |
Gunakan |
|
|
Mengontrol apakah indeks skalar dimuat sebelumnya. |
Gunakan |
|
|
Mengontrol apakah data bidang vektor dimuat sebelumnya. |
Umumnya |
|
|
Mengontrol apakah indeks vektor dimuat sebelumnya. |
Gunakan |
Praktik terbaik
Pemanasan hanya memengaruhi beban awal. Jika data yang di-cache kemudian digusur, kueri berikutnya akan memuat ulang sesuai permintaan.
Hindari penggunaan
syncsecara berlebihan. Memuat terlalu banyak bidang akan meningkatkan waktu muat dan tekanan cache.Mulailah secara konservatif - aktifkan Pemanasan hanya untuk bidang dan indeks yang sering diakses.
Pantau latensi kueri dan metrik cache, lalu perluas pramuat sesuai kebutuhan.
Untuk beban kerja campuran, terapkan
syncuntuk koleksi yang sensitif terhadap kinerja dandisableuntuk koleksi yang berorientasi pada kapasitas.