SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
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
Postgres-XC em Cloud IaaS
PGDay Campinas 2013
Postgres-XC em Cloud IaaS
PGDay Campinas 2013
Postgres-XC em Cloud IaaS
PGDay Campinas 2013
PostgreSQL
Streamming Replication
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
Postgres-XC em Cloud IaaS
PGDay Campinas 2013
Streamming Replication
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)
Postgres-XC em Cloud IaaS
PGDay Campinas 2013
Streamming Replication
Aplicações:
Alta disponibilidade
Escalabilidade de leitura – balanceamento de
carga
Servidores distribuídos geograficamente
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)
Postgres-XC em Cloud IaaS
PGDay Campinas 2013
Postgres-XC
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
...
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
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.
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.
Postgres-XC em Cloud IaaS
PGDay Campinas 2013
Postgres-XC – Development Flow
Postgres-XC em Cloud IaaS
PGDay Campinas 2013
Postgres-XC – Escalabilidade
DBT-1 throughput scalability
Postgres-XC em Cloud IaaS
PGDay Campinas 2013
Postgres-XC – Arquitetura
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
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ó
Postgres-XC em Cloud IaaS
PGDay Campinas 2013
Postgres-XC
Topologias e Casos de Uso
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
Postgres-XC em Cloud IaaS
PGDay Campinas 2013
Postgres-XC – Tabelas replicadas
Postgres-XC em Cloud IaaS
PGDay Campinas 2013
Postgres-XC – Tabelas distribuídas
Postgres-XC em Cloud IaaS
PGDay Campinas 2013
Postgres-XC – DN/DC juntos
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
Postgres-XC em Cloud IaaS
PGDay Campinas 2013
Postgres-XC – DN/DC separados
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
Postgres-XC em Cloud IaaS
PGDay Campinas 2013
Postgres-XC
Alta Disponibilidade/Backup
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
Postgres-XC em Cloud IaaS
PGDay Campinas 2013
Postgres-XC – Alta disponibilidade
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ó
Postgres-XC em Cloud IaaS
PGDay Campinas 2013
Considerações
Finais
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
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
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
Postgres-XC em Cloud IaaS
PGDay Campinas 2013
Matheus de Oliveira
<matheus.oliveira@dextra.com.br>
Vinícius Schmidt
<vinicius.schmidt@dextra.com.br>
Postgres-XC em Cloud IaaS
PGDay Campinas 2013
Perguntas???
Postgres-XC em Cloud IaaS
PGDay Campinas 2013

Weitere ähnliche Inhalte

Was ist angesagt?

Otimizando o desempenho de transferência de arquivos e diretórios entre servi...
Otimizando o desempenho de transferência de arquivos e diretórios entre servi...Otimizando o desempenho de transferência de arquivos e diretórios entre servi...
Otimizando o desempenho de transferência de arquivos e diretórios entre servi...Joao Galdino Mello de Souza
 
Acelerando sites e aplicacoes moveis com uma CDN
Acelerando sites e aplicacoes moveis com uma CDNAcelerando sites e aplicacoes moveis com uma CDN
Acelerando sites e aplicacoes moveis com uma CDNAmazon Web Services LATAM
 
Cloud Server Embratel
Cloud Server EmbratelCloud Server Embratel
Cloud Server EmbratelAlex Hübner
 
Apresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - BemobiApresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - BemobiRicardo Martins ☁
 
Treinamento de Performance and tuning
Treinamento de Performance and tuningTreinamento de Performance and tuning
Treinamento de Performance and tuningDell Technologies
 
Acelerando sites e aplicações Web com uma CDN
Acelerando sites e aplicações Web com uma CDNAcelerando sites e aplicações Web com uma CDN
Acelerando sites e aplicações Web com uma CDNJose Papo, MSc
 
Bancos de dados analíticos open source
Bancos de dados analíticos open sourceBancos de dados analíticos open source
Bancos de dados analíticos open sourceMatheus Espanhol
 
Web Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+ApacheWeb Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+ApacheDell Technologies
 
Treinamento de AWS - 2° Parte
Treinamento de AWS - 2° ParteTreinamento de AWS - 2° Parte
Treinamento de AWS - 2° ParteSite Blindado Labs
 
