Vous êtes sur la page 1sur 9

Arhitecturi paralele n SGBD-urile actualesoftware

Multiprocesarea ofer imense avantaje potentiale SGBD-urilor actuale. Abordrile marilor productori sunt ns extrem de diverse. Desi marile companii productoare de software de gestiune a bazelor de date relationale fac eforturi deosebite n a actualiza si mbuntti performantele sistemului lor , exist n continuare un decalaj semnificativ ntre realizrile lor actuale si evolutia mult mai rapid a tehnologiilor hardware si de comunicatie ce permit realizarea de medii eterogene complexe utiliznd masini din ce n ce mai performante.

Tehnologii de procesare paralel - perspective


Marile companii producatoare de sisteme de gestiune a bazelor de date relationale bazate pe sistemul de operare Unix se afl acum n competitie pentru a gsi cele mai bune solutii care s satisfac cererile noii generatii de sisteme distribuite client/server, cereri legate ndeosebi de distribuirea unei mari varietti de tipuri de date pe o si mai mare varietate de masini cuplate n configuratii de retele eterogene. Aplicatiile tot mai complexe mping n prezent mediile de calcul la limita posibilittilor lor de a le procesa. Multi utilizatori si bazeaz deciziile pe informatii depsite deja de cteva zile deoarece sistemele lor nu au capacitatea de a furniza analize n timp real. Pentru a ntmpina noile cerinte, companiile producatoare de sisteme de calcul au evoluat de la sistemul uniprocesor la arhitecturi de multiprocesare simetric, cluster-e si chiar arhitecturi cu procesare paralel masiv. Totodat, companiile de software situate n topul vnzrilor de sisteme de baze de date relationale - Oracle Corp., Sybase Inc., Informix Software Inc., IBM Corp. - au dezvoltat n acest an noi versiuni ale sistemelor lor

de baze de date care utilizeaz server-e n multiprocesare simetrica (SMP), multiprocesare asimetric sau procesare pe mai multe ci de control a executiei ("multithreaded"). Aceste versiuni noi pun ns probleme mai complexe att n

ceea ce priveste administratrea de sistem ct si dezvoltarea de aplicatii. O cale viabil de crestere a performantelor bazelor de date actuale este adoptarea diverselor metode de procesare paralel n care se include si "multithreading" sau procesarea paralel a cererilor. Arhitectura "multithreaded" (implementat pentru prima oar n sistemul de gestiune a bazelor de date Sybase), mbuntteste performantele tranzactionale prin reducerea timpului de executie a proceselor, nlturnd totodat strile de proces "idle" prin utilizarea de ci multiple de control al executiei ("threads") comune unui proces. Pentru a ntelege si compara solutiile adoptate de fiecare companie n parte este necesar clarificarea diferentei dintre procesarea paralel si procesarea pe multiple ci de control al executiei ("multithreaded"). Ambele modele implic executarea de task-uri multiple n paralel, dar n timp ce procesarea paralel implic mai multe procese ce se executa pe mai multe unitti de prelucrare, "multithreading" se refer la un singur proces ce poate rula pe mai multe unitti de prelucrare simultan. Deci cile multiple de control al executiei sunt o form mai simpl de paralelism, ele rulnd sub un acelasi proces si utiliznd n comun anumite variabile ale mediului. Toate cile de executie comune unui proces mpart resurse comune - date, memorie sau fisiere deschise - furniznd unei aplicatii posibilitatea de a lansa task-uri multiple simultan n cadrul unui singur proces. n cazul proceselor paralele, atunci cnd unitatea central de executie plaseaz un proces n asteptare n timp ce un alt proces se execut, unitatea trebuie s "memoreze" ntr-o zon de memorie temporar contextul de executie al respectivului proces; deci "overhead"-ul de mentinere a unui proces distinct include un spatiu de adrese de memorie complet separat, spre deosebire de procesarea prin cai paralele de control al executiei n cadrul unui singur proces pentru care "overhead"-ul de sistem este considerabil mai mic. n "multithreading", serverul de baze de date asigneaz "thread"-uri cererilor aflate n executie, realiznd si schimbarea dinamic a cii pe care o cerere ruleaz la un moment dat; dac o cerere se afl n stare de asteptare, serverul va realiza printr-un mecanism de "swapping" nlocuirea acestei cereri cu o alt cerere care va fi asignat aceleiasi ci. Rezultatul se concretizeaz n optimizarea timpului de executie a cererilor si deci mbunttirea performantelor de interogare a bazelor de date n sisteme distribuite.

Tipuri de arhitecturi hardware paralele


