Ocenite etot tekst:


---------------------------------------------------------------
 Email: visor@olma.co.ru
---------------------------------------------------------------
1. Teoreticheskie osnovy. *
1.1 Ponyatie SUBD servera. *
1.1.1 Osnovnye funkcii SUBD *
1.1.2 Tipovaya organizaciya sovremennoj SUBD *
1.2 Ponyatie arhitektury klient-server. *
2. Teoreticheskie osnovy SUBD servera Informix OnLine v.7.X *
2.1 SUBD server Informix. *
2.2 Arhitektura SUBD servera Informix OnLine v.7.X *
2.2.1 . Dinamicheskaya masshtabiruemaya arhitektura *
2.2.1.1 Potoki *
2.2.1.2 Virtual'nye processory *
2.2.1.3 Planirovanie potokov *
2.2.1.4 Razdelenie potokov mezhdu virtual'nymi processorami. *
2.2.1.5 |konomiya pamyati i drugih resursov *
2.2.2 Organizaciya razdelyaemoj pamyati *
2.2.3 Organizaciya operacij obmena s diskami *
2.2.3.1 Upravlenie diskovoj pamyat'yu *
2.2.3.2 Asinhronnyj vvod-vyvod *
2.2.3.3 Operezhayushchee chtenie *
2.2.4 Podderzhka fragmentacii tablic i indeksov *
2.2.5 Parallel'naya obrabotka zaprosov *
2.2.5.1 Na chem osnovana tehnologiya PDQ *
2.2.5.2 Iteratory *
2.2.5.3 Primery primeneniya parallelizma *
2.2.5.4 Balans mezhdu OLTP i DSS-prilozheniyami *
2.2.6 Optimizator vypolneniya zaprosov po stoimosti *
2.2.7 Sredstva obespecheniya nadezhnosti *
2.2.7.1 . Zerkalirovanie diskovyh oblastej *
2.2.7.2 Tirazhirovanie *
2.2.7.3 Bystroe vosstanovlenie pri vklyuchenii sistemy *
2.2.7.4 Arhivirovanie i vosstanovlenie dannyh *
2.2.8 Dinamicheskoe administrirovanie *
2.2.8.1 Interfejs monitoringa sistemy *
2.2.8.2 Utilita DB/Cockpit *
2.2.8.3 Utilita OnPerf *
2.2.8.4 Utilita parallel'noj zagruzki *
2.2.9 Raspredelennye vychisleniya *
2.2.9.1 Vzaimodejstvie klient-server *
2.2.9.2 Prozrachnost' raspolozheniya dannyh *
2.2.9.3 Raspredelennye bazy dannyh i protokol dvuhfazovoj fiksacii tranzakcij *
2.2.10 Podderzhka nacional'nyh yazykov *
2.2.11 Sredstva bezopasnosti klassa S2 *
2.3 Dopolnitel'nye komponenty kompanii Informix dlya vypolneniya specificheskih zadach. *
2.3.1 Informix-Enterprise Gateway 7.1 *
2.3.2 Tehnologiya i komponenty EDA/SQL *
2.3.2.1 EDA API/SQL *
2.3.2.2 EDA/Link *
2.3.2.3 EDA/SQL Server *
2.3.2.4 EDA/Data Drivers *
2.3.3 Vozmozhnosti Enterprise Gateway *
2.3.3.1 Prozrachnyj dostup dlya chteniya i zapisi *
2.3.3.2 Raspredelennye soedineniya *
2.3.3.3 Konfigurirovanie Enterprise Gateway *
2.3.3.4 Bezopasnost' *
2.3.4 Biblioteki sopryazheniya servera Informix-OnLine DS s menedzherami tranzakcij: Informix-TP/XA i Informix-TP/TOOLKIT *
2.4 Zaklyuchenie *
2.5 Literatura *
1. Teoreticheskie osnovy.
1.1 Ponyatie SUBD servera.
Tradicionnyh vozmozhnostej fajlovyh sistem okazyvaetsya nedostatochno dlya postroeniya dazhe prostyh informacionnyh sistem. Pri postroenii informacionnoj sistemy trebuetsya obespechit': podderzhanie logicheski soglasovannogo nabora dannyh; obespechenie yazyka manipulirovaniya dannymi; vosstanovlenie informacii posle raznogo roda sboev; real'no parallel'naya rabota neskol'kih pol'zovatelej. Dlya vypolneniya vseh etih zadach' vydelyaetsya gruppa programm, ob'edenennyh v edinyj programmnyj kompleks. |tot kompleks nosit nazvanie sistema upravleniya bazami dannyh (SUBD). Sformuliruem eti (i drugie) vazhnye funkcii otdel'no.
1.1.1 Osnovnye funkcii SUBD
K chislu funkcij SUBD prinyato otnosit' sleduyushchee:
1. Neposredstvennoe upravlenie dannymi vo vneshnej pamyati
|ta funkciya vklyuchaet obespechenie neobhodimyh struktur vneshnej pamyati kak dlya hraneniya neposredstvennyh dannyh, vhodyashchih v BD, tak i dlya sluzhebnyh celej, naprimer, dlya ubystreniya dostupa k dannym v nekotoryh sluchayah (obychno dlya etogo ispol'zuyutsya indeksy). V nekotoryh realizaciyah SUBD aktivno ispol'zuyutsya vozmozhnosti sushchestvuyushchih fajlovyh sistem, v drugih rabota proizvoditsya vplot' do urovnya ustrojstv vneshnej pamyati. No podcherknem, chto v razvityh SUBD pol'zovateli v lyubom sluchae ne obyazany znat', ispol'zuet li SUBD fajlovuyu sistemu, a esli ispol'zuet, to kak organizovany fajly. V chastnosti, SUBD podderzhivaet sobstvennuyu sistemu imenovaniya ob®ektov BD (eto ochen' vazhno, poskol'ku imena ob®ektov bazy dannyh sootvetstvuyut imenam ob®ektov predmetnoj oblasti).
Sushchestvuet mnozhestvo razlichnyh sposobov organizacii vneshnej pamyati baz dannyh. Kak i vse resheniya, prinimaemye pri organizacii baz dannyh, konkretnye metody organizacii vneshnej pamyati neobhodimo vybirat' v tesnoj svyazi so vsemi ostal'nymi resheniyami.
2. Upravlenie buferami operativnoj pamyati
SUBD obychno rabotayut s BD znachitel'nogo razmera; po krajnej mere etot razmer obychno sushchestvenno prevyshaet dostupnyj ob®em operativnoj pamyati. Ponyatno, esli pri obrashchenii k lyubomu elementu dannyh budet proizvodit'sya obmen s vneshnej pamyat'yu, to vsya sistema budet rabotat' so skorost'yu ustrojstva vneshnej pamyati. Edinstvennym zhe sposobom real'nogo uvelicheniya etoj skorosti yavlyaetsya buferizaciya dannyh v operativnoj pamyati. I dazhe esli operacionnaya sistema proizvodit obshchesistemnuyu buferizaciyu (kak v sluchae OS UNIX), etogo nedostatochno dlya celej SUBD, kotoraya raspolagaet gorazdo bol'shej informaciej o poleznosti buferizacii toj ili inoj chasti BD. Poetomu v razvityh SUBD podderzhivaetsya sobstvennyj nabor buferov operativnoj pamyati s sobstvennoj disciplinoj zameny buferov. Pri upravlenii buferami osnovnoj pamyati prihoditsya razrabatyvat' i primenyat' soglasovannye algoritmy buferizacii, zhurnalizacii i sinhronizacii. Zametim, chto sushchestvuet otdel'noe napravlenie SUBD, kotorye orientirovany na postoyannoe prisutstvie v operativnoj pamyati vsej BD. |to napravlenie osnovyvaetsya na predpolozhenii, chto v predvidimom budushchem ob®em operativnoj pamyati komp'yuterov smozhet byt' nastol'ko velik, chto pozvolit ne bespokoit'sya o buferizacii. Poka eti raboty nahodyatsya v stadii issledovanij.
3. Upravlenie tranzakciyami
Tranzakciya - eto posledovatel'nost' operacij nad BD, rassmatrivaemyh SUBD kak edinoe celoe. Libo tranzakciya uspeshno vypolnyaetsya, i SUBD fiksiruet (COMMIT) izmeneniya BD, proizvedennye eyu, vo vneshnej pamyati, libo ni odno iz etih izmenenij nikak ne otrazhaetsya v sostoyanii BD. Ponyatie tranzakcii neobhodimo dlya podderzhaniya logicheskoj celostnosti BD. Esli vspomnit' nash primer informacionnoj sistemy otdela kadrov s fajlami SOTRUDNIKI i OTDELY, to edinstvennym sposobom ne narushit' celostnost' BD pri vypolnenii operacii priema na rabotu novogo sotrudnika budet ob®edinenie elementarnyh operacij nad fajlami SOTRUDNIKI i OTDELY v odnu tranzakciyu. Takim obrazom, podderzhanie mehanizma tranzakcij - obyazatel'noe uslovie dazhe odnopol'zovatel'skih SUBD (esli, konechno, takaya sistema zasluzhivaet nazvaniya SUBD). No ponyatie tranzakcii gorazdo sushchestvennee vo mnogopol'zovatel'skih SUBD. To svojstvo, chto kazhdaya tranzakciya nachinaetsya pri celostnom sostoyanii BD i ostavlyaet eto sostoyanie celostnym posle svoego zaversheniya, delaet ochen' udobnym ispol'zovanie ponyatiya tranzakcii kak edinicy aktivnosti pol'zovatelya po otnosheniyu k BD. Pri sootvetstvuyushchem upravlenii parallel'no vypolnyayushchimisya tranzakciyami so storony SUBD kazhdyj pol'zovatel' mozhet v principe oshchushchat' sebya edinstvennym pol'zovatelem SUBD (na samom dele, eto neskol'ko idealizirovannoe predstavlenie, poskol'ku pol'zovateli mnogopol'zovatel'skih SUBD poroj mogut oshchutit' prisutstvie svoih kolleg).
S upravleniem tranzakciyami v mnogopol'zovatel'skoj SUBD svyazany vazhnye ponyatiya serializacii tranzakcij i serial'nogo plana vypolneniya smesi tranzakcij. Pod serializacij parallel'no vypolnyayushchihsya tranzakcij ponimaetsya takoj poryadok planirovaniya ih raboty, pri kotorom summarnyj effekt smesi tranzakcij ekvivlenten effektu ih nekotorogo posledovatel'nogo vypolneniya. Serial'nyj plan vypolneniya smesi tranzakcij - eto takoj sposob ih sovmestnogo vypolneniya, kotoryj privodit k serializacii tranzakcij. Ponyatno, chto esli udaetsya dobit'sya dejstvitel'no serial'nogo vypolneniya smesi tranzakcij, to dlya kazhdogo pol'zovatelya, po iniciative kotorogo obrazovana tranzakciya, prisutstvie drugih tranzakcij budet nezametno (esli ne schitat' nekotorogo zamedleniya raboty dlya kazhdogo pol'zovatelya po sravneniyu s odnopol'zovatel'skim rezhimom).
Sushchestvuet neskol'ko bazovyh algoritmov serializacii tranzakcij. V centralizovannyh SUBD naibolee rasprostraneny algoritmy, osnovannye na sinhronizacionnyh zahvatah ob®ektov BD. Pri ispol'zovanii lyubogo algoritma serializacii vozmozhny situacii konfliktov mezhdu dvumya ili bolee tranzakciyami po dostupu k ob®ektam BD. V etom sluchae dlya podderzhaniya serializacii neobhodimo vypolnit' otkat (likvidirovat' vse izmeneniya, proizvedennye v BD) odnoj ili bolee tranzakcij. |to odin iz sluchaev, kogda pol'zovatel' mnogopol'zovatel'skoj SUBD mozhet real'no (i dostatochno nepriyatno) oshchutit' prisutstvie v sisteme tranzakcij drugih pol'zovatelej.
4. ZHurnalizaciya
Odno iz osnovnyh trebovanij k SUBD - nadezhnoe hranenie dannyh vo vneshnej pamyati. Pod nadezhnost'yu hraneniya ponimaetsya to, chto SUBD dolzhna byt' v sostoyanii vosstanovit' poslednee soglasovannoe sostoyanie BD posle lyubogo apparatnogo ili programmnogo sboya. Obychno rassmatrivayutsya dva vozmozhnyh vida apparatnyh sboev: tak nazyvaemye myagkie sboi, kotorye mozhno traktovat' kak vnezapnuyu ostanovku raboty komp'yutera (naprimer, avarijnoe vyklyuchenie pitaniya), izhestkie sboi, harakterizuemye poterej informacii na nositelyah vneshnej pamyati. Primerami programmnyh sboev mogut byt' avarijnoe zavershenie raboty SUBD (iz-za oshibki v programme ili nekotorogo apparatnogo sboya) ili avarijnoe zavershenie pol'zovatel'skoj programmy, v rezul'tate chego nekotoraya tranzakciya ostaetsya nezavershennoj. Pervuyu situaciyu mozhno rassmatrivat' kak osobyj vid myagkogo apparatnogo sboya; pri vozniknovenii poslednej trebuetsya likvidirovat' posledstviya tol'ko odnoj tranzakcii.
No v lyubom sluchae dlya vosstanovleniya BD nuzhno raspolagat' nekotoroj dopolnitel'noj informaciej. Drugimi slovami, podderzhanie nadezhnogo hraneniya dannyh v BD trebuet izbytochnosti hraneniya dannyh, prichem ta ih chast', kotoraya ispol'zuetsya dlya vosstanovleniya, dolzhna hranit'sya osobo nadezhno. Naibolee rasprostranennyj metod podderzhaniya takoj izbytochnoj informacii - vedenie zhurnala izmenenij BD.
ZHurnal - eto osobaya chast' BD, nedostupnaya pol'zovatelyam SUBD i podderzhivaemaya osobo tshchatel'no (inogda podderzhivayutsya dve kopii zhurnala, raspolagaemye na raznyh fizicheskih diskah), v kotoruyu postupayut zapisi obo vseh izmeneniyah osnovnoj chasti BD. V raznyh SUBD izmeneniya BD zhurnalizuyutsya na raznyh urovnyah: inogda zapis' v zhurnale sootvetstvuet nekotoroj logicheskoj operacii izmeneniya BD (naprimer, operacii udaleniya stroki iz tablicy relyacionnoj BD), a poroj zapis' sootvetstvuet minimal'noj vnutrennej operacii modifikacii stranicy vneshnej pamyati. V nekotoryh sistemah odnovremenno ispol'zuyutsya oba podhoda.
Vo vseh sluchayah priderzhivayutsya strategii "uprezhdayushchej" zapisi v zhurnal (tak nazyvaemogo protokola Write Ahead Log - WAL). Grubo govorya, eta strategiya zaklyuchaetsya v tom, chto zapis' ob izmenenii lyubogo ob®ekta BD dolzhna popast' vo vneshnyuyu pamyat' zhurnala ran'she, chem izmenennyj ob®ekt popadet vo vneshnyuyu pamyat' osnovnoj chasti BD. Izvestno, esli v SUBD korrektno soblyudaetsya protokol WAL, to s pomoshch'yu zhurnala mozhno reshit' vse problemy vosstanovleniya BD posle lyubogo sboya.
Samaya prostaya situaciya vosstanovleniya - individual'nyj otkat tranzakcii. Strogo govorya, dlya etogo ne trebuetsya obshchesistemnyj zhurnal izmenenij BD. Dostatochno dlya kazhdoj tranzakcii podderzhivat' lokal'nyj zhurnal operacij modifikacii BD, vypolnennyh v etoj tranzakcii, i proizvodit' otkat tranzakcii vypolneniem obratnyh operacij, sleduya ot konca lokal'nogo zhurnala. V nekotoryh SUBD tak i delayut, no v bol'shinstve sistem lokal'nye zhurnaly ne podderzhivayut, a individual'nyj otkat tranzakcii vypolnyayut po obshchesistemnomu zhurnalu, dlya chego vse zapisi ot odnoj tranzakcii svyazyvayut obratnym spiskom (ot konca k nachalu).
Pri myagkom sboe vo vneshnej pamyati osnovnoj chasti BD mogut nahodit'sya ob®ekty, modificirovannye tranzakciyami, ne zakonchivshimisya k momentu sboya, i mogut otsutstvovat' ob®ekty, modificirovannye tranzakciyami, kotorye k momentu sboya uspeshno zavershilis' (po prichine ispol'zovaniya buferov operativnoj pamyati, soderzhimoe kotoryh pri myagkom sboe propadaet). Pri soblyudenii protokola WAL vo vneshnej pamyati zhurnala dolzhny garantirovanno nahodit'sya zapisi, otnosyashchiesya k operaciyam modifikacii oboih vidov ob®ektov. Cel'yu processa vosstanovleniya posle myagkogo sboya yavlyaetsya sostoyanie vneshnej pamyati osnovnoj chasti BD, kotoroe vozniklo by pri fiksacii vo vneshnej pamyati izmenenij vseh zavershivshihsya tranzakcij i kotoroe ne soderzhalo by nikakih sledov nezakonchennyh tranzakcij. CHtoby etogo dobit'sya, snachala proizvodyat otkat nezavershennyh tranzakcij (undo), a potom povtorno vosproizvodyat (redo) te operacii zavershennyh tranzakcij, rezul'taty kotoryh ne otobrazheny vo vneshnej pamyati. |tot process soderzhit mnogo tonkostej, svyazannyh s obshchej organizaciej upravleniya buferami i zhurnalom. Bolee podrobno my rassmotrim eto v sootvetstvuyushchej lekcii.
Dlya vosstanovleniya BD posle zhestkogo sboya ispol'zuyut zhurnal i arhivnuyu kopiyu BD. Grubo govorya, arhivnaya kopiya - eto polnaya kopiya BD k momentu nachala zapolneniya zhurnala (imeetsya mnogo variantov bolee gibkoj traktovki smysla arhivnoj kopii). Konechno, dlya normal'nogo vosstanovleniya BD posle zhestkogo sboya neobhodimo, chtoby zhurnal ne propal. Kak uzhe otmechalos', k sohrannosti zhurnala vo vneshnej pamyati v SUBD pred®yavlyayutsya osobo povyshennye trebovaniya. Togda vosstanovlenie BD sostoit v tom, chto ishodya iz arhivnoj kopii po zhurnalu vosproizvoditsya rabota vseh tranzakcij, kotorye zakonchilis' k momentu sboya. V principe mozhno dazhe vosproizvesti rabotu nezavershennyh tranzakcij i prodolzhit' ih rabotu posle konca vosstanovleniya. Odnako v real'nyh sistemah eto obychno ne delaetsya, poskol'ku process vosstanovleniya posle zhestkogo sboya yavlyaetsya dostatochno dlitel'nym.
5. YAzyki BD
Dlya raboty s bazami dannyh ispol'zuyutsya special'nye yazyki, v celom nazyvaemye yazykami baz dannyh. V rannih SUBD podderzhivalos' neskol'ko specializirovannyh po svoim funkciyam yazykov. CHashche vsego vydelyalis' dva - yazyk opredeleniya shemy BD (SDL - Schema Definition Language) i yazyk manipulirovaniya dannymi (DML - Data Manipulation Language). SDL sluzhil glavnym obrazom dlya opredeleniya logicheskoj struktury BD, t.e. toj struktury BD, kakoj ona predstavlyaetsya pol'zovatelyam. DML soderzhal nabor operatorov manipulirovaniya dannymi, t.e. operatorov, pozvolyayushchih zanosit' dannye v BD, udalyat', modificirovat' ili vybirat' sushchestvuyushchie dannye. My rassmotrim bolee podrobno yazyki rannih SUBD v sleduyushchej lekcii.
V sovremennyh SUBD obychno podderzhivaetsya edinyj integrirovannyj yazyk, soderzhashchij vse neobhodimye sredstva dlya raboty s BD, nachinaya ot ee sozdaniya i obespechivayushchij bazovyj pol'zovatel'skij interfejs s bazami dannyh. Standartnym yazykom naibolee rasprostranennyh v nastoyashchee vremya relyacionnyh SUBD yavlyaetsya yazyk SQL (Structured Query Language). V neskol'kih lekciyah etogo kursa yazyk SQL budet rassmatrivat'sya dostatochno podrobno, a poka my perechislim osnovnye funkcii relyacionnoj SUBD, podderzhivaemye na "yazykovom" urovne (t.e. funkcii, podderzhivaemye pri realizacii interfejsa SQL).
Prezhde vsego yazyk SQL sochetaet sredstva SDL i DML, t.e. pozvolyaet opredelyat' shemu relyacionnoj BD i manipulirovat' dannymi. Pri etom imenovanie ob®ektov BD (dlya relyacionnoj BD - imenovanie tablic i ih stolbcov) podderzhivaetsya na yazykovom urovne v tom smysle, chto kompilyator yazyka SQL proizvodit preobrazovanie imen ob®ektov v ih vnutrennie identifikatory na osnovanii special'no podderzhivaemyh sluzhebnyh tablic-katalogov. Vnutrennyaya chast' SUBD (yadro) voobshche ne rabotaet s imenami tablic i ih stolbcov.
YAzyk SQL soderzhit special'nye sredstva opredeleniya ogranichenij celostnosti BD. Opyat' zhe ogranicheniya celostnosti hranyatsya v special'nyh tablicah-katalogah, i obespechenie kontrolya celostnosti BD proizvoditsya na yazykovom urovne, t.e. pri kompilyacii operatorov modifikacii BD kompilyator SQL na osnovanii imeyushchihsya v BD ogranichenij celostnosti generiruet sootvetstvuyushchij programmnyj kod.
Special'nye operatory yazyka SQL pozvolyayut opredelyat' tak nazyvaemye predstavleniya BD, fakticheski yavlyayushchiesya hranimymi v BD zaprosami (rezul'tatom lyubogo zaprosa k relyacionnoj BD yavlyaetsya tablica) s imenovannymi stolbcami. Dlya pol'zovatelya predstavlenie yavlyaetsya takoj zhe tablicej, kak lyubaya bazovaya tablica, hranimaya v BD, no s pomoshch'yu predstavlenij mozhno ogranichit' ili naoborot rasshirit' vidimost' BD dlya konkretnogo pol'zovatelya. Podderzhanie predstavlenij proizvoditsya takzhe na yazykovom urovne.
Nakonec, avtorizaciya dostupa k ob®ektam BD proizvoditsya na osnove special'nogo nabora operatorov SQL. Ideya sostoit v tom, chto dlya vypolneniya operatorov SQL raznogo vida pol'zovatel' dolzhen obladat' razlichnymi polnomochiyami. Pol'zovatel', sozdavshij tablicu BD, obladaet polnym naborom polnomochij dlya raboty s etoj tablicej. V ih chislo vhodit polnomochie na peredachu vseh ili chasti polnomochij drugim pol'zovatelyam, vklyuchaya polnomochie na peredachu polnomochij. Polnomochiya pol'zovatelej opisyvayutsya v special'nyh tablicah-katalogah, kontrol' polnomochij podderzhivaetsya na yazykovom urovne.
1.1.2 Tipovaya organizaciya sovremennoj SUBD
Estestvenno, organizaciya tipichnoj SUBD i sostav ee komponentov sootvetstvuet rassmotrennomu nami naboru funkcij.
Logicheski v sovremennoj relyacionnoj SUBD mozhno vydelit' naibolee vnutrennyuyu chast' - yadro SUBD (chasto ego nazyvayut Data Base Engine), kompilyator yazyka BD (obychno SQL), podsistemu podderzhki vremeni vypolneniya, nabor utilit. V nekotoryh sistemah eti chasti vydelyayutsya yavno, v drugih - net, no logicheski takoe razdelenie mozhno provesti vo vseh SUBD.
YAdro SUBD otvechaet za upravlenie dannymi vo vneshnej pamyati, upravlenie buferami operativnoj pamyati, upravlenie tranzakciyami i zhurnalizaciyu. Sootvetstvenno mozhno vydelit' takie komponenty yadra (po krajnej mere, logicheski, hotya v nekotoryh sistemah eti komponenty vydelyayutsya yavno), kak menedzher dannyh, menedzher buferov, menedzher tranzakcij i menedzher zhurnala. Kak mozhno bylo ponyat' iz pervoj chasti etoj lekcii, funkcii etih komonentov vzaimosvyazany, i dlya obespecheniya korrektnoj raboty SUBD vse eti komponenty dolzhny vzaimodejstvovat' po tshchatel'no produmannym i proverennym protokolam. YAdro SUBD obladaet sobstvennym interfejsom, ne dostupnym pol'zovatelyam napryamuyu i ispol'zuemym v programmah, proizvodimyh kompilyatorom SQL (ili v podsisteme podderzhki vypolneniya takih programm), i utilitah BD. YAdro SUBD yavlyaetsya osnovnoj rezidentnoj chast'yu SUBD. Pri ispol'zovanii arhitektury "klient-server" yadro yavlyaetsya osnovnym sostavlyayushchim servernoj chasti sistemy.
Osnovnaya funkciya kompilyatora yazyka BD - kompilyaciya operatorov yazyka BD v nekotoruyu vypolnyaemuyu programmu.
Osnovnoj problemoj relyacionnyh SUBD yavlyaetsya to, chto yazyki etih sistem (a eto, kak pravilo, SQL) yavlyayutsya neprocedurnymi, t.e. v operatore takogo yazyka specificiruetsya nekotoroe dejstvie nad BD, no eta specifikaciya ne procedura, ona lish' opisyvaet v nekotoroj forme usloviya soversheniya zhelaemogo dejstviya (vspomnite primery iz pervoj lekcii). Poetomu kompilyator dolzhen reshit', kakim obrazom vypolnyat' operator yazyka, prezhde chem proizvesti programmu. Primenyayutsya dostatochno slozhnye metody optimizacii operatorov, kotorye my podrobno rassmotrim v sleduyushchih lekciyah. Rezul'tatom kompilyacii yavlyaetsya vypolnyaemaya programma, predstavlyaemaya v nekotoryh sistemah v mashinnyh kodah, no bolee chasto v vypolnyaemom vnutrennem mashinno-nezavisimom kode. V poslednem sluchae real'noe vypolnenie operatora proizvoditsya s privlecheniem podsistemy podderzhki vremeni vypolneniya, predstavlyayushchej soboj, po suti dela, interpretator etogo vnutrennego yazyka.
Nakonec, v otdel'nye utility BD obychno vydelyayut takie procedury, kotorye slishkom nakladno vypolnyat' s ispol'zovaniem yazyka BD, naprimer, zagruzka i razgruzka BD, sbor statistiki, global'naya proverka celostnosti BD i t.d. Utility programmiruyutsya s ispol'zovaniem interfejsa yadra SUBD, a inogda dazhe s proniknoveniem vnutr' yadra.
1.2 Ponyatie arhitektury klient-server.
V podavlyayushchem bol'shinstve sluchaev lokal'naya set' ispol'zuetsya dlya kollektivnogo dostupa k bazam dannyh.
Sushchestvuet dva podhoda k organizacii kollektivnogo dostupa dannym. Pervyj podhod zaklyuchaetsya v tom , chto fajly dannyh raspolagayut na diskah fajl servera i vse rabochie stancii poluchayut k nemu dostup. |tot podhod nosit nazvanie arhitektura "fajl-server". Esli fajly dannyh raspolozheny na servere ( v dannom sluchae server nazyvaetsya "fajl-server" ) , s nimi odnovremenno rabotayut neskol'ko programm , zapushchennyh na rabochih stanciyah. Pri etom programmy dolzhny sami sledit' za tem , chtoby izmenyaemye zapisi bazy dannyh blokirovalis' dlya zapisi i chteniya so storony drugih programm vo vremya izmenenij. Dannyj metod imeet sushchestvennyj nedostatok: fajl-server ne obespechivaet dostatochnuyu proizvoditel'nost' pri bol'shom kolichestve rabochih stancij.
Vtoroj podhod nosit nazvanie arhitektura "klient-server".
Opredeleniya:
Klient - Rabochaya stanciya dlya odnogo pol'zovatelya, obespechivayushchaya rezhim registracii i dr. neobhodimye na ego rabochem meste funkcii vychisleniya, kommunikaciyu, dostup k bazam dannyh i dr.
Server - odin ili neskol'ko mnogopol'zovatel'skih processorov s edinym polem pamyati, kotoryj v sootvetstvii s potrebnostyami pol'zovatelya obespechivaet im funkcii vychisleniya, kommunikacii i dostupa k bazam dannyh.
Obrabotka Klient - Server - sreda, v kotoroj obrabotka prilozhenij raspredelena mezhdu klientom i serverom. Neredko v obrabotke uchastvuyut mashiny raznyh tipov, prichem klient i server obshchayutsya mezhdu soboj s pomoshch'yu fiksirovannogo mnozhestva standartnyh protokolov obmena i procedur obrashcheniya k udalennym platformam.
SUBD s personal'nyh |VM ( takie, kak Clipper, DBase, FoxPro, Paradox, Clarion imeyut setevye versii, kotorye prosto sovmestno ispol'zuyut fajly baz dannyh teh zhe formatov dlya PK, osushchestvlyaya pri etom setevye blokirovki dlya razgranicheniya dostupa k tablicam i zapisyam. Pri etom vsya rabota osushchestvlyaetsya na PK. Server ispol'zuetsya prosto kak obshchij udalennyj disk bol'shoj emkosti. Takoj sposob raboty privodit k risku poteri dannyh pri apparatnyh sboyah.
Po sravneniyu s takimi sistemami sistemy , postroennye v arhitekture Klient - Server, imeyut sleduyushchie preimushchestva:
  • pozvolyayut uvelichit' razmer i slozhnost' programm, vypolnyaemyh na rabochej stancii;
  • obespechivaet perenesenie naibolee trudoemkih ope-racij na server, yavlyayushchijsya mashinoj bol'shej vychislitel'noj moshchnosti;
  • umen'shaet do minimuma vozmozhnost' poteri soderzhashchejsya v BD informacii za schet primeneniya imeyushchihsya na servere vnutrennih mehanizmov zashchity dannyh , takih , kak , naprimer sistemy trassirovki tranzakcij, otkat posle sboya, sredstva obespecheniya celostnosti dannyh;
  • v neskol'ko raz umen'shaet ob®em informacii, peredavaemyj po seti.
2. Teoreticheskie osnovy SUBD servera Informix OnLine v.7.X
2.1 SUBD server Informix.
Raboty nad sistemoj upravleniya bazami dannyh Informix byli nachaty v 1980 g. Soglasno nachal'nomu zamyslu programmnyj kompleks Informix rassmatrivalsya kak SUBD, special'no orientirovannaya dlya raboty v srede OS UNIX. Dlya organizacii hraneniya dannyh byl vybran relyacionnyj podhod. S teh por Informix stal odnoj iz osnovnyh SUBD, rabotayushchih v srede UNIX.
Sejchas produkty Informix uzhe ustanovleny prakticheski na vseh UNIX-komp'yuterah. Sredi vseh OEM firma vybrala shest' strategicheskih partnerov. |to: Sequent, HP, SUN, IBM, Siemens Nixdorf, NCR. Portirovanie produktov firmy na proizvodimye strategicheskimi partnerami platformy proizvoditsya v pervuyu ochered'. Prakticheski eto oznachaet, chto pri poyavlenii na rynke novoj platformy ili novoj versii operacionnoj sistemy dlya platformy uzhe imeetsya sootvetstvuyushchaya versiya produktov Informix.
Sredi ne UNIX platform Informix podderzhivaet NetWare, Windows, Windows NT i DOS.
Firma Informix ob®yavila i podderzhivaet programmu InSync. Programma ob®edinyaet nezavisimyh razrabotchikov programmnogo obespecheniya. V ramkah etoj programmy sozdany programmnye interfejsy dlya svyazi s SUBD drugih proizvoditelej, v chastnosti SUBD, funkcioniruyushchie na ne UNIX-platformah.
2.1.1 Opisanie produktov Informix
Produkty Informix soderzhat servery baz dannyh, sredstva razrabotki i otladki, kommunikacionnye sredstva. Harakternoj osobennost'yu Informix yavlyaetsya nalichie neskol'kih tipov serverov, podrobnee o nih budet skazano nizhe.
Nachinaya s versii 4.0 firma Informix postavlyaet server bazy dannyh OnLine, kotoryj podderzhivaet apparat raspredelennyh tranzakcij (tehnologiya OLTP - on-line transaction processing), chto pozvolyaet po-novomu podhodit' k sozdaniyu baz dannyh s ochen' bol'shim ob®emom hranimoj informacii.
Krome togo, v Informix-OnLine vklyuchen novyj tip dannyh - bitovye polya (BLOB - binary large objects). Bitovye polya mogut ispol'zovat'sya dlya mul'timedijnyh prilozhenij (hranenie izobrazhenij i zvuka).
2.1.2 Tipovye konfiguracii
V osnove sistem, razrabotannyh na osnove SUBD Informix, lezhit princip arhitektury "klient-server". Klient - eto pol'zovatel'skaya prikladnaya programma, obespechivayushchaya vzaimodejstvie (interfejs) bazy dannyh s pol'zovatelem. Vsyu rabotu, svyazannuyu s dostupom i modifikaciej bazy dannyh, vypolnyaet server bazy dannyh (BD-server).
Server bazy dannyh (database engine), on zhe yadro bazy dannyh - eto otdel'naya programma, vypolnyaemaya kak otdel'nyj process. Server peredaet vybrannuyu iz bazy informaciyu po kanalu klientu. Imenno server rabotaet s dannymi, zabotitsya ob ih razmeshchenii na diske. Tehnologiyu "klient-server" so storony servera obespechivayut moduli Informix-SE, Informix-Online ili Informix OnLine-Dynamic Server.
Informix-SE predstavlyaet soboj server bazy dannyh, prednaznachennyj dlya obespecheniya raboty v sistemah s malym ili srednim ob®emom informacii.
Hranenie dannyh v etom sluchae osushchestvlyaetsya v fajlovoj sisteme operacionnoj sistemy, chto znachitel'no uproshchaet razrabotku i ekspluataciyu prilozhenij.
Klienty i servery mogut nahodit'sya na odnom komp'yutere, libo na neskol'kih, svyazannyh mezhdu soboj set'yu. Podobnoe razdelenie funkcij daet vysokuyu proizvoditel'nost' i maksimal'nuyu gibkost'. Dlya obespecheniya otnoshenij svyazi tipa "klient-server" mezhdu razlichnymi komp'yuterami so storony servera primenyaetsya modul' Informix-NET.
Informix-OnLine - eto server vtorogo pokoleniya, obespechivayushchij tehnologiyu raspredelennyh tranzakcij (OLTP - on-line transaction processing). Tehnologiya raspredelennyh tranzakcij pozvolyaet vypolnyat' zaprosy v raspredelennoj baze dannyh, fizicheski nahodyashchihsya na razlichnyh komp'yuterah. Po sravneniyu s Informix-SE server Informix-OnLine imeet special'nyj tip dannyh - bitovye polya (BLOB - Binary Large Objects), simvol'nye stroki peremennoj dliny, buferizaciyu tranzakcij, zerkal'nyj disk, avtomaticheskoe vosstanovlenie posle sistemnyh sboev, bol'shuyu skorost' (v 2-4 raza).
Modul' Informix-Star yavlyaetsya sredstvom podderzhki raboty s raspredelennymi bazami dannyh. Posredstvom modulya InformixStar osushchestvlyaetsya operativnaya obrabotka tranzakcij.
Rabota servera Informix zaklyuchaetsya v zapuske special'noj programmy (SQLEXEC dlya Informix-SE i SQLTURBO dlya Informix-OnLine), kotoraya obespechivaet rabotu vseh SQL-operatorov. Dlya kazhdogo klienta zapuskaetsya process operacionnoj sistemy, ispol'zuyushchij etu programmu. V sluchae, esli klient prerval rabotu, no ne vyshel iz svoej zadachi, to ego process zanimaet resursy sistemy, snizhaya ee proizvoditel'nost'.
Odnim iz poslednih dostizhenij firmy stal vypusk novogo servera bazy dannyh OnLine Dynamic Server, kotoroj vhodit v sostav sistemy nachinaya s versii 6.0. |tot produkt osnovan na tak nazyvaemoj Dinamicheskoj Masshtabiruemoj Arhitekture (Dynamically Scalable Architecture - DSA), kotoraya special'no orientirovana na rabotu s mnogoprocessornymi sistemami. OnLine Dynamic Server obespechivaet povyshenie proizvoditel'nosti za schet gibkosti ispol'zovaniya resursov SUBD, ispol'zovanie mnogopotochnoj arhitektury. Fakticheski OnLine Dynamic Server beret na sebya mnogie svyazannye s raspredeleniem resursov funkcii operacionnoj sistemy. V rezul'tate umen'shaetsya nagruzka na operacionnuyu sistemy, chto v konechnom schete privodit k rostu proizvoditel'nosti.
Dlya obsluzhivaniya klientov zapuskayutsya "virtual'nye processory" - processy operacionnoj sistemy, kotorye ustanavlivayut svyaz' mezhdu klientom i yadrom Informix. Svyaz' ustanavlivaetsya s pomoshch'yu special'nyh "nitej" (thread), kotorye aktiviziruyutsya tol'ko esli klient aktiven i obrashchaetsya k serveru bazy dannyh. V sluchae, esli klient neaktiven, "nit'" mozhet obsluzhivat' drugih klientov.
CHislo virtual'nyh processorov opredelyaet administrator bazy dannyh, ishodya iz real'nyh resursov vychislitel'noj sistemy i seti klientov. Esli vychislitel'naya sistema yavlyaetsya mnogoprocessornoj, to raznye virtual'nye processory mogut obsluzhivat'sya raznymi real'nymi processorami.
V versii 6.0 setevye funkcii zalozheny v yadre SUBD. Poetomu dlya funkcionirovaniya v seti OnLine Dynamic Server moduli Informix-Net ili Informix-Star ne trebuyutsya.
2.2 Arhitektura SUBD servera Informix OnLine v.7.X
K SUBD, pretenduyushchim na rol' informacionnoj osnovy sovremennyh predpriyatij, pred®yavlyayutsya vse novye i bolee zhestkie trebovaniya. K chislu vazhnejshih mozhno otnesti sleduyushchie:
Dannyj razdel posvyashchen, glavnym obrazom, rassmotreniyu arhitekturnyh osobennostej i mehanizmov servera INFORMIX-OnLine DS, napravlennyh na udovletvorenie perechislennyh vyshe trebovanij. Privoditsya takzhe informaciya o sredstvah raspredelennyh vychislenij, bezopasnosti, podderzhki nacional'noj sredy.
2.2.1 . Dinamicheskaya masshtabiruemaya arhitektura
Arhitektura servera INFORMIX-OnLine DS poluchila nazvanie "dinamicheskaya masshtabiruemaya arhitektura" (DSA). Sut' ee zaklyuchaetsya v tom, chto odnovremenno vypolnyaetsya otnositel'no nebol'shoe chislo servernyh processov (virtual'nyh processorov), kotorye razdelyayut mezhdu soboj rabotu po obsluzhivaniyu mnozhestva klientov. Po sravneniyu s bolee rannimi modelyami servera INFORMIX, gde dlya kazhdogo klienta sozdavalsya individual'nyj servernyj process (ris. 1), novaya model' obladaet ryadom preimushchestv:
Dlya mnogoprocessornyh platform:
Ris. 1. Model' "odin klient - odin servernyj process".
Poka pol'zovatel' analiziruet rezul'taty ili gotovit ocherednoj zapros, servernyj process prostaivaet, zanimaya sistemnye resursy.
Arhitektura DSA polnost'yu ispol'zuet vozmozhnosti simmetrichnyh mnogoprocessornyh platform SMP (Symmetric Multiprocessing systems), i mozhet rabotat' na odnoprocessornyh platformah. V posleduyushchih versiyah predpolagaetsya rasshirit' arhitekturu servera, obespechiv podderzhku slabosvyazannyh sistem i sistem s massovym parallelizmom (MPP). Vse bazovye tehnologii DSA yavlyayutsya vstroennymi, oni vklyucheny v biblioteki servera, i ih primenenie ne zavisit ot osobennostej OS ili apparatnyh platform razlichnyh postavshchikov.
2.2.1.1 Potoki
Arhitekturu INFORMIX-OnLine DS nazyvayut takzhe mnogopotokovoj. Dlya kazhdogo klienta sozdaetsya tak nazyvaemyj potok, ili nit' (thread). Potok - eto podzadacha, vypolnyaemaya v ramkah odnogo iz servernyh processov.
V nekotoryh sluchayah dlya obsluzhivaniya odnogo klientskogo zaprosa sozdaetsya neskol'ko parallel'nyh potokov. Potoki sozdayutsya takzhe dlya vypolneniya vnutrennih zadach servera - vvoda-vyvoda, zhurnalizacii, administrirovaniya i dr. Takim obrazom, odnovremenno vypolnyaetsya mnozhestvo potokov, kotorye raspredelyayutsya mezhdu nalichnymi virtual'nymi processorami (ris. 2).
Ris.2. Mnogopotokovaya model'. Virtual'nye processory (VP) ne prostaivayut, esli imeyutsya gotovye k vypolneniyu pol'zovatel'skie ili sistemnye potoki.
INFORMIX-OnLine DS ne polagaetsya na mehanizmy potokov, imeyushchiesya v nekotoryh operacionnyh sistemah. On formiruet potoki, specifichnye dlya zadach obrabotki baz dannyh, optimal'nye v otnoshenii vydelyaemoj pod nih pamyati, metodov planirovaniya i chisla instrukcij, zatrachivaemyh na pereklyuchenie mezhdu potokami.
2.2.1.2 Virtual'nye processory
Virtual'nym processorom nazyvaetsya process servera baz dannyh. Virtual'nyj processor mozhno sravnit' s operacionnoj sistemoj. Potok po otnosheniyu k nemu vystupaet kak process, podobno tomu, kak sam virtual'nyj processor yavlyaetsya processom s tochki zreniya operacionnoj sistemy.
Virtual'nye processory (VP) yavlyayutsya specializirovannymi - oni podrazdelyayutsya na klassy v sootvetstvii s tipom potokov, dlya vypolneniya kotoryh oni prednaznacheny. Primery klassov VP:
CPU - Potoki obsluzhivaniya klientov, realizuyut optimizaciyu i logiku vypolneniya zaprosov. K etomu klassu otnosyatsya i nekotorye sistemnye potoki.
AIO - Operacii asinhronnogo obmena s diskom.
ADM - Administrativnye funkcii, naprimer, sistemnyj tajmer.
TLI - Kontrol' setevogo vzaimodejstviya posredstvom interfejsa TLI (Transport Layer Interface).
V otlichie ot operacionnoj sistemy, kotoraya dolzhna obespechivat' vypolnenie proizvol'nyh processov, klassy virtual'nyh processorov sproektirovany dlya naibolee optimal'nogo vypolneniya zadanij opredelennogo vida.
Nachal'noe chislo virtual'nyh processorov kazhdogo klassa, sozdavaemyh pri zapuske INFORMIX-OnLine DS, zadaetsya v konfiguracionnom fajle. Odnako, potrebnosti v kazhdom vide obrabotki ne vsegda predskazuemy. Instrumenty administrirovaniya pozvolyayut dinamicheski, ne ostanavlivaya server, zapustit' dopolnitel'nye virtual'nye processory. Naprimer, esli rastet ochered' potokov k virtual'nym CPU-processoram, to mozhno uvelichit' ih chislo. Tochno tak zhe, vozmozhno dobavlenie virtual'nyh processorov obmena s diskami, setevyh processorov vzaimodejstviya s klientami, sozdanie processora obmena s opticheskim diskom, esli on otsutstvoval v nachal'noj konfiguracii. Dinamicheski sokratit' mozhno tol'ko chislo virtual'nyh processorov klassa CPU.
Na nekotoryh mul'tiprocessornyh platformah, gde OnLine DS podderzhivaet rodstvo processorov (processor affinity), dopuskaetsya privyazka virtual'nyh CPU-processorov k opredelennym central'nym processoram komp'yutera. V rezul'tate proizvoditel'nost' virtual'nogo CPU-processora povyshaetsya, poskol'ku operacionnaya sistema rezhe proizvodit pereklyuchenie processov. Privyazka pozvolyaet takzhe izolirovat' rabotu s bazoj dannyh, vydelyaya dlya etoj celi opredelennye processory, v to vremya kak ostal'nye budut zanyaty drugimi zadachami.
2.2.1.3 Planirovanie potokov
Server osvedomlen o stepeni znachimosti razlichnyh potokov i v sootvetstvii s etim naznachaet dlya nih prioritety. Naprimer, potoki vvoda-vyvoda poluchayut prioritety sleduyushchim obrazom:
Takim obrazom, garantiruetsya, chto operacii zapisi v logicheskij zhurnal, ot kotoryh zavisit vosstanovlenie bazy dannyh v sluchae sboya, ne okazhutsya v ocheredi pozadi operacii vyvoda vo vremennyj rabochij fajl.
Sami virtual'nye processory vypolnyayutsya kak vysokoprioritetnye processy operacionnoj sistemy, kotorye ne preryvayutsya, poka ne pusty ocheredi gotovyh k vypolneniyu potokov.
Vypolnenie potoka ne otkladyvaetsya po istechenii zadannogo kvanta vremeni, kak eto proishodit s processami v operacionnoj sisteme. Potok otkladyvaetsya v dvuh sluchayah:
2.2.1.4 Razdelenie potokov mezhdu virtual'nymi processorami.
Dlya kazhdogo klassa podderzhivayutsya tri ocheredi potokov, kotorye razdelyayutsya vsemi virtual'nymi processorami dannogo klassa:
Esli vypolnyaemyj potok zavershaetsya, zasypaet ili otkladyvaetsya, to osvobodivshijsya virtual'nyj processor vybiraet iz ocheredi gotovyh ocherednoj potok s naivysshim prioritetom. Kak pravilo, OnLine DS stremitsya vypolnyat' potok na odnom i tom zhe virtual'nom processore, poskol'ku peredacha ego drugomu processoru trebuet peresylki nekotorogo ob®ema dannyh. Tem ne menee, esli potok gotov k vypolneniyu, on mozhet byt' prodolzhen drugim processorom, s cel'yu isklyucheniya prostoev i obespecheniya obshchego balansa zagruzki.
2.2.1.5 |konomiya pamyati i drugih resursov
Racional'noe ispol'zovanie resursov operacionnoj sistemy dostigaetsya za schet togo, chto potoki razdelyayut resursy (pamyat', kommunikacionnye porty, fajly) virtual'nogo processora, na kotorom oni vypolnyayutsya. Virtual'nyj processor sam koordiniruet dostup potokov k svoim resursam. Processy zhe, v otlichie ot potokov, imeyut individual'nye nabory resursov, i, esli resurs trebuetsya neskol'kim processam, to dostup k nemu reguliruetsya operacionnoj sistemoj.
Pereklyuchenie virtual'nogo processora s odnogo potoka na drugoj, v celom, proishodit bystree, chem pereklyuchenie operacionnoj sistemy s odnogo processa na drugoj. Operacionnaya sistema dolzhna prervat' odin process, vypolnyaemyj central'nym processorom, sohranit' ego tekushchee sostoyanie (kontekst) i zapustit' drugoj process, predvaritel'no pomestiv v yadro ego kontekst, chto trebuet fizicheskoj perezapisi fragmentov pamyati. Poskol'ku potoki razdelyayut virtual'nuyu pamyat' i deskriptory fajlov, to pereklyuchenie virtual'nogo processora s potoka na potok mozhet svodit'sya k perezapisi nebol'shogo upravlyayushchego bloka potoka, chto sootvetstvuet vypolneniyu primerno 20 mashinnyh komand. Pri etom virtual'nyj processor kak process operacionnoj sistemy prodolzhaet vypolnyat'sya bez preryvaniya.
2.2.2 Organizaciya razdelyaemoj pamyati
Razdelyaemaya pamyat' - eto mehanizm operacionnoj sistemy, na kotorom osnovano razdelenie dannyh mezhdu virtual'nymi processorami i potokami servera. Razdelenie dannyh pozvolyaet:
Upravlenie razdelyaemoj pamyat'yu realizovano takim obrazom, chto ee fragmentaciya minimiziruetsya, poetomu proizvoditel'nost' servera pri ee ispol'zovanii ne degradiruet s techeniem vremeni. Iznachal'no vydelennye segmenty razdelyaemoj pamyati narashchivayutsya po mere nadobnosti avtomaticheski ili vruchnuyu. Pri osvobozhdenii pamyati, zanyatoj serverom, ona vozvrashchaetsya operacionnoj sisteme.
V razdelyaemoj pamyati nahoditsya informaciya obo vseh vypolnyaemyh potokah, poetomu potoki otnositel'no bystro pereklyuchayutsya mezhdu virtual'nymi processorami. V chastnosti, v razdelyaemoj pamyati vydelyaetsya oblast' stekov potokov. Stek hranit dannye dlya funkcij, vypolnyaemyh potokom, i druguyu informaciyu o sostoyanii pol'zovatel'skogo seansa. Razmer steka dlya kazhdogo seansa ustanavlivaetsya pri pomoshchi peremennoj okruzheniya.
Vazhnyj optimiziruyushchij mehanizm servera - keshi hranimyh procedur i slovarej dannyh. Slovari dannyh (system catalog), dostupnye tol'ko na chtenie, a takzhe hranimye procedury, razdelyayutsya mezhdu vsemi pol'zovatelyami servera, chto pozvolyaet optimizirovat' sovokupnoe ispol'zovanie pamyati. Pri zagruzke v razdelyaemuyu pamyat' slovar' dannyh zapisyvaetsya v struktury, obespechivayushchie bystryj dostup k informacii, a hranimye procedury preobrazuyutsya v vypolnyaemyj format. Vse eto mozhet sushchestvenno uskorit' vypolnenie prilozhenij, obrashchayushchihsya ko mnogim tablicam s bol'shim chislom stolbcov i/ili ko mnogim hranimym proceduram.
2.2.3 Organizaciya operacij obmena s diskami
Operacii vvoda-vyvoda, kak pravilo, obrazuyut naibolee medlennuyu komponentu obrabotki baz dannyh. Poetomu ot ih realizacii sushchestvenno zavisit obshchaya produktivnost' servera. Dlya optimizacii vvoda-vyvoda i povysheniya nadezhnosti v servere INFORMIX-OnLine DS primenyayutsya sleduyushchie mehanizmy:
2.2.3.1 Upravlenie diskovoj pamyat'yu
INFORMIX-OnLine DS podderzhivaet kak sobstvennyj mehanizm upravleniya diskovoj pamyat'yu, tak i upravlenie sredstvami fajlovoj sistemy OS UNIX. Preimushchestva sobstvennogo mehanizma upravleniya diskovoj pamyat'yu:
Fajlovuyu sistemu ispol'zuyut v situaciyah, kogda net vozmozhnosti vydelit' pod bazy dannyh special'nye razdely na diskah, ili esli perechislennye soobrazheniya ne kritichny.
2.2.3.2 Asinhronnyj vvod-vyvod
Dlya uskoreniya operacij vvoda-vyvoda server ispol'zuet sobstvennyj paket asinhronnogo vvoda-vyvoda (AIO) ili paket asinhronnogo vvoda-vyvoda yadra OS (KAIO), esli on dostupen. Pol'zovatel'skie zaprosy na vvod-vyvod obrabatyvayutsya asinhronno, poetomu virtual'nym processoram CPU ne prihoditsya zhdat' zaversheniya operacii obmena, chtoby prodolzhit' obrabotku.
2.2.3.3 Operezhayushchee chtenie
Server OnLine DS mozhet byt' skonfigurirovan takim obrazom, chtoby pri chtenii posledovatel'noj tablicy ili indeksnogo fajla obespechivalos' operezhayushchee chtenie neskol'kih stranic v to vremya, poka obrabatyvayutsya uzhe prochitannye v razdelyaemuyu pamyat' dannye. Takim obrazom, sokrashchaetsya vremya ozhidaniya obmena s diskom, i pol'zovatel' bystree poluchaet rezul'taty zaprosa.
2.2.4 Podderzhka fragmentacii tablic i indeksov
INFORMIX-OnLine DS podderzhivaet gorizontal'nuyu lokal'nuyu fragmentaciyu tablic. |to takoj sposob hraneniya tablicy, kogda sovokupnost' ee strok razbivaetsya na neskol'ko grupp soglasno nekotoromu pravilu, i eti gruppy hranyatsya na raznyh diskovyh razdelah. Fragmentaciya tablic sposobstvuet dostizheniyu sleduyushchih celej:
Ris.3. Operacii chteniya-zapisi fragmentirovannoj tablicy vypolnyayutsya parallel'no, v rezul'tate vremya obrabotki sokrashchaetsya proporcional'no chislu fragmentov.
Razlichayutsya dva tipa pravil fragmentacii tablic:
Pravilo razbieniya tablicy zadaetsya v SQL-instrukciyah
CREATE TABLE (sozdat' tablicu), ALTER TABLE (izmenit' tablicu). Primer:
CREATE TABLE account ...
FRAGMENT BY EXPRESSION
id_num > 0 AND id_num <= 20 IN dbsp1
id_num >20 AND id_num <= 40 IN dbsp2
REMAINDER IN dbsp3
Zdes' dbsp1, dbsp2, dbsp3 - imena oblastej diskovogo prostranstva, vydelennogo pod BD.
INFORMIX-OnLine DS podderzhivaet takzhe fragmentaciyu indeksov. Razlichayutsya dva vida fragmentacii indeksov - zavisimaya (sootvetstvuyushchaya fragmentacii tablicy) i nezavisimaya. Fragmentirovannoj tablice mozhet sootvetstvovat' nefragmentirovannyj indeks. Sozdanie indeksa s pravilom fragmentacii, ne sovpadayushchim s pravilom fragmentacii tablicy, polezno v teh sluchayah, kogda v raznyh prilozheniyah vyborki iz tablicy osushchestvlyayutsya na osnove raznyh podmnozhestv ee atributov.
Strategiya fragmentacii tablic i indeksov vybiraetsya v zavisimosti ot celi, kotoraya presleduetsya, ot struktury tablicy i haraktera zaprosov k nej. Razlichnye strategii podrobno opisany v dokumentacii. Naprimer, esli osnovnoj cel'yu yavlyaetsya umen'shenie konkurencii pri odnovremennom dostupe k tablice, to optimal'noj budet fragmentaciya tablicy po diapazonam znacheniya klyucha (ili drugogo stolbca, na osnove kotorogo proizvoditsya osnovnoj dostup k tablice) i zavisimaya fragmentaciya indeksa.
INFORMIX-OnLine DS predostavlyaet sredstva nablyudeniya, pozvolyayushchie ocenit' effektivnost' fragmentacii tablic i indeksov po sleduyushchim parametram:
Esli nablyudeniya pokazyvayut, chto vybrannaya strategiya ne udovletvoryaet postavlennoj celi, to pravila fragmentacii mogut byt' izmeneny dinamicheski, bez ostanovki servera.
Vazhno, chto fragmentaciya tablic i indeksov prozrachna dlya prilozhenij, rabotayushchih s bazoj dannyh. Izmenenie pravila fragmentacii ne trebuet nikakih izmenenij v prikladnyh sistemah - ono lish' povyshaet (ili snizhaet) skorost' i ekonomichnost' ih vypolneniya.
2.2.5 Parallel'naya obrabotka zaprosov
Parallel'naya obrabotka zaprosov (Parallel Data Query, PDQ) - eto tehnologiya, kotoraya pozvolyaet raspredelit' obrabotku odnogo slozhnogo zaprosa na neskol'ko processorov, mobilizovat' dlya ego vypolneniya maksimal'no dostupnye sistemnye resursy, vo mnogo raz sokrashchaya vremya polucheniya rezul'tata. Osnovnye tipy zadanij, na kotoryh proyavlyaetsya effekt tehnologii PDQ:
Prakticheski eto oznachaet, chto otchet ili otvet na slozhnyj zapros, ot kotorogo zavisit prinyatie otvetstvennogo resheniya, mozhno poluchit' ne zavtra (posle nochnoj obrabotki), a neposredstvenno vo vremya obychnoj operativnoj dnevnoj raboty. Snimayutsya problemy, svyazannye s obrabotkoj i obsluzhivaniem (arhivirovaniem, kopirovaniem) ochen' bol'shih tablic - blagodarya fragmentacii, parallel'noj obrabotke i vozmozhnostyam vypolneniya administrativnyh dejstvij v operativnom rezhime. V rezul'tate rasshiryaetsya klass potencial'nyh prilozhenij, i, sootvetstvenno, krug pol'zovatelej, bolee gibkim stanovitsya rezhim raboty IS, prichem vse eto dostigaetsya ne na uzkospecializirovannyh, a na obychnyh shiroko rasprostranennyh apparatnyh platformah. Takim obrazom, mozhno govorit' o novom kachestve, kotoroe privnosit s soboj tehnologiya PDQ.
Maksimal'nye preimushchestva eta tehnologiya daet na mnogoprocessornyh platformah v usloviyah primeneniya fragmentacii tablic, gde vremya vypolneniya zaprosa sokrashchaetsya v desyatki raz; odnako vyigrysh v proizvoditel'nosti dostigaetsya i na odnoprocessornyh mashinah i nefragmentirovannyh tablicah za schet togo, chto dostup k diskam osushchestvlyaetsya parallel'no s drugimi vidami obrabotki, i za schet maksimal'no polnogo ispol'zovaniya pamyati.
2.2.5.1 Na chem osnovana tehnologiya PDQ
Realizaciya zaprosa sostoit iz otdel'nyh dejstvij - skanirovaniya, sortirovki, gruppirovaniya i dr. |ti dejstviya nazyvayutsya iteratorami. Iteratory obrazuyut derevo realizacii zaprosa v tom smysle, chto rezul'taty vypolneniya odnih iteratorov yavlyayutsya ishodnymi dannymi dlya drugih. Pri obychnoj obrabotke iteratory vypolnyayutsya posledovatel'no. V osnove tehnologii PDQ lezhat sleduyushchie vidy optimizacii i regulirovaniya:
2.2.5.2 Iteratory
Iterator - eto programmnyj ob®ekt, kotoryj osushchestvlyaet iterativnuyu (ciklicheskuyu) obrabotku nekotorogo mnozhestva dannyh. Iteratory razlichayutsya tipom proizvodimoj obrabotki, no imeyut edinoobraznyj vneshnij interfejs (ris. 4). Kazhdyj iterator otkryvaet odin (ili bolee) vhodnyh potokov dannyh (data flow), posledovatel'no schityvaet ih i, posle obrabotki, pomeshchaet rezul'taty v vyhodnoj potok. Iteratoru bezrazlichen istochnik vhodnogo potoka i naznachenie vyhodnogo potoka - eto mozhet byt' disk, drugoj iterator, setevoe soedinenie. My budem govorit' o postavshchikah i potrebitelyah potokov dannyh. Nizhe perechisleny tipy iteratorov, primenyaemye v INFORMIX-OnLine DS:
Ris. 4. Rabota iteratora ne zavisit ot istochnikov vhodnyh dannyh. Vyvod postupaet ob®ektu, kotoryj vyzval iterator.
SCAN - Skaniruet fragmentirovannye i nefragmentirovannye tablicy i indeksy.
NESTED LOOP JOIN - Realizuet standartnuyu logiku soedinenij metodom vlozhennyh ciklov (chitaet stroku iz odnoj tablicy, nahodit vse sovpadeniya vo vtoroj tablice, chitaet sleduyushchuyu stroku iz pervoj tablicy i t. d.).
MERGE JOIN - Vypolnyaet fazu sliyaniya dlya soedineniya metodom sortirovki i sliyaniya.
HASH JOIN - Realizuet novyj metod soedinenij s heshirovaniem. Dlya odnoj iz dvuh soedinyaemyh tablic stroitsya hesh-tablica, vtoraya tablica zondiruetsya. Optimizator reshaet, kakaya iz tablic budet heshirovat'sya.
GROUP - Gruppiruet dannye (GROUP BY) i vychislyaet agregatnye funkcii.
SORT - Sortiruet dannye.
MERGE - Vypolnyaet ob®edineniya UNION i UNION ALL (dlya UNION ispol'zuetsya kombinaciya iteratorov MERGE i SORT).
REMOTE - Realizuet udalennye skanirovaniya dlya operatorov SELECT.
Iterator kak programmnyj ob®ekt sostoit iz staticheskih i dinamicheskih struktur dannyh. Staticheskaya struktura soderzhit ssylki na funkcii (ili metody), primenimye k iteratoru. Dinamicheskaya struktura soderzhit informaciyu o tekushchem sostoyanii iteratora (otkryt, zakryt, vypolnyaet ocherednuyu iteraciyu), odnu ili dve ssylki na postavshchikov.
Metody iteratora
CREATE() - Sozdaet iterator. Vydelyaet pamyat' dlya iteratora, inicializiruet ego struktury, a takzhe ostal'nye metody (open(), next(), close(), free()), t.e. ustanavlivaet ssylki na funkcii, sootvetstvuyushchie dannomu tipu iteratora. Zatem vyzyvaet metod create() dlya svoih iteratorov-postavshchikov, kotorye sozdadut svoih postavshchikov, esli takovye imeyutsya, i t. d. Takim obrazom, vyzov metoda create() dlya kornevogo iteratora privodit k sozdaniyu vsego dereva iteratorov.
OPEN() - Zapuskaet iterator. Vypolnyayutsya specificheskie dlya dannogo tipa iteratora inicializiruyushchie dejstviya, vozmozhno, zapros dopolnitel'noj pamyati. Naprimer, pri zapuske iteratora skanirovaniya opredelyaetsya, kakie fragmenty neobhodimo skanirovat', ustanavlivaetsya ukazatel' na pervyj iz nih, sozdaetsya vremennaya tablica (esli ona nuzhna), posylaetsya soobshchenie
MGM (MGM - komponenta servera, kotoraya reguliruet vydelenie resursov pod zaprosy, obrabatyvaemye sredstvami PDQ; sm. ob etom nizhe, p. "Balans mezhdu OLTP i DSS-prilozheniyami") o zapuske potoka skanirovaniya. Dalee primenyaetsya metod open() po otnosheniyu k postavshchikam iteratora, kotorye primenyat ego k svoim postavshchikam i t.d. Takim obrazom, dlya zapuska vsego dereva iteratorov dostatochno primenit' metod open() k kornevomu iteratoru.
NEXT() - Vypolnyaet odnu iteraciyu. Vypolnenie nachinaetsya s togo, chto iterator primenyaet metod next() k svoim postavshchikam, zastavlyaya ih takzhe primenit' next() k svoim postavshchikam i t. d., poka ne srabotayut iteracii postavshchikov nizhnego urovnya. Zatem dannye podnimayutsya snizu vverh - kazhdyj iterator, poluchiv dannye ot svoego postavshchika, primenyaet k nim svoj specificheskij vid obrabotki i peredaet rezul'tat svoemu potrebitelyu. Metod next() primenyaetsya ciklicheski, poka ne postupit priznak konca potoka dannyh.
CLOSE() - Zakryvaet iterator. Vysvobozhdaet pamyat', vydelennuyu pri zapuske. Fakticheski, eta pamyat' mogla uzhe byt' vysvobozhdena metodom next(), kogda on poluchil priznak konca dannyh, poskol'ku obshchij princip sostoit v tom, chtoby osvobozhdat' pamyat' srazu zhe, kak tol'ko ona stanovitsya ne nuzhna. Odnako, eto ne vsegda vozmozhno. Poetomu na metod close() vozlagaetsya otvetstvennost' za to, chtoby pamyat' v lyubom sluchae byla osvobozhdena.
Metod close() rekursivno primenyaetsya k postavshchikam, tem samym, zakryvaetsya vse derevo iteratorov.
FREE() - Osvobozhdaet iterator. Vysvobozhdaet pamyat', vydelennuyu pri sozdanii. Primenyaet free() k postavshchikam, takim obrazom, osvobozhdaetsya vse derevo iteratorov.
Blagodarya edinoobraziyu interfejsa, iteratory raznyh tipov mogut soedinyat'sya drug s drugom proizvol'nym obrazom (ris. 5). Iterator ne zabotitsya o tom, kakoj tip imeyut ego postavshchiki, poskol'ku on vzaimodejstvuet s nimi tol'ko posredstvom metodov. Iz opisaniya metodov sleduet, chto zapusk dereva, sostavlennogo iz iteratorov, realizuet ih parallel'noe vypolnenie. Dlya kazhdogo iteratora sozdaetsya potok vypolneniya, kotoryj prodvigaetsya po mere togo, kak poluchaet dannye ot svoih postavshchikov. Takim obrazom v servere realizuetsya vertikal'nyj parallelizm - odnovremennoe, konvejernoe vypolnenie razlichnyh iteratorov.
Ris. 5. Iteratory vypolnyayutsya parallel'no, kazhdyj mozhet prodvigat'sya po mere togo, kak postupayut dannye ot ego postavshchikov.
Drugoj vid parallelizma - gorizontal'nyj - zaklyuchaetsya v tom, chto vmesto odnogo iteratora (naprimer, skanirovaniya) sozdaetsya neskol'ko odnotipnyh parallel'no vypolnyaemyh iteratorov. Gorizontal'nyj parallelizm realizuetsya pri pomoshchi iteratorov special'nogo vida - iteratorov obmena (EXCHANGE). Posle togo, kak derevo realizacii zaprosa postroeno, optimizator opredelyaet, kakie ego komponenty imeet smysl rasparallelit'. Nad takoj komponentoj vstavlyaetsya iterator EXCHANGE. Iterator EXCHANGE sozdaet i zapuskaet neskol'ko ekzemplyarov svoego postavshchika, obespechivaet koordinaciyu postupayushchih ot nih potokov dannyh i ih peredachu svoemu potrebitelyu. Peredacha dannyh osushchestvlyaetsya v etom sluchae ne cherez vhody potrebitelya, a cherez ocheredi paketov v razdelyaemoj pamyati.
Stepen' i naibolee optimal'nye sposoby primeneniya vertikal'nogo i gorizontal'nogo parallelizma dlya kazhdogo konkretnogo zaprosa opredelyaetsya optimizatorom. Optimizator prinimaet resheniya, ishodya iz znachenij parametrov konfiguracii, ustanavlivaemyh administratorom, pol'zovatelem i klientskim prilozheniem, a takzhe s uchetom nekotoryh vnutrennih soobrazhenij, takih kak chislo nalichnyh processorov, fragmentaciya uchastvuyushchih v zaprose tablic, slozhnost' zaprosa i t. d.
Rezul'taty testov pokazyvayut, chto mehanizmy PDQ i optimizacii INFORMIX-OnLine DS obespechivayut s uvelicheniem chisla processorov prakticheski proporcional'nyj rost proizvoditel'nosti.
2.2.5.3 Primery primeneniya parallelizma
Parallel'naya sortirovka
Sortirovka - eto fundamental'naya operaciya obrabotki baz dannyh, primenyaemaya pri vypolnenii takih dejstvij, kak postroenie indeksov, soedinenie metodom sortirovki i sliyaniya, gruppirovanie; poetomu uskorenie sortirovki uluchshaet kachestvo mnogih prilozhenij.
Pri parallel'noj sortirovke sovokupnost' dannyh razbivaetsya na sekcii, kotorye peredayutsya dlya sortirovki neskol'kim processoram. Zatem vypolnyaetsya sliyanie otsortirovannyh sekcij.
Na praktike skorost' sortirovki ogranichivaetsya vremenem skanirovaniya dannyh iz tablic. |to ogranichenie v znachitel'noj mere snimaetsya primeneniem PDQ-algoritmov parallel'nogo skanirovaniya.
Parallel'noe skanirovanie
Operacii postroeniya indeksov, soedinenij, podgotovki otchetov, neobhodimye v bol'shinstve prilozhenij, trebuyut skanirovaniya bol'shih ob®emov dannyh, esli v nih uchastvuyut bol'shie tablicy. Tehnologiya PDQ pozvolyaet sushchestvenno snizit' vremya skanirovaniya. Esli tablica fragmentirovana, to sekcii skaniruyutsya parallel'no, pri etom vyigrysh vo vremeni primerno proporcionalen chislu diskov. Pri skanirovanii posledovatel'nyh tablic ili indeksov primenyaetsya konfiguraciya servera OnLine DS s operezhayushchim chteniem - vremya otklika sokrashchaetsya za schet togo, chto chtenie ocherednyh stranic idet parallel'no s obrabotkoj uzhe prochitannyh.
Parallel'noe postroenie indeksov
Procedura postroeniya indeksa nachinaetsya s ocenki ob®ema dannyh i opredeleniya chisla potokov, neobhodimyh dlya ih skanirovaniya. Zatem vypolnyaetsya parallel'noe skanirovanie dannyh s primeneniem, tam, gde eto vozmozhno, operezhayushchego chteniya. Schitannye dannye pomeshchayutsya v uchastki razdelyaemoj pamyati, i zapuskaetsya parallel'naya sortirovka uchastkov, dlya kazhdogo iz kotoryh stroitsya Vpodderevo; zatem iz nih formiruetsya obshchij indeks. Potoki sortirovki nachinayut vypolnyat'sya, ne dozhidayas' zaversheniya vseh potokov skanirovaniya, tochno tak zhe, potok postroeniya indeksa ne ozhidaet zaversheniya vseh potokov sortirovki - vse, chto mozhno, vypolnyaetsya parallel'no. V rezul'tate dostigaetsya uskorenie, vplot' do desyatikratnogo, po sravneniyu s posledovatel'nymi metodami postroeniya indeksov - v zavisimosti ot ob®emov dannyh, chisla ispol'zuemyh diskov i dostupnoj pamyati.
2.2.5.4 Balans mezhdu OLTP i DSS-prilozheniyami
V sovremennyh informacionnyh sistemah, kak pravilo, trebuetsya odnovremennoe vypolnenie raznyh po harakteru zaprosov k baze dannyh. Vydelyayutsya prilozheniya obrabotki dannyh tipa OLTP, DSS i paketnoj obrabotki.
Primer OLTP-zaprosa: Est' li svobodnyj nomer v kakoj-libo berlinskoj gostinice na 8-e dekabrya?
Primer DSS-zaprosa: Kakovy budut zatraty na realizaciyu strategii X ohrany zdorov'ya sotrudnikov po sravneniyu so strategiej Y s uchetom demograficheskogo profilya kompanii? Zavisit li effektivnost' strategii ot regiona?
Primerami zadanij paketnoj obrabotki mogut sluzhit' massovaya zagruzka dannyh, vydacha bol'shih slozhnyh otchetov, vypolnenie nekotoryh administrativnyh dejstvij, naprimer, po reorganizacii bazy dannyh.
Otvety na zaprosy pervogo tipa dolzhny vydavat'sya prakticheski mgnovenno, zaprosy vtorogo i tret'ego tipov mogut obsluzhivat'sya dostatochno dolgo, no pri otsutstvii ili maloj intensivnosti OLTP-prilozhenij zhelatel'no poluchat' otvety na DSS-zaprosy maksimal'no bystro.
Tehnologiya PDQ ispol'zuetsya v osnovnom dlya bystrogo vypolneniya DSS-zaprosov i paketnyh prilozhenij. Esli ee primenenie nichem ne ogranicheno, to sil'no rasparallelennoe vypolnenie neskol'kih slozhnyh zaprosov privodit k nedopustimomu zamedleniyu OLTP-prilozhenij, vypolnyayushchihsya na tom zhe servere. Upravlenie stepen'yu rasparallelivaniya zaprosov i dolej sistemnyh resursov, vydelyaemyh dlya PDQ-obrabotki, v srede INFORMIX-OnLine DS osushchestvlyaetsya pri pomoshchi neskol'kih parametrov konfigurirovaniya i peremennyh okruzheniya, znacheniya kotoryh dinamicheski nastraivaemy. Znacheniya etih parametrov i peremennyh ustanavlivayutsya sistemnymi administratorami i, v opredelennoj stepeni, prikladnymi programmistami i pol'zovatelyami.
Programmist ili pol'zovatel' zadaet tip kazhdogo zaprosa (obychnyj ili PDQ) i zhelaemuyu stepen' rasparallelivaniya dlya PDQ-zaprosov. Administrator, so svoej storony, dinamicheski ogranichivaet maksimal'nuyu dopustimuyu stepen' rasparallelivaniya PDQ-zaprosov, a takzhe opredelyaet dolyu sistemnyh resursov, vydelyaemyh pod obrabotku PDQ-zaprosov. Parallel'naya sortirovka primenyaetsya dlya lyubyh zaprosov, v tom chisle, obychnyh.
Takim obrazom, rezhim raboty servera INFORMIX-OnLine DS mozhet dinamicheski izmenyat'sya. V chasy naibolee aktivnoj raboty prilozhenij OLTP zaprosy DSS vypolnyayutsya bez rasparallelivaniya (kogda dlya kazhdogo zaprosa sozdaetsya vsegda tol'ko odin potok klassa CPU) ili s nevysokoj stepen'yu rasparallelivaniya. V ostal'noe vremya, ili na serverah, gde prilozheniya OLTP otsutstvuyut, ustanavlivaetsya maksimal'naya stepen' ispol'zovaniya PDQ.
Sobstvenno raspredeleniem resursov i prioritetov v sootvetstvii s ustanovlennymi znacheniyami zanimaetsya special'naya komponenta servera OnLine DS - Menedzher vydeleniya pamyati (Memory Grant Manager - MGM). Menedzher vydeleniya pamyati reguliruet ob®em sistemnyh resursov, potreblyaemyh PDQ-zadaniyami, a takzhe:
2.2.6 Optimizator vypolneniya zaprosov po stoimosti
Optimizator zaprosov opredelyaet naibolee optimal'nyj s tochki zreniya zatrat sistemnyh resursov plan realizacii kazhdogo zaprosa k baze dannyh. Uchityvaetsya chislo obmenov s diskom, zatraty razdelyaemoj pamyati, zatraty na peresylku dannyh po seti i dr. Plan mozhet vklyuchat' parallel'noe vypolnenie operacij ili byt' strogo posledovatel'nym, chto zavisit kak ot struktury zaprosa, tak i ot resursov, vydelyaemyh MGM. Optimizator opiraetsya na statisticheskuyu informaciyu o raspredelenii dannyh po stolbcam tablic, periodicheskim sborom kotoroj upravlyaet administrator.
Naprimer, esli trebuetsya vypolnit' soedinenie dvuh tablic, nahodyashchihsya v raznyh uzlah seti, to optimizator splaniruet etu operaciyu takim obrazom, chto men'shaya po ob®emu tablica budet peredana na server, soderzhashchij bol'shuyu tablicu, gde i budet vypolneno soedinenie (ne obyazatel'no vypolnyat' ego na tom servere, k kotoromu proizvedeno pervoe podklyuchenie). Dopolnitel'naya optimizaciya dostigaetsya za schet fil'tracii tablicy pered ee peresylkoj, t. e. iz®yatiya iz nee ne uchastvuyushchih v dannoj operacii soedineniya strok i/ili stolbcov.
Optimizator daet vozmozhnost' razrabotchiku predvaritel'no poluchit' plan vypolneniya zaprosa, v tom chisle, raspredelennoj tranzakcii. Poluchiv takoj plan, razrabotchik mozhet vyyasnit', chto ne raspolagaet dostatochnoj pamyat'yu, chtoby sohranit' poluchennye v rezul'tate dannye, ili chto vypolnenie zaprosa potrebuet slishkom bol'shih zatrat sistemnyh resursov. V takoj situacii on libo otlozhit vypolnenie zaprosa na drugoe vremya, libo pereformuliruet zapros tak, chtoby suzit' ob®em vozvrashchaemyh dannyh, libo primet kakoe-to drugoe reshenie.
Prikladnoj programmist ili pol'zovatel' ustanavlivaet odin iz dvuh vozmozhnyh urovnej optimizacii - vysokij ili nizkij. Vysokij uroven' optimizacii predpolagaet perebor bol'shogo chisla vozmozhnyh variantov i sam trebuet bol'shih zatrat sistemnyh resursov, v chastnosti, pamyati. Optimizaciya nizkogo urovnya obhoditsya deshevle, poskol'ku perebiraetsya nebol'shoe chislo predpolozhitel'no optimal'nyh variantov, no ostaetsya veroyatnost' "upustit'" nailuchshij variant. Naprimer, plan vypolneniya hranimoj procedury vychislyaetsya zaranee s vysokim urovnem optimizacii i sohranyaetsya, posle chego ustanavlivaetsya nizkij uroven' - togda pri obrashchenii k procedure ispol'zuetsya postroennyj zaranee naibolee optimal'nyj plan.
2.2.7 Sredstva obespecheniya nadezhnosti
Server INFORMIX-OnLine DS predostavlyaet sleduyushchie sredstva dlya vosstanovleniya posle sboev i obespecheniya otkazoustojchivosti:
2.2.7.1 . Zerkalirovanie diskovyh oblastej
Zerkalirovanie v INFORMIX-OnLine DS - eto dublirovanie svyaznoj diskovoj oblasti, vydelennoj pod bazu dannyh, na takuyu zhe po razmeru oblast'. Ishodnaya oblast' nazyvaetsya pervichnoj, a ee kopiya - zerkal'noj. Celi, dlya kotoryh primenyaetsya zerkalirovanie - vysokaya gotovnost' i optimizaciya operacij chteniya.
Vysokaya gotovnost' dostigaetsya za schet togo, chto pri vyhode iz stroya diska, na kotorom nahoditsya pervichnaya oblast', server avtomaticheski prodolzhaet rabotu s ostavshimsya diskom bez perehoda servera v rezhim off-line. Vse operacii chteniya-zapisi proishodyat s zerkal'noj oblast'yu (pri uslovii, chto ona nahoditsya na drugom diske). Vosstanovlenie kopii na pervichnom diske posle ego vklyucheniya proizvoditsya v operativnom rezhime.
Zatraty na zerkalirovanie skladyvayutsya iz zatrat diskovogo prostranstva i zatrat na dopolnitel'nye operacii zapisi. V usloviyah, kogda imeetsya neskol'ko virtual'nyh processorov obmena s diskom, operacii zapisi na oba diska proizvodyatsya parallel'no, i zatraty vtorogo roda svodyatsya k minimumu. K tomu zhe oni kompensiruyutsya optimizaciej operacij chteniya, o kotoroj govoritsya nizhe.
V ideal'nom sluchae zerkalirovanie dolzhno byt' obespecheno dlya vseh oblastej bazy dannyh. Krajne zhelatel'no podderzhivat' zerkalirovanie dlya kritichnyh oblastej, sostavlyayushchih kornevoe prostranstvo bazy dannyh i prostranstva, gde hranyatsya logicheskij i fizicheskij zhurnaly. Pri vyhode iz stroya lyubogo iz nih, esli net zerkal'nogo dublya, server nemedlenno perevoditsya v rezhim off-line. Pri otkaze drugih nezerkaliruemyh oblastej nedostupnymi stanovyatsya tol'ko hranyashchiesya na nih tablicy ili fragmenty tablic - do zaversheniya procedury ih vosstanovleniya. Poetomu dlya naibolee kritichnyh tablic takzhe zhelatel'no podderzhivat' zerkalirovanie.
Optimizaciya operacij chteniya dostigaetsya za schet razbieniya (split read). Stranicy, otnosyashchiesya k nachal'noj polovine oblasti, chitayutsya s pervichnoj oblasti, a stranicy iz vtoroj poloviny - s zerkal'noj. V rezul'tate uskoryaetsya poisk stranicy na diske, poskol'ku maksimal'nyj probeg diskovyh golovok sokrashchaetsya vdvoe.
2.2.7.2 Tirazhirovanie
Tirazhirovanie - eto podderzhanie na drugoj vychislitel'noj ustanovke kopii ob®ektov bazy dannyh. V INFORMIX-OnLine DS realizovano prozrachnoe tirazhirovanie dannyh s osnovnogo servera baz dannyh na vtorichnyj (ili podderzhivayushchij) server, k kotoromu razreshen dostup tol'ko na chtenie i kotoryj mozhet nahodit'sya v drugom geograficheskom punkte. V etoj terminologii server, ne uchastvuyushchij v tirazhirovanii, nazyvaetsya standartnym.
Glavnaya cel' tirazhirovaniya v INFORMIX-OnLine DS - eto obespechenie vysokoj gotovnosti (High Availability Data Replication - HDR). V sluchae otkaza osnovnogo servera vtorichnomu serveru avtomaticheski ili vruchnuyu pridaetsya status standartnogo, s dostupom na chtenie i zapis' (ris. 6, ris. 7). Prozrachnoe perenapravlenie klientov pri otkaze osnovnogo servera ne podderzhivaetsya, no ono mozhet byt' realizovano v ramkah prilozhenij.
Ris. 6. Tirazhirovanie. Osnovnoj server dostupen na chtenie i zapis', vtorichnyj - tol'ko na chtenie.
Ris. 7. Kogda osnovnoj server vyhodit iz stroya, vtorichnyj perehodit v rezhim standartnogo servera i stanovitsya dostupen na chtenie i zapis'.
Posle vosstanovleniya osnovnogo servera, v zavisimosti ot znacheniya parametra konfiguracii, vybiraetsya odin iz dvuh vozmozhnyh scenariev:
Tirazhirovanie osushchestvlyaetsya putem peredachi informacii iz zhurnala tranzakcij (logicheskogo zhurnala) v bufer tirazhirovaniya osnovnogo servera, otkuda ona peresylaetsya v bufer tirazhirovaniya vtorichnogo servera. Takaya peresylka mozhet proishodit' libo v sinhronnom, libo v asinhronnom rezhime. Sinhronnyj rezhim garantiruet polnuyu soglasovannost' baz dannyh - ni odna tranzakciya, zafiksirovannaya na osnovnom servere, ne ostanetsya nezafiksirovannoj na vtorichnom, dazhe v sluchae sboya osnovnogo servera. Asinhronnyj rezhim ne obespechivaet absolyutnoj soglasovannosti, no uluchshaet rabochie harakteristiki sistemy.
Zerkalirovanie, kotoroe takzhe yavlyaetsya prozrachnym sredstvom podderzhaniya vysokoj gotovnosti, obespechivaet tol'ko kopirovanie diskovyh oblastej v predelah odnoj ustanovki servera INFORMIX-OnLine DS i zashchishchaet tol'ko ot diskovyh sboev. Mehanizm tirazhirovaniya obespechivaet podderzhanie polnoj udalennoj kopii baz dannyh i zashchishchaet ot vseh vidov otkazov, vklyuchaya polnyj krah odnoj iz ustanovok.
Pomimo obespecheniya otkazoustojchivoj raboty, tirazhirovanie daet sleduyushchie preimushchestva:
2.2.7.3 Bystroe vosstanovlenie pri vklyuchenii sistemy
Pri vklyuchenii server vsegda proveryaet, ne proizoshlo li poslednee vyklyuchenie sistemy avarijno. V etom sluchae baza dannyh ne razrushena, no mnozhestvo tranzakcij, vypolnyavshihsya v moment sboya, ostalis' v nezavershennom, nekorrektnom sostoyanii. Esli server vyyavil takuyu situaciyu, to on zapuskaet proceduru bystrogo vosstanovleniya, kotoraya obespechivaet vozvrat sistemy v korrektnoe sostoyanie.
2.2.7.4 Arhivirovanie i vosstanovlenie dannyh
INFORMIX-OnLine DS pozvolyaet sozdavat' arhivnye kopii dannyh, a v dal'nejshem fiksirovat' te izmeneniya, kotorye proizoshli na servere s momenta sozdaniya arhiva. Izmeneniya sohranyayutsya v fajlah zhurnala tranzakcij. Arhivnye lenty i lenty s kopiyami zhurnalov tranzakcij mogut zapisyvat'sya parallel'no s dostupom pol'zovatelej k serveru. Procedura vosstanovleniya sostoit iz dvuh shagov - schityvaniya dannyh iz arhivnoj kopii i primeneniya k nim teh izmenenij, kotorye byli zafiksirovany v zhurnalah tranzakcij.
V sostav servera INFORMIX-OnLine DS vhodit utilita OnArchive, predostavlyayushchaya razvitye i gibkie sredstva arhivirovaniya, kopirovaniya zhurnalov tranzakcij i vosstanovleniya informacii. Nizhe perechisleny osnovnye vozmozhnosti etoj utility:
2.2.8 Dinamicheskoe administrirovanie
V usloviyah, kogda bazy dannyh uvelichivayutsya v razmerah, stanovyatsya raspredelennymi i sluzhat osnovoj dlya osobo otvetstvennyh prilozhenij masshtaba predpriyatiya, kotorye dolzhny rabotat' kruglosutochno, vozrastaet rol' razvityh dinamicheskih sredstv administrirovaniya. |ti sredstva dolzhny pozvolyat' administratoram operativno sledit' za takimi harakteristikami raboty servera, kak ispol'zovanie pamyati i virtual'nyh processorov, ocheredi asinhronnogo vvoda-vyvoda, ocheredi paketnyh zadanij i prilozhenij DSS, nalichnoe diskovoe prostranstvo, effektivnost' shem fragmentacii i t. p. Esli kakie-to iz harakteristik neudovletvoritel'ny, to neobhodima vozmozhnost' dinamicheski, ne ostanavlivaya sistemy, izmenit' parametry konfiguracii ili zapustit' neobhodimye administrativnye utility.
Bol'shinstvo parametrov konfiguracii servera yavlyayutsya dinamicheski nastraivaemymi, ih mozhno izmenit', ne ostanavlivaya servera, pri pomoshchi utility ON-Monitor. Pomimo rassmotrennyh vyshe menedzhera pamyati (MGM) i utility arhivirovaniya OnArchive, sredstva administrirovaniya servera INFORMIX-OnLine DS vklyuchayut takzhe sleduyushchie komponenty: interfejs monitoringa sistemy, utility DB/Cockpit i OnPerf, utilita parallel'noj zagruzki/vygruzki dannyh.
2.2.8.1 Interfejs monitoringa sistemy
Vo vremya inicializacii servera OnLine DS avtomaticheski sozdaetsya baza dannyh SMI (System Monitoring Interface). |ta baza soderzhit tablicy, kotorye pozvolyayut poluchat' sleduyushchuyu informaciyu o sostoyanii servera:
Vo vremya raboty servera informaciya v baze dannyh SMI dinamicheski obnovlyaetsya. Ona ispol'zuetsya administrativnymi utilitami, k nej takzhe mozhno obrashchat'sya posredstvom SQL-instrukcii SELECT.
2.2.8.2 Utilita DB/Cockpit
DB/Cockpit - eto utilita, kotoraya predostavlyaet administratoram baz dannyh graficheskij interfejs dlya slezheniya za sostoyaniem baz dannyh i vypolneniya neobhodimyh administrativnyh dejstvij. Osnovnye vozmozhnosti:
Gibkie sredstva dlya opredeleniya kriticheskih znachenij parametrov, pri dostizhenii kotoryh administrator dolzhen poluchit' sootvetstvuyushchee preduprezhdenie, pozvolyayut predotvratit' anomal'nye sostoyaniya servera i postoyanno podderzhivat' ego vysokuyu rabotosposobnost'.
Utilita DB/Cockpit imeet arhitekturu klient/server, i pozvolyaet administratoru sledit' za udalennym serverom. Ona sostoit iz dvuh osnovnyh komponent - zondiruyushchej (probe) i interfejsnoj. Zondiruyushchaya komponenta rabotaet na tom zhe servere, gde ustanovlen podlezhashchij nablyudeniyu server INFORMIX-OnLine DS; ona vybiraet informaciyu iz bazy dannyh SMI i neposredstvenno iz razdelyaemoj pamyati servera. Na osnove etoj informacii zondiruyushchaya komponenta iniciiruet preduprezhdeniya dlya administratora, zapisyvaet zakazannuyu istoricheskuyu informaciyu, peresylaet dannye dlya operativnogo nablyudeniya po zaprosam interfejsnoj komponenty. Interfejsnaya komponenta rabotaet na lyuboj mashine v seti, v tom chisle, na toj, gde ustanovlen server baz dannyh, Ona obespechivaet pol'zovatel'skij interfejs dlya slezheniya za serverom INFORMIX-OnLine DS, posylaet zaprosy na informaciyu o sostoyanii i konfiguracii servera, analiziruet istoricheskuyu informaciyu, vydaet poluchennye ot zondiruyushchej komponenty preduprezhdeniya.
Utilita DB/Cockpit ne trebuet bol'shih zatrat sistemnyh resursov. Sushchestvenno, chto zondiruyushchaya komponenta mozhet rabotat' nezavisimo, i sluzhit' "storozhem" dlya servera INFORMIX-OnLine DS.
2.2.8.3 Utilita OnPerf
OnPerf - utilita s graficheskim interfejsom, kotoraya yavlyaetsya razvitiem imevshejsya v predydushchih versiyah INFORMIX-OnLine utility tbstat. Osnovnye novye vozmozhnosti:
Pri zapuske OnPerf formiruyutsya dva processa - process OnPerf i process sbora dannyh. Process sbora dannyh podklyuchaetsya k razdelyaemoj pamyati INFORMIX-OnLine DS i schityvaet iz nee metriki vypolneniya servera. Sobrannye dannye peredayutsya processu OnPerf, kotoryj obespechivaet ih vyvod v graficheskoj forme.
OnPerf pozvolyaet administratoru zadat' ryad metrik, kotorye neobhodimo buferizovat'. Process sbora dannyh zapisyvaet takie metriki v bufery sbora dannyh, otkuda administrator periodicheski sbrasyvaet informaciyu v fajly. Soderzhimoe etih fajlov mozhno zatem prosmatrivat' pri pomoshchi utility OnPerf.
Vydelyaetsya neskol'ko urovnej metrik, dostupnyh dlya slezheniya, - baza dannyh, operacionnaya sistema, central'nyj processor, virtual'nyj processor, pol'zovatel'skij seans, diskovaya oblast'.
2.2.8.4 Utilita parallel'noj zagruzki
Utilita parallel'noj zagruzki sposobna parallel'no schityvat' dannye iz neskol'kih istochnikov, uskoryaya za schet etogo procedury zagruzki i vygruzki dannyh. Predostavlyaemyj eyu graficheskij interfejs pozvolyaet administratoru bazy dannyh:
Utilita rabotaet v odnom iz dvuh vozmozhnyh rezhimov. V rezhime bystroj zagruzki, dejstviya, obychno soprovozhdayushchie zagruzku - proverka celostnosti po ssylkam, zhurnalizaciya, postroenie indeksov - vypolnyayutsya ne parallel'no s zagruzkoj, a posle ee zaversheniya, chto uskoryaet sam process zagruzki.
2.2.9 Raspredelennye vychisleniya
2.2.9.1 Vzaimodejstvie klient-server
Produkty INFORMIX postroeny na principah arhitektury klient/server. |to oznachaet, chto server INFORMIX-OnLine DS vypolnyaetsya na odnom komp'yutere, a klientskie prilozheniya vypolnyayutsya na drugih komp'yuterah, svyazannyh s serverom set'yu. Pri etom ot klientskih prilozhenij serveru po seti peresylayutsya tol'ko SQL-zaprosy, a ot servera na klientskie mashiny peresylayutsya rezul'taty vypolneniya zaprosov. Preimushchestva takoj arhitektury zaklyuchayutsya v tom, chto servernyj komp'yuter, ne zagruzhennyj vypolneniem klientskih prilozhenij, sposoben effektivno obsluzhit' bol'shee chislo klientov. Pol'zovateli zhe v etom sluchae mogut vybrat' naibolee udobnuyu dlya sebya platformu, naprimer, personal'nyj komp'yuter s MS Windows. V chastnom sluchae klient vypolnyaetsya na toj zhe mashine, chto i server.
Server INFORMIX-OnLine DS soderzhit vse neobhodimye sredstva dlya organizacii vzaimodejstviya lokal'nyh ili udalennyh klientov s serverom bazy dannyh, poetomu priobretenie dopolnitel'nyh produktov ne trebuetsya.
Dlya organizacii vzaimodejstviya klientskih prilozhenij versij 5.0 ili 4.1 s serverom INFORMIX-OnLine DS 7.1 v komplekt postavki vklyuchen relejnyj modul' svyazi (Relay Module 7.1). On mozhet ispol'zovat'sya kak dlya lokal'nogo, tak i dlya setevogo vzaimodejstviya. Setevoe vzaimodejstvie klientskih prilozhenij versij men'she 6.0 s serverom INFORMIX-OnLine DS 7.1 vozmozhno takzhe pri posredstve odnogo iz kommunikacionnyh produktov INFORMIX-NET 5.0 ili INFORMIX-STAR 5.0, kotoryj dolzhen byt' ustanovlen na klientskoj mashine, v tom chisle, na PC.
Podderzhivayutsya setevye protokoly TCP/IP i SPX/IPX. Protokol TCP/IP realizuetsya posredstvom interfejsa soketov UNIX ili TLI, protokol SPX/IPX - posredstvom interfejsa TLI. Obrabotkoj setevogo vzaimodejstviya klientov i serverov v INFORMIX-OnLine DS zanimayutsya setevye virtual'nye processory. V konfiguraciyu servera, v zavisimosti ot intensivnosti setevogo vzaimodejstviya, vklyuchaetsya neobhodimoe chislo setevyh virtual'nyh processorov. Obrabotka setevogo vzaimodejstviya ravnomerno raspredelyaetsya mezhdu setevymi virtual'nymi processorami.
Konfiguraciya razdelyaemoj pamyati vklyuchaet kommunikacionnuyu oblast', cherez kotoruyu lokal'nye klienty mogut vzaimodejstvovat' s serverom. |tot vid vzaimodejstviya naibolee bystryj, i, krome togo, pozvolyaet razgruzit' set'. Svyaz' cherez razdelyaemuyu pamyat' osushchestvlyaetsya sovmestno s setevymi podklyucheniyami dlya udalennyh klientov.
2.2.9.2 Prozrachnost' raspolozheniya dannyh
Esli v seti imeetsya neskol'ko serverov baz dannyh, to, v celyah povysheniya effektivnosti dostupa k dannym ili iz drugih soobrazhenij, administratory mogut peremeshchat' ili dublirovat' bazy dannyh ili tablicy s odnogo servera na drugoj. Mehanizm sinonimov, podderzhivaemyj INFORMIX-OnLine DS, pozvolyaet ekranirovat' ot prikladnyh programm izmeneniya mestopolozheniya dannyh.
2.2.9.3 Raspredelennye bazy dannyh i protokol dvuhfazovoj fiksacii tranzakcij
INFORMIX-OnLine DS podderzhivaet zaprosy k raspredelennym bazam dannyh i avtomaticheski primenyaet protokol dvuhfazovoj fiksacii dlya tranzakcij, kotorye modificiruyut dannye bolee chem na odnom servere baz dannyh, naprimer:
CONNECT TO stores@italy
BEGIN WORK
UPDATE stores:manufact SET manu_code = 'SHM'
WHERE manu_name = 'Shimara'
INSERT INTO stores@france:manufact
VALUES ('SHM', 'Shimara', 30)
INSERT INTO stores@australia:manufact
VALUES ('SHM', 'Shimara', 30)
COMMIT WORK
Zdes' BEGIN WORK, COMMIT WORK - instrukcii, otmechayushchie nachalo i konec tranzakcii, stores - imya bazy dannyh, italy, france, australia - imena serverov.
Vneshne takaya tranzakciya vyglyadit kak tranzakciya v lokal'noj baze. Na samom dele ona sostoit iz ryada lokal'nyh tranzakcij, kazhdaya iz kotoryh mozhet byt' libo zafiksirovana, libo prervana. Raspredelennaya tranzakciya fiksiruetsya tol'ko v tom sluchae, esli zafiksirovany vse lokal'nye tranzakcii. Esli hotya by odna iz lokal'nyh tranzakcij byla prervana, to neobhodimo prervat' i vse ostal'nye.
Kazhdaya tranzakciya, realizuemaya soglasno protokolu dvuhfazovoj fiksacii, vypolnyaetsya pod upravleniem odnogo servera, nazyvaemogo koordinatorom. V kachestve koordinatora vybiraetsya tekushchij server. V primere vyshe eto budet server italy, poskol'ku k nemu otnositsya operator CONNECT.
Pervaya faza nachinaetsya s togo, chto koordinator, poluchiv ot pol'zovatelya instrukciyu COMMIT WORK, rassylaet serveramuchastnikam soobshcheniya o tom, chto nuzhno podgotovit'sya k fiksacii. Kazhdyj uchastnik reshaet, mozhet li on zafiksirovat' svoyu chast' tranzakcii, i posylaet sootvetstvuyushchee soobshchenie koordinatoru.
Vtoraya faza nachinaetsya, kogda koordinator, poluchiv soobshcheniya ot uchastnikov, prinimaet reshenie o fiksacii ili otkate tranzakcii. Esli vse uchastniki prislali polozhitel'nye otvety, to koordinator posylaet im soobshcheniya o tom, chtoby oni zafiksirovali svoi lokal'nye tranzakcii. Esli hotya by odin uchastnik prislal otricatel'nyj otvet ili voobshche ne prislal otveta, to koordinator preryvaet tranzakciyu i posylaet vsem uchastnikam soobshchenie o tom, chto tranzakciyu nuzhno otkatit'.
Procedura vosstanovleniya
Esli odin iz serverov vyshel iz stroya do zaversheniya protokola dvuhfazovoj fiksacii tranzakcii, to neobhodimo vosstanovit' sovokupnuyu soglasovannost' raspredelennyh dannyh. Dlya etoj celi v INFORMIX-OnLine DS predusmotreny special'nye procedury vosstanovleniya, kotorye avtomaticheski vypolnyayut vse neobhodimye dejstviya s uchetom togo, v kakoj situacii i na kakom servere proizoshel otkaz. Edinstvennoe, chto dolzhen sdelat' v etoj situacii administrator - eto perezapustit' server.
Optimizaciya tranzakcij
Pri obrabotke raspredelennyh tranzakcij INFORMIX-OnLine DS ispol'zuet metod optimizacii, osnovannyj na predpolozhenii o preryvanii tranzakcii (presumed abort optimization). Smysl ego zaklyuchaetsya v tom, chto, esli v zhurnale tranzakcij otsutstvuet informaciya o nekotoroj global'noj tranzakcii, to schitaetsya, chto ona prervana. |tot metod pozvolyaet sokratit' chislo operacij obmena s diskom, a takzhe chislo soobshchenij, peresylaemyh mezhdu serverami.
Rassmatrivaemyj metod optimizacii pozvolyaet isklyuchit' dva shaga iz klassicheskogo protokola dvuhfazovoj fiksacii tranzakcij. Vo-pervyh, koordinator ne proizvodit sinhronizirovannoj zapisi na disk o nachale tranzakcii. Sinhronizirovannaya zapis' na disk - dorogostoyashchaya operaciya, i koordinator proizvodit ee tol'ko v dvuh sluchayah - kogda vse uchastniki prisylayut soobshcheniya "mogu zafiksirovat'", i kogda vse uchastniki prisylayut soobshcheniya "tranzakciya zafiksirovana". Esli proishodit otkaz koordinatora do prinyatiya resheniya o fiksacii, i v zhurnale otsutstvuet informaciya o dannoj global'noj tranzakcii, to vse uchastniki schitayut, chto ona prervana, i otkatyvayut svoi chasti tranzakcii. Vo-vtoryh, optimizaciya dostigaetsya tem, chto uchastniki ne dolzhny posylat' koordinatoru podtverzhdeniya ob otkate tranzakcii. Koordinator, esli on prinyal reshenie ob otkate, rassylaet uchastnikam sootvetstvuyushchie soobshcheniya, i srazu zhe otkatyvaet global'nuyu tranzakciyu, izymaya informaciyu o nej iz svoj razdelyaemoj pamyati.
Razreshenie tupikovyh situacij
Tupikovaya situaciya voznikaet, naprimer, kogda rabotayut dva pol'zovatelya, i kazhdyj blokiruet ob®ekt dannyh, neobhodimyj drugomu. Kazhdomu iz nih, dlya togo chtoby zavershit' obrabotku i razblokirovat' svoj ob®ekt, neobhodimo poluchit' dostup k ob®ektu, zablokirovannomu drugim pol'zovatelem. Esli oba ob®ekta nahodyatsya na odnom servere, to INFORMIX-OnLine DS samostoyatel'no obnaruzhivaet i predotvrashchaet takie situacii. Pri obrabotke raspredelennyh zaprosov ispol'zuetsya parametr konfiguracii DEADLOCK_TIMEOUT - vremya, v techenie kotorogo INFORMIX-OnLine DS ozhidaet razblokirovaniya ob®ekta dannyh. Po istechenii etogo perioda odnomu iz pol'zovatelej vydaetsya soobshchenie ob oshibke.
2.2.10 Podderzhka nacional'nyh yazykov
Podderzhka nacional'nyh yazykov (native language support - NLS) v INFORMIX osnovana na specifikacii X/Open XPG3. Sredstva NLS v INFORMIX-OnLine DS podderzhivayut odnobajtnye 8-bitnye platformy NLS. |to pozvolyaet osushchestvlyat' uporyadochenie tekstovyh dannyh, pechatat' i vvodit' daty i denezhnye velichiny po formatam i pravilam, prinyatym v toj strane, gde ispol'zuyutsya produkty. Standart X/Open dlya NLS takzhe obespechivaet migraciyu prilozhenij baz dannyh po stranam, gde ispol'zuyutsya raznye yazyki, s sohraneniem ishodnoj funkcional'nosti.
2.2.11 Sredstva bezopasnosti klassa S2
Realizovannye v INFORMIX-OnLine DS sredstva protokolirovaniya obespechivayut polnuyu podotchetnost' lyubyh manipulyacij s ob®ektami baz dannyh. Sredstva protokolirovaniya polnost'yu sootvetstvuyut trebovaniyam klassa bezopasnosti S2, ustanovlennym Nacional'nym centrom komp'yuternoj bezopasnosti SSHA. Imeetsya versiya INFORMIX-OnLine/Secure, kotoraya obespechivaet povyshennyj uroven' bezopasnosti.
Administrator mozhet zadavat' kak obshchie maski protokolirovaniya, tak i specificheskie maski dlya konkretnyh pol'zovatelej. Maska opredelyaet, kakie dejstviya nad ob®ektami baz dannyh budut fiksirovat'sya. Interfejs s proceduroj protokolirovaniya osushchestvlyaetsya obrashcheniem k utilite onaudit iz komandnoj stroki. Analiz registracionnogo zhurnala proizvoditsya pri pomoshchi utility onshowaudit ili sredstvami SQL.
2.3 Dopolnitel'nye komponenty kompanii Informix dlya vypolneniya specificheskih zadach.
2.3.1 Informix-Enterprise Gateway 7.1
SHlyuz INFORMIX-Enterprise Gateway obespechivaet dlya instrumental'nyh sredstv i prilozhenij baz dannyh, vypolnyaemyh pod upravleniem operacionnoj sistemy UNIX ili Microsoft Windows, dostup k informacii, hranyashchejsya v bazah dannyh raznyh tipov. Dostup realizuetsya pri pomoshchi komplekta programmnyh produktov Enterprise Data Access SQL (EDA/SQL) firmy Information Builders, Inc.
Osnovnye vozmozhnosti shlyuza INFORMIX-Enterprise Gateway:
V kompaniyah, kotorye ranee hranili i obrabatyvali informaciyu na mejnfrejmah, formiruyutsya raspredelennye vychislitel'nye sredy, vklyuchayushchie raznorodnye apparatnye platformy i operacionnye sistemy, kak otkrytye, tak i sobstvennye (proprietary), relyacionnye i nerelyacionnye SUBD. Nalichie takoj sredy - slozhnaya problema dlya otdelov informacionnyh sistem, kotorye dolzhny obespechit' svoim pol'zovatelyam edinoobraznyj dostup ko vsej imeyushchejsya na predpriyatii informacii. SHlyuz INFORMIX-Enterprise Gateway predlagaet sovremennuyu promyshlennuyu tehnologiyu integracii, otvechayushchuyu potrebnostyam korporativnogo dostupa k dannym.
2.3.2 Tehnologiya i komponenty EDA/SQL
Tehnologiya EDA/SQL firmy Information Builders, Inc. pozvolyaet osushchestvlyat' dostup sredstvami SQL ne tol'ko k relyacionnym, no i k nerelyacionnym istochnikam dannyh, takim kak ierarhicheskie bazy dannyh i fajly s opredelennoj strukturoj zapisej (record-oriented files), harakternye dlya mejnfrejmov. Ko vsem dannym, nezavisimo ot formata, obespechivaetsya unificirovannyj relyacionnyj interfejs. Tehnologiya EDA/SQL pozvolyaet takzhe proizvodit' soedineniya dannyh iz raznorodnyh istochnikov.
Tehnologiya EDA/SQL osnovana na arhitekture klient/server. Ona vklyuchaet chetyre klyuchevyh komponenty, neobhodimye dlya polnogo funkcionirovaniya shlyuza Enterprise Gateway.
2.3.2.1 EDA API/SQL
Produkt vstroen v Enterprise Gateway.
EDA API/SQL - biblioteka klientskoj chasti, kotoraya obespechivaet interfejs urovnya vyzovov, opredelennyj firmoj Information Builders, Inc. Posredstvom etogo interfejsa prilozhenie klienta vypolnyaet instrukcii SQL ili udalennye vyzovy procedur.
2.3.2.2 EDA/Link
Produkt vstroen v Enterprise Gateway.
EDA/Link - interfejs obmena zaprosami mezhdu klientami i serverami EDA. Interfejsy EDA/Link podderzhivayut kommunikacionnye protokoly, formiruyut pakety zaprosov i otvetov, proizvodyat autentifikaciyu pol'zovatelej po parolyam, preobrazuyut dannye i vyyavlyayut oshibki peredachi.
2.3.2.3 EDA/SQL Server
Nezavisimyj produkt, dostupnyj ot firmy Information Builders, Inc.
EDA/SQL Server - mnogopotokovyj server baz dannyh, kotoryj upravlyaet vydeleniem i soedineniem dannyh iz relyacionnyh i nerelyacionnyh istochnikov. EDA/SQL Server upravlyaet processami na hostmashinah. On upravlyaet vhodnym potokom zaprosov dannyh, inicializiruet podprocessy dlya interpretacii i translyacii zaprosov, vyzyvaet i marshrutiziruet hranimye procedury, ispol'zuya udalennye vyzovy procedur, marshrutiziruet vyvod i osushchestvlyaet byudzhetnye funkcii i funkcii bezopasnosti mezhdu setevymi serverami.
Enterprise Gateway podderzhivaet EDA/SQL Server versii 2.2 i vyshe.
2.3.2.4 EDA/Data Drivers
Nezavisimye produkty, dostupnye ot firmy Information Builders, Inc.
Drajvery EDA/Data Drivers otobrazhayut zaprosy SQL ili RPC, sgenerirovannye prilozheniem klienta, na tot yazyk, kotoryj ispol'zuetsya na celevom istochnike dannyh. Naprimer, dlya SQL-zaprosa k baze dannyh IMS drajver dannyh IMS sformiruet posledovatel'nost' vyzovov na yazyke DL/L, i otoshlet klientu poluchennyj otvet.
2.3.3 Vozmozhnosti Enterprise Gateway
Enterprise Gateway yavlyaetsya processom servera baz dannyh INFORMIX, kotoryj konvertiruet zaprosy klientov INFORMIX v zaprosy EDA/SQL.
Kogda ot klientskogo prilozheniya postupaet instrukciya SQL ili udalennyj vyzov procedury, prednaznachennyj dlya Enterprise Gateway, to on prosto perenapravlyaetsya na EDA/SQL Server, kotoryj zatem obrashchaetsya k sootvetstvuyushchim relyacionnym ili nerelyacionnym istochnikam dannyh. Otvety i dannye, poluchennye ot EDA/SQL Server, Enterprise Gateway vozvrashchaet prilozheniyu klienta.
2.3.3.1 Prozrachnyj dostup dlya chteniya i zapisi
Enterprise Gateway predstavlyaet soboj edinyj shlyuz, kotoryj obespechivaet prozrachnyj dostup k dannym v masshtabah predpriyatiya. Konechnye pol'zovateli obrashchayutsya k Enterprise Gateway tak zhe, kak k serveru baz dannyh INFORMIX. Dostup na chtenie i zapis' osushchestvlyaetsya posredstvom standartnyh instrukcij SQL ili udalennyh vyzov procedur (RPC - Remote Procedure Call).
Dlya SQL podderzhivayutsya oba standarta sintaksisa - ANSI-92 SQL i ANSI-89 SQL; tekushchaya versiya EDA/SQL podderzhivaet sintaksis ANSI-89 SQL.
Dostup posredstvom RPC obespechivaetsya dlya instrumentov razrabotki i prilozhenij INFORMIX, a takzhe tret'ih firm. Udalennye vyzovy procedur EDA/SQL vyglyadyat kak obrashcheniya k hranimym proceduram, poetomu dlya ih ispol'zovaniya v prilozheniya trebuetsya vnesti lish' minimal'nye izmeneniya. RPC pozvolyayut vypolnyat' operacii chteniya i zapisi i vozvrashchat' mnogostrochnye rezul'taty.
Dlya obrabotki mnogostrochnyh naborov dannyh, poluchennyh v rezul'tate vypolneniya RPC ili instrukcii SQL, v Enterprise Gateway podderzhivaetsya mehanizm rolliruemyh kursorov (scroll cursors), kotoryj pozvolyaet osushchestvlyat' pryamoj i obratnyj prosmotr naborov dannyh.
2.3.3.2 Raspredelennye soedineniya
Enterprise Gateway mozhet uchastvovat' v raspredelennyh soedineniyah, koordiniruemyh serverom baz dannyh INFORMIX. |to pozvolyaet importirovat' v bazy dannyh INFORMIX i/ili integrirovat' s nimi dannye iz raznorodnyh vneshnih istochnikov.
2.3.3.3 Konfigurirovanie Enterprise Gateway
Enterprise Gateway prost v konfigurirovanii. Soedinenie klienta s Enterprise Gateway konfiguriruetsya tochno tak zhe, kak soedinenie mezhdu klientskoj chast'yu prilozheniya INFORMIX i serverom INFORMIX-OnLine DS ili INFORMIX-SE. Naprimer, prilozhenie pod MS Windows, sozdannoe instrumentom razrabotki INFORMIX-NewEra, konfiguriruetsya odinakovo, nezavisimo ot togo, obrashchaetsya li ono k serveru baz dannyh INFORMIX ili k Enterprise Gateway.
Enterprise Gateway vypolnyaetsya pod upravleniem operacionnoj sistemy UNIX i dolzhen imet' dostup k EDA/SQL Server cherez set' TCP/IP. Soedinenie Enterprise Gateway i EDA/SQL Server konfiguriruetsya pri pomoshchi obychnyh konfiguracionnyh fajlov TCP/IP i konfiguracionnogo fajla EDA/Link.
2.3.3.4 Bezopasnost'
Enterprise Gateway podderzhivaet centralizovannoe upravlenie pol'zovatel'skimi identifikatorami (ID) i parolyami, otobrazhaya ih iz sredy INFORMIX v sredu EDA/SQL. EDA/SQL Server obespechivaet bezopasnost' putem vzaimodejstviya s podsistemami bezopasnosti sootvetstvuyushchih OS. Naprimer, v MVS osushchestvlyaetsya vzaimodejstvie s podsistemami bezopasnosti RACF, ACF2 i CA-Top Secret.
2.3.4 Biblioteki sopryazheniya servera Informix-OnLine DS s menedzherami tranzakcij: Informix-TP/XA i Informix-TP/TOOLKIT
V sostav instrumental'nogo produkta INFORMIX-ESQL/C vhodit biblioteka C-programm INFORMIX-TP/XA. |ta biblioteka obespechivaet dlya prilozhenij, postroennyh pri pomoshchi INFORMIX-ESQL/C, sopryazhenie servera INFORMIX-OnLine DS s menedzherami tranzakcij, osnovannymi na standarte X/Open-XA, naprimer, TUXEDO System/T. Analogichnuyu vozmozhnost' obespechivaet biblioteka 4GL-funkcij INFORMIX-TP/Toolkit dlya prilozhenij na osnove INFORMIX-4GL. Takoe sopryazhenie pozvolyaet organizovat' uchastie servera INFORMIX v raznorodnyh raspredelennyh tranzakciyah s serverami baz dannyh drugih postavshchikov, podderzhivayushchih standart X/Open-XA, i ispol'zovat' prochie preimushchestva, kotorye predostavlyayut sovremennye menedzhery tranzakcij:
2.4 Zaklyuchenie
Esli rassmatrivat' sozdanie i razvitie informacionnoj sistemy (IS) kak istoricheskij process, to ocenka SUBD kak bazisa dlya sozdaniya ili razvitiya IS mozhet provodit'sya po trem napravleniyam:
Vzaimodejstvie s unasledovannymi bazami dannyh obespechivaet shlyuz INFORMIX-Enterprise Gateway.
Produkty poslednej versii INFORMIX obladayut vysokimi potrebitel'skimi kachestvami. Perechislim osnovnye iz nih.
Vysokaya proizvoditel'nost'
Ee uvelicheniyu sposobstvuyut sleduyushchie svojstva i optimiziruyushchie mehanizmy servera INFORMIX-OnLine DS:
Vysokaya proizvoditel'nost' na prilozheniyah OLTP, DSS, paketnyh zadaniyah i ih sochetaniyah podtverzhdaetsya testami TPC (Transaction processing Performamce Council), osobenno na mnogoprocessornyh platformah.
Masshtabiruemost'
|tim terminom oboznachaetsya takoe svojstvo servera, kotoroe obespechivaet pri uvelichenii dostupnyh vychislitel'nyh resursov (kolichestva ili bystrodejstviya processorov, chisla diskov) sootvetstvuyushchee uluchshenie sistemnyh harakteristik. Pod uluchsheniem sistemnyh harakteristik ponimaetsya, naprimer,
Perechislim svojstva i mehanizmy servera, obespechivayushchie masshtabiruemost':
Universal'nost' servera
Vozmozhnost' smeshannoj zagruzki ego prilozheniyami OLTP, DSS i paketnymi zadaniyami, obespechivaetsya sredstvami parallel'noj obrabotki slozhnyh zaprosov i sredstvami operativnoj nastrojki, kotorye pozvolyayut upravlyat' balansom sistemnyh resursov mezhdu raznymi tipami prilozhenij.
Prakticheskaya osushchestvimost' smeshannoj zagruzki podderzhivaetsya takzhe vsemi mehanizmami, napravlennymi na effektivnoe razdelenie resursov i povyshenie proizvoditel'nosti, poskol'ku bez etogo nevozmozhno provodit' obrabotku trudoemkih zaprosov, sohranyaya priemlemoe vremya otklika dlya prilozhenij OLTP.
Vysokaya dostupnost' dannyh
Dannye stanovyatsya nedostupny pol'zovatelyam, esli proizoshel programmnyj ili apparatnyj sboj, a takzhe esli server ostanovlen s cel'yu vypolneniya opredelennyh administrativnyh dejstvij. Server INFORMIX-OnLine DS obladaet ryadom vozmozhnostej, kotorye pozvolyayut povysit' nadezhnost' IS i prakticheski otkazat'sya ot planovyh prostoev:
Funkcional'nye vozmozhnosti servera
Sootvetstvuyut vhodnomu urovnyu standarta ANSI-92 SQL i vklyuchayut, pomimo rassmotrennyh vyshe, sleduyushchie sredstva:
Sredstva bezopasnosti
V servere INFORMIX-OnLine DS eti sredstva sootvetstvuyut standartu klassa C2.
Otkrytost'
|to slozhnoe ponyatie, vklyuchayushchee ocenki po mnogim napravleniyam. Stepen' otkrytosti opredelyaet stepen' integriruemosti SUBD i produktov, sozdannyh na ee osnove, v raznoobraznyh apparatnyh, programmnyh, administrativnyh, nacional'nyh i dr. sredah, chto chrezvychajno vazhno kak dlya postroeniya IS v nastoyashchem, tak i dlya ee razvitiya v budushchem. Perechislim nekotorye svojstva, harakterizuyushchie otkrytost' INFORMIX:
Sredstva razrabotki
Sredstva razrabotki i sredstva dostupa dlya konechnogo pol'zovatelya, v osobennosti, ob®ektno-orientirovannyj instrument gruppovoj razrabotki prikladnyh sistem s graficheskim interfejsom INFORMIX-NewEra, ocenivayutsya ekspertami kak vysokorazvitye instrumenty, otvechayushchie sovremennym trebovaniyam. Pomimo etogo INFORMIX podderzhivaetsya mnogimi instrumental'nymi sistemami nezavisimyh proizvoditelej.
S tochki zreniya razvitiya informacionnoj sistemy v budushchem vazhny takie harakteristiki, kak perspektivnost' SUBD po primenyaemym metodam i planiruemye napravleniya razvitiya, poskol'ku ot etogo zavisyat vozmozhnosti razvitiya IS. Arhitekturnye i tehnologicheskie resheniya servera otvechayut sovremennym predstavleniyam v etoj oblasti i postoyanno sovershenstvuyutsya. V blizhajshih versiyah planiruetsya:
Sushchestvennoe soobrazhenie pri vybore produkta - stabil'nost', podtverzhdaemaya obshchim stazhem i "zapasom liderstva" kompanii, t. e. obshchej dolej rynka. Dolya INFORMIX na mirovom rynke SUBD - primerno 20%, v poslednie gody imeet tendenciyu k rostu.
Vse eto pozvolyaet rassmatrivat' INFORMIX kak perspektivnuyu SUBD, kotoraya mozhet sluzhit' osnovoj dlya postroeniya razvityh IS.
2.5 Literatura
1. G. G. Baron. Parallel'nye arhitektury serverov baz dannyh. Jet Info, Vyp. 1, 1995.
2. INFORMIX-OnLine Dynamic Server. Administrator's Guide, Vol. 1,2. Version 7.1. 1994, INFORMIX SoftWare Inc.
3. INFORMIX-OnLine Dynamic Server 6.0, 7.1. Training Course, 1993, 1994, INFORMIX SoftWare Inc.
4. INFORMIX-OnLine Enterprise Gateway Version 7.1. Technical Brief. 1994, INFORMIX SoftWare Inc.

Last-modified: Tue, 15 Sep 1998 12:44:51 GMT
Ocenite etot tekst: