• Nenhum resultado encontrado

ANÁLISE DAS ARQUITETURAS DE BANCOS DE DADOS PARALELOS

N/A
N/A
Protected

Academic year: 2021

Share "ANÁLISE DAS ARQUITETURAS DE BANCOS DE DADOS PARALELOS"

Copied!
6
0
0

Texto

(1)

ANÁLISE DAS ARQUITETURAS DE BANCOS DE DADOS PARALELOS

1

Eduardo Augusto Silvestre,

2

Ligia Cristina Pestili

Instituto Federal do Triângulo Mineiro (IFTM) – Campus Avançado Patrocínio, Patrocínio – MG, 1

eduardosilvestre@iftm.edu.br, 2ligia.ifet01@gmail.com

Resumo - Sistemas de bancos de dados paralelos representam uma possível solução para melhoria do desempenho dos bancos de dados. Existem muitas arquiteturas de bancos de dados paralelos apresentadas na literatura, entre elas: memória compartilhada, disco compartilhado e nada compartilhado. Surpreendentemente, um dos principais problemas com as arquiteturas de bancos de dados paralelas começa já na escolha da arquitetura mais adequada a seu problema. Esse artigo mostra uma visão geral sobre BDP e arquiteturas paralelas de bancos de dados, para que a escolha de uma arquitetura paralela seja facilitada.

Palavras-Chave - Arquitetura de Bancos de Dados Paralelos, Arquitetura de Software, Bancos de dados, Bancos de Dados Paralelos.

ANALYSIS OF PARALLEL DATABASES

ARCHITECTURES

Abstract - Parallel databases systems represent a possible solution for improving the performance of databases. There are many parallel databases architectures in the literature, including: shared memory, shared disk and shared nothing. Surprisingly, one of the main problems with parallel databases architectures beginning to choose the architecture that best suits to your problem. This article provides an overview on parallel databases and parallel architectures for databases, so that the proper choice of parallel architecture be facilitated.

Keywords – Databases, Parallel Databases, Parallel Databases Architectures, Software Architecture.

I. INTRODUÇÃO

BDP são sistemas de banco de dados implementados em plataformas de computação paralela. Dessa forma, o processamento de consultas de alto desempenho foca no processamento de consultas, incluindo consultas a banco de dados e transações, que fazem uso de técnicas de paralelismo aplicadas à plataforma de computação paralela para alcançar alto desempenho [1].

A idéia básica por trás dos BDP é executar etapas de avaliação em paralelo. Existem muitas oportunidades de se fazer isso em um SGBD relacional; os bancos de dados representam um dos casos mais bem-sucedidos de computação paralela [2].

Um computador paralelo, ou multiprocessador, é ele próprio um sistema distribuído formado por vários nós (processadores e memórias) conectados por uma rede. A tecnologia e bancos de dados distribuídos pode ser naturalmente revisada e estendida para implementar sistemas de BDP, isto é, sistemas de banco de dados em computadores paralelos. Sistemas de BDP exploram o paralelismo no gerenciamento de dados, a fim de entregar servidores de bancos de dados de alto desempenho e alta disponibilidade a um preço muito mais baixo que os computadores de grande porte equivalentes [3].

Nesta primeira seção foi feita uma rápida apresentação a noção de BDP. Na segunda seção, além da introdução, serão abordados conceitos importantes relacionados, motivações para o processamento de consultas em paralelo, objetivos das consultas em paralelo e aspectos funcionais importantes dos BDP. Na terceira seção, as diferentes formas de paralelismo para processamento de dados são descritas. Na quarta seção, as principais arquiteturas paralelas encontradas na literatura serão apresentadas e explicadas. Na quinta seção, alguns trabalhos relacionados são citados. Por fim, no último capítulo, será feita uma conclusão sobre conceitos já firmados e sobre as novas tendências em relação à computação paralela, BDP e suas arquiteturas.

II. UMA VISÃO GERAL DOS BANCOS DE DADOS PARALELOS - INTRODUÇÃO

O desenvolvimento dos sistemas de gerenciamento de bancos de dados (SGBDs) coincidiu com significativa evolução da computação distribuída e tecnologias de processamento. A fusão destes dois recursos resultou no surgimento de sistemas de gestão de BDP. Estes sistemas tornaram-se os instrumentos dominantes no gerenciamento de dados para aplicações que usam intensivamente dados [4].