Pentru a putea discuta despre sistemele de gestiune a bazelor de date moderne este necesar o trecere sumar n revist asupra noilor concepte de arhitecturi hardware ce permit procesarea paralel sub diferitele ei aspecte. Cele mai utilizate arhitecturi hardware paralele ce exploateaz multiple procesoare, memorii mari si mai multe unitti de disc sunt: arhitectura "Shared nothing" n care fiecare procesor detine propriile sale unitti de memorie si disc. arhitectura "Shared disks" utilizeaz multiple procesoare, fiecare cu unitatea sa de memorie dar cu sistem de disc partajat. arhitectura "Symmetric Multiprocessing" (SMP) utilizeaz procesoare multiple care detin n comun unittile de memorie si disc. In prezent, pentru a atinge performante ridicate din punctul de vedere al procesarii online a tranzactiilor (OLTP "Online Transaction Processing"), cele mai bune arhitecturi sunt considerate a fi cele uniprocesor si cele n multiprocesare simetric (SMP). Pe de alt parte ns, sistemele paralele masive sau sistemele "shared-nothing" sunt excelente pentru suport decizional pe scar larg. Arhitecturile n cluster, cum este si HACMP/6000 al companiei IBM, ofer ns alte avantaje, cum ar fi de exemplu naltul grad de disponibilitate; dac un nod din cluster cade, un alt nod preia temporar sau definitiv lucrrile primului. Un al doilea avantaj este creat de faptul c fiecare nod din cluster poate fi la rndul su o masin n multiprocesare simetric, asigurnd cluster-ului o scalabilitate mult mai mare. Prezentm n continuare cteva dintre facilittile cele mai importante legate de lucrul n arhitecturi cluster lund drept exemplu pachetul software IBM HACMP/6000 destinat aplicatiilor care mbin performantele ridicate de executare a tranzactiilor cu lucrul n retele extinse eterogene, cu nalt grad de disponibilitate hardware si software. HACMP/6000 Versiunea 2.1 - multiprocesare n cluster Programul HACMP/6000 permite realizarea de arhitecturi n cluster, o form de procesare paralel care distribuie lucrul ntre mai multe resurse de procesare fr cresterea excesiv a overhead-ului de sistem asigurnd n acelasi timp si un grad de scalabilitate bun n vederea unor extinderi viitoare ale configuratiei. Pachetul de programe se compune din dou module de baz: modulul HA ("High Availability") care detecteaz si recupereaza erori la nivelul dispozitivelor externe (discuri, cuploare de disc), al retelelor si adaptoarelor de retea, ct si la nivel de procesor. Dac un nod din cluster devine indisponibil, timpul de recuperare nominal realizat de modulul HA este cuprins ntre 30 si 300 de secunde. modulul CMP ("Cluster MultiProcessing") intr n actiune cnd dou sau mai multe server-e acceseaz concurential acelasi subsistem de discuri. Accesul concurent la disc necesit ns suport la nivelul aplicatiei pentru mecanismul de blocare ("locking") si controlul accesului la date comune.

HACMP/6000 utilizeaz dou modele de blocare a accesului concurential la discuri: modelul standard UNIX si mecanismul de blocare oferit de utilitarul de gestionare a blocrilor n cluster CLM ("Cluster Lock Manager") care permite sase tipuri de blocare, printre care mentionm blocarea asincron si blocarea pe blocuri ce contin date globale.

Tipuri de resurse utilizate de HACMP/6000


Versiunea HACMP/6000 2.1 utilizeaz o metodologie de configurare flexibil care asociaz fiecare resurs cu un nod sau o adres. Aceasta permite membrilor din cluster s-si definesc resursele pe care le detin si pe cele pe care le preiau din diferite noduri. Aceast versiune defineste 2 tipuri de resurse: w resurse proprietare: detinerea unei astfel de resurse denot o relatie direct ntre un singur nod si acea resurs. Cnd nodul proprietar este activ n cluster, resursa identificat apartine acelui nod. n configuratii cu acces concurent, o resurs mono-disc poate fi detinut de mai multe noduri. w resurse preluate: aceste resurse se leag la un nod anume desemnat atunci cnd nodul proprietar al resursei este detasat din cluster (devine indisponibil).

Configuratii "High Availability"


Un mediu HA pentru aplicatiile complexe care necesit disponibilitate continu si fiabilitate foarte mare, poate fi configurat n mai multe moduri. Prezentm mai jos trei modele de configuratii posibile ntr-un sistem cluster compus din dou masini Unix: modelul "hot standby or simple fallover" n care procesorul activ execut aplicatia si procesorul aflat n "standby" asteapt o cdere a primului procesor. Masina "standby" nu este neaprat n asteptare pasiv, ea putnd prelua din sarcinile aplicatiei masinii primare, atunci cnd capacitatea acesteia din urm este depasit. modelul "rotating standby" permite o configurare la fel ca cea anterioara cu deosebirea c rolurile celor dou masini pot fi interschimbate. modelul "mutual takeover or partitioned workload": aceasta configuratie permite fiecrui procesor s realizeze back-up pentru aplicatiile rulnd pe oricare dintre procesoarele cluster-ului; configuratia realizeaz partitionarea datelor ntre nodurile existente n cluster. Pentru aplicatiile complexe cu misiune critic, pachetul de programe HACMP/6000 ofer urmtoarele facilitti: reprezint o alternativ la configuratia SMP asigurnd o mai mare fiabilitate. mbuntteste utilizarea masinilor mono-procesor asigurnd scalabilitate fr nlocuirea resurselor hardware si software n configuratie "mutual takeover". configuratia cu acces concurent la disc ( utiliznd modulul HA) permite o nalt functionalitate si fiabilitate. extinde posibilittile unei instalri curente n configuratie "mutual takeover", dublnd efectiv capacitatea de procesare prin mprtirea lucrului ntre dou sau mai multe procesoare cuplate n cluster. O mare parte dintre proiectantii de baze de date (Sybase, Informix, IBM DB2/6000, Progress) prefer s ruleze programul HACMP /6000 n configuratii "hot standby" sau "rotating standby" pentru c evit partitionarea n cazul unor baze de date foarte mari (fiecare masin din cluster are disc propriu si accesul la tabele situate pe alt disc se face numai prin retea) bazndu-se pe un model de arhitectur "shared nothing". Sistemul de gestiune Oracle a preferat ns modelul de arhitectur hardware "shared disks" (cu partitionarea datelor).

