Erste Veröffentlichung von wZD 1.0.0, kompakter Speicherserver für kleine Dateien

Verfügbar erstes Mal wZD 1.0.0 - ein Server zum effizienten Speichern einer großen Anzahl von Dateien in kompakter Form, der von außen wie ein normaler WebDAV-Server aussieht. Zur Speicherung wird eine modifizierte Version verwendet BoltDB. Der Projektcode ist in Go und geschrieben vertrieben von unter der BSD-Lizenz.

Server ermöglicht Reduzieren Sie die Anzahl kleiner Dateien auf regulären oder geclusterten Dateisystemen erheblich durch vollständige Sperrunterstützung. Der von wZD-Entwicklern unterstützte Cluster speichert etwa 250 Millionen kleine Dateien, verteilt auf 15 Millionen Verzeichnisse im Cluster-Dateisystem ElchFS.

wZD ermöglicht es, den Inhalt von Verzeichnissen in Archive im BoltDB-Format zu verschieben (zu archivieren) und diese Dateien dann aus diesen Archiven zu verteilen (oder Dateien mithilfe der PUT-Methode in Archiven abzulegen), wodurch die Anzahl der Dateien im Dateisystem erheblich reduziert wird Reduzierung des Aufwands für die Speicherung von Metadaten. Um die Effizienz bei der Verarbeitung großer Dateien zu erhöhen, können diese Dateien getrennt von Bolt-Archiven gespeichert werden. Mit diesem Ansatz können Sie die Speicherung einer großen Anzahl kleiner Dateien organisieren, ohne durch die Begrenzung der Anzahl der Inodes im Dateisystem eingeschränkt zu sein.

Erste Veröffentlichung von wZD 1.0.0, kompakter Speicherserver für kleine Dateien

Der Server kann auch als NoSQL-Datenbank für Daten im Schlüssel/Wert-Format (mit Sharding basierend auf der Verzeichnisstruktur) oder zum Verteilen vorgenerierter HTML- oder JSON-Dokumente aus der Datenbank verwendet werden. In Bezug auf die Leistung führt das Senden und Schreiben von Daten mithilfe von Bolt-Archiven zu einer Erhöhung der Latenz um etwa 20–25 % beim Lesen und um 40–50 % beim Schreiben. Je kleiner die Dateigröße, desto geringer ist der Unterschied in der Latenz.

Erste Veröffentlichung von wZD 1.0.0, kompakter Speicherserver für kleine Dateien

Haupt- Fähigkeiten:

  • Multithreading;
  • Multiserver, der Fehlertoleranz und Lastausgleich bietet;
  • Maximale Transparenz für den Benutzer oder Entwickler;
  • Unterstützte HTTP-Methoden: GET, HEAD, PUT und DELETE;
  • Steuerung des Lese- und Schreibverhaltens über Client-Header;
  • Unterstützung für flexible virtuelle Hosts;
  • Unterstützung der CRC-Datenintegrität beim Schreiben/Lesen;
  • Halbdynamische Puffer für minimalen Speicherverbrauch und optimale Optimierung der Netzwerkleistung;
  • Verzögerte Datenverpackung;
  • Darüber hinaus wird ein Multithread-Archiver angeboten wZA um Dateien in Bolt-Archive zu verschieben, ohne den Dienst zu stoppen.

Einige Einschränkungen der aktuellen Version: Es gibt keine Unterstützung für Multipart, die POST-Methode, das HTTPS-Protokoll, Bindungen für Programmiersprachen, rekursives Löschen von Verzeichnissen, es gibt keine Unterstützung für das Mounten einer Struktur in das Dateisystem über WebDAV oder FUSE, Dateien werden unter einem Systembenutzer gespeichert. Das Speicherformat ist architekturspezifisch und nicht zwischen Little-Endian- und Big-Endian-Systemen übertragbar. Obwohl der wZD-Server das HTTP-Protokoll unterstützt, muss er nur unter dem Deckmantel von Reverse-Proxys wie Nginx und Haproxy gestartet werden.

Source: opennet.ru

Kommentar hinzufügen