Você está na página 1de 23

Sistemas de Bancos de Dados Paralelos

Jorge de Abreu Soares

1. Introduo

medida que maiores facilidades de hardware e software so oferecidas a desenvolvedores e usurios, maiores se tornam suas necessidades, servindo assim como energia propulsora para o avano tecnolgico. Podemos verificar isto na popularizao do uso de computadores, seja no ambiente domstico, ou profissional, ou mesmo na computao de alto desempenho. Os processadores e perifricos se tornam cada vez mais rpidos e menos caros, comparativamente aos seus modelos predecessores. Acompanhando as tendncias, notamos que os softwares possuem e/ou adquirem um volume de dados crescente. No incio dos anos 90, a unidade de referncia em armazenamento de dados em memria primria e secundria, por exemplo, ficavam na ordem dos Kilobytes. Estas unidades rapidamente migraram para valores em ordens de grandeza superiores. Hoje, avalia se quantidade de memria principal de computadores pessoais em Megabytes, e de memria secundria em Gigabytes. E quando nos reportamos a servidores ou a sistemas de alto desempenho, no difcil encontrarmos memrias principais com Gigabytes, e discos rgidos com capacidade na ordem de Terabytes. Todavia, apesar da evoluo tecnolgica, a relao entre o volume de dados armazenados (tanto em memria primria quanto em memria secundria) e a tecnologia atual que processa estes dados no cresce proporcionalmente. E esta relao se torna mais crtica quando o assunto memria secundria. Por melhores que sejam os resultados obtidos na diminuio do tempo de resposta dos discos rgidos (tomados aqui como referncia), o fator mecnico lhes intrnseco, o que limita em muito a possibilidade de reduzir a enorme distncia de seu desempenho, quando comparadas s memrias principais. Para resolvermos esta questo, devemos nos aproveitar do fato anteriormente mencionado: o custo de computadores, principalmente os pessoais, permite-nos que os usemos em conjunto, para que possamos resolver tarefas complexas de maneira fragmentada. Ou seja, se pudermos subdividir um problema grande e trabalhoso, solvel apenas por mquinas potentes, entre diversas boas mquinas, de uso geral, estaremos ganhando tanto em desempenho quanto em flexibilidade. E este foi um motivador para o advento das reas da Cincia da Computao que estudam as arquiteturas paralelas e os algoritmos distribudos e paralelos. E esta vasta rea de pesquisa produz diversos

resultados interessantes, tanto na paralelizao e otimizao de algoritmos antes seqenciais, quanto na soluo de problemas complexos. Ora, o processamento de grandes bases de dados um problema complexo! Ento, por que no tentar unir a teoria de sistemas gerenciadores de bancos de dados (SGBDs), com seus algoritmos sedimentados para processamento de consultas, recuperao de falhas, controle de concorrncia, entre outros, com as tcnicas de processamento paralelo? Realmente, as duas linhas de pesquisa so perfeitamente compatveis. Por conseguinte, a linha de distribuio e paralelismo em banco de dados surgiu para criar um novo conceito em processamento de bases de dados. Em se tratando de SGBDs, o paradigma relacional se mostra perfeitamente compatvel com tcnicas de distribuio e paralelismo. Contudo, ele nos deixa carentes quando tratamos com aplicaes do tipo CAD, CAM, CASE e Sistemas de Informaes Geogrficas, ditas aplicaes no convencionais, que so atendidas com novos paradigmas de processamento de dados: o Orientado a Objetos [1] e o Relacional-Objeto, ou Relacional Estendido [2]. E stes sistemas de gerncia de dados, que trabalham com estas classes de aplicaes, so os chamados Sistemas Gerenciadores de Bancos de Dados Orientados a Objetos e os Sistemas Gerenciadores de Bancos de Dados Relacionais-Objeto [1]. E esta maneira alternativa de tratar dados introduz novos problemas. A orientao a objetos, no contexto de gerncia de dados, oferece-nos inmeras solues, contudo apresentando diversos problemas [3]. Como exemplos, podemos citar a avaliao de predicados de consultas, que devero gerar planos de execuo em paralelo; a alocao esttica e/ou dinmica de objetos entre os ns integrantes do sistema multiprocessado, a gerncia de estruturas de dados mais complexas, tais como estruturas espaciais; entre outras. E, dentre estas questes, temos disponveis diversas arquiteturas de memria para sistemas de bancos de dados paralelos. Precisamos de um indicador de qual seria a arquitetura mais indicada para certas situaes de processamento.
2. Paralelismo em Operaes de Entrada e Sada em Disco

2.1 Discos RAID Os discos RAID (Redundant Array of Inexpensive Disks) [4] buscam resolver o problema da limitao evolutiva da capacidade de vazo dos discos magnticos, da mesma forma que as arquiteturas paralelas fazem: organizar diversos mdulos simples de discos, construdos com tecnologia padro, e com preo acessvel, pode oferecer um desempenho que, a princpio, seria igual