Solitii de implementare
Procesarea paralel, definind dou sau mai multe procesoare ce execut procese concurente si actioneaz ca o singur unitate, permite rularea de aplicatii complexe sub sistemul UNIX. Cele mai multe dintre sistemele de gestiune a bazelor de date relationale sunt n prezent mbunttite pentru a beneficia de procesarea paralel n sisteme eterogene, si a permite rularea de aplicatii complexe cu misiune critic. Compania de software care va veni cu un set de solutii optime pentru a integra bazele de date cu noile tehnologii de distribuire a datelor, va detine controlul asupra pietei n acest domeniu. Distribuirea optim a datelor este dificil din punct de vedere tehnologic, acest proces fiind puternic dependent de cerintele pentru asigurarea unui bun timp de rspuns la cereri, asigurarea integrittii datelor, disponibilitate continu, interoperabilitate etc. Sistemele de gestiune a bazelor de date moderne utilizeaz o serie de notiuni abstracte si strategii asociate pentru a putea ndeplini cerintele aplicatiilor actuale. Tranzactia, de exemplu, (definit ca o colectie de operatii care asigur trecerea unei baze de date dintr-o stare consistent logic n alta), poate fi utilizat si n cadrul datelor distribuite pentru a asigura n retea trecerea unor grupuri de date si operatii asociate de la un post client la server sau de la un server la altul. Cea mai mare parte dintre productorii de sisteme de baze de date au creat monitoare

de procesare a tranzactiilor (TP - "Transaction Processing") ce reprezint utilitare evoluate care gestioneaz tranzactiile distribuite n retele eterogene. Metoda de comunicatie standard ntre monitoarele TP si sistemele de baze de date a fost acceptat ca fiind protocolul X/A ce face parte din grupul de standarde X/Open. n prezent, serverele Sybase System 10 si Oracle 7 suporta protocolul X/A, n timp ce Informix OnLine ader indirect la acest protocol printr-un produs auxiliar, Informix TP/XA. Din punctul de vedere al asigurrii integrittii datelor n sisteme client/server distribuite, productorii de software de gestiune a bazelor de date au abordat urmtoarele strategii: w tehnica "two-phase commit" prin care toate modificrile impuse de o tranzactie asupra unei baze de date sunt fie comise (executia tranzactiei este finalizat) fie sunt anulate, cu revenirea bazei de date n starea anterioar efecturii tranzactiei. Aceast strategie nu este adecvat pentru retelele eterogene complexe n care probabilitatea de cdere a unui nod este mare si nici pentru sisteme cu misiune critic. Ea este utilizat ca o cale de a asigura faptul c toate server-ele detin copii identice ale bazei de date n orice moment. w strategia de replicare a datelor este n prezent solutia adoptat de companiile Oracle, Sybase si Informix. Replicarea este un proces n cadrul cruia mai multe server-e detin mai multe copii identice ale unei baze de date. Strategia de replicare a datelor difer esential de "two phase commit" prin aceea ca replicarea garanteaz identitatea copiilor bazelor de date distribuite numai n anumite momente sau sub anumite conditii. Tehnica de replicare a datelor utilizat de server-ul Oracle 7 este denumit "Table Snapshots", prin care server-ul central ("master") copiaz la anumite momente de timp definite, numai acele prti din baza de date care s-au modificat, propagnd apoi aceste modificri n retea. Mecanismul de replicare utilizat de server-ul de baze de date Informix este similar metodei "snapshots" utilizat de Oracle. Informix utilizeaz fisiere "log" de "backup" pentru a determina datele din tabelele bazei de date ce trebuie replicate (care contin modificri). Serverele de replicare reprezint numai nceputul unei ntregi generatii de produse software care implementeaz concepte abstracte referitoare la distribuirea datelor n medii eterogene mpreun cu tehnologii avansate de gestiune si procesare paralel, optimizat a tranzactiilor. Informix-OnLine, o arhitectur scalabila dinamic (DSA) Compania Informix, a realizat o reproiectare complet a sistemului su, introducnd facilitti de multiprocesare simetric (SMP). n situatiile n care serverul Informix versiunea 6.0 a utilizat procesarea paralel, performantele au crescut n comparatie cu arhitecturile mai vechi. De exemplu, compania AT&T Network, un mai vechi client Informix, a fost impresionat de versiunea 6.0 creat n 1993. Utiliznd vechea versiune 5.0 a server-ului Informix, timpul de realizare a unui index n baza de date era de 6 ore, pe cnd cu versiunea 6.0 acest timp s-a redus la 30 de minute. Desi nu s-au mbunttit toate operatiile efectuate n bazele de date, procentul mediu de timp cstigat este de aproximativ 25. Pentru administratorii de sistem care consider procedurile de "backup" cea mai serioas problem, lista redus de operatii n procesare paralel oferit totusi de server-ul Informix 6.0 a reusit s rezolve mare parte din problemele legate de accesarea concurential. Versiunea de server Informix 6.0 a permis paralelism numai pe anumite operatii (creare de indecsi, sortri, backup, recuperare de date) si ruleaz pe unele platforme de multiprocesare simetric (SMP). n acest an a fost implementat serverul Informix-OnLine/DSA ("Dynamic Scalable Architecture") versiunea 7.0 a crui arhitectur scalabil poate gestiona scanri, unificri (join), sortri si interogri paralele pe bazele de date. n evolutia sistemelor Informix OnLine se desprind trei faze ce includ urmtoarele versiuni: Informix-OnLine/DSA DSA/PDQ ("Parallel Database Query") DSA/XMP ("Extended Massively Parallel") Informix-OnLine/DSA Arhitectura DSA permite o multi-procesare flexibil orientat pe "multithreading" att pentru medii de procesare OLTP ct si pentru sisteme de luare de decizii ("Decision Support System" - DSS). n medii OLTP, un numr mic de procese pe server pot gestiona eficient sesiuni utilizator multiple. ntr-un mediu DSS, o sesiune mono-utilizator poate s detin mai multe ci de control al executiei care ruleaz n paralel utiliznd eficient resursele hardware. Informix-OnLine/DSA/PDQ Aceast versiune de arhitectur elaborat n 1994, transform o singur operatie pe baz de date ntr-un set de operatii paralele, ceea ce reduce substantial timpii de procesare pentru operatiile de tip OLTP si DSS att timp ct mai multe procesoare lucreaz pentru o singur tranzactie. DSA/PDQ ruleaz pe arhitecturi SMP strns cuplate si are n vedere medii ca OLTP, DSS, Online Complex Processing (OLCP) sau procesarea n loturi. Informix-OnLine/DSA/XMP Aceast versiune Informix cu procesare paralel masiv este programat pentru finalizare n 1995 si va rula pe arhitecturi slab cuplate ("loosely coupled") si arhitecturi MPP ("Massively Parallel Processing"). DSA/XMP poate beneficia de avantajele oferite de multiprocesarea distribuit n cluster-e cum ar fi programul HACMP/6000 ("High Availability Cluster Multiprocessing") oferit de compania IBM. Oracle - Tehnologii de procesare paralel

