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.