| Termin | Definicja |
|---|---|
| Non-durable memory table | Tabela nietrwała w pamięci przechowuje dane wyłącznie do restartu instancji — jej zawartość nie jest zapisywana na dysk. Na czym polega nietrwałość tabeli w pamięciNon-durable memory table to tabela nietrwała, której rekordy są przechowywane wyłącznie w pamięci operacyjnej instancji systemu bazodanowego. Dane znajdują się w strukturach dostępnych dla działającego procesu bazy, ale nie są zapisywane na dysku w sposób pozwalający odtworzyć ich zawartość po ponownym uruchomieniu instancji. Nietrwałość odnosi się przede wszystkim do wierszy i ich wartości, a nie do samego pojęcia tabeli jako elementu schematu. W praktyce zawartość takiej tabeli należy traktować jako stan tymczasowy. Restart instancji, zatrzymanie usługi, awaria procesu albo utrata zasilania może spowodować usunięcie wszystkich przechowywanych rekordów. Ponowne uruchomienie systemu bazodanowego może przywrócić strukturę tabeli, jeśli dany silnik zachowuje definicję schematu, lecz tabela będzie pusta albo zostanie zapełniona dopiero przez aplikację wykonującą odpowiednią inicjalizację. Różnica między danymi a definicją tabeliNajważniejsze rozróżnienie dotyczy dwóch warstw: metadanych opisujących tabelę oraz danych zapisanych w jej wierszach. Metadane mogą obejmować nazwę tabeli, kolumny, typy danych, indeksy i ograniczenia. Dane użytkowe to konkretne rekordy znajdujące się w tabeli. W rozwiązaniach określanych jako non-durable pamięć może być używana do przechowywania rekordów bez trwałego zapisu ich zawartości, podczas gdy opis struktury pozostaje elementem konfiguracji bazy. Nie oznacza to jednak, że każda technologia używająca pamięci operacyjnej działa w identyczny sposób. Szczegóły zależą od konkretnego silnika bazodanowego, rodzaju tabeli, ustawienia trwałości oraz mechanizmu uruchamiania instancji. Przed zastosowaniem takiej tabeli trzeba sprawdzić dokumentację używanego produktu: sposób tworzenia obiektu, zakres obsługiwanych typów danych, dostępne indeksy, zachowanie transakcji oraz to, czy schemat rzeczywiście przetrwa restart. Zastosowania i konsekwencje dla przepływu danychTabela nietrwała może być użyteczna przy danych odtwarzalnych, krótkotrwałych albo pomocniczych. Przykładem są wyniki pośrednie obliczeń, tymczasowe kolejki robocze, bufory danych pobranych z innego źródła lub informacje potrzebne tylko podczas bieżącej sesji działania aplikacji. Jeżeli rekordy można ponownie wygenerować bez utraty istotnej informacji, brak zapisu na dysk może uprościć obsługę tymczasowego stanu. Projekt przepływu danych musi jasno rozdzielać dane źródłowe od danych pomocniczych. Rekord zapisany wyłącznie w non-durable memory table nie powinien być jedynym miejscem przechowywania zamówienia, konfiguracji, historii operacji ani innej informacji wymagającej odtworzenia po restarcie. Aplikacja powinna mieć określony sposób ponownego zapełnienia tabeli, obsługi pustego stanu po uruchomieniu oraz reakcji na utratę danych. Samo użycie pamięci operacyjnej nie tworzy kopii zapasowej i nie zapewnia trwałości transakcyjnej porównywalnej z tabelą przechowującą dane na nośniku. Weryfikacja zachowania podczas restartuSprawdzenie non-durable memory table powinno obejmować kontrolowany test cyklu życia instancji. Najpierw należy utworzyć tabelę zgodnie z dokumentacją konkretnego silnika, dodać rozpoznawalny rekord i potwierdzić jego obecność zapytaniem. Następnie trzeba wykonać poprawny restart instancji oraz ponownie sprawdzić strukturę i zawartość tabeli. Wynik testu powinien odpowiedzieć na dwa osobne pytania: czy tabela nadal istnieje oraz czy rekord został zachowany. Podczas diagnostyki warto również przeanalizować komunikaty startowe silnika, definicję tabeli, konfigurację pamięci i kod aplikacji, który korzysta z tego obiektu. Błąd może wynikać nie z samej tabeli, lecz z założenia, że dane tymczasowe są trwałe. Przy problemach z laptopem lub komputerem używanym do lokalnego uruchamiania bazy należy sprawdzić stan usługi, dostępność pamięci operacyjnej, logi oraz poprawność konfiguracji środowiska. W przypadku zastosowań serwisowych istotne jest odtworzenie rzeczywistego przebiegu: uruchomienia instancji, zapisania danych, restartu i ponownego odczytu. |