pgDay Campinas 2013 - PostgreSQL XC in Cloud IaaS

151 visualizações

Publicada em

Palestra sobre PostgresXC

Publicada em: Dados e análise
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
151
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

pgDay Campinas 2013 - PostgreSQL XC in Cloud IaaS

  1. 1. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC em Cloud IaaS A Experiência - PGDay Campinas 2013 Matheus de Oliveira e Vinícius Schmidt
  2. 2. Postgres-XC em Cloud IaaS PGDay Campinas 2013
  3. 3. Postgres-XC em Cloud IaaS PGDay Campinas 2013
  4. 4. Postgres-XC em Cloud IaaS PGDay Campinas 2013 PostgreSQL Streamming Replication
  5. 5. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Streamming Replication Replicação master/slave: Um único servidor primário/master – escrita/leitura Diversos secundários/slaves – somente leitura
  6. 6. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Streamming Replication
  7. 7. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Streamming Replication Características: Replicação por stream de dados (WAL) Replicação síncrona (9.1) ou assíncrona Muito rápida (se comparado à log shipping) Servidores réplicas disponíveis para consulta Rápida promoção de um slave para master Replicação em cascata (9.2)
  8. 8. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Streamming Replication Aplicações: Alta disponibilidade Escalabilidade de leitura – balanceamento de carga Servidores distribuídos geograficamente
  9. 9. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Streamming Replication Limitações: Apenas um servidor síncrono Atraso na replicação assíncrona Sem escalabilidade de escrita Balanceamento de carga (leitura) feita pela aplicação ou middleware (como PGPool-II) Alta disponibilidade feita com ferramentas a parte (ou manualmente)
  10. 10. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC
  11. 11. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – Visão Geral Cluster de banco de dados para alta performance: Cluster multi-master Operações de escrita síncronas Escalabilidade horizontal de leitura e escrita Tabelas replicadas ou distribuídas Banco de dados relacional 100% ACID (transacional) Interface de acesso via SQL ...
  12. 12. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC O Projeto: Fork do código-fonte do PostgreSQL Re-implementa funcionalidades e correções de novas versões Pretendem “juntar” novamente um dia... Mesma licença do PostgreSQL
  13. 13. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC Desenvolvimento: Todos podem enviar patches pela lista de desenvolvimento. Patches são revisados pelos desenvolvedores. Eles tem a chance de avaliar, atualizar os fontes, ou pedir por novas features. Se um commiter se sentir pronto para commitar, deve anunciar na lista e deixar 24 horas para aguardar uma melhoria de alguém.
  14. 14. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – Commiters Em Set. 1st, 2013, haviam: Ashutosh Bapat Abbas Butt Amit Khandekar Satoshi Nagayasu Michael Paquier Masataka Saito Koichi Suzuki Política para novos Committers: Não há um processo definido para como novos commiters são selecionados. Tipicamente, candidatos devem enviar bons patches por um “longo” período. Então, os commiters existentes ou o “core team” irá propor para que essa pessoa seja aprovada como commiter.
  15. 15. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – Development Flow
  16. 16. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – Escalabilidade DBT-1 throughput scalability
  17. 17. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – Arquitetura
  18. 18. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – Arquitetura Coordinators Recebem as conexões/comandos dos usuários e redireciona aos datanodes Análise/Planejamento/Execução de SQL Enviam comandos para os datanodes, processam o resultado e retornam ao usuário Datanodes Armazenam os dados Execução de SQL local Basicamente o “bom e velho” PostgreSQL
  19. 19. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – Arquitetura GTM (Global Transaction Manager) Gerencia o controle de transações e visibilidade Gerencia as sequências (sequences) Tem-se sempre um único GTM para o cluster GTM-Standby Alta disponibilidade/backup para o GTM GTM-Proxy Se responsabiliza pela conexão ao GTM Diminui o overhead de comunicação ao GTM agrupando requisições/respostas Em geral, tem-se um em cada nó
  20. 20. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC Topologias e Casos de Uso
  21. 21. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – Distribuição dos dados Distribuição: Os dados de uma tabela pode estar presente em um ou mais datanode Grupo de datanodes: Pode-se selecionar em qual(is) datanode(s) distribuir cada tabela Tabelas replicadas: Todos eles terão todos os dados dessa tabela Tabelas distribuídas: Cada um terá uma parte dos dados Distribuição via: hash, roundrobin ou módulo
  22. 22. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – Tabelas replicadas
  23. 23. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – Tabelas distribuídas
  24. 24. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – DN/DC juntos
  25. 25. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – DN/DC juntos Vantagens: Arquitetura mais simples e de fácil manuntenção Bom para aplicações OLTP Muito bom para tabelas replicadas (tudo executado localmente, sem latência de rede) Desvantagens: Concorrência de CPU (nem sempre) Pontos de falha
  26. 26. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – DN/DC separados
  27. 27. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – DN/DC separados Mais DNs e menos DCs: Bom para aplicações com muita escrita e pouca leitura E tabelas distribuídas Mais DCs e menos DNs: Algumas tabelas distribuídas outras replicadas Muita escrita e muita leitura Processamento maior nos coordenadores Equilíbrio: Facilidade de balanceamento de carga Adição de nós: Adicionar DC é fácil Adicionar DN não
  28. 28. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC Alta Disponibilidade/Backup
  29. 29. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – Alta disponibilidade GTM: Usar GTM Standby DN/DC: Replicação síncrona Failover/Failback: Utilizar ferramenta de HA (Corosync+Pacemaker, Heartbeat, etc.) Manualmente
  30. 30. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – Alta disponibilidade
  31. 31. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – Backup pg_dump: Executar em qualquer coordenador Backup físico offline: Parar todo o cluster e copiar Backup físico online: Criar barreira: CREATE BARRIER meu_backup; Realizar um backup-base em cada nó
  32. 32. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Considerações Finais
  33. 33. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC na Nuvem (AWS) Escalabilidade: Possibilidade de adicionar nós para aumentar escalabilidade tanto de escrita quanto de leitura Apesar disso, adicionar nós automaticamente não é viável (como no Autoscaling) Balanceamento de carga: Simplesmente adicionar um ELB sobre os nós coordenadores e porta 5432
  34. 34. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC na Nuvem (AWS) Tentativa e erro: Encontrar a melhor topologia não é fácil Na nuvem, podemos testar diversos modelos Comprar hardware pra “testar” cluster é inviável Ambiente virtualizado: Devido a distribuição, o I/O deixa de ser o gargalo Muitas tabelas distribuídas: Priorizar memória e CPU para os coordenadores
  35. 35. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Dificuldades Alta disponibilidade: Muitos SPOFs Distribuição de tabelas: Encontrar a melhor chave e as tabelas que devem ser particionadas ou replicadas, não é fácil e depende (e muito) das consultas feitas pela aplicação Topologia ideal: Também depende do padrão de acesso As possibilidades são muitas
  36. 36. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Matheus de Oliveira <matheus.oliveira@dextra.com.br> Vinícius Schmidt <vinicius.schmidt@dextra.com.br>
  37. 37. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Perguntas???
  38. 38. Postgres-XC em Cloud IaaS PGDay Campinas 2013

×