soma dos desempenhos individuais dos componentes. Todavia, a soluo no to simplria quanto aparenta. Nos discos RAID, a confiabilidade um problema crtico. Considerando idnticos os componentes utilizados na construo de um RAID, o tempo mdio entre falhas (Medium Time Between Failures MTTF) do conjunto ser igual ao MTTF de um disco, dividido pelo nmero de discos. Com isso, mecanismos de tolerncia a falhas tornam-se extremamente pertinentes. Para implementar estes mecanismos, h diversas tcnicas, que se valem do mesmo princpio: o uso de informao redundante. Para isto, existem cinco solues que implementam esta redundncia, desde o espelhamento total das informaes de todos os discos (RAID Nvel 1, que necessita do dobro do nmero de discos), at implementaes que geram bits de paridade de grupos de informao (setores), espalhados pelos diversos discos do conjunto (RAID Nvel 5). Sistemas RAID so bem eficazes para acessos chamados "grandes", onde um volume considervel lido e/ou escrito. Leituras ditas "pequenas" tm bom desempenho em RAIDs dos nveis 4 e 5. Entretanto, as escritas "pequenas" (de tamanho prximo a um setor por disco) deixam muito a desejar, no tendo desempenho satisfatrio em nenhuma alternativa. Logo, a sua utilizao ainda depende de melhoramentos. Alm disso, discos RAID so inerentemente de difcil expanso, pois h um nmero mximo de discos que podem ser ligados a uma mquina. Em 1993, VALDURIEZ [5] menciona o fato de discos RAID serem uma promessa de alto desempenho para sistemas de entrada e sada. Se utilizados com sistemas de bancos de dados paralelos, poderiam resultar em uma interessante combinao de elementos, de forma a aumentar consideravelmente a vazo e a diminuio do tempo de resposta em sistemas paralelos. Contudo, o seu uso seria limitado a arquiteturas no distribudas. E podemos notar que esta previso de fato se concretizou. Os discos RAID tm hoje uma aceitao muito boa no mercado, pelo que eles oferecem em termos de desempenho. Isto se deve muito ao fato de que a otimizao do desempenho de um nico disco ser difcil, pelos elementos mecnicos envolvidos. Discos RAID oferecem alto desempenho com uma soluo relativamente simples, quando comparada a esta tarefa complicada de otimizao. Cabe ressaltar, contudo, que esta soluo no foi to aproveitada em sistemas gerenciadores de bancos de dados. 2.2 Sistemas de Arquivos Paralelos Esta classe implementa o acesso paralelo a disco de uma forma diferente. Nos sistemas de arquivos paralelos, os discos so distribudos entre ns processadores interconectados, dedicados entrada e sada, e que se apresentam ao usurio como um nico sistema de arquivos. Requerem

uma rede de interconexo de alta velocidade, pois o acesso a arquivos podem estar ocorrendo concorrentemente por ns clientes. A Figura 1 exemplifica este esquema.

Figura 1 Arquitetura genrica de um sistema de arquivos paralelos


3. Desempenho de Sistemas de Bancos de Dados

Alguns fatores importantes so usados quando comparamos sistemas paralelos, e caractersticas relacionadas a essas medies servem como um bom indicador no seu desempenho. 3.1 Medidas de desempenho Cabe apresentar aqui duas formas de medidas fundamentais: a acelerao e a escalabilidade. A acelerao (speedup) a capacidade de o sistema desempenhar uma determinada tarefa em um tempo tantas vezes menor quanto a quantidade de recursos adicionais no equipamento ou sistema. Se esta relao for constante, ou seja, a razo entre o adicional de recursos e o tempo no variar, diz-se que esta acelerao linear. Seja T1 o tempo de execuo serial de uma tarefa, e TN o seu tempo de execuo em uma verso paralela. Sendo assim:

~o = T1 aceleraa TN
J o conceito de escalabilidade (scale up) est relacionado ao fato de o sistema desempenhar uma tarefa N vezes maior com N vezes mais hardware, e com um intervalo de tempo constante. A relao pode ser explicitada como:

escalabilidade =

tempo do sistema de menor capacidade tempo do sistema de maior capacidade

Podemos classificar a escalabilidade em dois diferentes tipos [6]: transacional e de lote . Na primeira, espera-se que um job com N pequenas tarefas seja N vezes mais rpido no acesso compartilhado a um banco de dados N vezes maior, com N vezes mais clientes enviando requisies
4

ao banco. Este a escalabilidade encontrada normalmente em sistemas de processamento e de compartilhamento de recursos. O outro tipo de medida de escalabilidade caracterizado pela existncia de uma nica tarefa, N vezes maior, acessando uma base aumentada de um fator de N, e que ser resolvida por um sistema de computao N vezes maior. Esta ltima categoria a que melhor se aplica a consultas a bases de dados. Estes conceitos servem como unidades de medida importantes para se avaliar sistemas paralelos, e os de banco de dados incluem-se na regra. Um sistema de gerncia de dados paralelo deve, medida que mais processadores so acrescentados sua mquina hospedeira, ter um rendimento prximo ao linear. Porm, a partir de um certo ponto, o sistema comea a ter seu desempenho degradado, devido alta taxa de comunicao entre os diversos ns. Podemos enuimerar algumas barreiras genricas obteno de escalabilidade e acelerao linear [6]: Tempo de inicializao : o tempo para tornar uma tarefa ativa. Se tivermos de inicializar milhares delas, este tempo influir no resultado final. Interferncia: uma nova tarefa que inicia causa uma reduo na atividade das demais quando do acesso ao recurso compartilhado. Distoro (Skew ): caracterizado quando uma determinada tarefa mais lenta faz com que todas as demais, que tiveram uma mesma mdia de tempo de execuo, esperem por ela, aumentando com isso o tempo de parede (elapsed time ), o qual representa a variao de tempo entre a submisso de um processo e sua resposta final. 3.2 Medidores de Desempenho (Benchmarks) Benchmarks so conjuntos de programas, ou sees de programas-chave, os quais so executados para obteno de medidas de tempo [7]. Existem na literatura quatro tipos de programas usados para estas medidas, listados abaixo em nveis decrescentes de acurcia na predio do desempenho. Programas Reais : Conjunto de programas que o usurio normalmente executa em sua instalao. Como exemplo, temos os compiladores, processadores de texto, ferramentas de projeto, entre outros. Kernels: Subconjunto dos programaschave, que tm os cdigos mais demorados. Entre os mais famosos, encontramos o LINPACK, que consiste em um conjunto de rotinas usadas para resolver sistemas de equaes lineares. Os seus relatrios incluem mquinas que vo desde um IBM PC

