Kent Overstreet pada Sabtu malam memposting 21 patch untuk merombak kode akuntansi disk untuk sistem file Bcachefs. Perubahan ini merusak kompatibilitas dengan format akuntansi disk yang ada pada disk dan oleh karena itu memerlukan pemutakhiran saat berpindah ke versi baru, yang mungkin tersedia untuk Linux v6.9.
Overstreet telah berupaya untuk menulis ulang akuntansi disk Bcachefs ini selama beberapa waktu dan akhir pekan ini menerbitkan seri patch awal. Dia menjelaskan tentang penulisan ulang ini:
Skema akuntansi disk yang lama cepat, tetapi memiliki beberapa keterbatasan:
- kurangnya skalabilitas: ini didasarkan pada penghitung percpu yang juga dipecah oleh buffer jurnal yang luar biasa, dan kemudian sebelum penulisan jurnal, kami akan menggulung penghitung tersebut dan menambahkannya ke entri jurnal. Namun ini berarti semua penghitung ditambahkan ke setiap penulisan jurnal, yang berarti penghitung tersebut tidak akan pernah bisa mendukung penghitung per-snapshot.
- sangat sulit untuk memperpanjangnya, itulah sebabnya, hingga saat ini, kami tidak memiliki penghitungan kompresi yang tepat, dan untuk mendapatkan rasio kompresi diperlukan pemindaian btree penuh
Dalam skema baru:
- setiap rangkaian penghitung adalah bkey, kunci dalam btree (BTREE_ID_accounting). ini berarti mereka tidak disematkan di jurnal
- kuncinya memiliki struktur, dan dapat diperluas disk_accounting_key adalah gabungan yang diberi tag, dan hanya disatukan di atas bpos
- penghitung adalah delta, hingga dipindahkan ke btree yang mendasarinya, ini berarti pembaruan penghitung adalah pembaruan btree normal; buffer tulis btree membuat pembaruan penghitung menjadi efisien.
Karena membaca penghitung dari btree akan mahal - memerlukan buffer tulis untuk mendapatkan penghitung terbaru - kami juga memelihara kumpulan akuntansi paralel di memori, mirip dengan skema lama tetapi tanpa per-jurnal -pecahan penyangga. Penghitung dalam memori diindeks dalam pohon eytzinger dengan disk_accounting_key/bpos, dengan penghitungnya sendiri adalah percpu u64s. Hal ini merusak format pada disk untuk sistem file dan karenanya perlu membuat ulang akuntansi saat meningkatkan (atau menurunkan versi) melewati versi baru ini . Hal ini seharusnya terjadi secara transparan melalui kernel fsck tetapi ada beberapa batasan yang diketahui untuk pengguna Linux 6.7 saat ini. Harapannya adalah agar penulisan ulang akuntansi disk ini siap untuk Bcachefs di Linux v6.9.
Detail lebih lanjut tentang kode baru ini melalui seri patch.
Itulah berita seputar Bcachefs Menerbitkan Patch Untuk Penulisan Ulang Akuntansi Disk, semoga bermanfaat. Disadur dari Phoronix.com.