Załączniki
W obszarze załączników znalazły się dokumenty, które nie są związane bezpośrednio z konstrukcją systemu, ale stanowią opis motywacji decyzji projektowych, dokumentację narzędzi oraz materiał pomocniczy dla osób wdrażających lub rozwijających system.
-
Budowanie produkcyjne i warianty diagnostyczne
Opis kontraktu bezpieczeństwa produkcyjnego
releaseoraz izolowanych trybówrelease-ablationiprobe. Rozdział przedstawia kontrolę czystości źródeł, jawne wartości przełączników optymalizatora, rozdzielenie katalogów CMake i Conan, weryfikację konfiguracji gotowej binarki oraz niezmiennik zgodności wyniku między wariantami. -
Wersjonowany kontrakt JSON Lines oraz opcjonalne biblioteki Python i C++ do obserwacji strumieni jawnie nazwanej instancji. Rozdział opisuje mapowanie typów, cykl życia subskrypcji, timeouty, ograniczone bufory, obsługę błędów oraz osobne cele budowania, instalowania i testowania API.
-
Opis historycznych okoliczności, które doprowadziły do powstania RetractorDB. Punkt wyjścia stanowi doświadczenie autora przy budowie systemu nadzoru neonatologicznego na początku XXI wieku - zderzenie z ograniczeniami relacyjnych baz danych przy rejestracji sygnałów o wysokiej granulacji, próby oparte na ówczesnych systemach strumieniowych oraz ewolucja ku dedykowanemu silnikowi przetwarzania serii czasowych. Rozdział wyjaśnia również, skąd pochodzi nazwa „Retractor“ - nawiązanie do grupy narzędzi chirurgicznych rozdzielających i łączących struktury tkankowe, traktowane tu jako analogia do operacji na strumieniach danych.
-
Pliki zapytań RetractorDB (rozszerzenie
.rql) mają dedykowane definicje kolorowania składni dla trzech środowisk:- Visual Studio Code - rozszerzenie
rql-vscodeinstalowane z repozytorium GitHub, - Vim - pliki
syntax/rql.vimiftdetect/rql.vim, instalowane przezscripts/buildrdb.sh vimsyntaxlub ręcznie do~/.vim/, - bat / batcat - definicja w formacie Sublime Text 3, instalowana przez
scripts/buildrdb.sh batsyntax.
Każde ze środowisk rozpoznaje słowa kluczowe RQL (
SELECT,DECLARE,RULE,STREAM, …), typy danych, komentarze, literały łańcuchowe i wartości liczbowe. - Visual Studio Code - rozszerzenie
-
Kompletna dokumentacja flag wiersza poleceń dla wszystkich trzech narzędzi systemu:
Narzędzie Rola xretractorGłówny proces przetwarzania: kompiluje zapytania RQL i realizuje plan xqryKlient: odpytuje działający xretractorprzez wspólną pamięćxtrdbNarzędzie inspekcji: analizuje artefakty binarne i metadane Każde narzędzie opisano w osobnym podrozdziale wraz z przykładami wywołań i objaśnieniem znaczenia poszczególnych przełączników.
-
Katalog wszystkich testów integracyjnych systemu z opisem weryfikowanej funkcjonalności. Testy integracyjne uruchamiają rzeczywiste binaria (
xretractor,xqry,xtrdb) i porównują wyniki z wzorcami - w odróżnieniu od testów jednostkowych GTest, które testują izolowane klasy bibliotek.Scenariusze znajdują się we wspólnym drzewie
test/IntegrationTest. Testy uruchamiające serwer otrzymują jedną z szesnastu przestrzeniRDB_NAMESPACEi blokadę zasobu CTest dla swojego katalogu, dzięki czemu większość z nich może działać równolegle bez kolizji nazw strumieni, IPC ani plików roboczych. Scenariusze badające globalną tożsamość, współpracę wielu serwerów i sprzątanie pozostałości mogą wymagaćRUN_SERIAL.Uruchomienie:
ninja testlubctest -R <nazwa> -Vw katalogubuild/Debug/. -
Instalacja gotowego wydania na Linuksie przez
curllub apt, aktualizacja i usuwanie, budowanie ze źródeł oraz weryfikacja konfiguracji. Osobna sekcja opisuje Apple wyłącznie jako środowisko rozwojowe.