Cache sederhana tidak akan berfungsi. Cache adalah tentang memeriksa apakah Anda sudah memiliki jawaban dan hanya memproses ulang jika tidak. Tetapi dalam kasus ini, satu entri yang hilang akan membuat orang lain tidak berguna. Jadi itu harus menjaga semua ukuran direktori diperbarui setiap saat.
Juga jangan meremehkan kemungkinan dampak dari proposal Anda. Kembali ketika penjurnalan filesystem baru, ada banyak oposisi karena memperbarui jurnal terlalu mahal. Juga sebagian besar filesystem memungkinkan opsi seperti noatime
, nodiratime
dan relatime
yang mengurangi memperbarui jenis medatata ini. Perhatikan bahwa semua ini (jurnal dan pemutakhiran waktu) terikat dalam waktu, semuanya mengambil jumlah tertentu dari akses blok (dan biasanya 'disembunyikan' dengan penjadwalan IO lanjutan), tetapi memperbarui ukuran setiap direktori di jalur berarti tidak diketahui jumlah akses.
Akhirnya, dalam sistem file POSIX, tidak ada 'direktori berisi' yang sebenarnya. Entri file pada direktori menunjuk ke inode (struktur disk yang menyimpan informasi file), tetapi tidak ada referensi dari inode kembali ke direktori. Ini memungkinkan fitur 'tautan keras', di mana lebih dari satu entri (biasanya dalam direktori berbeda) menunjuk ke inode yang sama. Bahkan jika Anda menyimpan daftar direktori yang mengarah ke inode, Anda mengalikan jumlah pembaruan (yang sudah besar). Lebih buruk lagi, sekarang Anda harus melacak jika Anda sudah memperbarui setiap direktori, karena di beberapa titik rantai Anda akan mendapatkan leluhur bersama, yang seharusnya tidak dihitung dua kali pembaruan. Atau haruskah itu? mungkin Anda harus menyimpan dua ukuran pada setiap direktori, satu yang menghitung semua file 'nyata',
Sepertinya tidak begitu berguna.