Page tree
Skip to end of metadata
Go to start of metadata

EDA server zaisťuje prevažnú funkcionalitu EDA knižnice a to na výpočtovej aj na databázovej úrovni. Spracováva požiadavky od klientov a naspäť posiela výsledné dáta.

EDA server je schopný obsluhovať viacerých klientov naraz a kvôli maximalizácii využitia hardvérových prostriedkov je paralelizovaný na výpočtovej úrovni aj na úrovni komunikácie s databázovým systémom.

Paralelizácia je dosiahnutá použitím viacerých špecializovaných vlákien: výpočtové (spracovateľské), ktoré sa prideľujú požiadavke od klienta a databázové, ktoré sa prideľujú pri potrebe na databázové pripojenie. Vlákna sú predpripravené v pooloch vlákien, ktorých veľkosť sa zadáva parametrami pri štarte EDA servera.

Konfigurácia


EDA server skupina – základný pojem pri konfigurácii aplikácie používajúcej EDA servery.
EDA server skupina je skupina jedného alebo viacerých EDA serverov, ktoré sú pripojené na tú istú databázu. Zároveň musí platiť, že k jednej databáze sú pripojené len EDA servery z jednej (rovnakej) EDA server skupiny. Výnimku môžu tvoriť len EDA servery, ktoré sú pripojené v read-only režime a zároveň nepoužívajú globálnu cache.

V rámci EDA server skupiny je vykonávaný load-balancing pripojených klientov a synchronizácia globálnej cache.

Nastavenie EDA server skupiny sa realizuje štartovacím parametrom EDA servera /EDAG a klient tento identifikátor používa pri požiadavke na pripojenie k EDA serveru.


EDA server podskupina – definovaná v rámci EDA server skupiny. Je identifikovaná celým číslom za názvom EDA server skupiny oddeleným čiarkou. Definovaním podskupiny EDA serverov je možné vytvoriť logické členenie EDA serverov podľa nejakej spoločnej vlastnosti. Napríklad je možné vybrať niekoľko EDA serverov, ktoré budú slúžiť len pre špecifických klientov alebo vytvoriť podskupinu EDA serverov, ktorá sa použije len za určitých okolností a podobne.
V prípade, že sa explicitne nedefinuje EDA server podskupina, je predpokladaná podskupina 0.

Okrem zaradenia EDA servera do skupiny je potrebné definovať aj parametre pripojenia k databáze – štartovacie parametre /EDATNS resp. /EDADSN/EDAUSR a /EDAPWD.

Pretože klienti sa môžu na EDA server pripájať z inej siete akou je realizované spojenie EDA server – databázový server alebo EDA server – D2000 server, má EDA server parametre aj na definovanie IP adresy (v prípade použitia Dual TCP/IP dve IP adresy) a portu, na ktorý sa budú pripájať klienti (parametre /EDAH a /EDAP).

Na precíznejšiu konfiguráciu load-balancingu je možné využiť nastavenie priority EDA servera (parameter /EDAPRI), ktorá je interpretovaná ako -10 * priorita virtuálnych pripojených klientov na EDA server.

Dôležitou súčasťou konfigurácie EDA servera je nastavenie veľkosti globálnej cache (/EDACSG) a klientskej cache (/EDACSC). Veľkosť globálnej cache (ak je povolená) musí byť minimálne taká, aby sa do nej vždy zmestil aspoň posledný výsledok čítania vektora. Veľkosť klientskej cache musí zase zohľadňovať predpokladaný počet naraz pripojených klientov a ich požiadavky na veľkosti jednotlivých klientskych cache. Bližšie informácie o konfigurácii cache na EDA serveri sú v kapitole EDA cache.

Parametre, ktorými sa dá maximalizovať výkon EDA servera pri záťaži je počet spracovateľských (/EDANWRK) a databázových vlákien (/EDANDB). Pretože spracovateľské vlákno je pridelené okamžite pri nejakej požiadavke od klienta a uvoľnené až po jej spracovaní, určuje počet týchto vlákien maximálny počet požiadaviek, ktoré dokáže EDA server vykonať paralelne. Ostatné požiadavky budú čakať vo fronte na uvoľnenie nejakého spracovateľského vlákna.