Em 1965, co-fundador da Intel, Gordon Earle Moore, previu que o número de transistores em um chip dobraria a cada 24 meses, uma previsão que se tornou conhecida popularmente como Lei de Moore. Assim, era esperado que o desempenho de uma CPU (Central Processing Unit – Unidade Central de Processamento) aumentasse ao redor de 50% a 60% por ano. Por outro lado, restrições mecânicas restringem a melhoria do tempo de acesso a disco e a taxa de transferência de dados, os valores para taxa de transferência de dados alcançam apenas 8% a 10% de aumento ao ano. Embora pesquisadores não concordem exatamente com os valores, eles mostram a diferença na taxa de avanço nas duas áreas. Assim, operações de entrada e saída em disco tornaram-se o principal gargalo, motivando as pesquisas em BDP. A necessidade de armazenar grandes volumes de dados, produzindo tempo de resposta rápido, escalabilidade,

(2)

confiabilidade, balanceamento de carga e disponibilidade de dados estão entre os fatores motivadores dos BDP. Há alguns anos atrás, os SBDP quase tiveram sua anulação no mercado, porém atualmente são comercializados com sucesso por, praticamente, todos os fornecedores de sistemas de bancos de dados[21].

Com a evolução do hardware surgiram novas tecnologias para o paralelismo, uma delas são os GPUs (Graphics Processing Units). Seu propósito inicial seria realizar operações gráficas processando cálculos que sobrecarregavam os processadores, mas observou-se que esse tipo de paralelismo poderia ser utilizado em âmbito geral. O GPU moderno não é apenas uma poderosa tecnologia para criação de gráficos, mas também um processador altamente paralelo, programável com aritmética de alto nível e largura de banda de memória que supera substancialmente a CPU [23].

Outra tecnologia que representa a evolução do hardware são os SMPs (Symmetric MultiProcessor) ou também arquiteturas de compartilhamento total, essas configurações são caracterizadas por até dezenas de processadores compartilhando todos os recursos computacionais disponíveis e executando em um único sistema operacional. Nessa arquitetura o acesso é igual tanto à memória quanto a qualquer dispositivo conectado ao sistema de entrada e saída. O processamento básico para sistemas de grande porte está se tornando rapidamente um multiprocessador simétrico (SMP), resultando em uma combinação de memória compartilhada e memória distribuída [22].

A. Definições importantes 1) Paralelismo

Paralelismo é uma idéia que existe há muito tempo, consistindo em diferentes tarefas sendo executadas ao mesmo tempo, de forma a produzir um resultado específico mais rapidamente [5].

2) Computação paralela

A computação paralela é uma forma de computação em que muitos cálculos são realizados simultaneamente, operando sobre o princípio de que grandes problemas geralmente podem ser divididos em partes menores e resolvidos simultaneamente ("em paralelo") [6]. Existem várias formas diferentes de computação paralela: nível de bits, nível de instrução, dados e paralelismo de tarefas. O paralelismo tem sido empregado por muitos anos, principalmente em computação de alto desempenho, mas o interesse tem crescido ultimamente, devido às restrições físicas à escala de freqüência. Como o consumo de energia (e conseqüentemente a geração de calor) por computadores tem se tornado uma preocupação nos últimos anos, a computação paralela tornou-se o paradigma dominante na arquitetura de computadores, principalmente na forma de processadores multinúcleo [6].

3) Arquitetura paralela

Uma arquitetura paralela consiste em máquinas capazes de executar várias tarefas ao mesmo tempo, executando o paralelismo de baixo nível [5].

4) Sistemas de bancos de dados em paralelo

Um SGBD paralelo pode ser definido em linhas gerais como um SGBD implementado sobre um multiprocessador estreitamente acoplado. Essa definição inclui muitas alternativas, variando desde portar diretamente um SGBD existente, o que pode exigir reescrever apenas as rotinas de interface do sistema operacional, até uma combinação sofisticada de funções de processamento paralelo e sistemas de banco de dados em uma nova arquitetura de hardware/software [3]. Os SGBDs paralelos exploram arquiteturas multiprocessador para a construção de alto desempenho e servidores de banco de dados de alta disponibilidade [3].