Webinar: Serviço de Distribuição de Conteúdo da AWS
Webinar: Serviço de Distribuição de Conteúdo da AWS Webinar: Serviço de Distribuição de Conteúdo da AWS
Webinar: Serviço de Distribuição de Conteúdo da AWS Amazon Web Services LATAM
 
Curso de Performance and Tuning - Linux
Curso de Performance and Tuning - LinuxCurso de Performance and Tuning - Linux
Curso de Performance and Tuning - LinuxDell Technologies
 

Was ist angesagt? (12)

Otimizando o desempenho de transferência de arquivos e diretórios entre servi...
Otimizando o desempenho de transferência de arquivos e diretórios entre servi...Otimizando o desempenho de transferência de arquivos e diretórios entre servi...
Otimizando o desempenho de transferência de arquivos e diretórios entre servi...
 
Construindo um Data Lake na AWS
Construindo um Data Lake na AWSConstruindo um Data Lake na AWS
Construindo um Data Lake na AWS
 
Acelerando sites e aplicacoes moveis com uma CDN
Acelerando sites e aplicacoes moveis com uma CDNAcelerando sites e aplicacoes moveis com uma CDN
Acelerando sites e aplicacoes moveis com uma CDN
 
Cloud Server Embratel
Cloud Server EmbratelCloud Server Embratel
Cloud Server Embratel
 
Apresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - BemobiApresentando o OpsWorks - Bemobi
Apresentando o OpsWorks - Bemobi
 
Treinamento de Performance and tuning
Treinamento de Performance and tuningTreinamento de Performance and tuning
Treinamento de Performance and tuning
 
Acelerando sites e aplicações Web com uma CDN
Acelerando sites e aplicações Web com uma CDNAcelerando sites e aplicações Web com uma CDN
Acelerando sites e aplicações Web com uma CDN
 
Bancos de dados analíticos open source
Bancos de dados analíticos open sourceBancos de dados analíticos open source
Bancos de dados analíticos open source
 
Web Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+ApacheWeb Seminário sobre Varnish+Nginx+Apache
Web Seminário sobre Varnish+Nginx+Apache
 
Treinamento de AWS - 2° Parte
Treinamento de AWS - 2° ParteTreinamento de AWS - 2° Parte
Treinamento de AWS - 2° Parte
 
Webinar: Serviço de Distribuição de Conteúdo da AWS
Webinar: Serviço de Distribuição de Conteúdo da AWS Webinar: Serviço de Distribuição de Conteúdo da AWS
Webinar: Serviço de Distribuição de Conteúdo da AWS
 
Curso de Performance and Tuning - Linux
Curso de Performance and Tuning - LinuxCurso de Performance and Tuning - Linux
Curso de Performance and Tuning - Linux
 

Andere mochten auch

PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...
PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...
PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...PGDay Campinas
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Marcos William Valentini
 
PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná
PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do ParanáPGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná
PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do ParanáPGDay Campinas
 
Jaime Casanova - Domando a la bestia Replicación
Jaime Casanova - Domando a la bestia ReplicaciónJaime Casanova - Domando a la bestia Replicación
Jaime Casanova - Domando a la bestia ReplicaciónPGDay Campinas
 
PGDay Campinas 2013 - Window Function e CTE – Surpreendente
PGDay Campinas 2013 - Window Function e CTE – SurpreendentePGDay Campinas 2013 - Window Function e CTE – Surpreendente
PGDay Campinas 2013 - Window Function e CTE – SurpreendentePGDay Campinas
 
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)Fabrízio Mello
 
PGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBAPGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBADextra
 
PGDay Campinas 2013 - Mineração de Dados com MADlib
PGDay Campinas 2013 - Mineração de Dados com MADlibPGDay Campinas 2013 - Mineração de Dados com MADlib
PGDay Campinas 2013 - Mineração de Dados com MADlibPGDay Campinas
 
Gerenciamento de Backup e Recovery com o Barman
Gerenciamento de Backup e Recovery com o BarmanGerenciamento de Backup e Recovery com o Barman
Gerenciamento de Backup e Recovery com o BarmanCaio Oliveira
 
