Podsumowanie

Podstawowym celem prac nad ACL było dostarczenie użytkownikowi łatwej w użyciu biblioteki komunikacyjnej, o bogatej semantyce operacji transferu danych. Cel ten udało się osiągnąć -- interfejs dostarczany przez bibliotekę jest prosty i przejrzysty w użyciu. Biblioteka ukrywa uciążliwe dla użytkownika funkcjonalne ograniczenia VIA, jakimi jest brak kontroli przepływu danych oraz brak fragmentacji przesyłanych danych.

Dzięki użyciu VIA ma poziomie warstwy transportu oraz dzięki prostocie przyjętych algorytmów kontroli przepływu danych i zarządzania pamięcią udało się zapewnić wysoką wydajność biblioteki. Wyniki eksperymentów porównujących wydajność biblioteki ACL i VIA pokazują, iż narzut w porównaniu z surowym VIA jest niewielki. Należy zaznaczyć, iż bibliotekę napisano w języku wysokiego poziomu jakim jest C++ zgodnie z zasadami programowania obiektowego. Wbrew konserwatywnym obawom niektórych członków zespołu pracującego nad systemem ISS implementacja ta okazała się być wydajniejsza niż prototyp zaimplementowany w C.

Początkowo wysiłki mające na celu optymalizację biblioteki skupiono na minimalizacji opóźnień transmisji, zaniedbując inne parametry takie jak obciążenia procesora systemowego. W wyniku doświadczeń przeprowadzonym w konkretnym zastosowaniu, jakim jest system ISS, okazało się, iż oszczędne wykorzystanie cykli procesora do obsługi operacji wejścia-wyjścia ma w praktyce większy wpływ na wydajność niż krótkie czasy opóźnień.

Ponadto algorytmy kontroli przepływu danych zaprojektowano w taki sposób, by dało się je zrealizować w trybie jądra systemu operacyjnego. Pozwoliło to stworzyć bibliotekę KACL stanowiącą funkcjonalny podzbiór funkcji komunikacyjnych ACL na potrzeby klienta ISS będącego systemowym programem obsługi urządzenia dyskowego.

Biblioteka ACL jest stosowana z powodzeniem w komercyjnym wydaniu systemu ISS, o nazwie Virtual Volume Vault (w skrócie V3, czytane jako V-cubed), rozwijanym przez firmę Emphora. Obecnie w firmie Microsoft trwają prace nad budową systemu bazy danych opartego na SQL Server 2000, wykorzystującym V3 jako pamięć masową. Celem prac jest ustanowienie rekordu świata w rankingu testu TPC-C6.1.

Niewątpliwie jednak jeszcze sporo zostało do zrobienia. Planowane rozszerzenia ACL dotyczą funkcjonalności pozwalającej na dynamiczną zmianę konfiguracji klastra. Planuje się także wprowadzenie połączeń redundantnych, co pozwoli na implementację mechanizmów uodporniających system na awarie. Wersja biblioteki opisana w tej pracy działa tylko pod kontrolą systemu operacyjnego Windows NT/2000. Przewiduje się rozpoczęcie prac nad przeniesieniem biblioteki na systemy Uniksowe.


Grzegorz Całkowski 2001-02-28