Compania Oracle a implementat n 1994 versiunea 7.1 a sistemului su de gestiune Oracle7. Serverul paralel Oracle7 realizeaz un echilibru mai bun ntre necesittile de multiprocesare si o mai bun administrare de sistem. Att Informix ct si Sybase necesit partitionarea special a discurilor n procesarea paralel, spre deosebire de Oracle care consider c sistemul su este superior celorlalte dou din acest punct de vedere. Sistemul Oracle7 versiunea 7.1 mentine automat mai multe copii ale acelorasi date pe mai multe server-e, ceea ce elimin necesitatea unei munci laborioase de partitionare a discurilor. O critic adus de celelalte companii (Informix, Sybase) afirm c Oracle7 utilizeaz resursele sistemului de operare, cum ar fi semafoarele, pentru a permite multiplelor procese s negocieze accesul, nedetinnd de fapt o multiprocesare pe ci separate de executie n adevratul sens. Deci din acest punct de vedere se afirm c serverul Informix ar avea un potential mai ridicat pentru performante nalte dect omologul firmei Oracle. Noile optiuni de interogare paralel n serverul Oracle7 vor permite masinilor ce lucreaz n multiprocesare simetric (SMP), n multiprocesare n cluster-e si procesare paralel masiv (MP) s execute o singur cerere (tranzactie) pe mai multe unitti de prelucrare (CPU) asigurnd astfel o scalabilitate aproape liniar cu fiecare procesor adugat n configuratie. Server-ul paralel Oracle7 (OPS) OPS a fost implementat si sub pachetul de programe IBM HACMP/6000 pe sisteme IBM - SPx (masini SP1 si SP2 cu procesare paralel bazate pe arhitectura RISC) si permite mai multor instante ale server-ului de baze de date Oracle s ruleze concurent si independent. Fiecare instant ruleaz n propriul su nod de procesare si n propria zon de memorie partajat ("Shared Global Area Memory") avnd un set propriu de procese Oracle7 n "background" (monitorul sistemului, monitorul de proces, scrierea n baza de date, etc.) utilizate la backup si la regsirea datelor n situatii de cdere a sistemului. Aceleasi fisiere ale bazei de date sau fisierele de gestiune pot fi accesate de orict de multe instante ale server-ului Oracle7. Toate instantele de server Oracle7 pot executa tranzactii n mod concurential asupra aceleiasi baze de date dnd posibilitatea utilizatorilor s beneficieze de puterea de procesare a mai multor unitti de prelucrare. Din punctul de vedere al utilizatorului, mediul paralel Oracle si ascunde complet paralelismul. Deoarece softwareul de server Oracle utilizeaz aceeasi interfat SQL n toate bazele de date ale sistemului, utilizatorul interactioneaz numai cu server-ul de baze de date Oracle standard. Paralelismul nu adaug nici comenzi noi si nici extensii la cele standard, optimizarea resurselor si gestionarea paralel realizndu-se automat. Serverul Oracle 7.1 n sisteme cluster ntr-un sistem cluster configurat cu programul HACMP/6000 (sistem de tipul "shared-disk") si lucrnd n modul de acces concurential, server-ul paralel Oracle permite diferitelor noduri din cluster s mpart aceeasi aplicatie. Aceast facilitate depseste bariera de performant a sistemelor de gestiune a bazelor de date relationale (SGBDR) n sistem uniprocesor. Pentru cresterea performantelor n cluster-e HACMP/6000, server-ul paralel Oracle7 utilizeaz o gestiune paralel a memoriei cache facilitat de modulul de administrare a blocrilor n mediu distribuit ("Distributed Lock Manager" - DLM) al cluster-ului. Fiecare nod din cluster detine un cache local continnd acele blocuri din bazele de date care au fost recent accesate de tranzactii rulnd n acel nod. Pentru reducerea timpului de rspuns la cereri complexe pe mai multe tabele mari, anumite operatii de sortare, scanare, unificare sunt realizate n tehnologie paralel utiliznd optiunea de cereri paralele a server-ului Oracle 7.1 pe masini IBM SPx. Prin scanarea paralel, nodurile lucreaz simultan pentru a cuta n diverse tabele ale bazei de date, reducndu-se astfel cantitatea de lucru pe fiecare nod n parte si obtinndu-se o crestere substantial a performantelor. Unificarea paralel permite mai multor noduri scanarea de tabele separate, urmat apoi de unificarea selectiilor n paralel pentru a furniza rapid rspunsul final. Sortarea paralel mparte datele n mai multe transe astfel nct fiecare nod s sorteze o mic parte din date, dup care nodurile colaboreaz pentru a combina rapid listele partiale sortate ntr-un rezultat final. n sisteme paralele masive (cum sunt si masinie IBM SPx) care utilizeaz un mare numr de procesoare ce lucreaz la ndeplinirea aceleiasi cereri, scanarea, unificarea si sortarea se execut n paralel, performantele de executie ale tranzactiilor complexe mbunttindu-se substantial. Oracle 7.1 - ncarcare paralel de date si indexare paralel Server-ul Oracle 7.1 utilizez facilitatea de ncrcare paralel ("Parallel Direct Load") n tabele a datelor externe nestructurate. ncrcarea paralel direct permite utilizatorilor lansarea din mai multe noduri a proceselor de ncrcare concurente multiple legate de acceasi tabel. ncrcarea paralel utilizeaz multe resurse (discuri, benzi) pentru a transfera simultan datele n aceeasi tabel din mai multe surse. Odat datele ncrcate, crearea indexului poate fi divizat pe mai multe noduri server. Dac tabela de baz este ntins pe mai multe fisiere de baze de date situate n mai multe noduri de procesare, indexarea paralel se realizeaz automat. Dup scanarea paralel a tabelei de baz realizat asupra tuturor fisierelor de date, tabela de baz este mprtit n partitii, fiecare partitie continnd cheile tabelei de baz reprezentnd o parte din ntregul domeniu de chei de indexare. Crearea unui index pentru fiecare partitie se realizeaz simultan, acesti indecsi fiind eventual unificati ntr-un singur index permanent. Oracle 7.1 - copierea si recuperarea paralel a datelor