Palestra Diogo Rubert - PGDAY Campinas 2015
Palestra Diogo Rubert - PGDAY Campinas 2015Palestra Diogo Rubert - PGDAY Campinas 2015
Palestra Diogo Rubert - PGDAY Campinas 2015Diogo L. V. G. Rubert
 
PostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados UniversoPostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados Universoelliando dias
 
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...PGDay Campinas
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosMarcos Thomaz
 
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...PGDay Campinas
 
PGDay Campinas 2013 - Como Full Text Search pode ajudar na busca textual
PGDay Campinas 2013 - Como Full Text Search pode ajudar na busca textualPGDay Campinas 2013 - Como Full Text Search pode ajudar na busca textual
PGDay Campinas 2013 - Como Full Text Search pode ajudar na busca textualPGDay Campinas
 
DevOps & PostgreSQL - Provisionamento Ágil
DevOps & PostgreSQL - Provisionamento ÁgilDevOps & PostgreSQL - Provisionamento Ágil
DevOps & PostgreSQL - Provisionamento Ágilinstructbr
 
Análise de performance usando as estatísticas do PostgreSQL
Análise de performance usando as estatísticas do PostgreSQLAnálise de performance usando as estatísticas do PostgreSQL
Análise de performance usando as estatísticas do PostgreSQLMatheus de Oliveira
 

Andere mochten auch (20)

PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...
PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...
PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
 
PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná
PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do ParanáPGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná
PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná
 
Arquivos No Banco
Arquivos No BancoArquivos No Banco
Arquivos No Banco
 
Pgday campinas 2015
Pgday campinas 2015Pgday campinas 2015
Pgday campinas 2015
 
Jaime Casanova - Domando a la bestia Replicación
Jaime Casanova - Domando a la bestia ReplicaciónJaime Casanova - Domando a la bestia Replicación
Jaime Casanova - Domando a la bestia Replicación
 
PGDay Campinas 2013 - Window Function e CTE – Surpreendente
PGDay Campinas 2013 - Window Function e CTE – SurpreendentePGDay Campinas 2013 - Window Function e CTE – Surpreendente
PGDay Campinas 2013 - Window Function e CTE – Surpreendente
 
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
 
PGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBAPGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBA
 
PGDay Campinas 2013 - Mineração de Dados com MADlib
PGDay Campinas 2013 - Mineração de Dados com MADlibPGDay Campinas 2013 - Mineração de Dados com MADlib
PGDay Campinas 2013 - Mineração de Dados com MADlib
 
Gerenciamento de Backup e Recovery com o Barman
Gerenciamento de Backup e Recovery com o BarmanGerenciamento de Backup e Recovery com o Barman
Gerenciamento de Backup e Recovery com o Barman
 
Palestra Diogo Rubert - PGDAY Campinas 2015
Palestra Diogo Rubert - PGDAY Campinas 2015Palestra Diogo Rubert - PGDAY Campinas 2015
Palestra Diogo Rubert - PGDAY Campinas 2015
 
pgDay Campinas – 2015
pgDay Campinas – 2015pgDay Campinas – 2015
pgDay Campinas – 2015
 
PostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados UniversoPostgreSQL: O melhor banco de dados Universo
PostgreSQL: O melhor banco de dados Universo
 
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
 
Curso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos ComandosCurso de PostgreSQL: Um pouco Além dos Comandos
Curso de PostgreSQL: Um pouco Além dos Comandos
 
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
 
PGDay Campinas 2013 - Como Full Text Search pode ajudar na busca textual
PGDay Campinas 2013 - Como Full Text Search pode ajudar na busca textualPGDay Campinas 2013 - Como Full Text Search pode ajudar na busca textual
PGDay Campinas 2013 - Como Full Text Search pode ajudar na busca textual
 
DevOps & PostgreSQL - Provisionamento Ágil
DevOps & PostgreSQL - Provisionamento ÁgilDevOps & PostgreSQL - Provisionamento Ágil
DevOps & PostgreSQL - Provisionamento Ágil
 
Análise de performance usando as estatísticas do PostgreSQL
Análise de performance usando as estatísticas do PostgreSQLAnálise de performance usando as estatísticas do PostgreSQL
Análise de performance usando as estatísticas do PostgreSQL
 

Ähnlich wie PGDay Campinas 2013 - Postgres XC @ Cloud

