primo rilascio — server per l'archiviazione efficace di un gran numero di file in modo compatto, che esternamente appare come un normale server WebDAV. Per l'archiviazione viene utilizzata una versione modificata di . Il codice del progetto è scritto in linguaggio Go e sotto licenza BSD.
Server significativamente ridurre il numero di file piccoli su normali o cluster di file system con supporto completo per il locking. Il cluster supportato dagli sviluppatori di wZD memorizza circa 250 milioni di piccoli file, distribuiti su 15 milioni di directory in un file system cluster. .
wZD consente di spostare (archiviare) il contenuto delle directory in archivi nel formato BoltDB e poi distribuire questi file da questi archivi (o posizionare file negli archivi tramite il metodo PUT), riducendo significativamente il numero di file nel file system e abbattendo le spese generali per l'archiviazione dei metadati. Per aumentare l'efficienza nel trattamento di file di grandi dimensioni, tali file possono essere memorizzati separatamente dagli archivi Bolt. Questo approccio consente di organizzare l'archiviazione di un numero enorme di file piccoli, senza incorrere nel limite sul numero di inode nel file system.
Il server può anche essere utilizzato come database NoSQL per dati in formato chiave/valore (con sharding basato sulla struttura delle directory) o per servire da database documenti html o json pre-generati. Per quanto riguarda le prestazioni, la lettura e la scrittura dei dati utilizzando archivi Bolt porta a un aumento della latenza di circa il 20-25% in lettura e del 40-50% in scrittura. Minore è la dimensione del file, minori sono le differenze nelle latenze.
Principali :
- Multithreading;
- Multi-server, offrendo tolleranza ai guasti e bilanciamento del carico;
- Massima trasparenza per l'utente o lo sviluppatore;
- Metodi HTTP supportati: GET, HEAD, PUT e DELETE;
- Gestione del comportamento durante la lettura e la 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 posticipato;
- Inoltre, viene fornito un archiviatore multithreading per spostare file in archivi Bolt senza interrompere il servizio.
Alcuni limiti della versione attuale: non è supportato Multipart, il metodo POST, il protocollo HTTPS, i binding per i linguaggi di programmazione, la cancellazione ricorsiva delle directory, non è supportato il montaggio della struttura nel file system tramite WebDAV o FUSE, i file sono memorizzati sotto un unico utente di sistema. Il formato di archiviazione è legato all'architettura e non è portatile tra i 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
