HeadlinesBriefing HeadlinesBriefing.com

SBD: Sistem File yang Lebih Sederhana untuk Sprites

Hacker News •
×

Daniel Botha berpendapat bahwa saat membangun infrastruktur, tujuannya harus berupa solusi yang sederhana dan andal, seperti sebungkus spageti seharga $1, bukan solusi yang cerdas. Ketika pengerjaan Sprites dimulai, tim tidak menemukan sistem file siap pakai yang sesuai, sehingga mereka membuat sendiri. Desain itu cerdas, dan justru karena itulah mereka kemudian tidak menyukainya. Tulisan ini memperkenalkan penggantinya, Sprites Block Device (SBD).

Akar disk sebuah Sprite tetap berupa penyimpanan objek, bukan drive NVMe pada server tempat ia berjalan. Inilah yang memungkinkan Sprite tertidur, terbangun di server lain, dan tetap menemukan file-filenya. Karena penyimpanan objek tidak dapat mengubah sebagian dari sebuah objek, perlu ada komponen yang menerjemahkan pengeditan file di tempat menjadi penulisan seluruh objek. Saat peluncuran, peran itu dijalankan oleh JuiceFS yang telah dimodifikasi secara besar-besaran, didukung oleh penyimpanan metadata SQLite yang ditulis ulang dan dijaga keberlangsungannya dengan Litestream. Sistem ini menyimpan satu citra disk berukuran 100 GB berisi ext4, dan checkpoint berjalan cepat karena kebanyakan hanya memindahkan metadata.

Seiring meningkatnya penggunaan, retakan mulai muncul. Sistem ini bergantung pada dua basis data yang disimpan secara terpisah, satu untuk metadata chunk dan satu untuk checkpoint, dan masing-masing bisa benar sementara yang lain salah. Menjalankan JuiceFS dalam mode writeback berarti crash dapat meninggalkan metadata yang menunjuk ke chunk yang tidak pernah diunggah. Lapisan ext4 di atasnya kemudian gagal pada pemeriksaan checksum dan menjadi hanya-baca, sementara checkpoint, yang menggunakan chunk yang sama, tidak dapat memperbaiki kerusakan tersebut.

SBD menggantikan desain ini dengan pendekatan yang lebih konvensional, dengan tujuan perilaku sederhana yang sama tetapi dengan keandalan yang lebih baik.

Sumber: Hacker News · Diringkas oleh HeadlinesBriefing