11.2. Realizacja BODASa

Implementacja używa programu do różnicowego przesyłania danych rsync (z pewnymi opisanymi dalej komplikacjami) i wykorzystywana jest do automatycznego przesyłania danych między obiektami. W rezultacie powoduje utworzenie lokalnej kopii wszystkich plików tworzących bazę SZARP. Oznacza to że w razie potrzeby baza może być po prostu skopiowana/przeniesiona w dowolny inny sposób.

Rsync używany jest przez ssh, zwykle z wymianą kluczy między przesyłającymi dane komputerami aby uniknąć wpisywania hasła. Domyślnie przesyłane są dane tylko z 2 ostatnich miesięcy. Jeżeli potrzeba zsynchronizować starsze pliki (bo np. ręcznie zmodyfikowano historyczne dane), to na obiekcie źródłowym dla danych modyfikowany jest plik /opt/szarp/<prefix>/szbase_stamp. W związku z tym aby sprawdzić czy trzeba przesyłać całość czy tylko 2 ostatnie miesiące, należy sprawdzić datę modyfikacji tego pliku. Może być to robione przez ssh, ale wymaga to wtedy zestawienia dwóch połączeń - najpierw do sprawdzenia daty pliku, później do przesłania danych. Dostępny jest więc mechanizm pozwalający na zmniejszenie obciążenia serwera - data modyfikacji pliku może być sprawdzona przez protokół HTTP, łączący się do serwera stampd działającego na porcie 81. Całość odpowiednich operacji wykonują skrypty /opt/szarp/bin/szbpush i /opt/szarp/bin/szrsync służące odpowiednio do wysyłania i odbierania danych. Szczegóły ich użycia można sprawdzić wywołując je z opcją -h.