B. Processamento de consultas em paralelo: motivações O desempenho dos computadores hoje em dia está cada vez maior, entretanto mesmo com os avanços na engenharia computacional, ainda existem limitações de velocidade [1]. Devido a essas limitações, os projetistas de hardware têm procurado uma alternativa para aumentar o desempenho. Paralelismo é um dos resultados desses esforços.

O processamento paralelo dentro de um sistema de banco de dados permite uma resposta mais rapida às transações, bem como mais transações por segundo. As consultas são tratadas de modo que explorem o paralelismo oferecido pelo sistema. A necessidade de processamento paralelo fez surgir os sistemas de bancos de dados paralelos [21]. Sistemas paralelos melhoram processamento e velocidade de operações de entrada e saída usando múltiplos processadores e discos em paralelo. Isso habilita múltiplos processadores a trabalhar simultaneamente em várias partes de uma tarefa para completá-la mais rapidamente [1].

Adicionalmente, processamentos de banco de dados (operações em banco de dados) trabalham bem com paralelismo. Quando a mesma operação pode ser realizada em diferentes fragmentos de banco de dados, cria-se paralelismo e a noção de processamento de BDP [1].

Segundo [7] as motivações para o processamento paralelo podem ser resumidas em:

1) Velocidade maior ou resolver problemas mais rapidamente.

2) Throughput (o número de tarefas que podem ser completadas dentro de um dado intervalo de tempo) maior ou resolver mais instâncias de um dado problema.

3) Poder computacional maior ou resolver problemas maiores.

C. Processamento de consultas em paralelo: objetivos O objetivo primário do processamento de BDP é obter melhoria no desempenho. Existem duas medidas principais de melhoria de desempenho - a primeira é throughput e a segunda é tempo de resposta (a quantidade de tempo levado para completar uma tarefa). Um sistema que processa um grande número de pequenas transações pode aumentar seu throughput por meio do processamento de diversas transações em paralelo. Um sistema que processa um grande volume de transações pode aumentar o tempo de resposta, assim como o throughput por meio do processamento em paralelo[21].

(3)

Os SGBDs combinam o gerenciamento de bancos de dados e o processamento paralelo para aumentar o desempenho e a disponibilidade [3].

Assim, os projetistas de sistemas de bancos de dados procuraram desenvolver soluções orientadas para o software com a finalidade de explorar o hardware de vários processadores. Os objetivos dos sistemas de bancos de dados podem ser alcançados estendendo-se à tecnologia de dados distribuídos, por exemplo, pelo particionamento do banco de dados entre vários discos (pequenos), de forma a obter um grande paralelismo entre consulta e intraconsulta. Isso pode levar à melhorias significativas no tempo de resposta e no throughput [3].

D. Aspectos funcionais dos bancos de dados paralelos Um sistema de BDP atua como um servidor de banco de dados para vários servidores de aplicativos na organização [3].

No caso ideal, um sistema de BDP deve oferecer as seguintes vantagens com uma relação preço/desempenho muito melhor que seus equivalentes mainframes [3].

1) Alto desempenho

Pode ser obtido através de várias soluções complementares: suporte de sistema operacional orientado a banco de dados, paralelismo, otimização e balanceamento de carga. O paralelismo pode aumentar o throughput (usando o paralelismo entre consultas) e diminuir os tempos de respostas entre transações (usando o paralelismo intraconsulta) [3].

2) Alta disponibilidade

Como um sistema de BDP consiste em vários componentes semelhantes, ele pode explorar a replicação de dados para aumentar sua disponibilidade. Em um sistema paralelo com muitos discos pequenos, a probabilidade de uma falha de disco pode ser mais alta (que em um mainframe equivalente) [3].

3) Extensibilidade

Em um ambiente paralelo, deve ser mais fácil acomodar tamanhos crescentes de bancos de dados ou demandas crescentes de desempenho (por exemplo, throughput). A extensibilidade é a capacidade de expansão suave do sistema pela adição de poder de processamento e armazenamento a esse sistema [3].

III FORMAS DE PARALELISMO

Existem muitas formas diferentes de paralelismo para processamento em banco de dados, incluindo paralelismo interconsultas, paralelismo intraconsultas, paralelismo intraoperação, paralelismo interoperação [1].

