Občerstvování v číselnících, cachování (kešování) číselníků
Jak bylo objasněno v kapitole popisující technologii zpracování dat, systém ABRA Gen jakožto databázová klient/server aplikace má data spravována samostatným databázovým serverem. Při práci s daty je nutné komunikovat s databázovým serverem prostřednictvím tzv. SQL dotazů. Požadovaná data se přesouvají z databáze do paměti klientského počítače a naopak.
Jelikož číselníky jsou uživatelem používány pro zadávání, vybírání hodnot atd. a to opakovaně a často (přičemž některé z nich mohou být i velmi rozsáhlé - např. Adresář firem, Skladové karty apod.) nebylo by žádoucí, aby se při každém vyvolání číselníku prováděl odpovídající dotaz do databáze a do klientské aplikace, tj. k uživateli, se pokaždé přenášely celé číselníky znovu. Takový postup by neúnosně zpomalil práci se systémem. Proto jsou téměř všechny číselníky nějakým způsobem drženy v paměti, tzv. cachovány (čteme kešovány).
Principy fungování cache vycházejí z obecné technologie číselníků.
Do verze 19.4 byla poprvé implementována nová technologie práce s číselníky, která významným způsobem zmírnila hlavní nevýhody předchozího řešení:
- načítání celých číselníků nebo předem definovaných skupin záznamů do paměti, které může být při velkých objemech dat časově náročné
- nutnost jejich průběžného občerstvování
- častější výskyt kolizí
V aktuální verzi ABRA Gen využívají tuto novou technologii všechny číselníky (standardní i definovatelné).
Číselníky využívající novou technologii se nikdy nenačítají do paměti celé, vždy se načítá pouze požadovaná množina záznamů, tzv. stránka.
Záznamy z číselníků se primárně načítají z tzv. objektové cache. Pokud jsou v cache požadovaná data k danému číselníku k dispozici a jsou stále platná, použijí se. V opačném případě se načtou aktuální data z databáze a obsah cache se občerství. Data načítaná do cache mají časovou platnost 60 sekund.
Při použití číselníků využívajících novou technologii může stále docházet ke kolizím popsaným v sekci Principy platné pro číselníky využívající původní technologii. Nicméně díky omezené časové platnosti dat v cache k nim dochází méně často - podobně jako kdyby všichni uživatelé při práci s původními číselníky používali funkci Občerstvit každých 60 sekund.
Totéž platí o aktuálnosti záznamů získávaných z číselníků převedených na novou technologii - data, se kterými aplikace pracuje, nemusí být zcela aktuální, ale nikdy nebudou starší než 60 sekund.