Databázové vlákna sú prideľované dynamicky v rámci spracovávania požiadavky podľa potreby. Ak v danom momente nie je k dispozícii voľné databázové vlákno, spracovanie požiadavky čaká na jeho uvoľnenie. Predvolene je počet spracovateľských a databázových vlákien rovný počtu logických procesorov v systéme.

Príklad nasadenia EDA servera


Nasledovný príklad predpokladá bežiaci D2000 server na adrese 172.16.0.10 (pre vzdialených klientov dostupný cez adresu 192.168.1.10) a tri procesy typu EDA server, všetky v skupine "eda". Zároveň sú definované dve podskupiny EDA serverov:

  1. podskupina bude obsluhovať len lokálnych klientov (procesy typu EVH používajúce edaclient.dll). Takýto klienti použijú na pripojenie k EDA serveru názov skupiny "eda,1".
  2. podskupina bude obsluhovať vzdialených klientov (klientske HI a Excelovské reporty). Takýto klienti zase použijú na pripojenie k EDA serveru názov skupiny "eda,2".

Predpokladaná je latentná sieť medzi klientskymi stanicami a D2000 serverom (sieť 192.168.1.x) a nízko latentná sieť medzi servermi, na ktorých beží systém D2000 a databázový server (sieť 172.16.x.x).

Proces EDS1.EDS beží na rovnakom stroji ako D2000 server a je dostupný len pre lokálnych klientov. Má predalokovaných 2GiB cache pre klientov (pripájať sa k nemu bude 8 klientov, pričom každý požaduje 256MiB cache) a globálnu cache má vypnutú.

edaserver.exe /S172.16.0.10 /WEDS1 /EDAGeda,1 /EDAH172.16.0.10 /EDAP3333 /EDATNSdbeda /EDAUSReda_usr /EDAPWDeda_pwd /EDACSG0 /EDACSC2048 /EDANWRK8 /EDANDB12

Procesy EDS2.EDS a EDS3.EDS bežia na samostatných strojoch (s rovnakým výkonom) a slúžia len na obsluhu vzdialených klientov. Predpokladaný maximálny počet vzdialených klientov je 32 (každý využije maximálne 256MiB cache) a preto majú EDA servery predalokovaných po 4GiB klientskej cache. Veľkosť globálnej cache majú nastavenú na 2GiB. Počet spracovateľských a databázových vlákien bol určený podľa predpokladaného počtu pripojených klientov s rezervou pre možnosť paralelných dotazov na databázový server.

Nastavenie procesu EDS2.EDS:
edaserver.exe /S172.16.0.10 /WEDS2 /EDAGeda,2 /EDAH192.168.1.11 /EDAP3333 /EDATNSdbeda /EDAUSReda_usr /EDAPWDeda_pwd /EDACSG2048 /EDACSC4096 /EDANWRK16 /EDANDB24

Nastavenie procesu EDS3.EDS:
edaserver.exe /S172.16.0.10 /WEDS3 /EDAGeda,2 /EDAH192.168.1.12 /EDAP3333 /EDATNSdbeda /EDAUSReda_usr /EDAPWDeda_pwd /EDACSG2048 /EDACSC4096 /EDANWRK16 /EDANDB24

Sledovanie stavu


Na sledovanie stavu EDA servera v systéme D2000 je možné použiť okrem štandardných informácii o procese cez systémovú štruktúrovanú premennú SV._System_Proces aj systémovú štruktúrovanú premennú SV._System_EDAServerPerformance2.

Z nej je možné zistiť konfiguračné nastavenia EDA servera ako zaradenie do EDA server skupiny, počet spracovateľských a databázových vlákien. Ďalej sú v štruktúre obsiahnuté informácie o predalokovanej veľkosti klientskej a globálnej cache ako aj ich aktuálneho využitia, celkové počty prijatých a odoslaných správ s klientmi a celkový počet databázových požiadaviek. Minútové štatistiky obsahujú počet ukončených transakcií medzi EDA servermi kvôli synchronizácii globálnej cache a priemerné a maximálne trvanie takejto transakcie. Viac informácii o stave EDA servera je možné získať TELL príkazmi.

Write a comment…