Utilitarul Oracle7.1 "Parallel Backup/Restore" si utilitarul de recuperare paralel a datelor pot reduce drastic timpul de copiere, de refacere si recuperare a datelor pentru baze de date mari, de ordine de mrime cuprinse ntre zeci si sute de gigabytes. Aceste utilitare Oracle 7.1 sunt disponibile si pe masini IBM - SP2 (medii de tip "shared nothing") si permit copierea paralel online a multiplelor fisiere de date, pe diferite medii externe. Aceasta este o alternativ mai robust la mai lentele si mai putin fiabilele utilitare de backup UNIX "dd", "cpio" si "tar". Odat ce restaurarea datelor este realizat, poate fi aplicat recuperarea paralel ce permite citirea fisierelor "log". Sybase - Build Monumentum Compania Sybase a fcut un pas major n proiectarea de sisteme de baze de date din noua generatie introducnd pe piat un produs ce permite utilizatorilor de calculatoare Macintosh si celor bazate pe sistemul Windows facilitti de lucru n "multithreading". Sybase Build Monumentum ruleaz n procesare pe mai multe ci de control ale executiei att pe platforme Windows NT ct si pe platforme Unix, adugnd n acelasi timp pe arhitectura existent facilitti de lucru cu baze de date orientate pe obiect. Multiprocesarea n retele distribuite este realizat ns numai din punct de vedere "client"; Build Monumentum detine un administrator care gestioneaz procese n "multithreading" chiar dac sistemul de operare gazd nu suport n mod normal acest mod. Situat n gama de intrare a SGBDR, Build Monumentum este considerat de specialisti ca fiind un produs mai reusit dect produsele din acceasi gam ale companiilor Oracle sau Informix. Sybase System 10 Familia de produse software Sybase System 10 se situeaz n gama medie de SGBDR ce ruleaz n medii client/server distribuite. De la fondarea companiei din 1984, Sybase a adus n SGBDR dou tehnologii cheie: arhitectura client/server si performantele OLTP. Aceasta a nsemnat dezvoltarea de interfete API ("Application Programming Interface") si implementarea noilor concepte de server "multithreaded", proceduri compilate partajate, trigger-e si apeluri de proceduri RPC ("Remote Procedure Calls") client/server si server/server. Sybase Open Client si Open Server