compatvel, at os mais poderosos super computadores. Kernels so melhores utilizados quando queremos obter dados a respeito de particularidades de uma determinada mquina. Toy Benchmarks: Pequenos programas (normalmente de 10 at 100 linhas) que produzem um resultado previamente conhecido. Quicksort um exemplo de algoritmo desta categoria. Benchmarks Sintticos : So programas que tentam simular a freqncia mdia de operaes e operandos de um grande conjunto de programas. Ao contrrio dos Kernels, que so partes representativas de programas importantes, os sintticos jamais so executados em funcionamento normal. Whetstone and Dhrystone so exemplos tpicos. VALDURIEZ [5] atenta para o fato de que sistemas de bancos de dados paralelos requerero benchmarks especficos para sua avaliao, por serem a nica maneira imparcial de averiguar a relao preo/desempenho com uma determinada carga de trabalho. Como j existem diversos benchmarks que testam sistemas centralizados, tanto em tarefas simples ou complexas, necessrio que esta experincia seja til na confeco de benchmarks para sistemas paralelos, de forma a pressionar uma situao de acelerao e/ou escalabilidade lineares.
4. Sistemas de Bancos de Dados Paralelos

Os sistemas gerenciadores de bancos de dados so softwares com uma natureza muito particular. Enquanto os aplicativos em geral tm um foco muito voltado ao uso intensivo da unidade central de processamento, e no acesso a dados residentes em memria principal, os SGBDs tm como maior responsabilidade o acesso a dados armazenados em discos magnticos. E j sabido e constatado h bastante tempo que o custo de acesso a dados armazenados em memria secundria muitas ordens de grandeza maior que o mesmo acesso a dispositivos de memria primria. Isto est intrinsecamente relacionado natureza eletro-mecnica dos discos magnticos rgidos. Todo procedimento que envolva movimentao mecnica dispendioso, e intrnseco no caso dos discos rgidos, devido sua prpria arquitetura. Os SGBDs mostraram-se indispensveis no mbito da gerncia de dados ao longo destes ltimos 30 anos, por oferecerem s outras aplicaes a possibilidade de desempenhar tarefas essencialmente funcionais. Com isso, a aplicao no mais se preocupa com questes inerentemente ligadas aos dados, delegando aos SGBDs esta tarefa, e passando a focar essencialmente as regras de negcio. Esta demanda foi crescendo de tal forma que, aps algum tempo, as arquiteturas de computadores disponveis no eram capazes de executar com a mesma eficincia as requisies submetidas aos SGBDs, por estes exigirem o mximo do poder de processamento daquelas mquinas. Isto motivou a busca por desempenho na gerncia de dados.

A primeira tentativa surgiu com as mquinas de bancos de dados. Estas consistiam em um hardware e um sistema operacional especialmente dedicados a otimizar leituras e escritas em discos magnticos rgidos. Inclusive, esta a filosofia utilizada nos videogames, onde o hardware projetado para dar o mximo desempenho nas operaes de vdeo (resoluo, nmero de cores, freqncia horizontal e vertical, entre outros). Com isso, buscava se atingir um elevado desempenho no acesso e no tratamento de dados e transaes (controle de concorrncia, recuperao de falhas, otimizao de consultas, controle de segurana, entre outros). Sistemas como DBS3 [8], NonStop SQL [9], BUBBA [10] e GAMMA [11] so exemplos de mquinas de bancos de dados, sendo que as verses mais atuais dos dois ltimos sistemas foram convertidas para trabalharem em arquiteturas genricas. Contudo, esta soluo no se mostrou to boa para a gerncia de dados quanto foi para os jogos eletrnicos. O custo de uma mquina de banco de dados era proibitivo, alm de possuir um uso muito especfico. Isto revelou que este no era o caminho para a obteno de desempenho para acesso a bases de dados. A resposta estaria em uma soluo que oferecesse desempenho a um custo mais baixo, e que permitisse um uso mais geral do hardware envolvido. Com isso, as pesquisas na rea voltaramse para o uso da distribuio e o paralelismo na gerncia de dados. A fragmentao da base entre diversos ns de computao apresentouse uma soluo mais econmica em termos de hardware. Contudo, estas solues naturalmente trouxeram agregadas outras questes e outros problemas. No caso do paralelismo em gerncia de dados, diversos trabalhos na literatura respondem a vrias destas indagaes, e outros propem novas solues. Atacamos, neste trabalho, o problema da avaliao de desempenho dos diversos modelos de memria de SBDP (Sistemas de Bancos de Dados Paralelos). Contudo, introduziremos a seguir o assunto, apresentando esta nova classe de gerentes de dados, e apresentando suas particularidades.
5. Caracterizao de Sistemas de Bancos de Dados Paralelos

A grande maioria dos sistemas de bases de dados paralelos funciona na verdade como um servidor a mltiplos clientes [12], dentro da conhecida arquitetura cliente-servidor. Fica ento a cargo do servidor realizar as operaes mais custosas e que de fato necessitam ser paralelizadas, almejando a melhoria de desempenho. Ao cliente, cabe a tarefa de servir de interface ao usurio final, tendo todas as ferramentas de interface, linguagens de quarta gerao, entre outros. Assim, uma diviso de tarefas fica bem definida, deixando livre diversas caractersticas que no poderiam ser menosprezadas no modo seqencial de processamento, como a arquitetura do cliente. Este pode variar de um computador pessoal at mesmo um computador de grande porte.
7