A. Paralelismo interconsultas

Com o paralelismo interconsultas, múltiplas consultas são executadas independentemente e em múltiplos processadores [8]. É o paralelismo entre consultas – ou seja, diferentes consultas ou transações são executadas em paralelo com uma outra [9]. O uso primário é para scale up (aumentar o grau de paralelismo para resolver tarefas grandes) de sistemas de processamento de transações, suportando um grande número

de transações por segundo [1]. A Fig. 1 fornece uma ilustração gráfica do paralelismo interconsultas.

Fig. 1. Paralelismo Interconsultas

B. Paralelismo intraconsultas

Com o paralelismo intraconsultas, partes independentes de uma única consulta são executadas em paralelo em múltiplos processadores [8].

Uma consulta para um banco de dados, como um select, é normalmente dividida em múltiplas operações. Paralelismo intraconsulta é a execução de uma única consulta em paralelo em múltiplos processadores e discos . Neste caso, as múltiplas operações dentro de uma consulta são executadas em paralelo [9]. A Fig. 2 fornece uma ilustração gráfica do paralelismo intraconsultas.

Fig. 2. Paralelismo Intraconsultas

C. Paralelismo intraoperação

Como operações dos bancos de dados trabalham com tabelas contendo grande conjunto de registros, pode-se paralelizar as operações executando paralelamente diferentes subconjuntos de tabelas. Por conseqüência, paralelismo intraoperação é freqüentemente chamado paralelismo particionado – isto é, paralelismo devido aos dados serem divididos [9].

Como o número de registros em uma tabela pode ser grande, o grau de paralelismo é potencialmente enorme. Conseqüentemente, paralelismo intraoperação é natural em sistemas de bancos de dados [1]. A Fig. 3 fornece uma ilustração gráfica do paralelismo intraoperações

(4)

Fig. 3. Paralelismo Intraoperação

D. Paralelismo interoperação

Paralelismo interoperação é onde o paralelismo é criado executando concorrentemente diferentes operações dentro da mesma consulta/transação. Existem duas formas [9]:

1) Parelelismo Pipeline

O registro de saída de uma operação A é consumido por uma segunda operação B, mesmo antes da primeira operação ter produzido o conjunto inteiro de registros em sua saída [9]. Fig. 4 fornece ilustra o paralelismo de pipeline.

2) Paralelismo independente

É onde operações em uma consulta que não dependem de outra podem ser executadas em paralelo, por exemplo, Tabela1 join Tabela2 join Tabela3. Nesse caso, pode-se processar Tabela1 join Tabela2 em paralelo com Tabela3 join Tabela4 [9]. Fig. 5 ilustra o paralelismo independente.

Fig. 4. Paralelismo Pipeline

Fig. 5. Paralelismo Independente

IV. ARQUITETURAS DE BANCOS DE DADOS PARALELOS

Várias alternativas de arquiteturas paralelas foram desenvolvidas. Memória compartilhada, disco compartilhado e nada compartilhado são as principais arquiteturas de sistemas de banco de dados paralelos. Cada arquitetura tem suas vantagens e desvantagens. Recentemente, arquiteturas híbridas estão sendo investigadas para combinar as virtudes das três arquiteturas e superar suas deficiências individuais. A seguir, as principais arquiteturas de sistemas paralelos serão discutidas [10].

A. Arquitetura memória compartilhada

Na arquitetura memória compartilhada, também chamada tudo compartilhado, o sistema consiste em um número de processadores conectados a uma memória compartilhada e um disco compartilhado lógico (Fig. 6). Comunicação entre processadores é ofertada naturalmente quando é usado arquitetura por memória compartilhada. Sistemas seguindo essa arquitetura são caracterizados por excelente balanceamento de carga. A principal desvantagem desses tipos de sistemas é a escalabilidade e disponibilidade. Escalabilidade limitada é imposta pelo fato que todos os processadores competem para usar a memória compartilhada. Isso coloca um limite superior no número de processadores. Disponibilidade pode também ser limitada, por exemplo, se a memória compartilhada falhar todo o sistema falha [10].

Fig. 6. Arquitetura Memória Compartilhada

B. Arquitetura disco compartilhado

Arquiteturas de disco compartilhado fornecem para cada processador sua própria memória, com um disco global