Sybase SQL Server 10 este o component a sistemului Sybase System 10 si la ora actual este nc singurul produs de gestiune a bazelor de date care a integrat lucrul n retea cu ambele interfete API client si server. Toate produsele Sybase sunt construite n SYBASE Open Server si Open Client care reprezint o interfat API pentru lucrul n retea si cu facilitti de "multithreading" proiectat pentru aplicatii de nalt performant n medii client/server distribuite. Interfetele Open Client si Open Server (utilizate pe scar larg n mediile industriale) suport att comunicatii via SQL ct si RPC ntre statii client si statii server sau ntre servere. Aceste interfete ruleaz sub o mare varietate de protocoale si de biblioteci de retea. Arhitectura client/server Sybase este bazata pe conexiuni "multithreaded" care permit att comunicatii sincrone ct si asincrone. Sybase SQL Server n sisteme uniprocesor si SMP Server-ul Sybase SQL este nucleul de baz al lui System 10 pentru procesare n "multithreading" n cadrul unei retele eterogene. Utiliznd un model optimizat de procesare pe mai multe ci de control ale executiei, server-ul SQL poate gestiona simultan n cadrul unui singur proces un mare numr de utilizatori. Un utilizator client ce acceseaz server-ul SQL prin interfata Open Client, necesit mai putin de 50 Kbytes de memorie pe server. Server-ul SQL este optimizat pentru standardul de performant OLTP; la sfrsitul anului 1993, Sybase si IBM au realizat un "benchmark" prin care la un server SQL aflat pe un sistem RISC/6000 Model 990 s-au atasat 2760 de utilizatori clienti iar timpul mediu de rspuns a fost de 0,79 secunde. Server-ul Sybase SQL a fost primul care a

utilizat cod compilat/partajat att pentru gestionarea bazelor de date locale ct si pentru trimiterea de apeluri de proceduri RPC la alte server-e aflate la distant. Server-ul Sybase SQL detine multe facilitti pentru lucrul n sisteme cu disponibilitate nalt. n cadrul sistemului Sybase System 10, server-ul SQL include un proces server separat de backup care permite copierea online fr impact asupra performantelor serverului. Serverul de backup poate copia la mai multe dispozitive externe simultan pn la 10 gigabytes pe or si poate opera pe o masin separat pentru a permite server-ului OLTP s ruleze neafectat n timpul procedurii de backup. Server-ul Sybase SQL n sisteme cu multiprocesare simetric Pentru sistemele cu multiprocesare simetric (SMP), compania Sybase a realizat o implementare multiproces prin care mai multe servere SQL sunt ncrcate n memorie iar unittile centrale de prelucrare rmn dedicate complexului de servere. Serverele SQL comunic utiliznd memoria partajat si repartizeaz "thread"-urile ntro coad de executie care caut urmtorul procesor disponibil. Arhitectura rezultat prezint un nalt grad de scalabilitate n medii client/server eterogene. Server-e paralele Sybase Server-ul de replicare permite utilizatorilor s creeze copii primare si replicate ale datelor asigurnd distribuirea fault-tolerant a tranzactiilor de la copiile primare la cele replicate. Server-ul de replicare utilizez un protocol "store and forward" pentru a asigura distribuirea continu a tranzactiilor ntre posturile de replicare. Server-ul de replicare utilizeaz un subproces care permite posturilor replicate s primesc n mod continuu sau la anumite intervale de timp actualizri ale datelor la nivel de linie, coloan, tabel sau la nivel de functii definite de utilizator. OmniSQL Gateway permite oricrei aplicatii client s acceseze n mod transparent surse de date multiple si eterogene ca si cum acestea ar fi localizate ntr-o singur baz de date. OmniSQL Gateway permite accesul la date ntr-o mare varietate de formate: SYBASE, DB2, Oracle, Ingres, Informix, etc. Server-ul de navigare cupleaz mpreun mai multe server-e SQL ntr-o arhitectur paralel bazat pe mesaje pentru a permite copierea paralel, performante OLTP paralele, procesarea paralel a cererilor si implementarea altor utilitare paralele pentru aplicatii care necesit baze de date mari, un mare numr de utilizatori si tranzactii complexe. Server-ul de navigare Sybase utilizeaz cte un server SQL pe fiecare nod, ntr-o arhitectur "shared-nothing" cu datele partitionate integral. Pentru un post client, server-ul de navigatie arat c un singur server SQL mare ce permite aplicatiilor s exploateze puterea unui sistem paralel extins ca si cum ar fi o masin cu un singur nod. Server-ul de navigare este planificat s devin disponibil pe piat rulnd sub sisteme IBM din familia SPx la nceputul anului 1995. Sybase si IBM HACMP/6000 pentru arhitecturi n cluster Server-ul de replicare Sybase permite n prezent implementarea de aplicatii cu performant OLTP ridicat ntrun nod de cluster HACMP/6000, n paralel cu replicarea tranzactiilor ctre un al doilea sau al treilea nod de cluster. Aceasta permite aplicatiilor client situate n nodul OLTP s primeasc rspunsuri ntr-un timp predictibil garantat, fr ca nodul s fie afectat de cereri si rapoarte periodice. Functiile de suport decizional sunt automat directionate de ctre interfata Open Client la un al doilea nod de cluster, ele neafectnd aplicatiile cu misiune critic. ntr-un cluster HACMP cu dou sau mai multe noduri, fiecare nod opereaz independent, astfel nct nu exist overhead suplimentar generat de utilitarul de gestionare a blocrilor (DLM - "Distributed Lock Manager"). Toate masinile din cluster pot rula eficient si la deplin performant a unittilor de prelucrare individuale. Dac un nod din cluster cade, programul HACMP/6000 pune automat aplicatia OLTP pe un alt nod, mutnd n background aplicatiile de suport si decizie. IBM DB2 - Parallel Edition Compania IBM dezvolt n prezent sistemul su de gestiune a bazelor de date relationale, DB2/6000, ntr-o arhitectur paralel multi-procesor cu suport hardware mergnd de la retele locale de sisteme uniprocesor RISC System/6000 si pn la sisteme paralele IBM POWER SPx. Server-ul paralel de baze de date DB2 Parallel Edition poate manipula eficient baze de date foarte mari utiliznd strategii de partajare a datelor si executare paralel de cereri asupra acestora. Sistemul de gestiune DB2/6000 se extinde n prezent pentru a suporta o arhitectur "Shared nothing", selectat din dou motive: este o arhitectur scalabil pn la nivel de sute de procesoare ofer portabilitate ridicat deoarece necesit o singur legtur de comunicatie ntre procesoare, deci poate fi portat pe orice tip de platform. Noua versiune a sistemului de gestiune DB2/6000 se proiecteaz pentru a suporta si o arhitectura SMP ("Symmetric Multiprocessing"). Server-ul DB2 Parallel Edition, cuplat cu programul HACMP/6000 ntr-o arhitectura cluster cu masini RISC System/6000 furnizeaz accesul concurent al tuturor procesoarelor la o singur baz de date.