Docker SP - Orquestrando docker via Marathon e Mesos na Konker
Docker SP - Orquestrando docker via Marathon e Mesos na KonkerDocker SP - Orquestrando docker via Marathon e Mesos na Konker
Docker SP - Orquestrando docker via Marathon e Mesos na KonkerAndré Rocha
 
Data center MCSBRC2010-slides.pdf
Data center MCSBRC2010-slides.pdfData center MCSBRC2010-slides.pdf
Data center MCSBRC2010-slides.pdfssuser1198af
 
Avaliação de arquiteturas de soluções de backup para a nuvem e na nuvem
Avaliação de arquiteturas de soluções de backup para a nuvem e na nuvemAvaliação de arquiteturas de soluções de backup para a nuvem e na nuvem
Avaliação de arquiteturas de soluções de backup para a nuvem e na nuvemJoao Galdino Mello de Souza
 
Avaliação de arquiteturas de uma solução de backup da nuvem
Avaliação de arquiteturas de uma solução de backup da nuvemAvaliação de arquiteturas de uma solução de backup da nuvem
Avaliação de arquiteturas de uma solução de backup da nuvemJoao Galdino Mello de Souza
 
Escalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool IIEscalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool IIMatheus Espanhol
 
Treinamento Tropa de Elite Aws - Business - D1
Treinamento Tropa de Elite Aws - Business - D1Treinamento Tropa de Elite Aws - Business - D1
Treinamento Tropa de Elite Aws - Business - D1Jonathan Baraldi
 
Avaliação de arquiteturas de uma solução de Backup na Nuvem
Avaliação de arquiteturas de uma solução de Backup na NuvemAvaliação de arquiteturas de uma solução de Backup na Nuvem
Avaliação de arquiteturas de uma solução de Backup na NuvemKleber Silva
 
Funcionalidades das versões 9.x do PostgreSQL
Funcionalidades das versões 9.x do PostgreSQLFuncionalidades das versões 9.x do PostgreSQL
Funcionalidades das versões 9.x do PostgreSQLMatheus Espanhol
 
Google AppEngine: Desafios da adoção de cloud no mercado de seguros
Google AppEngine: Desafios da adoção de cloud no mercado de segurosGoogle AppEngine: Desafios da adoção de cloud no mercado de seguros
Google AppEngine: Desafios da adoção de cloud no mercado de segurosGustavo Concon
 
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)Caio Candido
 
Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dadosSuissa
 
Arquitetura Serverless para Machine Learning
Arquitetura Serverless para Machine LearningArquitetura Serverless para Machine Learning
Arquitetura Serverless para Machine LearningFelipe Santos
 
Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infosimples
 
Cloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performanceCloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performanceSaveincloud
 
[DTC21] André Marques - Jornada do Engenheiro de Dados
[DTC21] André Marques - Jornada do Engenheiro de Dados[DTC21] André Marques - Jornada do Engenheiro de Dados
[DTC21] André Marques - Jornada do Engenheiro de DadosDeep Tech Brasil
 
Modelos de computação distribuída no Hadoop
Modelos de computação distribuída no HadoopModelos de computação distribuída no Hadoop
Modelos de computação distribuída no HadoopBig Data Week São Paulo
 
Usando a nuvem da AWS para Backup e Disaster Recovery
Usando a nuvem da AWS para Backup e Disaster RecoveryUsando a nuvem da AWS para Backup e Disaster Recovery
Usando a nuvem da AWS para Backup e Disaster RecoveryRodolfo Dantas
 

Ähnlich wie PGDay Campinas 2013 - Postgres XC @ Cloud (20)

Docker SP - Orquestrando docker via Marathon e Mesos na Konker
Docker SP - Orquestrando docker via Marathon e Mesos na KonkerDocker SP - Orquestrando docker via Marathon e Mesos na Konker
Docker SP - Orquestrando docker via Marathon e Mesos na Konker
 
Data center MCSBRC2010-slides.pdf
Data center MCSBRC2010-slides.pdfData center MCSBRC2010-slides.pdf
Data center MCSBRC2010-slides.pdf
 
