JepretanCompatible with Milvus 3.0.x
Snapshot adalah gambar titik waktu dari koleksi Milvus, ideal untuk pengembalian cepat, pembuatan versi, dan pengujian. Snapshot menangkap status koleksi pada stempel waktu tertentu dan hanya menyimpan file metadata dan manifes, seperti skema, indeks, dan file data vektor (binlog), untuk penyimpanan dan pemulihan yang efisien.
Snapshot adalah gambar data yang cepat dan langsung pada waktunya, cocok untuk pengembalian cepat atau pengujian(beberapa hari hingga beberapa minggu). Sementara itu, cadangan adalah salinan lengkap yang independen yang disimpan secara terpisah untuk pemulihan bencana jangka panjang(berminggu-minggu hingga bertahun-tahun) dan untuk perlindungan yang lebih baik terhadap kegagalan penyimpanan total.
Untuk membuat cadangan, lihat Cadangan Milvus.
Anatomi snapshot
Milvus mengimplementasikan arsitektur snapshot berbasis manifes untuk pengambilan, penyimpanan, dan pemulihan data secara efisien tanpa menduplikasi data vektor yang sebenarnya. Arsitektur ini memisahkan manajemen metadata dari penyimpanan data fisik, sehingga memungkinkan snapshot ringan yang mereferensikan file segmen yang ada dalam penyimpanan objek.
Ketika Anda membuat snapshot untuk koleksi, Milvus mengumpulkan hal-hal berikut ini:
Metadata snapshot
Metadata ini menyediakan informasi dasar untuk membuat snapshot, termasuk nama dan deskripsi snapshot, ID koleksi target, dan titik waktu saat snapshot dibuat.
Deskripsi koleksi
Berisi deskripsi koleksi target, termasuk definisi skema, informasi partisi, dan properti.
Informasi indeks
Menyimpan metadata indeks dan jalur ke file indeks.
Data segmen
Menangkap file data vektor (binlog), log penghapusan (deltalog), dan file indeks.
Di antara informasi di atas, Milvus menghasilkan berkas manifes Apache Avro untuk setiap segmen dan menyimpan metadata snapshot, deskripsi koleksi, informasi indeks, dan jalur ke berkas manifes dalam berkas JSON. Diagram berikut menggambarkan struktur folder snapshot.
snapshots/{collection_id}/
├── metadata/
│ └── {snapshot_id}.json # Snapshot metadata (JSON format)
│
└── manifests/
└── {snapshot_id}/ # Directory for each snapshot
├── {segment_id_1}.avro # Individual segment manifest (Avro format)
├── {segment_id_2}.avro
└── ...
Membuat snapshot biasanya memerlukan waktu milidetik, dan memulihkannya memerlukan waktu beberapa detik hingga beberapa menit, tergantung volume data.
Dampak dan pertimbangan penyimpanan
Setelah Milvus mereferensikan segmen atau file indeks dalam snapshot, Milvus tidak akan mengumpulkan file-file tersebut kecuali jika Anda menghapus snapshot tersebut. Snapshot menggunakan penyimpanan yang sebanding dengan ukuran koleksi target, dan biaya penyimpanan objek berlaku untuk penyimpanan snapshot. Dalam kasus yang ekstrem, satu snapshot bahkan dapat menggandakan biaya penyimpanan objek Anda. Anda disarankan untuk
- Menghapus snapshot lama secara teratur untuk menghemat penyimpanan.
- Gunakan nama dan deskripsi deskriptif untuk referensi di masa mendatang.
- Selalu memverifikasi pembuatan snapshot dan hasil pemulihan.
- Lacak stempel waktu pembuatan snapshot, penggunaan penyimpanan, dan ID pekerjaan pemulihan untuk pemantauan dan pemecahan masalah.
Batasan dan larangan
- Snapshot tidak dapat diubah setelah dibuat.
- Anda hanya dapat memulihkan snapshot ke koleksi baru dalam cluster yang sama dengan aslinya.
- Koleksi yang dipulihkan mempertahankan skema, jumlah pecahan, dan jumlah partisi yang sama.
- Data historis yang dipulihkan mungkin bertentangan dengan kebijakan TTL. Anda disarankan untuk menonaktifkan TTL atau menyesuaikan pengaturan TTL sebelum membuat snapshot.
Bacaan lebih lanjut
- Mengelola Snapshot - membuat, membuat daftar, memulihkan, dan menghapus snapshot.
- Kasus Penggunaan Snapshot - pola dan alur kerja umum.
- CadanganMilvus - pencadangan dan pemulihan jangka panjang di seluruh cluster.