ntr-o arhitectur "shared nothing" cu implementarea paralel a sistemului de gestiune DB2 ntr-o o retea de masini IBM RISC/6000, stocarea unei baze de date se realizeaz ntr-o retea de procesoare care furnizeaz buffer-e, structuri de blocare, fisiere de log si discuri separate pentru fiecare procesor n parte. Aceast structur previne disputarea concurential a memoriei cache rezultnd din faptul c toate procesoarele partajeaz acelasi set de resurse. Pentru a minimiza comunicatia ntre procesoare, operatorii relationali sunt executati pe procesorul ce contine datele asupra crora se execut respectivii operatori, ori de cte ori acest lucru este posibil. n consecint nu este necesar implementarea unui utilitar de gestionare a blocrilor la nivel global, deoarece fiecare procesor extrage un rspuns partial din partea sa de baz de date sau de tabel. La intervale regulate de timp, un detector global de "deadlock" analizeaz blocrile iar n cazul cnd detecteaz o asemenea blocare, el selecteaz un nod sau un proces "victim" pentru a rezolva problema. n arhitecturi cu multiple noduri de procesare, pentru baze de date mari, plasarea datelor devine o problem complex si administrarea de sistem poate fi dificil. Implementarea paralel a sistemului DB2 utilizeaz un limbaj de definitie a datelor si utilitare de administrare necesare partitionrii datelor. DB2/6000 asigur dou facilitti importante pentru partitionarea tabelelor de baze de date mari: utilizarea de chei de partitionare si de grupuri de noduri: pentru o baz de date ce contine multe tabele, utilizatorul ce dezvolt aplicatia poate s defineasc o cheie de partitionare pentru fiecare tabel. ntr-o configuratie hardware "shared nothing" (cum ar fi de pild familia de masini IBM SPx sau statii conectate n retele locale), fiecare procesor ruleaz echivalentul unui sistem de baze de date DB2/6000 cu un singur nod. Tabelele bazei de date pot fi definite de-a lungul unui set de noduri grupate avnd un identificator unic si fiind delimitat peste un anumit numr de procesoare. Deci un grup poate s contin unul sau mai multe procesoare iar fiecare procesor poate fi membru n mai multe grupuri n cadrul aceleiasi baze de date sau n baze de date diferite. Pe msur ce mrimea tabelelor creste sau numrul de procesoare n sistem se mreste, se pot aduga procesoare unui grup existent utiliznd propozitii ale limbajului de definitie a datelor; dup adaugarea unui nou procesor, utilitarul de reechilibrare ("rebalance") al sistemului DB2 asigur redistribuirea datelor n noua structur. Prezentm pe scurt urmtoarele caracteristici ce permit o gestionare eficient a sistemului DB2 Parallel Edition: vederile create pe tabele sunt separate de plasarea fizic a datelor n sistem datele pot fi distribuite peste mai multe discuri pentru a reduce gtuirile provocate sistemului de intrare/iesire. pe msur ce mrimea bazelor de date creste se poate mari si numrul de procesoare din sistem. DB2 Parallel Edition - procesarea cererilor paralele DB2 Parallel Edition genereaz o strategie de executie paralel pentru toate propozitiile SQL, prin intermediul unui utilitar de optimizare, bazat pe formule de minimizare a costului de executie a bazelor de date relationale. Dup compararea ctorva strategii de executie paralel pentru o propozitie SQL dat, acest utilitar de optimizare alege strategia cea mai eficient pentru respectiva propozitie. O propozitie SQL de tipul "select", "insert", "update" sau "delete" este mprtit n mai multe task-uri separate care execut cte o parte din cerere si colaboreaz la furnizarea rspunsului final. Generarea de strategii paralele de executie pentru o propozitie SQL dat este un proces automat. Un program de aplicatie ce utilizez DB2/6000 nu trebuie s fie recompilat pentru a exploata executia paralel. Cnd programul de aplicatie este legat la o baz de date paralel, se genereaz si se stocheaz la cerere strategia adecvat de executie paralel. Strategiile paralele utilizate de DB2/6000 includ scanri paralele de tabele, scanri de indecsi paraleli; unificri redirectate prin mecanism de "hashing", unificri redistribuite (folosite atunci cnd nici una din tabele nu este partitionat dup coloanele pe care se face unificarea), etc. DB2 Parallel Edition - utilitare de procesare paralel DB2 Parallel Edition furnizeaz mai multe utilitare de baz n gestiunea paralel a bazelor de date: utilitarele de ncrcare a datelor si utilitarul de reechilibrare, crearea paralel de indecsi, utilitar de backup/restore, redistribuirea liniilor unei tabele pe disc, recuperarea datelor. ncrcarea datelor n tabele se poate realiza fie prin utilitarul de import DB2/6000 fie utiliznd utilitarele de ncrcare rapid "Bridge Fastload" sau programul optional DB2 de "fast-load". Sistemul DB2 Parallel Edition furnizeaz operatii de inserare mbunttite prin care liniile sunt preluate n loturi si transmise astfel procesorului de destinatie. Aceast facilitate este implementat ca o optiune la momentul legrii, multe programe putnd s o utilizeze fr modificri. O alt modalitate de ncrcare este crearea direct a bazelor de date fr a folosi un mecanism de lucru cu operatii "insert". ntr-o baz de date paralel, cea mai bun abordare este partitionarea fisierului de date de intrare bazat pe valorile definite pentru cheile de partitionare. Se creaz astfel cte un fisier de intrare pentru fiecare procesor care va stoca tabela respectiv. Apoi partitiile sunt ncrcate n paralel la toate procesoarele din retea. Interfata API care faciliteaz acest proces de ncrcare determin alocarea liniilor tabelei la procesoare n functie de valorile cheilor de partitionare si numele grupului de noduri.