Avaliação de arquiteturas de soluções de backup para a nuvem e na nuvem
Avaliação de arquiteturas de soluções de backup para a nuvem e na nuvemAvaliação de arquiteturas de soluções de backup para a nuvem e na nuvem
Avaliação de arquiteturas de soluções de backup para a nuvem e na nuvem
 
Avaliação de arquiteturas de uma solução de backup da nuvem
Avaliação de arquiteturas de uma solução de backup da nuvemAvaliação de arquiteturas de uma solução de backup da nuvem
Avaliação de arquiteturas de uma solução de backup da nuvem
 
Escalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool IIEscalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool II
 
Treinamento Tropa de Elite Aws - Business - D1
Treinamento Tropa de Elite Aws - Business - D1Treinamento Tropa de Elite Aws - Business - D1
Treinamento Tropa de Elite Aws - Business - D1
 
Estratégias de migração para cloud
Estratégias de migração para cloudEstratégias de migração para cloud
Estratégias de migração para cloud
 
Avaliação de arquiteturas de uma solução de Backup na Nuvem
Avaliação de arquiteturas de uma solução de Backup na NuvemAvaliação de arquiteturas de uma solução de Backup na Nuvem
Avaliação de arquiteturas de uma solução de Backup na Nuvem
 
Funcionalidades das versões 9.x do PostgreSQL
Funcionalidades das versões 9.x do PostgreSQLFuncionalidades das versões 9.x do PostgreSQL
Funcionalidades das versões 9.x do PostgreSQL
 
Google AppEngine: Desafios da adoção de cloud no mercado de seguros
Google AppEngine: Desafios da adoção de cloud no mercado de segurosGoogle AppEngine: Desafios da adoção de cloud no mercado de seguros
Google AppEngine: Desafios da adoção de cloud no mercado de seguros
 
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
 
Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dados
 
Arquitetura Serverless para Machine Learning
Arquitetura Serverless para Machine LearningArquitetura Serverless para Machine Learning
Arquitetura Serverless para Machine Learning
 
Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)Infraestrutura em nuvem com Amazon Web Services (AWS)
Infraestrutura em nuvem com Amazon Web Services (AWS)
 
Cloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performanceCloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performance
 
[DTC21] André Marques - Jornada do Engenheiro de Dados
[DTC21] André Marques - Jornada do Engenheiro de Dados[DTC21] André Marques - Jornada do Engenheiro de Dados
[DTC21] André Marques - Jornada do Engenheiro de Dados
 
Modelos de computação distribuída no Hadoop
Modelos de computação distribuída no HadoopModelos de computação distribuída no Hadoop
Modelos de computação distribuída no Hadoop
 
Palestra
PalestraPalestra
Palestra
 
Usando a nuvem da AWS para Backup e Disaster Recovery
Usando a nuvem da AWS para Backup e Disaster RecoveryUsando a nuvem da AWS para Backup e Disaster Recovery
Usando a nuvem da AWS para Backup e Disaster Recovery
 
Big Data e seu fiel companheiro Spark
Big Data e seu fiel companheiro SparkBig Data e seu fiel companheiro Spark
Big Data e seu fiel companheiro Spark
 

PGDay Campinas 2013 - Postgres XC @ Cloud

  • 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. Postgres-XC em Cloud IaaS PGDay Campinas 2013
  • 3. Postgres-XC em Cloud IaaS PGDay Campinas 2013
  • 4. Postgres-XC em Cloud IaaS PGDay Campinas 2013 PostgreSQL Streamming Replication
  • 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. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Streamming Replication
  • 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. 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. 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. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC
  • 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. 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. 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. 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. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – Development Flow
  • 16. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – Escalabilidade DBT-1 throughput scalability
  • 17. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – Arquitetura
  • 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. 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. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC Topologias e Casos de Uso
  • 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. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – Tabelas replicadas
  • 23. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – Tabelas distribuídas
  • 24. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – DN/DC juntos
  • 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. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – DN/DC separados
  • 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. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC Alta Disponibilidade/Backup
  • 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. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Postgres-XC – Alta disponibilidade
  • 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. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Considerações Finais
  • 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. 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. 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. 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. Postgres-XC em Cloud IaaS PGDay Campinas 2013 Perguntas???
  • 38. Postgres-XC em Cloud IaaS PGDay Campinas 2013