Gesaan dan skop
Data lake anda menggunakan jadual Iceberg dan sedang beralih daripada 1.10.1 kepada 1.10.2. Jadual mengandungi equality deletes, pemadaman v2, dan penulis serentak, manakala keluaran tersebut merangkumi pembetulan keselamatan. Reka bentuk peningkatan, pengesahan, pengunduran, dan pembersihan.
Apache Iceberg merekodkan 1.10.2 dikeluarkan pada 18 Mei 2026, dengan pembetulan untuk susunan skema equality-delete, pemuatan snapshot selepas komit, pembersihan fail yang tidak selamat, peningkatan format serentak, dan kelemahan kebergantungan. Temu duga ini menguji keupayaan mengubah nota keluaran kepada bukti ketepatan data.
Perkara yang dinilai oleh penemu duga
- Memisahkan spesifikasi jadual, pelaksanaan enjin, Catalog, FileIO, dan kebergantungan masa jalanan (runtime).
- Menerangkan equality deletes, position deletes, delete vectors, dan keterlihatan snapshot.
- Mereka bentuk pengesahan bayangan (shadow validation), ujian penulisan serentak, perlindungan pembersihan, dan tetingkap pengunduran.
- Menyedari bahawa kelulusan peningkatan kebergantungan bukanlah bukti ketepatan pertanyaan bersejarah.
- Menentukan metrik yang boleh diaudit, garisan henti (stop lines), dan pintu kawalan pembersihan pasca-peningkatan.
Soalan penjelasan
- Enjin, Catalog, storan objek, dan runtime Iceberg yang manakah digunakan? Adakah penulis menggunakan pelbagai bahasa?
- Versi format, jenis fail pemadaman, pemetakan, pengekalan snapshot, dan kadar komit yang manakah terpakai?
- Adakah ini hanya penggantian kebergantungan klien, atau adakah penulis, pembaca, dan perkhidmatan Catalog turut berubah?
- Penulis penstriman dan pertanyaan hiliran yang manakah tidak boleh dijeda?
Matriks versi dan keserasian
Kunci pepohon kebergantungan sebenar dan versi yang digunakan. Bina matriks untuk pembaca, penulis, Catalog, FileIO, storan objek, dan tugas pembersihan. Pembetulan pada 1.10.2 tidak membuktikan bahawa enjin lama memahami metadata baharu; gunakan panduan keserasian rasmi serta ujian memainkan semula (replay tests). Lancarkan mengikut peringkat dalam pembaca baca sahaja, penulis luar talian, penulis dalam talian, dan peringkat pembersihan.
Dalam persekitaran kenari, salin snapshot pengeluaran, fail pemadaman, dan komit serentak. Rekod ID snapshot, bilangan manifes, bilangan fail pemadaman, dan versi format jadual yang dibaca oleh setiap komponen. Tandakan keserasian yang tidak diketahui sebagai penghalang dan bukannya menganggap hakikat bahawa "ia boleh membaca" sebagai bukti.
Semantik pemadaman dan pengesahan ketepatan
Cipta set data keemasan (golden dataset) dengan kunci kesaksamaan berulang, berbilang versi baris, position deletes, delete vectors, dan kemas kini serentak. Bandingkan pembaca sebelum dan selepas peningkatan pada snapshot yang sama, pertanyaan rentas masa (time-travel), dan imbasan tokokan. Semak bilangan baris, set kunci utama, agregat, dan susunan skema; rekod baris yang ditapis dan pemadaman yang tidak sepadan.
Jangan sahkan jadual semasa sahaja: pemadaman yang tidak elok boleh timbul selepas pemadatan (compaction). Kekalkan manifes asal, fail pemadaman, dan log snapshot, serta buat semakan silang dengan SQL bebas atau pelaksanaan kecil yang tepat. Sekiranya berlaku kegagalan, pelihara snapshot dan jangan tamatkan tempohnya dengan serta-merta.
Komit serentak dan perlindungan snapshot
Jalankan ujian append, ganti ganti (overwrite), pemadaman peringkat baris, dan pemadatan semasa peningkatan. Suntik konflik komit, masa tamat Catalog, dan 503 storan objek sementara. Sahkan transaksi yang gagal tidak boleh membersihkan fail yang dirujuk oleh snapshot aktif dan bahawa komit yang berjaya mendedahkan satu snapshot yang konsisten. Tetapkan garisan henti khusus untuk pemadaman v2 yang serentak dengan peningkatan format.
Pembersihan mengira calon daripada pengekalan, pertanyaan aktif, rujukan cawangan atau tag, dan masa komit. Calon memasuki baris gilir tertangguh dan dipadamkan hanya selepas pengesahan kedua. Semasa pengunduran, larang pembersihan yang tidak boleh diubah supaya sejarah yang boleh dibaca kekal tersedia.
Pelaksanaan, pengunduran, dan tadbir urus
Keluarkan secara kelompok: perkhidmatan baca sahaja, penulis volum rendah, kemudian semua tugas. Setiap kelompok merekodkan ralat, kependaman komit snapshot, perbezaan hasil pertanyaan, pemadaman yang terlepas (delete misses), 404 storan objek, calon pembersihan, dan kos sumber. Pengunduran bertukar kepada klien yang serasi sambil mengekalkan snapshot yang dicipta oleh versi baharu untuk semakan; memadamkan metadata bukanlah pengunduran.
Kunci dan imbas kebergantungan transitif dalam artifak binaan. Jika 1.10.2 mengalih keluar atau menukar lekapan ujian atau artifak runtime, sahkan pembungkusan, classpath, dan lesen dalam matriks binaan sebelum pengeluaran. Rekod pengecualian manual berserta tarikh luput.
Latih tubi kegagalan dan pintu kawalan keluaran
Latih tubi perubahan susunan skema equality-delete, peningkatan format serentak, kegagalan memuatkan snapshot, pembersihan menerima 503, pembaca lama memuatkan snapshot baharu, kelambatan storan objek, dan komit pendua semasa pemulihan. Pintu kawalan merangkumi sifar perbezaan hasil yang tidak dapat dijelaskan, pemadaman yang terlepas dalam bajet, tiada fail snapshot aktif dibersihkan, sejarah yang boleh dibaca selepas pengunduran, dan imbasan kebergantungan yang lulus.
Jika hanya susunan yang berbeza, tentukan sama ada susunan tersebut sememangnya tidak ditentukan. Jika set kunci utama atau keterlihatan pemadaman berbeza, hentikan peluasan serta-merta. Selepas tetingkap pengekalan dan pemerhatian, pulihkan pembersihan secara beransur-ansur; tekanan ruang cakera tidak mewajarkan pengguguran pengekalan bukti.
Soalan susulan dan jawapan rujukan
Mengapakah membandingkan kiraan baris terkini sahaja tidak mencukupi?
Ia terlepas pandang time travel, bacaan tokokan, penggunaan fail pemadaman, dan pembersihan sejarah. Bandingkan berbilang snapshot, set kunci utama, agregat, dan pemadaman yang terlepas pada golden dataset.
Bagaimanakah anda membuktikan bahawa pengunduran adalah selamat?
Kekalkan snapshot sebelum dan selepas, hentikan pembersihan yang tidak boleh diubah, sahkan pembaca lama boleh membaca tetingkap pengekalan, dan lakukan latihan pemulihan selepas konflik komit dan kegagalan storan objek.
Bagaimanakah pembetulan keselamatan kebergantungan memasuki pengesahan data?
Kunci kebergantungan transitif dan imbas artifak, kemudian jalankan ujian matriks classpath, lesen, dan pembaca/penulis. Imbasan keselamatan yang bersih tidak membuktikan semantik pemadaman.