I/O dan kompresi penyimpanan
Pahami pekerjaan yang dipisahkan dari main thread dan data yang tetap perlu disimpan dengan aman.
Async chunk I/O
feature-flags.async-chunk-io memakai pool khusus untuk I/O fisik region. Decode/kompresi persiapan dapat memakai executor CPU Paper dengan data terpisah. Konversi yang perlu state server, pembuatan chunk hidup, dan pemasangan ke world tetap pada main thread.
Urutan operasi per region dipertahankan. Pemanggilan Bukkit sinkron untuk chunk tetap menunggu hasil lengkap; plugin tidak menerima chunk setengah jadi. Snapshot yang tidak memenuhi jalur aman memakai fallback native. Menambah thread bukan pengganti storage yang sehat.
Ubah async-chunk-io.threads hanya setelah memeriksa disk dan profil. 0 memilih ukuran otomatis. Jika mengisolasi masalah, matikan flag pada staging lalu restart; bandingkan workload dan storage yang sama.
Kompresi region
region-file-compression.level mengatur writer zstd ketika flagnya aktif. Kompresi menukar kerja CPU dengan ukuran data yang dapat berbeda menurut world. Tidak ada rasio kompresi atau percepatan yang dijanjikan.
Zstd Nusa membutuhkan pembaca yang mendukung codec custom. Backup sebelum migrasi dan baca prosedur rollback. Mematikan writer tidak mengonversi chunk yang sudah tersimpan.
Async playerdata save
NBT player ditangkap dan di-encode pada main. Worker I/O melakukan gzip, sinkronisasi disk, backup, dan penggantian file atomik. Format disk tetap .dat gzip dengan .dat_old. Urutan per UUID dan penggabungan snapshot terbaru mencegah simpan lama menimpa yang baru.
Logout/autosave normal tidak menunggu penulisan disk. Pembacaan saat relogin dapat melihat snapshot terbaru yang masih pending. Flush eksplisit save-all dan shutdown menguras simpan yang diterima serta melaporkan kegagalan. Statistik dan advancement tetap mengikuti perilaku Paper.
Antrean di atas ambang warning tetap menyimpan snapshot terbaru. Disk gagal berkepanjangan dapat menambah pemakaian memori. Crash proses atau listrik sebelum penulisan selesai dapat kehilangan simpan terbaru; async save tidak menggantikan backup.
Pemeriksaan praktis
Uji masuk/keluar, simpan, restart bersih, dan periksa inventory/posisi. Jika warning antrean meningkat, periksa ruang disk, izin, latensi, dan error penyimpanan sebelum menambah worker atau menaikkan threshold. Semua opsi ada di referensi penyimpanan.