Ento, espera-se de um Sistema Paralelo de Banco de Dados (SPBD) as seguintes qualidades: s Alta confiabilidade : O SPBD deve, antes de tudo, ser capaz de garantir aos seus usurios que o sistema ser capaz de se recuperar de possveis falhas ocasionais. A robustez ento uma caracterstica fundamental nesta classe de aplicativos. E isto conseguido ento com a replicao de dados. Poder ter disponvel uma cpia de reserva de parte do banco (ou mesmo de todo ele) garante um caminho alternativo de acesso, no causando queda imediata no funcionamento do sistema. Porm, este tipo de procedimento cria uma nova preocupao: a consistncia das cpias da base de dados. Mecanismos devem, portanto, ser implementados, de forma que os dados reflitam o real estado do banco de dados. s Expansibilidade : Capacidade de incrementar o poder de processamento e armazenamento da mquina, com um mnimo de reorganizao do banco de dados, e com aumento de acelerao e escalabilidade mais prximo possvel do linear, que a princpio seria o ideal. Definidos os objetivos iniciais, como ento desenvolver sistemas paralelos de gerncia de dados utilizando a tecnologia mais barata, acessvel, e que seja de propsito geral, em nada se assemelhando s mquinas de banco de dados? Fica ento a cargo do software explorar tcnicas de paralelismo sobre a operao-mestre de qualquer SGBD: a consulta. Logo, existem trs possveis formas de paralelismo que podemos adotar: s Paralelismo entre consultas : associa-se a cada processador ou grupo deles executar uma ou mais consultas, atendendo a uma demanda concorrente de transaes s Paralelismo dentro de consultas : uma mesma consulta particionada entre os processadores, de forma que cada um deles opera sobre um conjunto diferente de dados, executando contudo a mesma operao s Paralelismo dentro de operaes: a otimizao de uma determinada consulta, atravs da utilizao de subrotinas, alm da diviso dos dados. 5.1 Balanceamento de Carga A idia do balanceamento d e carga baseia -se em designar a um processador (ou grupo de processadores) um volume de tarefas suportvel. Por exemplo, se temos um processador P1 com o dobro do desempenho de outro P2, enviar-se-ia a princpio um nmero duas vezes maior de tarefas para P1 do que se mandaria para P2. Situaes onde um processador termina uma tarefa mais rapidamente do que outro (por razes outras que no a sua velocidade de execuo de consultas) caracterizam a necessidade de balanceamento, na tentativa de manter aquele processador ocioso o menor tempo possvel.
8

O desempenho pode ser aumentado se o trabalho for distribudo de maneira uniforme. Se as tarefas so de tamanhos diferentes, pode ser mais eficiente manter um pool de tarefas, que sero divididas para cada processador, medida que eles acabem o seu processamento. O balanceamento pode ser mais importante em alguns ambientes do que em outros (ambientes heterogneos e carga definida pelo usurio; ou ambiente com processadores idnticos rodando um job por processador). Sistemas de bancos de dados paralelos devem implementar mecanismos eficientes de balanceamento de carga, considerando as caractersticas fsicas de cada um dos ns que integram o sistema, a fim de obter o mximo de desempenho na execuo de transaes.
6. Modelos clssicos de arquiteturas paralelas

STONEBRAKER [13] classifica os modelos computacionais em trs tipos: memria compartilhada (shared memory), memria distribuda (shared nothing) e disco

compartilhado (shared disk ), conforme descritos nas sees seguintes. 6.1 Memria Distribuda (Shared Nothing ) Aqui, a memria e as unidades de disco so fisicamente distribudas entre os processadores, s sendo acessadas diretamente pelo elemento processador correspondente. Com relao sincronizao, ela feita atravs da comunicao entre os processadores, e requisies de dados no locais devem ser feitos atravs da rede de interconexo. A Figura 2 ilustra esta arquitetura de memria. Uma das maiores preocupaes est em como se fazer a decomposio dos dados entre as Unidades Cenrtais de Processamento (UCPs), de modo a minimizar a comunicao. Algumas estratgias utilizadas so troca de mensagens, onde tarefas se comunicam pelo intercmbio de pacotes de dados; e memria fisicamente distribuda, parecendo, contudo, u ma nica memria compartilhada (espao de endereamento nico). As vantagens deste modelo podem ser enumeradas como a seguir: Custo baixo com a rede de interconexo dos processadores (uso de tecnologia padro) Extensibilidade, pela autonomia dos ns, que permite ao sistema crescer em algo como milhares de processadores. A confiabilidade outra caracterstica deste tipo de arquitetura, pois uma boa poltica de replicao dos dados aumenta a robustez do sistema.

Figura 2 Modelo de memria distribuda J as suas desvantagens podem ser enumeradas como a seguir: Alta complexidade de programao, dada pela necessidade de gerenciamento da base distribuda, que aumenta com o crescimento do nmero de ns da mquina. Balanceamento de carga complicado, pois est intimamente relacionado com a maneira como os dados foram particionados fisicamente na carga da base distribuda. A alocao esttica de objetos faz com que a incluso de um novo n no sistema exija um novo balanceamento, que pode ser custoso. Encontramos diversos exemplos [14] de sistemas de memria distribuda. Alguns dos comerciais so o DBC da Teradata e NonStop SQL da Tandem. Alm disso, diversos prottipos foram implementados, dentre eles: BUBBA [10], EDS [15], GAMMA [11], GRACE [16], PRISMA [17], alm dos sistemas experimentais SHORE [18] e do ParGOAMD [19]. 6.2 Memria Compartilhada (Shared Everything ) Neste modelo, os processadores que integram o sistema trabalham com a memria e o disco concorrentemente, onde todos tm acesso comum a estes dois recursos. Uma localizao de memria no pode ter seu valor alterado por uma tarefa, enquanto outra estiver acessando a mesma localizao. Alm disso, o compartilhamento de dados entre tarefas rpido (velocidade de acesso memria). A Figura 3 mostra o esquema mencionado. Este tipo de arquitetura possui as seguintes vantagens: Simples de se programar, por o espao de endereamento, alm de todos os demais controles de informao, estarem disponveis a todos os processadores de uma forma global. Balanceamento de carga pode ser relativamente fcil, devido igualdade no acesso ao disco por parte dos processadores, alm de uma boa diviso de tarefas em tempo de execuo.
10

Baixo overhead na comunicao entre os processadores, por eles poderem cooperar mutuamente via memria principal.