Utilitarul de rebalansare incorporeaz o functie hash predefinit care determin valoarea cheii de partitionare a unei linii dintr-o tabel si procesorul pe care este stocat aceasta linie (procesorul selectat fiind din grupul de noduri n care a fost creat tabela). Acest utilitar asigur uniformitatea distribuirii datelor ntre noduri si n cadrul grupurilor de noduri. Reechilibrarea datelor este realizat online (nu este necesar oprirea sistemului) la nivel de grup de noduri prin reechilibrarea tuturor tabelelor continute n acel nod. DB2 Parallel Edition permite crearea de indecsi unici n care coloanele cheie contin cheile de partitionare sau indecsi multipli n care aceste coloane sunt disjuncte. Crearea de indecsi este realizat n paralel la toate procesoarele. Pentru fiecare partitie a unei tabele stocat ntr-un nod, se creaz un index local. Utilitarul de backup/restore poate fi apelat de ctre fiecare procesor n parte pentru copierea segmentului de baze de date aflate n acel nod. Copierea datelor se poate face n paralel la mai multe procesoare, dar aceast manevr necesit resurse fizice mari (mai multe disc-uri la fiecare procesor).

Consideratii asupra performantelor


ntrebarea pe care unii specialisti o pun n acest moment este dac nucleul format de tehnologia de lucru pe server-e si modelul relational de baze de date va reusi s supravietuiasc n conditiile n care aplicatiile utilizator necesit astzi o fiabilitate si interoperabilitate tot mai nalte n medii de lucru eterogene si complexe. Problema acestei interoperabilittii ntre diversele sisteme de baze de date este destul de complicat n prezent si prezint dou aspecte: unul la nivel de server-e de baze de date (de exemplu de la un model ierarhic la un model relational) si altul ntre diversele aplicatii client. Companiile de software de gestiune au abordat pe cont propriu aceast problem implementnd diverse interfete care permit comunicarea ntre sistemele de gestiune. n ultimul timp s-a remarcat o evolutie n ncercarea de unificare prin definirea a dou standarde de conectivitate: standardul IDAPI ("Integrated Database Application Programming Interface") realizat de ctre alianta IBM, Novell, WordPerfect si standardul ODBC ("Open Database Conectivity") implementat de ctre Microsoft. Disputa pe seama conectivitatii diverselor sisteme de gestiune a bazelor de date rmne ns n actualitate, companiile din acest segment de piat fcnd eforturi substantiale totusi n a gsi solutii comune astfel nct utilizatorii de pretutindeni s poat s depseasc aceast barier la nivel de aplicatie.

Concluzia
Deci n ori ce punct pe acest glob, pe orice continent, oamenii care au nevoie de a face shimb de informatii apeliaza la diferite dispozitive i diferite arhitecturi de reea, cum ati aflat din acest referat ele pot fi dediverse tipuri i fiecare i are specifica sa. n momentul de azi ominirea nu poate exista fara calculatoare dar ce calculator bun nu este conectat la o reea chiar si Internetul

Vous aimerez peut-être aussi