(5)

compartilhado (Fig. 7) [10] [11]. Processadores não competem mais por uma memória compartilhada. Eles, entretanto, competem para acessar o disco compartilhado. Isso melhora o scale up para o processador centena de vezes. Esses sistemas ainda têm um bom balanceamento de carga. Disponibilidade é muito melhor que memória compartilhada, com o fato que falha no disco compartilhado significa falha no sistema inteiro. Em sistemas reais, o disco compartilhado é fisicamente vários módulos de disco conectados através de uma rede a todos os elementos processadores. Isso fornece uma alta confiabilidade para o disco como um todo.

Fig. 7. Arquitetura Disco Compartilhado

C. Arquitetura nada compartilhado

Um sistema nada compartilhado pode ser pensando como um número de computadores autônomos, cada um tem sua memória e disco privado e estão conectados por uma rede de interconexão (Fig. 8). A principal vantagem dessa arquitetura é a habilidade de scale up centenas de processadores. Ele tem também alta disponibilidade e confiabilidade. De fato, a falha de um nó não deveria afetar o resto dos nós. Disponibilidade pode ser alcançada replicando dados em diferentes nós dentro do sistema. Balanceamento de carga e skew (variação bem superior à média, devido ao esquema de particionamento de dados inadequados) são os maiores problemas enfrentados nessa arquitetura [12].

Arquiteturas nada compartilhado minimizam a interfererência pela diminuição do compartilhamento de recursos. Elas também exploram a comodidade de processadores e memórias sem precisar de uma interconexão de rede robusta [11].

Fig. 8. Arquitetura Nada Compartilhado

D. Arquitetura híbrida

Como mostrado na discussão anterior, cada uma das várias arquiteturas tem algumas vantagens e algumas desvantagens. Enquanto arquiteturas de memória

compartilhada e disco compartilhado tem bom balanceamento de carga, elas tem limitado scale up e disponibilidade. Nada compartilhado tem as vantagens de alta disponibilidade e alta escalabilidade, mas sofre com o problema de balanceamento de carga. Um arquitetura híbrida teria um sistema nada compartilhado com nós que são mais poderosos que um único computador. Os nós dentro de um sistema nada compartilhado podem ser sistemas memória compartilhada ou disco compartilhado. Isso, ajuda a preservar a escalabilidade e a disponibilidade, adiciona balanceamento de carga que existe na memória compartilhada e nos sistemas de disco compartilhado[10]. Fig. 9 ilustra essa arquitetura.

Fig. 9. Arquitetura Híbrica

E. Considerações importantes

A arquitetura de memória compartilhada está mais próxima de uma máquina convencional e muitos sistemas de bancos de dados comerciais têm sido portados para plataformas de memória compartilhada com relativa facilidade. A sobrecarga de comunicação é baixa, pois a memória principal pode ser usada para este propósito, e os serviços do sistema operacional podem ser beneficiados pelo uso das CPUs adicionais. Embora essa estratégia seja atraente para se obter paralelismo moderado, apenas algumas dezenas de CPUs podem ser exploradas dessa maneira, pois a disputa pela memória torna-se um gargalo quando o número de CPUs aumenta. A arquitetura de disco compartilhado enfrenta um problema semelhante, pois grandes volumes de dados são enviados pela rede de interconexão [2].

O problema básico das arquiteturas de memória compartilhado é a interferência: a medida que mais CPUs são adicionadas, as existentes perdem velocidade, devido à maior disputa pelos acessos à memória e pela largura de banda de rede. Tem-se observado que mesmo uma média de atraso de 1% por CPU adicional significa que o aumento de velocidade máximo é de um fator de 37 e, acrescentar mais CPUs na verdade diminui a velocidade do sistema; um sistema com 100 CPUs é apenas 4% mais eficiente do que um sistema de uma única CPU. Essa observação motivou o desenvolvimento da arquitetura do nada compartilhado, que agora é amplamente considerada como a melhor arquitetura para sistemas de BDP grandes [2].

A arquitetura do nada compartilhado exige uma reorganização mais ampla do código do SGBD, mas tem mostrado aumento de velocidade linear, no sentido de que o tempo gasto pelas operações diminui proporcionalmente ao aumento do número de CPUs e discos, e aumenta de escala linear, no sentido que o desempenho é mantido se o número de CPUs e disco aumentam proporcionalmente ao volume de dados. Conseqüentemente, sistemas de bancos de dados ainda mais poderosos podem ser construídos, tirando-se

