Første udgivelse af wZD 1.0.0, kompakt lagerserver til små filer

Ledig første udgave wZD 1.0.0 - en server til effektivt at gemme et stort antal filer i en kompakt form, som udefra ligner en almindelig WebDAV-server. En modificeret version bruges til opbevaring BoltDB. Projektkoden er skrevet i Go og distribueret af under BSD-licensen.

Server Det gør det muligt Reducer antallet af små filer markant på almindelige eller klyngede filsystemer med fuld låseunderstøttelse. Klyngen, der understøttes af wZD-udviklere, gemmer omkring 250 millioner små filer fordelt på 15 millioner mapper i klyngefilsystemet MooseFS.

wZD gør det muligt at flytte (arkivere) indholdet af mapper til arkiver i BoltDB-formatet og derefter distribuere disse filer fra disse arkiver (eller placere filer i arkiver ved hjælp af PUT-metoden), hvilket væsentligt reducerer antallet af filer i filsystemet og reducere omkostningerne ved lagring af metadata. For at øge effektiviteten af ​​behandlingen af ​​store filer kan sådanne filer gemmes separat fra Bolt-arkiver. Denne tilgang giver dig mulighed for at organisere lagringen af ​​et stort antal små filer uden at være begrænset af grænsen for antallet af inoder i filsystemet.

Første udgivelse af wZD 1.0.0, kompakt lagerserver til små filer

Serveren kan også bruges som en NoSQL-database til data i nøgle/værdi-format (med sharding baseret på mappestrukturen) eller til distribution af prægenererede html- eller json-dokumenter fra databasen. Med hensyn til ydeevne resulterer afsendelse og skrivning af data ved hjælp af Bolt-arkiver i en stigning i latens på cirka 20-25% ved læsning og med 40-50% ved skrivning. Jo mindre filstørrelsen er, jo mindre er forskellen i latenstid.

Første udgivelse af wZD 1.0.0, kompakt lagerserver til små filer

The main muligheder:

  • Multithreading;
  • Multiserver, der giver fejltolerance og belastningsbalancering;
  • Maksimal gennemsigtighed for brugeren eller udvikleren;
  • Understøttede HTTP-metoder: GET, HEAD, PUT og DELETE;
  • Kontrol af læse- og skriveadfærd via klientoverskrifter;
  • Understøttelse af fleksible virtuelle værter;
  • Understøttelse af CRC-dataintegritet ved skrivning/læsning;
  • Semidynamiske buffere til minimalt hukommelsesforbrug og optimal netværksydelsesjustering;
  • Udskudt datapakning;
  • Derudover tilbydes en multi-threaded arkiver wZA at flytte filer til Bolt-arkiver uden at stoppe tjenesten.

Nogle begrænsninger af den nuværende udgivelse: der er ingen understøttelse af Multipart, POST-metoden, HTTPS-protokollen, bindinger til programmeringssprog, rekursiv sletning af mapper, der er ingen understøttelse for montering af en struktur til filsystemet via WebDAV eller FUSE, filer er gemt under én systembruger. Lagerformatet er arkitekturspecifikt og er ikke bærbart mellem Little Endian- og Big Endian-systemer. På trods af at wZD-serveren implementerer understøttelse af HTTP-protokollen, skal den kun lanceres under dække af omvendte proxyer, såsom nginx og haproxy.

Kilde: opennet.ru

Tilføj en kommentar