il primo rilascio — server per la memorizzazione efficiente di un gran numero di file in un formato compatto, che esternamente appare come un normale server WebDAV. Per la memorizzazione viene utilizzata una versione modificata di . Il codice del progetto è scritto in linguaggio Go e con licenza BSD.
Server consente di ridurre significativamente il numero di piccoli file su normali o cluster file system con supporto completo per i lock. Il cluster supportato da wZD memorizza circa 250 milioni di piccoli file distribuiti su 15 milioni di directory in un filesystem cluster. .
wZD offre la possibilità di spostare (archiviare) il contenuto delle directory in archivi nel formato BoltDB e poi distribuire questi file da questi archivi (o inserire file negli archivi tramite il metodo PUT), riducendo notevolmente il numero di file nel filesystem e abbattendo i costi di memorizzazione dei metadata. Per migliorare l'efficienza nel trattamento di grandi file, tali file possono essere memorizzati separatamente dagli archivi Bolt. Questo approccio consente di gestire un numero enorme di piccoli file senza incontrare il limite di inode nel file system.
Il server può essere utilizzato anche come database NoSQL per dati in formato chiave/valore (con sharding basato sulla struttura delle directory) o per distribuire da un database documenti html o json pre-generati. Per quanto riguarda le prestazioni, il recupero e la scrittura di dati utilizzando archivi Bolt comportano un aumento della latenza di circa il 20-25% nella lettura e del 40-50% nella scrittura. Più piccolo è il file, minori sono le differenze nella latenza.
Principali :
- Multithreading;
- Multi-server per garantire ridondanza e bilanciamento del carico;
- Massima trasparenza per l'utente o lo sviluppatore;
- Metodi HTTP supportati: GET, HEAD, PUT e DELETE;
- Gestione del comportamento di lettura e scrittura tramite intestazioni client;
- Supporto per host virtuali configurabili in modo flessibile;
- Supporto per l'integrità dei dati CRC durante la scrittura/lettura;
- Buffer semi-dinamici per un consumo minimo di memoria e un'ottimizzazione delle prestazioni di rete;
- Imballaggio dei dati ritardato;
- In aggiunta, è offerta un'archiviazione multithread; per spostare file negli archivi Bolt senza interrompere il servizio.
Alcune limitazioni della versione attuale: nessun supporto per Multipart, metodo POST, protocollo HTTPS, binding per linguaggi di programmazione, eliminazione ricorsiva delle directory, assenza di supporto per il montaggio della struttura nel filesystem tramite WebDAV o FUSE, i file sono memorizzati sotto un unico utente di sistema. Il formato di memorizzazione è legato all'architettura e non è trasferibile tra sistemi Little Endian e Big Endian. Anche se il server wZD implementa il supporto per il protocollo HTTP, deve essere eseguito solo dietro un reverse proxy come nginx e haproxy.
Fonte: opennet.ru
