Eerste release van wZD 1.0.0, compacte opslagserver voor kleine bestanden

Beschikbaar eerste editie wZD 1.0.0 - een server voor het efficiënt opslaan van een groot aantal bestanden in compacte vorm, die er van buitenaf uitziet als een gewone WebDAV-server. Voor opslag wordt een aangepaste versie gebruikt BoltDB. De projectcode is geschreven in Go en gedistribueerd door onder BSD-licentie.

Server laat Verminder het aantal kleine bestanden op reguliere of geclusterde bestandssystemen aanzienlijk met volledige vergrendelingsondersteuning. Het cluster dat wordt ondersteund door wZD-ontwikkelaars slaat ongeveer 250 miljoen kleine bestanden op, verdeeld over 15 miljoen mappen in het clusterbestandssysteem MooseFS.

wZD maakt het mogelijk om de inhoud van mappen te verplaatsen (archiveren) naar archieven in het BoltDB-formaat en deze bestanden vervolgens vanuit deze archieven te distribueren (of bestanden in archieven te plaatsen met behulp van de PUT-methode), waardoor het aantal bestanden in het bestandssysteem aanzienlijk wordt verminderd en het verminderen van de overhead van het opslaan van metagegevens. Om de efficiëntie van de verwerking van grote bestanden te vergroten, kunnen dergelijke bestanden afzonderlijk van de Bolt-archieven worden opgeslagen. Met deze aanpak kunt u de opslag van een groot aantal kleine bestanden organiseren zonder beperkt te worden door de limiet op het aantal inodes in het bestandssysteem.

Eerste release van wZD 1.0.0, compacte opslagserver voor kleine bestanden

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 uit de database. Wat de prestaties betreft, resulteert het verzenden en schrijven van gegevens met behulp van Bolt-archieven in een toename van de latentie van ongeveer 20-25% bij het lezen en met 40-50% bij het schrijven. Hoe kleiner de bestandsgrootte, hoe kleiner het verschil in latentie.

Eerste release van wZD 1.0.0, compacte opslagserver voor kleine bestanden

De belangrijkste mogelijkheden:

  • Multithreading;
  • Multiserver, met fouttolerantie en taakverdeling;
  • Maximale transparantie voor de gebruiker of ontwikkelaar;
  • Ondersteunde HTTP-methoden: GET, HEAD, PUT en DELETE;
  • Controle van lees- en schrijfgedrag via clientheaders;
  • Ondersteuning voor flexibele virtuele hosts;
  • Ondersteuning voor CRC-gegevensintegriteit bij schrijven/lezen;
  • Semi-dynamische buffers voor minimaal geheugengebruik en optimale afstemming van netwerkprestaties;
  • Uitgestelde dataverpakking;
  • Bovendien wordt een archiveringshulpmiddel met meerdere threads aangeboden wZA om bestanden naar Bolt-archieven te verplaatsen zonder de service te stoppen.

Enkele beperkingen van de huidige release: er is geen ondersteuning voor Multipart, de POST-methode, het HTTPS-protocol, bindingen voor programmeertalen, recursieve verwijdering van mappen, er is geen ondersteuning voor het koppelen van een structuur aan het bestandssysteem via WebDAV of FUSE, bestanden worden opgeslagen onder één systeemgebruiker. Het opslagformaat is architectuurspecifiek en kan niet worden overgedragen tussen Little Endian- en Big Endian-systemen. Ondanks het feit dat de wZD-server ondersteuning voor het HTTP-protocol implementeert, hoeft deze alleen te worden gelanceerd onder het mom van omgekeerde proxy's, zoals nginx en haproxy.

Bron: opennet.ru

Voeg een reactie