Rilasciato 5.0.0
CloudXFile
Un formato di archiviazione a blocchi, con snapshot e fsck.
Il problema
I formati di archivio assumono di avere a che fare con file. Serviva un contenitore che ragionasse per blocchi, reggesse scritture interrotte e sapesse dire da solo se è integro.
Vincoli
- Nessuna mutazione in place: si scrive una nuova generazione e si promuove.
- Crash safety: un processo ucciso a metà non deve lasciare il contenitore peggiore di prima.
- Verifica indipendente: un fsck che ricostruisce, non che si fida dell'indice.
- Prestazioni misurabili su volumi da decine di GB, non su fixture da due file.
Architettura
- Superblock con copia di riserva, indice incrementale, area riservata che ospita l'indice.
- Gerarchia pallet → box → entry; un'entry occupa un blocco intero.
- Journal per le operazioni composte, con copy-on-write per i blocchi toccati.
- Codec di compressione selezionabili, con misure di throughput per decidere i default.
Decisioni che contano
Da formato a storage
La 5.0.0 sposta il progetto da «formato che descrive file» a «storage che espone volumi». È un cambio di identità, non un refactor: le API e i test sono stati riscritti attorno a quel confine.
Scrittore singolo, per costruzione
La concorrenza era già serializzata per caso. È stata resa esplicita: un solo scrittore, regole dichiarate, invece di un lucchetto che funzionava per coincidenza.
fsync non è una barriera su macOS
Assunzione sbagliata trovata dai test di crash: su macOS fsync non offre la garanzia che offre su Linux. La barriera è stata resa esplicita dove serve.
Dove è arrivato
Versione 5.0.0 con nucleo a blocchi, fsck con riparazione, catene di snapshot e audit indipendente del codice.