Pierwsze wydanie wZD 1.0.0, kompaktowego serwera do przechowywania małych plików

Do dyspozycji pierwsza edycja wZD 1.0.0 - serwer do wydajnego przechowywania dużej liczby plików w kompaktowej formie, który z zewnątrz wygląda jak zwykły serwer WebDAV. Do przechowywania używana jest zmodyfikowana wersja BoltDB. Kod projektu jest napisany w Go i dystrybuowane przez na licencji BSD.

Server pozwala on Znacząco zmniejsz liczbę małych plików w zwykłych lub klastrowych systemach plików dzięki pełnej obsłudze blokowania. Klaster obsługiwany przez programistów wZD przechowuje około 250 milionów małych plików rozproszonych w 15 milionach katalogów w systemie plików klastra Łoś FS.

wZD umożliwia przeniesienie (archiwizację) zawartości katalogów do archiwów w formacie BoltDB, a następnie dystrybucję tych plików z tych archiwów (lub umieszczenie plików w archiwach metodą PUT), znacznie zmniejszając liczbę plików w systemie plików i zmniejszenie narzutu związanego z przechowywaniem metadanych. Aby zwiększyć efektywność przetwarzania dużych plików, można je zapisywać oddzielnie od archiwów Bolta. Takie podejście pozwala zorganizować przechowywanie ogromnej liczby małych plików bez ograniczeń związanych z liczbą i-węzłów w systemie plików.

Pierwsze wydanie wZD 1.0.0, kompaktowego serwera do przechowywania małych plików

Serwer może być również używany jako baza danych NoSQL dla danych w formacie klucz/wartość (z fragmentowaniem w oparciu o strukturę katalogów) lub do dystrybucji wstępnie wygenerowanych dokumentów HTML lub json z bazy danych. Jeśli chodzi o wydajność, wysyłanie i zapisywanie danych przy użyciu archiwów Bolt powoduje wzrost opóźnień o około 20–25% podczas odczytu i o 40–50% podczas zapisu. Im mniejszy rozmiar pliku, tym mniejsza różnica w opóźnieniu.

Pierwsze wydanie wZD 1.0.0, kompaktowego serwera do przechowywania małych plików

Głównym możliwości:

  • Wielowątkowość;
  • Multiserver zapewniający odporność na awarie i równoważenie obciążenia;
  • Maksymalna przejrzystość dla użytkownika lub programisty;
  • Obsługiwane metody HTTP: GET, HEAD, PUT i DELETE;
  • Kontrola zachowania podczas czytania i pisania za pomocą nagłówków klienta;
  • Wsparcie dla elastycznych hostów wirtualnych;
  • Obsługa integralności danych CRC podczas zapisu/odczytu;
  • Bufory półdynamiczne zapewniające minimalne zużycie pamięci i optymalne dostrajanie wydajności sieci;
  • Odroczone pakowanie danych;
  • Dodatkowo oferowany jest wielowątkowy archiwizator wZA aby przenieść pliki do archiwów Bolt bez zatrzymywania usługi.

Pewne ograniczenia aktualnej wersji: brak wsparcia dla Multipart, metody POST, protokołu HTTPS, powiązań dla języków programowania, rekurencyjnego usuwania katalogów, brak wsparcia dla montowania struktury do systemu plików poprzez WebDAV lub FUSE, pliki przechowywane są w ramach jednego użytkownika systemu. Format przechowywania jest zależny od architektury i nie można go przenosić pomiędzy systemami Little Endian i Big Endian. Pomimo tego, że serwer wZD implementuje obsługę protokołu HTTP, należy go uruchomić jedynie pod przykrywką odwrotnych proxy, takich jak nginx i haproxy.

Źródło: opennet.ru

Dodaj komentarz