SnapshotCompatible with Milvus 3.0.x
Snapshot adalah gambaran koleksi Milvus pada titik waktu tertentu, yang ideal untuk rollback cepat, pengaturan versi, dan pengujian. Snapshot menangkap status koleksi pada waktu tertentu dan hanya menyimpan metadata serta file manifest, seperti skema, indeks, dan file data vektor (binlog), untuk penyimpanan dan pemulihan yang efisien.
Snapshot adalah citra data pada titik waktu tertentu yang cepat, cocok untuk rollback cepat atau pengujian (berdurasi beberapa hari hingga beberapa minggu). Sementara itu, cadangan adalah salinan lengkap yang disimpan secara terpisah untuk pemulihan bencana jangka panjang (berdurasi beberapa minggu hingga beberapa tahun) dan untuk perlindungan yang lebih baik terhadap kegagalan penyimpanan total.
Untuk membuat cadangan, lihat Milvus Backup.
Anatomi Snapshot
Milvus menerapkan arsitektur snapshot berbasis manifest untuk penangkapan, penyimpanan, dan pemulihan data pada titik waktu tertentu secara efisien tanpa menduplikasi data vektor yang sebenarnya. Arsitektur ini memisahkan pengelolaan metadata dari penyimpanan data fisik, sehingga memungkinkan pembuatan snapshot yang ringan yang merujuk ke file segmen yang ada di penyimpanan objek.
Saat Anda membuat snapshot untuk sebuah koleksi, Milvus mengumpulkan hal-hal berikut:
Metadata snapshot
Metadata ini menyediakan informasi dasar untuk membuat snapshot, termasuk nama dan deskripsi snapshot, ID koleksi tujuan, serta titik waktu saat snapshot dibuat.
Deskripsi koleksi
Berisi deskripsi koleksi target, termasuk definisi skema, informasi partisi, dan propertinya.
Informasi indeks
Metadata indeks dan jalur ke berkas indeks disimpan di sini.
Data segmen
Bagian ini mencakup berkas data vektor (binlogs), log penghapusan (deltalogs), dan berkas indeks.
Di antara informasi di atas, Milvus menghasilkan berkas manifest Apache Avro untuk setiap segmen dan menyimpan metadata snapshot, deskripsi koleksi, informasi indeks, serta jalur ke berkas manifest 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
└── ...
Pembuatan snapshot biasanya memakan waktu milidetik, sedangkan pemulihannya memakan waktu beberapa detik hingga menit, tergantung pada volume data.
Dampak dan pertimbangan penyimpanan
Setelah Milvus mereferensikan segmen atau berkas indeks dalam sebuah snapshot, sistem tidak akan melakukan pembersihan (garbage collection) terhadap berkas-berkas tersebut kecuali Anda menghapus snapshot tersebut. Snapshot mengonsumsi ruang penyimpanan sebanding dengan ukuran koleksi target, dan biaya penyimpanan objek berlaku untuk retensi snapshot. Dalam kasus ekstrem, satu snapshot bahkan dapat menggandakan biaya penyimpanan objek Anda. Disarankan untuk
- menghapus snapshot lama secara teratur untuk menghemat penyimpanan.
- Gunakan nama dan deskripsi yang deskriptif untuk referensi di masa mendatang.
- Selalu verifikasi hasil pembuatan dan pemulihan snapshot.
- Melacak cap waktu pembuatan snapshot dan penggunaan penyimpanan untuk pemantauan dan pemecahan masalah.
- Simpan ID pekerjaan pemulihan untuk pemantauan dan pemecahan masalah.
Batasan dan pembatasan
- Snapshot menjadi tidak dapat diubah setelah dibuat.
- Anda hanya dapat memulihkan snapshot ke koleksi baru di dalam klaster yang sama dengan yang asli.
- Koleksi yang dipulihkan mempertahankan skema, jumlah shard, 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.
- Untuk menggunakan snapshot sebagai sumber eksternal "
milvus-table", snapshot sumber harus berasal dari koleksi StorageV3 Milvus biasa. Snapshot dari koleksi eksternal tidak didukung sebagai sumber "milvus-table".
Bacaan lebih lanjut
- Mengelola Snapshot — membuat, mencantumkan, mendeskripsikan, menandai, memulihkan, dan menghapus snapshot.
- Kasus Penggunaan Snapshot — pola dan alur kerja umum.
- Pencadangan Milvus — pencadangan jangka panjang dan pemulihan antar-kluster.