Wiki
Archiviazione & GC
La vista Storage della scheda Files: dashboard di archiviazione per repository (dimensione, deduplicazione, crescita) e garbage collection, pulizia di vecchie revisioni, chunks orfani, phantom files.
Introduzione
La vista Storage mostra l'occupazione del disco di un repository (un progetto versionato sul server) e fornisce uno strumento di garbage collection (GC) per recuperare spazio eliminando le vecchie revisioni e i dati diventati inutili.
Accesso e ruoli
La scheda Files e la sua vista Storage sono accessibili al super admin e a un project_admin sui repository che amministra, inclusa l'esecuzione del GC. Le statistiche globali del server e la licenza sono invece riservate al super admin (altrove nel pannello).
Le metriche
La vista Storage si apre con tre schede, Total Size, Files / Revisions e Dedup Ratio. Seguono l'istogramma Growth (Last 30 Days) e poi la tabella Largest Files. Il pulsante di aggiornamento, in alto a sinistra, ricalcola l'insieme.
Cosa significa ciascun numero:
- Total Size: la dimensione totale dei file, subito sotto la dimensione compressa realmente occupata sul disco.
- Files / Revisions: il numero di file e, sotto, il numero di revisioni e di chunks.
- Dedup Ratio (%): la quota di spazio risparmiata grazie alla condivisione dei chunks e alla compressione.
- Growth (Last 30 Days): la dimensione cumulata giorno per giorno. Passa il mouse su una barra per leggerne la data, la dimensione e il numero di revisioni.
- Largest Files: i 20 file più grandi, con la loro dimensione e il loro numero di revisioni.
Questi numeri aiutano a individuare un repository che si gonfia: un file binario voluminoso ricommittato spesso, o una crescita anomala negli ultimi 30 giorni.
Garbage collection
Il blocco Garbage Collection si trova in fondo alla vista Storage. Pulisce la vecchia cronologia secondo due parametri:
| Parametro | Predefinito | Ruolo |
|---|---|---|
| Retention (days) | 90 | Età al di sotto della quale una revisione viene sempre conservata. |
| Min revisions to keep | 5 | Numero di revisioni recenti conservate per file, indipendentemente dalla loro età. |
1. Impostare i due parametri
Inserisci Retention (days) e Min revisions to keep nei due campi, a sinistra dei pulsanti. Arrivano con i valori predefiniti della tabella qui sopra, 90 e 5. Promemoria: una revisione viene eliminata solo se entrambe le condizioni sono soddisfatte.
2. Lanciare un'anteprima con Preview
Preview simula la pulizia senza eliminare nulla. Sotto i pulsanti compare un banner giallo: «Preview: X revisions would be deleted across Y files, Z phantom file entries would be removed». È il momento di verificare l'ordine di grandezza; se il numero ti sorprende, alza la retention invece di eseguire.
3. Eseguire con Run GC
Il pulsante rosso Run GC esegue la pulizia. Il banner verde di fine annuncia «GC complete: X revisions deleted, Y orphan chunks cleaned, Z phantom file entries removed», le metriche in alto si ricaricano e l'esecuzione viene registrata nell'audit.
Cosa elimina il GC
- Vecchie revisioni: quelle più vecchie di Retention (days) E oltre le Min revisions to keep più recenti per file. Poi i loro chunks, se non sono più referenziati da nessun'altra revisione.
- Chunks orfani: i blocchi di dati che nessuna revisione usa più dopo la pulizia.
- Phantom files: righe di file mai realmente committate (percorso non valido o una voce rimasta in sospeso), oltre una finestra fissa di 7 giorni (non configurabile).
I marcatori di eliminazione (tombstones) dei file cancellati o obliterati vengono risparmiati: servono a propagare l'eliminazione ai client durante la sync, e quindi non devono sparire.
Trappole comuni
Il Preview annuncia poche cose
Normale se il repository è recente o se la cronologia rientra nella retention. Il GC tocca solo le revisioni che sono al tempo stesso abbastanza vecchie e oltre le ultime N per file.
Preview e Run non mostrano gli stessi contatori
Il Preview non può prevedere il numero esatto di chunks e di collegamenti revisione-chunk eliminati: riporta solo le revisioni, i file scansionati e le voci fantasma. I chunks orfani compaiono solo al Run.
Abbassare la retention per recuperare spazio
Possibile, ma perdi cronologia. Su un progetto in cui bisogna poter tornare molto indietro, mantieni una retention generosa e agisci piuttosto sui file grandi (vedi la lista dei file più grandi e il .uversionignore per evitare di tracciare artefatti rigenerabili).