(6)

proveito do desempenho cada vez melhor dos sistemas de CPU única e conectando-se quantas CPUs forem desejadas [2].

V. TRABALHOS RELACIONADOS

Enquanto existem vários sistemas de bancos de dados comerciais e pesquisas sobre eles, ainda não está claramente definida qual a melhor arquitetura. Muitos pesquisadores estão investigando arquiteturas de BDP.

Artigos e pesquisas sobre as arquiteturas de BDP podem ser categorizadas em duas áreas principais: artigos que detalham as arquiteturas convencionais, como memória compartilhada e os artigos que implementam novas arquiteturas.

Dentre as arquiteturas convencionais, em [10] [11] são apresentadas as mesmas arquiteturas escolhidas como mais comuns neste artigo. Destaque especial para [10], onde algumas simulações são feitas para comparar o desempenho do sistema sobre diferentes cargas de trabalho.

Já em [4] [13] [14] [15] [16] as arquiteturas de BDP são divididas em dois extremos, o nada compartilhado e as arquiteturas de memória compartilhada.

Em [14] além da divisão em dois extremos, cita-se também alguns bancos dados comerciais paralelos que usam nada compartilhado, segundo [14] o mais usado.

Dentre as novas arquiteturas, em [17] é apresentada uma arquitetura paralela de alto desempenho para processamento de bancos de dados baseados no modelo relacional. Já em [18] é proposto uma abordagem escalável que combina as vantagens do nada compartilhado e tudo compartilhado. Em [19] é proposto uma arquitetura para uso em qualquer máquina paralela de propósito geral. [20] mostra o sistema Bubba. Um sistema de computador paralelo para aplicações que usam intensamente dados. Por fim, em [12] é apresentado o SMASH, um sistema de processamento paralelo para suportar uma ampla variedade de aplicações de bancos de dados.

VI. CONCLUSÕES

Um sistema de BDP procura melhorar o desempenho por meio da execução em paralelo de várias operações como carregamento de dados, construção de índices e avaliação de consultas.

Embora existam SGBDs paralelos comerciais bem-sucedidos, existem ainda alguns problemas a serem solucionados. A questão mais importante e primordial é decidir qual das várias arquiteturas como memória compartilhada, disco compartilhado, nada compartilhado e também as arquiteturas híbridas é a melhor para o gerenciamento de bancos de dados.

No caso de uma configuração pequena (dezenas de computadores), a memória compartilhada pode proporcionar o mais alto desempenho, devido ao melhor balanceamento de carga. Entretanto, disco compartilhado e nada compartilhado superam a memória compartilhada em termos de disponibilidade e extensibilidade.

Existem também as novas arquiteturas propostas, que tentam utilizar várias arquiteturas em uma. Essas novas arquiteturas tentam utilizar as melhores características de

outras abordagens existentes como tentativa de produzir um melhor resultado.

Assim, BDP e suas arquiteturas têm alguns problemas em aberto, começando pela escolha da própria arquitetura. Oferecendo muitas oportunidades de pesquisa na área.

REFERÊNCIAS BIBLIOGRÁFICAS

[1] Taniar, D. Leung, C. H. C. Sushant, G. High-Performance Parallel Database Processing and Grid Databases. Wiley, 2008.

[2] Ramakrishnan, R. Gehrke, J. Database Management Systems, Third edition. McGraw-Hill, 2002.

[3] Valduriez, P. Tamer Özsu, M. Principles of Distributed Database Systems, Second Edition. Prentice Hall, 1999.

[4] Talwadker, A. S. Survey of performance issues in parallel database systems. Journal of Computing Sciences in Colleges. Volume 18, 2003.

[5] Snow, C. R. Concurrent Programming. Cambridge University Press, 1992.

[6] Almasi, G. S. Gottlieb, A. Highly Parallel Computing. Addison Wesley Longman. Sub edition, October 1993.

[7] P. Behrooz. Introduction to Parallel Processing: Algorithms and Architectures. Springer, 1999.