Figura 3 Modelo de memria compartilhada Porm, encontramos neste modelo as seguintes desvantagens: Alto custo de hardware, principalmente no que se refere interconexo dos processadores, o que penaliza a expansibilidade da mquina. Gerao de conflitos ao se acessar a memria (I/O bottleneck ), limitando o aumento do nmero de processadores. A confiabilidade do sistema baixa, visto que a informao s estar disponvel em um nico local, aumentando consideravelmente o risco de quebra do sistema em caso de falha eventual. A vazo da rede de interconexo entre os processadores deve ter a capacidade de pelo menos a soma das vazes dos processadores e discos. Para minimizar a latncia e diminuir o trfego na rede, cada processador pode ter associado um cache local. Contudo, o custo de manuteno de coerncia dos diversos caches degrada consideravelmente o desempenho do sistema. Outra tcnica que tambm pode ser adotada a de se dividir a memria em parties destinadas a cada processador. Porm, problemas que existem no modelo de memria distribuda, a ser visto a seguir, vm junto com esta soluo, no compensando, portanto, por no haver nenhuma simplificao no hardware com esta medida. Segundo ZSU e VALDURIEZ [14], o primeiro exemplo de sistema paralelo de banco de dados que se valeu deste modelo apareceu com a implementao do DB2 em um computador IBM3090 com seis processadores [20]. Outros exemplos podem ser encontrados nos sistemas XPRS [21], DBS3 [22] e VOLCANO [23].

11

6.3 Disco Compartilhado (Shared Disk) Pode ser resumido como uma variao do modelo de memria distribuda. Cada processador possui sua prpria memria. Todavia, o disco passa a ser um recurso compartilhado por todos os processadores. Um esquema simplificado pode ser observado na Figura 4. So vantagens proporcionadas por esta arquitetura: Baixo custo, da mesma maneira que no caso de memria distribuda. O balanceamento de carga tambm facilitado, pelas mesmas razes encontradas no modelo de memria compartilhada. Aumento da confiabilidade do sistema, por os dados ficarem disponveis em mais de um ponto do sistema.

Figura 4 Modelo de disco compartilhado As desvantagens encontradas neste modelo so: Aumento na complexidade de gerncia de recursos. Como no caso da memria compartilhada, a expansibilidade mais complicada. Problemas de desempenho pelo acesso concorrente ao disco. Adequado somente a bases de dados que sejam apenas de leitura. Exemplos de sistemas de disco compartilhado so IMS/VS Data Sharing da IBM, o VAX DBMS da DEC, a implementao do sistema ORACLE no computador VAXcluster da DEC e nos computadores NCUBE, e o prottipo ParGOAV [24].

12

6.4 Modelos hbridos de SGBDs paralelos


6.4.1 ARQUITETURAS HIERRQUICAS

Este modelo foi primeiramente proposto por BHIDE [25], depois p or PIRAHESH [26], e por BORAL [10]. J VALDURIEZ [14,27] oferece duas opes de implementao: ou a de vrios ns (at 512) de memria compartilhada, cada qual com um nmero pequeno de processadores (quatro no mximo), ou o inverso, com poucos ns ligados rede de interconexo, porm com at 32 processadores no n compartilhado. O autor declara ento sua preferncia pela primeira opo, j que o custo de uma rede de interconexo rpida bem menor que o de um n compartilhado de muitos processadores. Segundo Valduriez, esta arquitetura amortiza os problemas de balanceamento de carga e complexidade do particionamento do banco. Alm disso, a expansibilidade e a simplicidade encontradas no modelo compartilhado so incorporadas a esta opo. O sistema IDEA [28] implementa este modelo hbrido. GRAEFE e DAVISON [29] tambm propuseram um modelo hbrido chamado modelo de hierarquias de memria , que possibilita, segundo os autores, um uso extremamente flexvel, onde bases de dados de tamanhos modestos tirariam proveito da arquitetura de um ou mais ns de memria compartilhada, com o balanceamento de carga, mecanismos de travamento de recursos e comunicao rpida; enquanto bases de tamanho relevante valer-se-iam dos recursos oferecidos pelo modelo de memria distribuda, como a escalabilidade e processamento paralelo com um mnimo de paradas do sistema, quando da ocorrncia de saturaes. Alm disso, o desenvolvimento de softwares para este modelo de arquitetura possibilitar sua execuo nas mquinas de modelos de memria distribuda e compartilhada (softwares independentes de arquitetura), flexibilizando mais o seu uso. O modelo de Graefe/Davison difere do de Valduriez apenas no que tange o acesso ao meio secundrio (disco). O ltimo mostra o uso de um nico disco sendo acessado pelos diversos clusters de memria compartilhada, enquanto os primeiros indicam que cada n de memria compartilhada pode ter um ou mais discos. A Figura 5 exemplifica os modelos propostos por VALDURIEZ [14,27] e por GRAEFE e DAVISON [29], nesta ordem. Dentre os sistemas que esto evoluindo para esta arquitetura, podemos citar o NCR da Teradata (que usa ns de memria compartilhada) e o sistema PowerCluster da Bull, com um cluster de ns PowerPC [14].

13

Figura 5 Modelos hbridos de Valduriez e de Graefe/Davison


6.4.2 ARQUITETURAS NUMA

Tambm com o objetivo de combinar extensibilidade e flexibilidade, arquiteturas de memria compartilhada evoluram em arquiteturas NUMA [14]. O objetivo desta classe de arquitetura fornecer um ambiente de programao de memria compartilhada (juntamente com todos os seus benefcios), em uma arquitetura paralela escalvel. Duas classes de arquitetura NUMA tm emergido: mquinas NUMA de cache coerente (CCNUMA: Cache Coherent NUMA) [30], que estaticamente divide a memria principal entre os ns do sistema, e as arquiteturas de memria com cache nico (COMA: Cache Only Memory Architectures) [31], que converte a memria local de cada processador em um nico cache compartilhado. Com esta segunda soluo, a localizao de um dado completamente desvinculada de seu endereo fsico real, e o dado automaticamente migrado ou replicado na memria principal. E como memrias compartilhadas e a coerncia de caches so suportados por hardware, acessos remotos memria so bastante eficientes (apenas algumas vezes maior do que acessos locais) [14]. A Figura 6 esquematiza uma arquitetura NUMA COMA. O que torna as arquiteturas NUMA uma boa opo o fato de que ela no exige nenhuma reescrita do programa de aplicao. Entretanto, algumas mudanas so necessrias no sistema operacional e nos componentes de acesso base de dados [32].

