pierwsza wersja — serwery do efektywnego przechowywania dużej liczby plików w skompaktowanej formie, który na zewnątrz wygląda jak zwykły serwer WebDAV. Do przechowywania używana jest zmodyfikowana wersja . Kod projektu napisany jest w języku Go i na licencji BSD.
Serwer znacznie ogranicza liczbę małych plików na zwykłych lub klastrowych systemach plików z pełnym wsparciem dla blokad. Wspierany przez programistów klaster wZD przechowuje około 250 milionów małych plików, rozproszonych w 15 milionach katalogów w klastrowym FS .
wZD daje możliwość przenoszenia (archiwizowania) zawartości katalogów do archiwów w formacie BoltDB, a następnie udostępniania tych plików z tych archiwów (lub umieszczania plików w archiwach metodą PUT), co znacznie redukuje liczbę plików w FS i zmniejsza nakłady na przechowywanie metadanych. Aby zwiększyć efektywność przetwarzania dużych plików, takie pliki mogą być przechowywane oddzielnie od archiwów Bolt. Tego rodzaju podejście pozwala na zorganizowanie przechowywania ogromnej liczby małych plików, nie napotykając ograniczenia liczby inode w systemie plików.
Serwer może być również używany jako baza danych NoSQL dla danych w formacie klucz/wartość (z shardingiem opartym na strukturze katalogów) lub do udostępniania z bazy danych wcześniej wygenerowanych dokumentów html lub json. Jeśli chodzi o wydajność, odczyt i zapis danych z użyciem archiwów Bolt powoduje wzrost opóźnienia o około 20-25% przy odczycie i o 40-50% przy zapisie. Im mniejszy rozmiar pliku, tym mniejsze różnice w opóźnieniach.
Podstawowe :
- Wielowątkowość;
- Wieloserwerowość, zapewniająca odporność na awarie i zrównoważenie obciążenia;
- Maksymalna przejrzystość dla użytkownika lub programisty;
- Obsługiwane metody HTTP: GET, HEAD, PUT i DELETE;
- Zarządzanie zachowaniem przy odczycie i zapisie przez nagłówki klienta;
- Wsparcie dla elastycznie konfigurowalnych hostów wirtualnych;
- Wsparcie dla integralności danych CRC przy zapisie/odczycie;
- Półdynamiczne bufory dla minimalnego zużycia pamięci i optymalnej konfiguracji wydajności sieci;
- Opóźnione pakowanie danych;
- Dodatkowo oferowany jest wielowątkowy archiwizator do przenoszenia plików do archiwów Bolt bez przerywania działania usługi.
Niektóre ograniczenia bieżącej wersji: brak wsparcia dla Multipart, metody POST, protokołu HTTPS, bindingów dla języków programowania, rekurencyjnego usuwania katalogów, brak wsparcia dla montowania struktury w systemie plików przez WebDAV lub FUSE, pliki przechowywane są pod jednym użytkownikiem systemowym. Format przechowywania jest związany z architekturą i nie jest przenośny między systemami Little Endian i Big Endian. Mimo że serwer wZD implementuje wsparcie dla protokołu HTTP, należy go uruchamiać tylko pod osłoną proxy odwrotnego, takiego jak nginx i haproxy.
Źródło: opennet.ru
