Abbiamo un modulo in un'applicazione che memorizza i dati in più file e directory multilivello e li accede da più thread (sia in lettura che in scrittura). La struttura della directory è basata su un valore hash diviso, come:
b1/94/6a/92/a.txt
b1/94/6a/ee/a.txt
a1/0e/db/bb/b.txt
...
Se un chiamante rimuove un file, il modulo elimina immediatamente le directory vuote.
Quanto dovrebbe essere il livello di concorrenza del modulo? Vale la pena creare e cancellare cartelle da più thread contemporaneamente? I filesystem possono gestirli efficacemente?
Vale la pena utilizzare un modulo multi-thread? (Sarebbe molto più facile scrivere uno thread singolo.)
(L'applicazione è scritta in Java e funziona principalmente su Windows, NTFS, non-SSD ma sono interessato anche ad altri sistemi operativi e file se ci sono differenze.)