Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Typy STORAGE

Klauzula STORAGE w poleceniu SELECT oraz dyrektywa SUBSTRAT przyjmują jeden z następujących identyfikatorów. Każdy mapuje się na konkretną klasę akcesora danych w implementacji.

Tabela typów

Słowo kluczoweKlasa C++RetencjaShadowPrzeznaczenie
DEFAULTgroupFile<posixBinaryFileWithShadow>taktakDomyślny tryb produkcyjny; plik .shadow chroni modyfikacje
DIRECTgroupFile<posixBinaryFile>taknieRetencja bez ochrony shadow
MEMORYmemoryFiletak (RAM)nieDane wyłącznie w pamięci; bufor kołowy bez zapisu na dysk
POSIXposixBinaryFilenieniePojedynczy plik binarny; bez retencji
POSIXSHDposixBinaryFileWithShadownietakPojedynczy plik z ochroną shadow; bez retencji
GENERICgenericBinaryFilenienieGeneryczny plik binarny
DEVICEbinaryDeviceROnienieUrządzenie binarne; tylko odczyt; pętla zależna od ONESHOT
TEXTSOURCEtextSourceROnieniePlik tekstowy; tylko odczyt; pętla zależna od ONESHOT

Retencja — artefakty rotowane, starsze pliki usuwane automatycznie (wymaga RETENTION w SELECT).
Shadow — każda modyfikacja zapisywana jest do osobnego pliku .shadow; dane historyczne są chronione przed nadpisaniem.

W przypadku MEMORY retencja działa w pamięci jako bufor kołowy: kolejne dopisania nadpisują najstarszy slot (index % capacity). Dane nie są segmentowane do plików i nie trafiają na dysk.

NOTE: Typ MEMORY (SUBSTRAT ‘memory’) ma pokrycie w testach: issue61_tmpmem (sekwencyjny i równoległy) opisanych w załączniku pt. Testy Integracyjne.

Kiedy używać

Wybór zależy od wymagań środowiska:

  • Środowisko produkcyjne, dane krytyczneDEFAULT (retencja + shadow)
  • Środowisko produkcyjne, dane nieistotne historycznieMEMORY (zero dysku, retencja w RAM)
  • Rozwój i debugowanieDEFAULT lub DIRECT (dane widoczne na dysku)
  • Odczyt z urządzenia lub pliku tekstowegoDEVICE / TEXTSOURCE (odpowiednio)

Przykład

SELECT str1[0] STREAM str1 FROM core0 STORAGE MEMORY
SELECT str2[0] STREAM str2 FROM core0 RETENTION 100 STORAGE DIRECT

Dla substratów globalnie — dyrektywa SUBSTRAT:

SUBSTRAT 'memory'