14

Figura 6 Arquitetura CCNUMA Alguns exemplos de computadores NUMA: o ORIGIN 2000, da Silicon Graphics [33], o KSR1, da Kendal Square Research; o IBM NUMA-Q [34], da IBM; e o SPP1200, da Convex, que consegue atingir centenas de processadores [14].
7. Sistemas de Bancos de Dados Paralelos Comerciais

Nesta seo, abordaremos alguns dos trabalhos relacionados gerncia paralela de objetos. Encontraremos diversas implementaes feitas usando os modelos de memria explicitados anteriormente, alm de alguns trabalhos que no constrem um modelo em particular, mas que tentam otimizar o acesso e a fragmentao dos dados da base de objetos.
7.1.1 PRODUTOS COMERCIAIS

Alguns trabalhos [35] caracterizam sistemas paralelos de bancos de dados, inclusive apresentando estudos de caso de alguns sistemas comerciais. Contudo, daquela poca para c, diversas novas caractersticas apareceram nos sistemas comerciais de bancos de dados paralelos, principalmente sobre plataformas de hardware do tipo NUMA. Dentre estes produtos, podemos destacar: 3.2.5.1 DB2/PE [34]

Produto desenvolvido para ser executado sobre diversos modelos de arquiteturas paralelas e sobre diversas verses de sistemas operacionais, o IBM DB2/PE j possui em seu cartel uma verso para uma arquitetura CC-NUMA, a mquina NUMA-Q da IBM. Esta arquitetura paralela

15

implementa a idia de quads, que so grupos (clusters) de processadores que possuem memria e dispositivos de entrada e sada comuns (como no modelo de memria distribuda). Estes quads esto interligados por uma via de alta velocidade, chamada IQ-Link . A arquitetura do IBM NUMA-Q possui as seguintes caractersticas: Cada quad um n de memria compartilhada, contendo quatro processadores Intel IA-32, com uma memria principal variando de 2 Gbytes at 8 Gbytes, e dois barramentos PCI independentes para operaes de entrada e sada locais. A migrao de aplicaes de memria distribuda para essa arquitetura se torna mais fcil. O uso da memria otimizado, pois todas as aplicaes que so executadas nesta arquitetura, inclusive o sistema operacional, s necessitam de uma cpia carregada na memria. O IQ-Link fornece uma conexo de 1 Gbyte por segundo. Alm de fazer com que cada quad acesse a memria de outros quads, este switch permite um gerenciamento dinmico do sistema. As operaes de entrada e sada so sempre locais, graas ao mecanismo True Multi-path I/O, que faz com que os recursos de entrada e sada sejam locais a um subconjunto de UCPs, reduzindo a competio atravs do sistema. Alm disso, pode-se aumentar a confiabilidade do sistema, criando-se caminhos redundantes para o mesmo dispositivo de E/S. Oferece escalabilidade linear, permitindo um total de 252 processadores por sistema, e com um mximo de 16 quads (64 processadores), atingindo um total de 64 Gbytes de memria principal, 192 Tbytes de capacidade de armazenamento secundrio. Suporta tanto o particionamento esttico quanto o dinmico de dados (LPAR-like). Isto permite que mltiplos bancos de dados sejam executados em um nico sistema, sem conteno de recursos. O sistema gerenciador de banco de dados IBM DB2-PE se adapta perfeitamente arquitetura NUMA-Q. Os ns em um sistema de memria distribuda podem ser criados associando-se quads a discos especficos, conforme representado na Figura 7.

16

Figura 7 A arquitetura do sistema DB2 com modelo de memria distribuda sobre a mquina NUMA-Q da IBM [34] O IBM DB2/PE suporta a distribuio total ou parcial dos fragmentos que so gerados horizontalmente, atravs de funo de hashing e utilizando o conceito de grupos de ns (nodegroups). Possui tambm recursos especiais para data warehousing e data mining. 3.2.5.2 Oracle Parallel Server 8i [36,37]

Verso do sistema gerenciador de bancos de dados relacionais Oracle para a arquitetura IBM NUMA-Q. As verses Oracle 8i [36] e Oracle 7 [37] possuem, dentre outras, as seguintes caractersticas: Fornece transparncia na fragmentao horizontal primria e derivada, por faixa de valores, hashing e combinao (faixa de valores + hashing). Otimizao dinmica de consultas, baseada no predicado e nas estatsticas do banco. Redistribuio dinmica dos dados. Os ndices das tabelas fragmentadas tambm podem ser opcionalmente particionados, junto com a tabela ou no, ou simplesmente no serem particionados. Os fragmentos podem ser independentemente carregados, exportados, importados, analisados, realocados, truncados ou renomeados. A manuteno dos fragmentos de ndices pode ser feita independentemente dos outros fragmentos.

17

A tcnica partition-wise join aumenta o desempenho de junes em vrias tabelas, dividindo uma grande juno em equivalentes menores nas parties relativas. No caso de execuo paralela, cada subjuno pode ser processada em paralelo por um servidor de consultas separado, minimizando a troca de dados entre processadores. Existem para esta tcnica duas variantes: a full partition-wise table join , que exige que todas as tabelas sejam particionadas primariamente sobre o atributo-base da juno, e a very flexible partial partial partition-wise join , que exige que apenas uma das tabelas fragmentada segundo o atributo de juno. Suporte a grandes bancos de dados (at 64 K parties por tabela). 3.2.5.3 Teradata [22]

