Programação Paralela em Arquiteturas Multi-Core/Aplicações Internet: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Nandopi (discussão | contribs)
Atualização banco de dados
Linha 15:
== Aplicações para infra-estrutura ==
 
*=== Banco de Dados ===
*Servidores
 
*Banco de Dados
Sistemas de banco de dados altamente paralelos estão começando a substituir os tradicionais mainframes para maiores bancos de dados e tarefas de transações.
*Gerenciamento de tráfego
 
*Protocolos paralelos
A partir da hegemonia do modelado de dados relacionais, sistemas de banco de dados relacionais começaram a aparecer no mercado. As consultas relacionais são idealmente convertidas para execução em paralelo, pois elas consistem em operações uniformes aplicadas a conjuntos de dados uniformes. Cada operação produz uma nova relação, então as operações podem ser decompostas em fluxos de dados altamente paralelos.
 
Ao utilizamos a saída de um operador na entrada de outro, os dois operadores podem trabalhar em série, o que gera um pipeline paralelo. Podemos também particionar os dados de entrada entre vários processadores e memórias, pois uma operação pode, com grande freqüência, ser dividida em várias operações independentes, cada um trabalhando em uma parte dos dados. Esta divisão de dados e execução gera um paralelismo particionado.
 
[[Imagem:Bdparalelo.png]]
 
Esta técnica requer uma comunicação entre os sistemas de bancos de dados paralelos, seja através de mensagens, seja através de recursos compartilhados ou de outros métodos possíveis. Esses métodos se baseiam na arquitetura do sistema de banco de dados.
 
Apesar do grande número de arquiteturas de sistemas de banco de dados paralelos e distribuídos, há um consenso quanto ao uso da arquitetura sem compartilhamento. Nesses sistemas, as tuplas de cada relação no banco de dados são particionadas dentre as unidades de disco que estão ligadas diretamente a cada processador. Isso permite que vários processadores possam buscar em grandes relações paralelamente sem precisar de dispositivos de E/S sofisticados.
 
==== Otimização de consultas em paralelo ====
 
Os otimizadores de consultas a banco de dados não consideram todos as possíveis formas de otimização em uma consulta relacional devido a sua complexidade e, apesar dos modelos de custos para consultas relacionais executadas em um único processador serem bem conhecidos, eles ainda dependem de estimativas de custo, que no melhor caso, adivinham.
 
Algoritmos paralelos para cada operação e organização das árvores de consultas podem ser usados para aumentar significativamente o número de otimizações possíveis encontradas a cada consulta, aumentando consideravelmente a velocidade das consultas.
 
*=== Gerenciamento de tráfego ===
*=== Protocolos paralelos ===
 
== Aplicações distribuídas ==