|
Politica de confidentialitate |
|
• domnisoara hus • legume • istoria unui galban • metanol • recapitulare • profitul • caract • comentariu liric • radiolocatia • praslea cel voinic si merele da aur | |
Tipuri de arhitecturi hardware paralele | ||||||
|
||||||
x7h23hu Pentru a putea discuta despre sistemele de gestiune a bazelor de date moderne este necesara o trecere sumara in revista asupra noilor concepte de arhitecturi hardware ce permit procesarea paralela sub diferitele ei aspecte. Cele mai utilizate arhitecturi hardware paralele ce exploateaza multiple procesoare, memorii mari si mai multe unitati de disc sunt: · arhitectura "Shared nothing" in care fiecare procesor detine propriile sale unitati de memorie si disc. · arhitectura "Shared disks" utilizeaza multiple procesoare, fiecare cu unitatea sa de memorie dar cu sistem de disc partajat. · arhitectura "Symmetric Multiprocessing" (SMP) utilizeaza procesoare multiple care detin in comun unitatile 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 in multiprocesare simetrica (SMP). Pe de alta parte insa, sistemele paralele masive sau sistemele "shared-nothing" sunt excelente pentru suport decizional pe scara larga. Arhitecturile in cluster, cum este si HACMP/6000 al companiei IBM, ofera insa alte avantaje, cum ar fi de exemplu inaltul grad de disponibilitate; daca un nod din cluster cade, un alt nod preia temporar sau definitiv lucrarile primului. Un al doilea avantaj este creat de faptul ca fiecare nod din cluster poate fi la randul sau o masina in multiprocesare simetrica, asigurand cluster-ului o scalabilitate mult mai mare. Prezentam in continuare cateva dintre facilitatile cele mai importante legate de lucrul in arhitecturi cluster luand drept exemplu pachetul software IBM HACMP/6000 destinat aplicatiilor care imbina performantele ridicate de executare a tranzactiilor cu lucrul in retele extinse eterogene, cu inalt grad de disponibilitate hardware si software. HACMP/6000 Versiunea 2.1 - multiprocesare in cluster Programul HACMP/6000 permite realizarea de arhitecturi in cluster, o forma de procesare paralela care distribuie lucrul intre mai multe resurse de procesare fara cresterea excesiva a overhead-ului de sistem asigurand in acelasi timp si un grad de scalabilitate bun in vederea unor extinderi viitoare ale configuratiei. Pachetul de programe se compune din doua module de baza: · modulul HA ("High Availability") care detecteaza si recupereaza erori la nivelul dispozitivelor externe (discuri, cuploare de disc), al retelelor si adaptoarelor de retea, cat si la nivel de procesor. Daca un nod din cluster devine indisponibil, timpul de recuperare nominal realizat de modulul HA este cuprins intre 30 si 300 de secunde. · modulul CMP ("Cluster MultiProcessing") intra in actiune cand doua sau mai multe server-e acceseaza concurential acelasi subsistem de discuri. Accesul concurent la disc necesita insa suport la nivelul aplicatiei pentru mecanismul de blocare ("locking") si controlul accesului la date comune. HACMP/6000 utilizeaza doua modele de blocare a accesului concurential la discuri: modelul standard UNIX si mecanismul de blocare oferit de utilitarul de gestionare a blocarilor in cluster CLM ("Cluster Lock Manager") care permite sase tipuri de blocare, printre care mentionam blocarea asincrona si blocarea pe blocuri ce contin date globale. Tipuri de resurse utilizate de HACMP/6000 Versiunea HACMP/6000 2.1 utilizeaza o metodologie de configurare flexibila care asociaza fiecare resursa cu un nod sau o adresa. Aceasta permite membrilor din cluster sa-si definesca resursele pe care le detin si pe cele pe care le preiau din diferite noduri. Aceasta versiune defineste 2 tipuri de resurse: w resurse proprietare: detinerea unei astfel de resurse denota o relatie directa intre un singur nod si acea resursa. Cand nodul proprietar este activ in cluster, resursa identificata apartine acelui nod. In configuratii cu acces concurent, o resursa mono-disc poate fi detinuta de mai multe noduri. w resurse preluate: aceste resurse se leaga la un nod anume desemnat atunci cand nodul proprietar al resursei este detasat din cluster (devine indisponibil). Configuratii "High Availability" Un mediu HA pentru aplicatiile complexe care necesita disponibilitate continua si fiabilitate foarte mare, poate fi configurat in mai multe moduri. Prezentam mai jos trei modele de configuratii posibile intr-un sistem cluster compus din doua masini Unix: · modelul "hot standby or simple fallover" in care procesorul activ executa aplicatia si procesorul aflat in "standby" asteapta o cadere a primului procesor. Masina "standby" nu este neaparat in asteptare pasiva, ea putand prelua din sarcinile aplicatiei masinii primare, atunci cand capacitatea acesteia din urma este depasita. · modelul "rotating standby" permite o configurare la fel ca cea anterioara cu deosebirea ca rolurile celor doua masini pot fi interschimbate. · modelul "mutual takeover or partitioned workload": aceasta configuratie permite fiecarui procesor sa realizeze back-up pentru aplicatiile ruland pe oricare dintre procesoarele cluster-ului; configuratia realizeaza partitionarea datelor intre nodurile existente in cluster. · Pentru aplicatiile complexe cu misiune critica, pachetul de programe HACMP/6000 ofera urmatoarele facilitati: · reprezinta o alternativa la configuratia SMP asigurand o mai mare fiabilitate. · imbunatateste utilizarea masinilor mono-procesor asigurand scalabilitate fara inlocuirea resurselor hardware si software in configuratie "mutual takeover". · configuratia cu acces concurent la disc ( utilizand modulul HA) permite o inalta functionalitate si fiabilitate. · extinde posibilitatile unei instalari curente in configuratie "mutual takeover", dubland efectiv capacitatea de procesare prin impartirea lucrului intre doua sau mai multe procesoare cuplate in cluster. O mare parte dintre proiectantii de baze de date (Sybase, Informix, IBM DB2/6000, Progress) prefera sa ruleze programul HACMP /6000 in configuratii "hot standby" sau "rotating standby" pentru ca evita partitionarea in cazul unor baze de date foarte mari (fiecare masina din cluster are disc propriu si accesul la tabele situate pe alt disc se face numai prin retea) bazandu-se pe un model de arhitectura "shared nothing". Sistemul de gestiune Oracle a preferat insa modelul de arhitectura hardware "shared disks" (cu partitionarea datelor). Solitii de implementare Procesarea paralela, definind doua sau mai multe procesoare ce executa procese concurente si actioneaza ca o singura unitate, permite rularea de aplicatii complexe sub sistemul UNIX. Cele mai multe dintre sistemele de gestiune a bazelor de date relationale sunt in prezent imbunatatite pentru a beneficia de procesarea paralela in sisteme eterogene, si a permite rularea de aplicatii complexe cu misiune critica. 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 in acest domeniu. Distribuirea optima a datelor este dificila din punct de vedere tehnologic, acest proces fiind puternic dependent de cerintele pentru asigurarea unui bun timp de raspuns la cereri, asigurarea integritatii datelor, disponibilitate continua, interoperabilitate etc. Sistemele de gestiune a bazelor de date moderne utilizeaza o serie de notiuni abstracte si strategii asociate pentru a putea indeplini cerintele aplicatiilor actuale. Tranzactia, de exemplu, (definita ca o colectie de operatii care asigura trecerea unei baze de date dintr-o stare consistenta logic in alta), poate fi utilizata si in cadrul datelor distribuite pentru a asigura in 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 producatorii de sisteme de baze de date au creat monitoare de procesare a tranzactiilor (TP - "Transaction Processing") ce reprezinta utilitare evoluate care gestioneaza tranzactiile distribuite in retele eterogene. Metoda de comunicatie standard intre monitoarele TP si sistemele de baze de date a fost acceptata ca fiind protocolul X/A ce face parte din grupul de standarde X/Open. In prezent, serverele Sybase System 10 si Oracle 7 suporta protocolul X/A, in timp ce Informix OnLine adera indirect la acest protocol printr-un produs auxiliar, Informix TP/XA. Din punctul de vedere al asigurarii integritatii datelor in sisteme client/server distribuite, producatorii de software de gestiune a bazelor de date au abordat urmatoarele strategii: w tehnica "two-phase commit" prin care toate modificarile impuse de o tranzactie asupra unei baze de date sunt fie comise (executia tranzactiei este finalizata) fie sunt anulate, cu revenirea bazei de date in starea anterioara efectuarii tranzactiei. Aceasta strategie nu este adecvata pentru retelele eterogene complexe in care probabilitatea de cadere a unui nod este mare si nici pentru sisteme cu misiune critica. Ea este utilizata ca o cale de a asigura faptul ca toate server-ele detin copii identice ale bazei de date in orice moment. w strategia de replicare a datelor este in prezent solutia adoptata de companiile Oracle, Sybase si Informix. Replicarea este un proces in cadrul caruia mai multe server-e detin mai multe copii identice ale unei baze de date. Strategia de replicare a datelor difera esential de "two phase commit" prin aceea ca replicarea garanteaza identitatea copiilor bazelor de date distribuite numai in anumite momente sau sub anumite conditii. Tehnica de replicare a datelor utilizata de server-ul Oracle 7 este denumita "Table Snapshots", prin care server-ul central ("master") copiaza la anumite momente de timp definite, numai acele parti din baza de date care s-au modificat, propagand apoi aceste modificari in retea. Mecanismul de replicare utilizat de server-ul de baze de date Informix este similar metodei "snapshots" utilizata de Oracle. Informix utilizeaza fisiere "log" de "backup" pentru a determina datele din tabelele bazei de date ce trebuie replicate (care contin modificari). Serverele de replicare reprezinta numai inceputul unei intregi generatii de produse software care implementeaza concepte abstracte referitoare la distribuirea datelor in medii eterogene impreuna cu tehnologii avansate de gestiune si procesare paralela, optimizata a tranzactiilor. Informix-OnLine, o arhitectura scalabila dinamic (DSA) Compania Informix, a realizat o reproiectare completa a sistemului sau, introducand facilitati de multiprocesare simetrica (SMP). In situatiile in care serverul Informix versiunea 6.0 a utilizat procesarea paralela, performantele au crescut in comparatie cu arhitecturile mai vechi. De exemplu, compania AT&T Network, un mai vechi client Informix, a fost impresionata de versiunea 6.0 creata in 1993. Utilizand vechea versiune 5.0 a server-ului Informix, timpul de realizare a unui index in baza de date era de 6 ore, pe cand cu versiunea 6.0 acest timp s-a redus la 30 de minute. Desi nu s-au imbunatatit toate operatiile efectuate in bazele de date, procentul mediu de timp castigat este de aproximativ 25. Pentru administratorii de sistem care considera procedurile de "backup" cea mai serioasa problema, lista redusa de operatii in procesare paralela oferita totusi de server-ul Informix 6.0 a reusit sa rezolve mare parte din problemele legate de accesarea concurentiala. Versiunea de server Informix 6.0 a permis paralelism numai pe anumite operatii (creare de indecsi, sortari, backup, recuperare de date) si ruleaza pe unele platforme de multiprocesare simetrica (SMP). In acest an a fost implementat serverul Informix-OnLine/DSA ("Dynamic Scalable Architecture") versiunea 7.0 a carui arhitectura scalabila poate gestiona scanari, unificari (join), sortari si interogari paralele pe bazele de date. In evolutia sistemelor Informix OnLine se desprind trei faze ce includ urmatoarele versiuni: Informix-OnLine/DSA DSA/PDQ ("Parallel Database Query") DSA/XMP ("Extended Massively Parallel") Informix-OnLine/DSA Arhitectura DSA permite o multi-procesare flexibila orientata pe "multithreading" atat pentru medii de procesare OLTP cat si pentru sisteme de luare de decizii ("Decision Support System" - DSS). In medii OLTP, un numar mic de procese pe server pot gestiona eficient sesiuni utilizator multiple. Intr-un mediu DSS, o sesiune mono-utilizator poate sa detina mai multe cai de control al executiei care ruleaza in paralel utilizand eficient resursele hardware. Informix-OnLine/DSA/PDQ Aceasta versiune de arhitectura elaborata in 1994, transforma o singura operatie pe baza de date intr-un set de operatii paralele, ceea ce reduce substantial timpii de procesare pentru operatiile de tip OLTP si DSS atat timp cit mai multe procesoare lucreaza pentru o singura tranzactie. DSA/PDQ ruleaza pe arhitecturi SMP strans cuplate si are in vedere medii ca OLTP, DSS, Online Complex Processing (OLCP) sau procesarea in loturi. Informix-OnLine/DSA/XMP Aceasta versiune Informix cu procesare paralela masiva este programata pentru finalizare in 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 distribuita in cluster-e cum ar fi programul HACMP/6000 ("High Availability Cluster Multiprocessing") oferit de compania IBM. Oracle - Tehnologii de procesare paralela Compania Oracle a implementat in 1994 versiunea 7.1 a sistemului sau de gestiune Oracle7. Serverul paralel Oracle7 realizeaza un echilibru mai bun intre necesitatile de multiprocesare si o mai buna administrare de sistem. Atat Informix cat si Sybase necesita partitionarea speciala a discurilor in procesarea paralela, spre deosebire de Oracle care considera ca sistemul sau este superior celorlalte doua 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 elimina necesitatea unei munci laborioase de partitionare a discurilor. O critica adusa de celelalte companii (Informix, Sybase) afirma ca Oracle7 utilizeaza resursele sistemului de operare, cum ar fi semafoarele, pentru a permite multiplelor procese sa negocieze accesul, nedetinand de fapt o multiprocesare pe cai separate de executie in adevaratul sens. Deci din acest punct de vedere se afirma ca serverul Informix ar avea un potential mai ridicat pentru performante inalte decat omologul firmei Oracle. Noile optiuni de interogare paralela in serverul Oracle7 vor permite masinilor ce lucreaza in multiprocesare simetrica (SMP), in multiprocesare in cluster-e si procesare paralela masiva (MP) sa execute o singura cerere (tranzactie) pe mai multe unitati de prelucrare (CPU) asigurand astfel o scalabilitate aproape liniara cu fiecare procesor adaugat in 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 paralela bazate pe arhitectura RISC) si permite mai multor instante ale server-ului de baze de date Oracle sa ruleze concurent si independent. Fiecare instanta ruleaza in propriul sau nod de procesare si in propria zona de memorie partajata ("Shared Global Area Memory") avand un set propriu de procese Oracle7 in "background" (monitorul sistemului, monitorul de proces, scrierea in baza de date, etc.) utilizate la backup si la regasirea datelor in situatii de cadere a sistemului. Aceleasi fisiere ale bazei de date sau fisierele de gestiune pot fi accesate de oricat de multe instante ale server-ului Oracle7. Toate instantele de server Oracle7 pot executa tranzactii in mod concurential asupra aceleiasi baze de date dand posibilitatea utilizatorilor sa beneficieze de puterea de procesare a mai multor unitati de prelucrare. Din punctul de vedere al utilizatorului, mediul paralel Oracle isi ascunde complet paralelismul. Deoarece softwareul de server Oracle utilizeaza aceeasi interfata SQL in toate bazele de date ale sistemului, utilizatorul interactioneaza numai cu server-ul de baze de date Oracle standard. Paralelismul nu adauga nici comenzi noi si nici extensii la cele standard, optimizarea resurselor si gestionarea paralela realizandu-se automat. Serverul Oracle 7.1 in sisteme cluster Intr-un sistem cluster configurat cu programul HACMP/6000 (sistem de tipul "shared-disk") si lucrand in modul de acces concurential, server-ul paralel Oracle permite diferitelor noduri din cluster sa imparta aceeasi aplicatie. Aceasta facilitate depaseste bariera de performanta a sistemelor de gestiune a bazelor de date relationale (SGBDR) in sistem uniprocesor. Pentru cresterea performantelor in cluster-e HACMP/6000, server-ul paralel Oracle7 utilizeaza o gestiune paralela a memoriei cache facilitata de modulul de administrare a blocarilor in mediu distribuit ("Distributed Lock Manager" - DLM) al cluster-ului. Fiecare nod din cluster detine un cache local continand acele blocuri din bazele de date care au fost recent accesate de tranzactii ruland in acel nod. Pentru reducerea timpului de raspuns la cereri complexe pe mai multe tabele mari, anumite operatii de sortare, scanare, unificare sunt realizate in tehnologie paralela utilizand optiunea de cereri paralele a server-ului Oracle 7.1 pe masini IBM SPx. Prin scanarea paralela, nodurile lucreaza simultan pentru a cauta in diverse tabele ale bazei de date, reducandu-se astfel cantitatea de lucru pe fiecare nod in parte si obtinandu-se o crestere substantiala a performantelor. Unificarea paralela permite mai multor noduri scanarea de tabele separate, urmata apoi de unificarea selectiilor in paralel pentru a furniza rapid raspunsul final. Sortarea paralela imparte datele in mai multe transe astfel incat fiecare nod sa sorteze o mica parte din date, dupa care nodurile colaboreaza pentru a combina rapid listele partiale sortate intr-un rezultat final. In sisteme paralele masive (cum sunt si masinie IBM SPx) care utilizeaza un mare numar de procesoare ce lucreaza la indeplinirea aceleiasi cereri, scanarea, unificarea si sortarea se executa in paralel, performantele de executie ale tranzactiilor complexe imbunatatindu-se substantial. Oracle 7.1 - incarcare paralela de date si indexare paralela Server-ul Oracle 7.1 utilizeza facilitatea de incarcare paralela ("Parallel Direct Load") in tabele a datelor externe nestructurate. Incarcarea paralela directa permite utilizatorilor lansarea din mai multe noduri a proceselor de incarcare concurente multiple legate de acceasi tabela. Incarcarea paralela utilizeaza multe resurse (discuri, benzi) pentru a transfera simultan datele in aceeasi tabela din mai multe surse. Odata datele incarcate, crearea indexului poate fi divizata pe mai multe noduri server. Daca tabela de baza este intinsa pe mai multe fisiere de baze de date situate in mai multe noduri de procesare, indexarea paralela se realizeaza automat. Dupa scanarea paralela a tabelei de baza realizata asupra tuturor fisierelor de date, tabela de baza este impartita in partitii, fiecare partitie continand cheile tabelei de baza reprezentind o parte din intregul domeniu de chei de indexare. Crearea unui index pentru fiecare partitie se realizeaza simultan, acesti indecsi fiind eventual unificati intr-un singur index permanent. Oracle 7.1 - copierea si recuperarea paralela a datelor Utilitarul Oracle7.1 "Parallel Backup/Restore" si utilitarul de recuperare paralela a datelor pot reduce drastic timpul de copiere, de refacere si recuperare a datelor pentru baze de date mari, de ordine de marime cuprinse intre 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 paralela online a multiplelor fisiere de date, pe diferite medii externe. Aceasta este o alternativa mai robusta la mai lentele si mai putin fiabilele utilitare de backup UNIX "dd", "cpio" si "tar". Odata ce restaurarea datelor este realizata, poate fi aplicata recuperarea paralela ce permite citirea fisierelor "log". Sybase - Build Monumentum Compania Sybase a facut un pas major in proiectarea de sisteme de baze de date din noua generatie introducand pe piata un produs ce permite utilizatorilor de calculatoare Macintosh si celor bazate pe sistemul Windows facilitati de lucru in "multithreading". Sybase Build Monumentum ruleaza in procesare pe mai multe cai de control ale executiei atat pe platforme Windows NT cat si pe platforme Unix, adaugand in acelasi timp pe arhitectura existenta facilitati de lucru cu baze de date orientate pe obiect. Multiprocesarea in retele distribuite este realizata insa numai din punct de vedere "client"; Build Monumentum detine un administrator care gestioneaza procese in "multithreading" chiar daca sistemul de operare gazda nu suporta in mod normal acest mod. Situat in gama de intrare a SGBDR, Build Monumentum este considerat de specialisti ca fiind un produs mai reusit decat produsele din acceasi gama ale companiilor Oracle sau Informix. Sybase System 10 Familia de produse software Sybase System 10 se situeaza in gama medie de SGBDR ce ruleaza in medii client/server distribuite. De la fondarea companiei din 1984, Sybase a adus in SGBDR doua tehnologii cheie: arhitectura client/server si performantele OLTP. Aceasta a insemnat 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 componenta a sistemului Sybase System 10
si la ora actuala este inca singurul produs de gestiune
a bazelor de date care a integrat lucrul in retea cu ambele interfete
API client si server. Toate produsele Sybase sunt construite in SYBASE
Open Server si Open Client care reprezinta o interfata API pentru
lucrul in retea si cu facilitati de "multithreading"
proiectata pentru aplicatii de inalta performanta
in medii client/server distribuite. |
||||||
|
||||||
|
||||||
Copyright© 2005 - 2024 | Trimite document | Harta site | Adauga in favorite |
|