eerste uitgave ā servers voor efficiĆ«nte opslag van een groot aantal bestanden in compacte vorm, dat aan de buitenkant uitziet als een gewone WebDAV-server. Voor opslag wordt een gemodificeerde versie gebruikt . De projectcode is geschreven in de programmeertaal Go en onder de BSD-licentie.
Server significantly reduce the number of small files on standard or clustered file systems with full lock support. The wZD cluster supported by developers stores about 250 million small files, distributed across 15 million directories in a clustered FS .
wZD biedt de mogelijkheid om de inhoud van directories te verplaatsen (archiveren) in archieven in BoltDB-formaat en vervolgens deze bestanden vanuit deze archieven te distribueren (of bestanden te plaatsen in archieven via de PUT-methode), waardoor het aantal bestanden in het FS aanzienlijk wordt verminderd en de overhead voor metadata-opslag wordt verlaagd. Voor een betere verwerking van grote bestanden kunnen dergelijke bestanden afzonderlijk van de Bolt-archieven worden opgeslagen. Deze aanpak maakt het mogelijk om een enorm aantal kleine bestanden op te slaan zonder vast te lopen op de limiet van inodes in het bestandssysteem.
De server kan ook worden gebruikt als NoSQL-database voor gegevens in sleutel/waarde-formaat (met sharding op basis van de directorystructuur) of voor het distribueren van vooraf gegenereerde html- of json-documenten van de DB. Wat betreft de prestaties, het lezen en schrijven van gegevens met Bolt-archieven resulteert in een stijging van de latentie van ongeveer 20-25% bij lezen en 40-50% bij schrijven. Hoe kleiner de bestandsgrootte, hoe minder de verschillen in latentie.
Belangrijkste :
- Multithreading;
- Multi-server functionaliteit, die redundantie en belastingbalancering waarborgt;
- Maximale transparantie voor de gebruiker of ontwikkelaar;
- Ondersteunde HTTP-methoden: GET, HEAD, PUT en DELETE;
- Beheer van gedrag bij lezen en schrijven via client-header;
- Ondersteuning voor flexibel configureerbare virtuele hosts;
- Ondersteuning voor CRC-gegevensintegriteit bij schrijven/lezen;
- Half-dynamische buffers voor minimaal geheugengebruik en optimale netwerkinstelling;
- Uitgestelde gegevensverpakking;
- Daarnaast wordt een multithreaded archiver aangeboden voor het verplaatsen van bestanden naar Bolt-archieven zonder de service te stoppen.
Sommige beperkingen van de huidige release: geen ondersteuning voor Multipart, POST-methode, HTTPS-protocol, bindings voor programmeertalen, recursief verwijderen van directories, geen ondersteuning voor het monteren van de structuur in het bestandssysteem via WebDAV of FUSE, bestanden worden opgeslagen onder ƩƩn systeemgebruiker. Het opslagformaat is gebonden aan de architectuur en is niet overdraagbaar tussen systemen met Little Endian en Big Endian. Hoewel de wZD-server ondersteuning biedt voor het HTTP-protocol, moet deze alleen worden uitgevoerd achter een reverse proxy, zoals nginx en haproxy.
Bron: opennet.ru
