Viene presentata un'implementazione asincrona di DISCARD per Btrfs

Per il file system btrfs представлена implementazione asincrona dell'operazione DISCARD (segnalazione dei blocchi rilasciati che non necessitano più di essere archiviati fisicamente), implementata dagli ingegneri di Facebook.

L'essenza del problema: nell'implementazione originale, DISCARD viene eseguito in modo sincrono con altre operazioni, il che in alcuni casi porta a problemi di prestazioni, poiché le unità devono attendere il completamento dei comandi corrispondenti, il che richiede tempo aggiuntivo. Questo può rappresentare un problema se l'implementazione DISCARD dell'unità è lenta.

Con un'implementazione asincrona, non è necessario attendere che l'unità completi DISCARD durante il normale funzionamento di FS, il che elimina il problema trasferendo questa operazione in background. L'implementazione presentata esegue anche alcune ottimizzazioni. Ad esempio, attende un po' di tempo per paura che il blocco possa presto essere utilizzato in modo tale che non abbia alcun senso eseguire la procedura DISCARD, e tenta anche di unire le regioni prima di eseguire effettivamente la procedura DISCARD per ridurre il numero totale di operazioni.

Fonte: opennet.ru

Aggiungi un commento