Sistema gerencia dor de bancos de dados relacional, desenvolvida para o paralelismo. Cada unidade de paralelismo aje como uma unidade do sistema, inclusive ao ponto de possuir seu prprio dado. As unidades de paralelismo tambm tm conhecimento de cada uma das outras unidades, e trabalham cooperativamente. A unidade bsica de paralelismo chamada Virtual Processor (VPROC), representada na Figura 8, representa uma implementao lgica do modelo de memria distribuda. Na realidade, mltiplos VPROCs iro existir simulataneamente em um n de memria compartilhada, e seu nmero ir depender da capacidade do n compartilhado. Um VPROC simples uma coleo de processos UNIX que trabalham juntos em unidade. Cada VPROC controla e gerencia seus dados, que esto armazenados em discos especficos.

Figura 8

A unidade de paralelismo (VPROC) gerencia todas as atividades do banco relativas aos seus dados

18

As tuplas de cada tabela do banco so distribudas aleatoriamente por todos os VPROCs do sistema. O administrador de banco de dados no tem poder de escolher como esta distribuio ser feita. Este mecanismo garante, segundo os fabricantes, tanto um esforo computacional igualitrio quanto um bom balanceamento de dados de todo o sistema, no importando o quo rpido o banco cresce ou que tipo de consulta ele sofre. Porm, alcanar este balanceamento depende do grau de unicidade dos ndices primrios das tabelas. 3.2.5.4 Outros sistemas (a) Informix Extended Parallel Server 8.3 [38] SGBD relacional que opera em arquiteturas NUMA, ou com memria compartilhada ou memria distribuda que operem com o sistema operacional UNIX Operaes especficas para data warehousing Alm de fornecer diversas modalidades de fragmentao de relaes, o sistema permite que o usurio defina uma expresso de atribuio, envolvendo um atributo da relao (b) Compaq NonStop SQL/MP [39] Mquina de banco de dados, que tira proveito da arquitetura paralela da Compaq Modelo de memria distribuda Fragmentao horizontal por faixa de valores Operaes especficas para data warehousing Uso de padres ANSI, ISO e ODBC A mquina pode chegar at 4080 processadores Tolerncia falhas via duplicao
8. Consideraes Finais

Sistemas de Bancos de Dados Paralelos so, como tivemos a oportunidade de mostrar, realidade de mercado. Aplicaes como em atividades de descoberta de conhecimento em bancos de dados (KDD Knowledge Discovery in Databases), que exigem muito poder de processamento de dados, beneficiam-se desta classe de gerentes de dados. Assim, o campo de estudo, apesar de possuir diversos pontos ainda em aberto, merece especial ateno, dada a sua evidente importncia.

19

9. Referncias Bibliogrficas

[1]

CATTEL, R. G. G., Object data Management. Edio Revisada, AddisonWesley Publishing Company, Inc., 1994.

[2]

DeWITT, D. J., Parallel ObjectRelational Database Systems: Challenges & Opportunities. Invited Talk: PDIS, 1996.

[3]

DeWITT, D. J., GRAY, J., Parallel Database Systems: The Future of High Performance Database Systems. Communications of the ACM , v. 35, n. 6, pp. 85-98, 1992.

[4]

PATERSON, D. A., GIBSON, G., KATZ, R. H., A Case for Redundant Array of Inexpensive Disks (RAID). In: Proceedings of the 1988 ACM-SIGMOD International Conference on Management of Data , Chicago, EUA, Maio 1988.

[5]

VALDURIEZ, P., Parallel Database Systems: open problems and new issues. International Journal on Distributed and Parallel Databases, v.1, n. 2, pp. 137-165, 1993.

[6]

DeWITT, D. J., GRAY, J., Parallel Database Systems: The Future of High Performance Database Systems. Communications of the ACM , v. 35, n. 6, pp. 85-98, 1992.

[7]

CRUZ, A. J. O., Curso de Arquitetura de Computadores II, Apostila no editada, Instituto de Matemtica/UFRJ, Rio de Janeiro/RJ, Agosto 1994.

[8]

BOUGANIM, L., DAGEVILLE, B., VALDURIEZ, P., Adaptative Parallel Query Execution in DBS3. In: International Conference on EDBT, Frana, 1996.

[9]

CHAMBERS, L., CRACKNELL, D., Parallel Features of NonStop SQL. In: Proceedings of the 6 th International Conference on Parallel and Distributed Computing Systems (PDCS93), 1993.

[10]

BORAL, H., ALEXANDER, W., CLAY, L., et al., Prototyping Bubba, A Highly Parallel Database System. IEEE Transactions on Knowledge and Data Engineering, v. 2, n. 1, pp. 4-24, Maro 1990.

[11]

DeWITT, D. J., GHANDEHARIZADEH, S., SCHNEIDER, D. A., et al., The Gamma Database Machine Project. IEEE Transactions on Knowledge and Data Engineering, v. 2, n. 1, pp. 44-62, 1990.

[12]

VALDURIEZ, P., Parallel Database Systems: open problems and new issues. International Journal on Distributed and Parallel Databases, v.1, n. 2, pp. 137-165, 1993.
20

[13]

STONEBRAKER, M., The Case for Shared Nothing, IEEE Q. Bull. Database Engineering, v. 9, n. 1, pp. 4-9, Maro 1986.

[14]

ZSU, M. T., VALDURIEZ, P., Principles of Distributed Database Systems . 2a edio, Captulo 13, New Jersey, EUA, Prentice Hall, 1999.

[15]

EUROPEAN

DECLARATIVE

SYSTEM

(EDS)

DATABASE

GROUP, In:

EDSCollaborating for a High Performance Parallel Relational Database. Proceedings of the ESPIRIT Conference, pp. 274-295, Novembro 1990. [16]