[8] Kim, W. Modern Database Systems: The Object Model, Interoperability, and Beyond. Addison Wesley Longman; 1st edition; January, 1995.

[9] Silberschatz, A. Korth, H. Sudarshan, S. Database System Concepts. McGraw-Hill Science, 6a edition, 2010.

[10] Mohamed, E. E. El-Rewini, Abdel-Wahab, H. H. M. Helal, A. Parallel Database Architectures: A comparison study. Journal Informatica (Slovenia), 1998.

[11] DeWitt, D. J. Gray, J. Parallel database systems - The future of high performance database processing. ACM, 1992.

[12] Kiyoki , Y. Kurosawa, T. Kato, K. Masuda, T. The Software Architecture of a Parallel Processing System for Advanced Database Applications. IEEE, 1991.

[13] DeWitt, D. J. Gray, J. Parallel database systems - The Future of Database Processing or a Passing Fad. Sigmod Record, 1990. [14] Sadat, A. B. M. R. I. Lecca, P. On the performances in simulation of

parallel database: an overview on the most recent techniques for query optimization. International Workshop on High Performance Computational Systems Biology, 2009.

[15] Valduriez, P. Tamer Özsu, M. Distributed and Parallel Database Systems. ACM, 1996.

[16] Gottemukkala, V. Omiecinski, E. Ramachandran, U. A Scalable Sharing Architecture for a Parallel Database System. IEEE, 1994. [17] Leung, C. H. C. Ghogomu, H. T. A high-performance parallel database

architecture. ACM, 1993.

[18] Suri, P. R. Rani, S. A new classification for architecture of parallel database. Information Technology Journal, 2008.

[19] Afshar, M. Bates, J. Bierman, G. Moody, K. A New General Purpose Parallel Database System. IEEE, 1997.

[20] Boral, H. Alexander, W. Clay, L. Copeland, G. Danforth, S. Franklin, M. Hart, B. Smith, M. Valduriez, P. Prototyping Bubba, A Highly Parallel Database System, IEEE Transactions on Knowledge and Data Engineering, v.2 n.1, p.4-24, March 1990.

[21] Silberschatz, A. Korth, H. Sudarshan, S. Database System Concepts. McGraw-Hill Companies, 4a edition, 2001.

[22] Silberschatz, A. Korth, H. Sudarshan, S. Database System Concepts. McGraw-Hill Companies, 4a edition, 2001.

[23] W.W. Gropp, E.L. Lusk, “A taxonomy of programming models for symmetric multiprocessors na SMP clusters”, pmmp, pp.2,

Programming Models for Massively Parallel Computers (PMMP’95), 1995.

[24] Owens, J. and Houston, M. and Luebke, D. and Green, S. and Stone, J. and Phillips, J. (2008) “GPU Computing”, In: Proceeedings of the IEEE.

Referências

Documentos relacionados

É_Realizada n n (0,3) (0,n) Inscrição Nome RG Expedidor UF Data Média Tipo Nota Questões Número Área Sub-Área Avaliação 3 n Esquema ER para o banco de dados CONCURSO..

Marca Vendedor Veículo Ford João Carro Ford João Caminhão Ford Mário Caminhão Fiat Mário Carro Chevrolet Felipe Carro Chevrolet João Carro Chevrolet João

Membro_Faculdade (Matrícula: Inteiro, Nome: string[50], Carga: Inteiro, IniContrato: data, Curso: string[30], professor: booleano, aluno: booleano). Membro

A não uniformização quanto ao método de referência pode promover diferenças entre as curvas de calibração geradas por laboratórios de dosimetria citogenética, que podem

Estes resultados apontam para melhor capacidade de estabelecimento inicial do siratro, apresentando maior velocidade de emergência e percentual de cobertura do solo até os 60

Entendendo, então, como posto acima, propõe-se, com este trabalho, primeiramente estudar a Lei de Busca e Apreensão para dá-la a conhecer da melhor forma, fazendo o mesmo com o

A variação do pH da fase móvel, utilizando uma coluna C8 e o fluxo de 1,2 mL/min, permitiu o ajuste do tempo de retenção do lupeol em aproximadamente 6,2 minutos contribuindo para

Este presente artigo é o resultado de um estudo de caso que buscou apresentar o surgimento da atividade turística dentro da favela de Paraisópolis, uma