Arhitecturi paralele in SGBD-urile actuale software, Tehnologii de procesare paralela - perspective



Arhitecturi paralele in SGBD-urile actualesoftware

Multiprocesarea ofera imense avantaje potentiale SGBD-urilor actuale.

Abordarile marilor producatori sunt insa extrem de diverse.

Desi marile companii producatoare de software de gestiune a bazelor de date relationale fac eforturi deosebite in a actualiza si imbunatati performantele sistemului lor , exista in continuare un decalaj semnificativ intre realizarile lor actuale si evolutia mult mai rapida a tehnologiilor hardware si de comunicatie ce permit realizarea de medii eterogene complexe utilizand masini din ce in ce mai performante.



Tehnologii de procesare paralela - perspective

Marile companii producatoare de sisteme de gestiune a bazelor de date relationale bazate pe sistemul de operare Unix se afla acum in competitie pentru a gasi cele mai bune solutii care sa satisfaca cererile noii generatii de sisteme distribuite client/server, cereri legate indeosebi de distribuirea unei mari varietati de tipuri de date pe o si mai mare varietate de masini cuplate in configuratii de retele eterogene.

Aplicatiile tot mai complexe imping in prezent mediile de calcul la limita posibilitatilor lor de a le procesa. Multi utilizatori isi bazeaza deciziile pe informatii depasite deja de cateva zile deoarece sistemele lor nu au capacitatea de a furniza analize in timp real. 45676bro97orp3u

Pentru a intimpina noile cerinte, companiile producatoare de sisteme de calcul au evoluat de la sistemul uniprocesor la arhitecturi de multiprocesare simetrica, cluster-e si chiar arhitecturi cu procesare paralela masiva.

Totodata, companiile de software situate in topul vanzarilor de sisteme de baze de date relationale - Oracle Corp., Sybase Inc., Informix Software Inc., IBM Corp. - au dezvoltat in acest an noi versiuni ale sistemelor lor de baze de

date care utilizeaza server-e in multiprocesare simetrica (SMP), multiprocesare asimetrica sau procesare pe mai multe cai de control a executiei ("multithreaded"). Aceste versiuni noi pun insa probleme mai complexe atat in ceea ce priveste administratrea de sistem cat si dezvoltarea de aplicatii. O cale viabila de crestere a performantelor bazelor de date actuale este adoptarea diverselor metode de procesare paralela in care se include si "multithreading" sau procesarea paralela a cererilor. Arhitectura "multithreaded" (implementata pentru prima oara in sistemul de gestiune a bazelor de date Sybase), imbunatateste performantele tranzactionale prin reducerea timpului de executie a proceselor, inlaturand totodata starile de proces "idle" prin utilizarea de cai multiple de control al executiei ("threads") comune unui proces.

Pentru a intelege si compara solutiile adoptate de fiecare companie in parte este necesara clarificarea diferentei dintre procesarea paralela si procesarea pe multiple cai de control al executiei ("multithreaded"). Ambele modele implica executarea de task-uri multiple in paralel, dar in timp ce procesarea paralela implica mai multe procese ce se executa pe mai multe unitati de prelucrare, "multithreading" se refera la un singur proces ce poate rula pe mai multe unitati de prelucrare simultan. Deci caile multiple de control al executiei sunt o forma mai simpla de paralelism, ele ruland sub un acelasi proces si utilizand in comun anumite variabile ale mediului. Toate caile de executie comune unui proces impart resurse comune - date, memorie sau fisiere deschise - furnizand unei aplicatii posibilitatea de a lansa task-uri multiple simultan in cadrul unui singur proces. rr676b5497orrp

In cazul proceselor paralele, atunci cand unitatea centrala de executie plaseaza un proces in asteptare in timp ce un alt proces se executa, unitatea trebuie sa "memoreze" intr-o zona de memorie temporara 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 in cadrul unui singur proces pentru care "overhead"-ul de sistem este considerabil mai mic.

In "multithreading", serverul de baze de date asigneaza "thread"-uri cererilor aflate in executie, realizand si schimbarea dinamica a caii pe care o cerere ruleaza la un moment dat; daca o cerere se afla in stare de asteptare, serverul va realiza printr-un mecanism de "swapping" inlocuirea acestei cereri cu o alta cerere care va fi asignata aceleiasi cai. Rezultatul se concretizeaza in optimizarea timpului de executie a cererilor si deci imbunatatirea performantelor de interogare a bazelor de date in sisteme distribuite.