FUSHIMI, S., KITSUREGAWA, M., TANAKA, H., An Overview of the System Software of a Parallel Relational Database Machine GRACE. In: Proceedings of the 12th International Conference on Very Large Databases, pp. 209-219, Agosto 1986.

[17]

APERS, P. M. G., VAN DEN BERG, C., FLOKSTRA, J., et al., Prisma/BD: a Parallel MainMemory Relational DBMS. IEEE Transactions on Data and Knowledge Engineering, v. 4, pp. 541-554, 1992.

[18]

DeWITT, D. J., NAUGHTON, J. F., SHAFER, J. C., et al., Parallelizing OODBMS Traversals: a performance evaluation. The VLDB Journal, v.5, n.1, pp.3-18, 1996.

[19]

MEYER, L. A. V., MATTOSO, M. L. Q., Parallel query processing in a shared-nothing object database server . In: Proceedings of the 3rd International Meeting on Vector and Parallel Processing (VECPAR' 98), pp. 1007-1020, Porto/PT, Junho 1998.

[20]

CHENG, J. M., et al., IBM Database 2 Performance: Design, Implementation and Tuning, IBM Systems Journal (MOIS 1984), v. 23, n. 2, pp. 189210, 1984.

[21]

STONEBRAKER, M., KATZ, R., PATTERSON, D., et al., The design of XPRS. In: Proceedings of the 14th VLDB Conference, pp. 318-330, Los Angeles/CA, EUA, Agosto 1988.

[22]

NCR CORPORATION, Born To Be Parallel: Why Parallel Origins Give Teradata and Enduring Performance Edge; White Paper obtido em

http://www.big.tuwien.ac.at/teaching/offer/ss04/usi1/usi1adwArtikelParallel.pdf (obtido em 21/08/2004); Agosto 1996. [23] GRAEFE, G., Encapsulation of Parallelism in the Volcano Query Processing Systems. In: Proceedings of the ACM SIGMOD International Conference on Management of Data , pp. 102-111, Maio 1990.

21

[24]

SOARES, J. A., TAVARES, F. O., Paralelismo em Bancos de Dados Orientados a Objetos. In: Anais da XVII Jornada de Iniciao Cientfica, Universidade Federal do Rio de Janeiro, Rio de Janeiro/RJ, Novembro 1995.

[25]

BHIDE, A., An Analysis of Three Transaction Processing Architectures, pp. 339350, Junho 1988.

In:

Proceedings of the ACM SIGMOD International Conference on Management of Data ,

[26]

PIRAHESH, H., MOHAN, C., CHENG, J. M., et al., Parallelism in RDBMS: Architectural Issues and Design, In: Proceedings of the 2nd International Symposium on Databases in Distributed and Parallel Systems , pp. 429, Julho 1990.

[27]

VALDURIEZ, P., Parallel Database Systems: the case for shared-something. Proceedings of the 9 1993.
th

In:

International Conference on Data Engineering, pp.460-465,

[28]

BOUGANIM,

L.,

Data

Placement

for

Parallel

and

Distributed

Queries.

IDEA.DD.24B.002, INRIA, Frana, 1996. [29] GRAEFE, G., DAVISON, D. L., Encapsulation of Parallelism and ArchitectureIndependence in Extensible Database Query Execution. IEEE Transactions on Software Engineering, v. 19, n. 8, pp. 749-763, 1993. [30] LENOSKI, D., LAUDON, L., GHARACHORLOO, K., et al., The Stanford Dash Multiprocessor, Computer, n. 25, v. 3, pp. 63-79, Maro 1992. [31] HAGERSTEN, E., LANDIN, E., HARIDI, S., Ddm a Cache-Only Memory Architecture, Computer, n. 25, v. 9, pp. 44-54, Setembro 1992. [32] BOUGAMIN, L., FLORESCU, D., VALDURIEZ, P., MultiJoin Query Execution with Skew in NUMA Multiprocessors, Distributed and Parallel Databases, n. 7, v. 1, 1999. [33] SILICON GRAPHICS, Origin 2000 Deskside Owner's Guide. Califrnia, EUA, Julho 1998. [34] IBM CORPORATION, IBM DB2 Universal Database Enterprise-Extended Edition (EEE) on IBM NUMA-Q Hardware Platforms ; White Paper obtido em

http://www-306.ibm.com/software/data/db2/udb/numa-q/wp.pdf (obtido em 21/08/2004); Fevereiro 2000.

22

[35]

MEYER, L. A. V. C., MATTOSO, M. L. Q., Parallelism in database management systems. In: Anais do XII Simpsio Brasileiro de Banco de Dados, Tutorial publicado como separata com 38 pgs., Fortaleza/CE, Outubro 1997.

[36]

SEQUENT COMPUTER SYSTEMS, Oracle 8i for NUMA-Q: NUMA Enhancements Introduced in Oracle 8i Yield Substantial Improvements in OLTP Throughput and Scalability ; White Paper obtido (obtido em em

http://www.sequent.com/products/software/dbms/oracle8i_wp.html 28/03/2000); Fevereiro 1999. [37]

SEQUENT COMPUTER SYSTEMS, A Performance Study of the Oracle 7 Server on Sequents NUMA-Q Architecture; White Paper obtido (obtido em em

http://www.sequent.com/products/software/dbms/oracle7_wp1.html 28/03/2000); 1996. [38]

INFORMIX CORPORATION, Informix Extended Parallel Server 8.3; White Paper obtido em http://www.ewertdotcom.com/portfolio/docs/21924_701.pdf (obtido em 21/08/2004); 1999.

[39]

COMPAQ

CORPORATION,

NonStop

SQL/MP;

White

Paper

obtido

em

http://h71033.www7.hp.com/attach/7954 (obtido em 21/08/2004); Abril 1999.

23

Você também pode gostar