Curiosidades que você (talvez) não sabia e se sabia vale a pena lembrarDickson S. Guedes
Este documento fornece várias curiosidades sobre o PostgreSQL, resumidas em 3 frases:
1) O documento apresenta diversos truques e funcionalidades avançadas do PostgreSQL, incluindo o uso de funções aninhadas, manipulação de datas e NULLs, e formas alternativas de escrever consultas.
2) Também mostra como usar recursos como o PSQL para facilitar a execução de consultas, como variáveis e conexões, e discute conceitos como serials e operadores.
3) Por fim, incentiva o leitor a apre
Palestra ministrada no PGDay Curitiba 2016 na CELEPAR.
Nesta palestra demonstro como fazer o PostgreSQL falar conosco criando um bot para o Telegram através de Foreign Data Wrappers.
Mais detalhes em:
- http://guedesoft.net
- http://github.com/guedes/telegram_fdw
Context Design (beta2) World IA Day 2013Andrew Hinton
This document discusses the concept of information environments and context design. It begins by providing context about the origins of information architecture and defines information environments as highly curated, complex digital and physical spaces connected to form a shared experience. It then discusses how information shapes our experience of physical contexts and realities. The document argues that as the digital and informational increasingly blend with the physical world, information architects are responsible for designing not just for existing contexts but the contexts themselves.
Palestra ministrada na PGConf.Brasil 2022.
A linguagem SQL possui recursos que podem ser utilizados em benefício da nossa preguiça para que possamos automatizar boa parte de algumas tarefas. O forte está na geração de texto e execuções de consultas dinamicamente geradas. Passearemos por alguns exemplos com dicas, casos de usos e um pouco de código, porque ninguém é de ferro.
O mínimo necessário que você precisa conhecer sobre computação quânticaDickson S. Guedes
O documento fornece uma introdução básica sobre computação quântica, abordando seus princípios, aplicações potenciais e desafios. Em particular, discute os conceitos de qubit, circuitos quânticos e algoritmos como o problema de Deutsch-Jozsa. O autor também fornece referências e links para recursos adicionais sobre o assunto.
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorDickson S. Guedes
Este documento discute como aprender várias linguagens de programação pode tornar alguém um melhor DBA (administrador de banco de dados) e desenvolvedor. Aprender novas linguagens ajuda a conectar pontos entre diferentes tecnologias e abordagens, melhorando a comunicação, percepção e pensamento crítico. É importante considerar por que cada linguagem surgiu para escolher aquelas que agregam mais valor.
Este documento apresenta uma introdução ao Machine Learning utilizando o banco de dados PostgreSQL e a biblioteca MADlib. O palestrante explica conceitos básicos de ML, como regressão, classificação e clusterização. Ele também demonstra como construir modelos de ML no PostgreSQL usando Python através de notebooks Jupyter e código exemplo disponível online.
Curiosidades que você (talvez) não sabia e se sabia vale a pena lembrarDickson S. Guedes
Este documento fornece várias curiosidades sobre o PostgreSQL, resumidas em 3 frases:
1) O documento apresenta diversos truques e funcionalidades avançadas do PostgreSQL, incluindo o uso de funções aninhadas, manipulação de datas e NULLs, e formas alternativas de escrever consultas.
2) Também mostra como usar recursos como o PSQL para facilitar a execução de consultas, como variáveis e conexões, e discute conceitos como serials e operadores.
3) Por fim, incentiva o leitor a apre
Palestra ministrada no PGDay Curitiba 2016 na CELEPAR.
Nesta palestra demonstro como fazer o PostgreSQL falar conosco criando um bot para o Telegram através de Foreign Data Wrappers.
Mais detalhes em:
- http://guedesoft.net
- http://github.com/guedes/telegram_fdw
Context Design (beta2) World IA Day 2013Andrew Hinton
This document discusses the concept of information environments and context design. It begins by providing context about the origins of information architecture and defines information environments as highly curated, complex digital and physical spaces connected to form a shared experience. It then discusses how information shapes our experience of physical contexts and realities. The document argues that as the digital and informational increasingly blend with the physical world, information architects are responsible for designing not just for existing contexts but the contexts themselves.
Palestra ministrada na PGConf.Brasil 2022.
A linguagem SQL possui recursos que podem ser utilizados em benefício da nossa preguiça para que possamos automatizar boa parte de algumas tarefas. O forte está na geração de texto e execuções de consultas dinamicamente geradas. Passearemos por alguns exemplos com dicas, casos de usos e um pouco de código, porque ninguém é de ferro.
O mínimo necessário que você precisa conhecer sobre computação quânticaDickson S. Guedes
O documento fornece uma introdução básica sobre computação quântica, abordando seus princípios, aplicações potenciais e desafios. Em particular, discute os conceitos de qubit, circuitos quânticos e algoritmos como o problema de Deutsch-Jozsa. O autor também fornece referências e links para recursos adicionais sobre o assunto.
Porque aprender várias linguagens me tornou um DBA (e desenvolvedor) melhorDickson S. Guedes
Este documento discute como aprender várias linguagens de programação pode tornar alguém um melhor DBA (administrador de banco de dados) e desenvolvedor. Aprender novas linguagens ajuda a conectar pontos entre diferentes tecnologias e abordagens, melhorando a comunicação, percepção e pensamento crítico. É importante considerar por que cada linguagem surgiu para escolher aquelas que agregam mais valor.
Este documento apresenta uma introdução ao Machine Learning utilizando o banco de dados PostgreSQL e a biblioteca MADlib. O palestrante explica conceitos básicos de ML, como regressão, classificação e clusterização. Ele também demonstra como construir modelos de ML no PostgreSQL usando Python através de notebooks Jupyter e código exemplo disponível online.
Talk apresentada no 1o. Meetup do DBFloripa. Uma talk introdutória para apresentar alguns utilitários de linha de comando como sed, awk, xargs, csvkit e jq para o cinto de utilidades de desenvolvedores e DBAs
Este documento resume os principais conceitos de bancos de dados relacionais utilizando PostgreSQL. Inclui exemplos de criação de tabelas, tipos de busca como sequencial scan e index scan, diferentes tipos de junções como nested loop, merge join e hash join, e agregações com grupo.
1) A palestra introduz o PostgreSQL e discute como ele se relaciona com o Python, incluindo padrões, documentação, extensibilidade e interoperabilidade entre as duas tecnologias.
2) O documento também discute conceitos importantes do PostgreSQL como tipos JSON, funções de agregação, NULL vs None e registros/tuplas.
3) Finalmente, o documento explora vários recursos avançados do SQL como VALUES, operações com NULL e infinito.
O documento descreve como transformar um servidor Postgres em um servidor WEB utilizando recursos como PLV8, LISTEN/NOTIFY e pg_web_app para criar uma aplicação TODO list que pode ser acessada via requisições HTTP. O documento também discute outros recursos do Postgres como extensibilidade, tipos de dados e linguagens de programação integradas.
This document provides an overview of using Logstash, Elasticsearch, and Kibana to parse, index, and visualize log data. It discusses:
1) How these tools can help "find a needle in a haystack" by extracting useful information from logs and making it searchable.
2) Setting up the ELK stack with Logstash to collect log data from stdin, Elasticsearch for indexing, and Kibana for visualization.
3) Examples of using Logstash pipelines, querying data with Elasticsearch, and visualizing results in Kibana.
Como encontrar uma agulha no palheiro de logs do PostgreSQLDickson S. Guedes
O documento discute como analisar logs do PostgreSQL para encontrar informações importantes. Ele explica o que compõe um evento de log e dá exemplos de como adicionar contexto aos logs. Também apresenta Logstash como uma ferramenta para processar logs e fala sobre a importância de registrar eventos de forma estruturada.
Gerenciando múltiplas versões do PostgreSQL com pgvmDickson S. Guedes
The document discusses PGVM, a tool for managing multiple versions of PostgreSQL. It demonstrates installing PostgreSQL version 9.1 using PGVM, creating and starting a cluster named "teste123_pgbr" running version 9.2.4, and connecting to the cluster through the PGVM console. The document ends by providing contact information for any questions.
PGXN - Como distribuir suas extensões com o PostgreSQLDickson S. Guedes
O documento discute como distribuir extensões para PostgreSQL usando o PGXN. O PGXN fornece um índice central de extensões com documentação e ferramentas para pesquisa e instalação fácil. Demostrações mostram como usar o cliente PGXN e as utilidades PGXN para criar e empacotar extensões. O documento encoraja o compartilhamento de conhecimento através de extensões de código aberto.
O documento discute como distribuir extensões para PostgreSQL usando o PGXN. O PGXN fornece um índice central de extensões com documentação e ferramentas para pesquisa e instalação fácil. Demonstrações mostram como usar o cliente PGXN e as utilidades PGXN para criar e empacotar extensões. O documento encoraja o compartilhamento de conhecimento através de extensões de código aberto.
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)Dickson S. Guedes
O documento discute como dividir aplicações complexas em módulos menores utilizando extensões do PostgreSQL. Isso permite melhor modularidade, reutilização de código e gerenciamento de versões. O exemplo mostra como criar validadores de CPF e e-mail como uma extensão, permitindo validações no banco de dados de forma centralizada.
Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...Dickson S. Guedes
O documento discute a importância de contribuir com software livre, seja plantando árvores, escrevendo livros ou tendo filhos. Ele explica a diferença entre software livre e gratuito e encoraja as pessoas a participarem de projetos de código aberto, seja traduzindo, documentando ou escrevendo código. Também fornece dicas sobre como começar a contribuir e como gerenciar projetos de software livre.
O documento fornece uma visão geral do banco de dados PostgreSQL, discutindo sua história, desenvolvimento, recursos necessários e funcionalidades. Ele resume a evolução do PostgreSQL desde seu início como projeto acadêmico até se tornar uma opção popular e poderosa de banco de dados open source.
O documento fornece uma introdução sobre testes unitários no PostgreSQL usando pgTAP. Ele discute conceitos como qualidade de software, testes unitários e o papel do DBA. Também explica como preparar o ambiente pgTAP, entender os scripts de teste e os diferentes tipos de testes suportados pelo pgTAP.
O documento apresenta o pgScript, uma ferramenta para geração de dados em bancos PostgreSQL. Ele discute como o pgScript pode ser usado para declarar variáveis, controlar fluxo, gerar dados aleatórios e inserir registros de exemplo em tabelas. O documento também mostra exemplos de scripts pgScript que inserem registros em tabelas de contas correntes e movimentações financeiras com dados aleatórios.
Replicacaoo Sincrona e Alta-Disponibilidade com PostgreSQLDickson S. Guedes
O documento discute replicação e alta disponibilidade em bancos de dados PostgreSQL. Aborda os desafios, o plano de continuidade de negócio, contrato de nível de serviço, cenários e soluções possíveis como espelhamento de disco, log shipping e balanceamento de carga com pgpool-II. Apresenta também exemplos de configuração destas soluções.
Talk apresentada no 1o. Meetup do DBFloripa. Uma talk introdutória para apresentar alguns utilitários de linha de comando como sed, awk, xargs, csvkit e jq para o cinto de utilidades de desenvolvedores e DBAs
Este documento resume os principais conceitos de bancos de dados relacionais utilizando PostgreSQL. Inclui exemplos de criação de tabelas, tipos de busca como sequencial scan e index scan, diferentes tipos de junções como nested loop, merge join e hash join, e agregações com grupo.
1) A palestra introduz o PostgreSQL e discute como ele se relaciona com o Python, incluindo padrões, documentação, extensibilidade e interoperabilidade entre as duas tecnologias.
2) O documento também discute conceitos importantes do PostgreSQL como tipos JSON, funções de agregação, NULL vs None e registros/tuplas.
3) Finalmente, o documento explora vários recursos avançados do SQL como VALUES, operações com NULL e infinito.
O documento descreve como transformar um servidor Postgres em um servidor WEB utilizando recursos como PLV8, LISTEN/NOTIFY e pg_web_app para criar uma aplicação TODO list que pode ser acessada via requisições HTTP. O documento também discute outros recursos do Postgres como extensibilidade, tipos de dados e linguagens de programação integradas.
This document provides an overview of using Logstash, Elasticsearch, and Kibana to parse, index, and visualize log data. It discusses:
1) How these tools can help "find a needle in a haystack" by extracting useful information from logs and making it searchable.
2) Setting up the ELK stack with Logstash to collect log data from stdin, Elasticsearch for indexing, and Kibana for visualization.
3) Examples of using Logstash pipelines, querying data with Elasticsearch, and visualizing results in Kibana.
Como encontrar uma agulha no palheiro de logs do PostgreSQLDickson S. Guedes
O documento discute como analisar logs do PostgreSQL para encontrar informações importantes. Ele explica o que compõe um evento de log e dá exemplos de como adicionar contexto aos logs. Também apresenta Logstash como uma ferramenta para processar logs e fala sobre a importância de registrar eventos de forma estruturada.
Gerenciando múltiplas versões do PostgreSQL com pgvmDickson S. Guedes
The document discusses PGVM, a tool for managing multiple versions of PostgreSQL. It demonstrates installing PostgreSQL version 9.1 using PGVM, creating and starting a cluster named "teste123_pgbr" running version 9.2.4, and connecting to the cluster through the PGVM console. The document ends by providing contact information for any questions.
PGXN - Como distribuir suas extensões com o PostgreSQLDickson S. Guedes
O documento discute como distribuir extensões para PostgreSQL usando o PGXN. O PGXN fornece um índice central de extensões com documentação e ferramentas para pesquisa e instalação fácil. Demostrações mostram como usar o cliente PGXN e as utilidades PGXN para criar e empacotar extensões. O documento encoraja o compartilhamento de conhecimento através de extensões de código aberto.
O documento discute como distribuir extensões para PostgreSQL usando o PGXN. O PGXN fornece um índice central de extensões com documentação e ferramentas para pesquisa e instalação fácil. Demonstrações mostram como usar o cliente PGXN e as utilidades PGXN para criar e empacotar extensões. O documento encoraja o compartilhamento de conhecimento através de extensões de código aberto.
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)Dickson S. Guedes
O documento discute como dividir aplicações complexas em módulos menores utilizando extensões do PostgreSQL. Isso permite melhor modularidade, reutilização de código e gerenciamento de versões. O exemplo mostra como criar validadores de CPF e e-mail como uma extensão, permitindo validações no banco de dados de forma centralizada.
Plante uma árvore, escreva um livro, tenha um filho e contribua com software ...Dickson S. Guedes
O documento discute a importância de contribuir com software livre, seja plantando árvores, escrevendo livros ou tendo filhos. Ele explica a diferença entre software livre e gratuito e encoraja as pessoas a participarem de projetos de código aberto, seja traduzindo, documentando ou escrevendo código. Também fornece dicas sobre como começar a contribuir e como gerenciar projetos de software livre.
O documento fornece uma visão geral do banco de dados PostgreSQL, discutindo sua história, desenvolvimento, recursos necessários e funcionalidades. Ele resume a evolução do PostgreSQL desde seu início como projeto acadêmico até se tornar uma opção popular e poderosa de banco de dados open source.
O documento fornece uma introdução sobre testes unitários no PostgreSQL usando pgTAP. Ele discute conceitos como qualidade de software, testes unitários e o papel do DBA. Também explica como preparar o ambiente pgTAP, entender os scripts de teste e os diferentes tipos de testes suportados pelo pgTAP.
O documento apresenta o pgScript, uma ferramenta para geração de dados em bancos PostgreSQL. Ele discute como o pgScript pode ser usado para declarar variáveis, controlar fluxo, gerar dados aleatórios e inserir registros de exemplo em tabelas. O documento também mostra exemplos de scripts pgScript que inserem registros em tabelas de contas correntes e movimentações financeiras com dados aleatórios.
Replicacaoo Sincrona e Alta-Disponibilidade com PostgreSQLDickson S. Guedes
O documento discute replicação e alta disponibilidade em bancos de dados PostgreSQL. Aborda os desafios, o plano de continuidade de negócio, contrato de nível de serviço, cenários e soluções possíveis como espelhamento de disco, log shipping e balanceamento de carga com pgpool-II. Apresenta também exemplos de configuração destas soluções.
Replicacaoo Sincrona e Alta-Disponibilidade com PostgreSQL
Replicacao Sincrona "Nao existe almoco gratis!"
1. Replicação Síncrona
quot;Não existe almoço grátisquot;
Conhecer o que você precisa, planejar, criar cenários de
testes, interpretar os resultados obtidos, são passos
fundamentais para uma tomada de decisão que assombra os
administradores de muitos ambientes:
A implementação de uma solução de replicação síncrona.
Dickson S. Guedes
http://makeall.wordpress.com
PGCon Brasil 2008
2. Problematização
Qual é o nosso problema?
Quais soluções buscamos?
Qual é a nossa estrutura?
Quais os cenários podemos testar?
Qual o custo/benefício de cada um?
Quais os resultados obtidos?
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
3. Qual o nosso problema?
Nossa aplicação por si só não integra
mecanismos de tolerância a falhas.
Dados armazenados altamente voláteis,
transacionais;
Sistema OLTP de missão crítica;
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
4. Qual é a nossa estrutura?
Blade Center
● Capacidade para 14 lâminas;
● Fonte de alimentação redundante e hot-swap;
● 02 x Switches SAN 4Gb/s;
● 02 x Switches Gigabit EthernetServer
● Connectivity com 14 portas internas e 6 portas
externas;
2 lâminas JS21 – Servidor de Aplicação
● 2x PowerPC 970MP 2.5GHz / 2.3GHz Dual Core;
● 12 GB MEM PC2-3200 CL3 ECC DDR2 SDRAM RDIMM;
● 2 x HD de 73GB 10K SFF SAS;
● Dual Gigabit Ethernet Integrado;
● RAID-0 ou -1 integrado padrão no servidor blade, RAID-1E;
2 lâminas JS21 – Servidor de Banco de Dados
● 2x PowerPC 970MP 2.5GHz / 2.3GHz Dual Core;
● 12 GB MEM PC2-3200 CL3 ECC DDR2 SDRAM RDIMM;
● 1xHBA
● 2 x HD de 73GB 10K SFF SAS;
● Dual Gigabit Ethernet Integrado;
● RAID-0 ou -1 integrado padrão no servidor blade, RAID-1E;
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
5. Qual é a nossa estrutura?
2 Servidores IBM modelo System x3200 Servidor WEB
1 1.87GHz Intel Xeon 3040 Dual Core
Cache L2: 2MB;
1 GB Memória ECC DDR2-667 DIMM PC2-5300 expansível a
08GB;
2 HD`s de 80GB 7200 rpm Simple-Swap SATA HDD;
2 Adaptadores Gigabit Ethernet 10/100/1000;
Interface do disco SATA Simple-Swap;
Controladora: SATA 4 Port;
01 Storage IBM modelo DS4700 Express
2GB de cache;
9 x discos 300GB 2 Gbps, 10K RPM;
Implementa RAID 0,1, 1+0 e 5;
4 portas Fibre Channel 4Gbps;
2 Storage Partitions Activation;
Host Kit Linux/Intel;
4 x Fibre Cable 5m Multimode (LC-LC);
Suporte para até 112 discos;
Integração com o IBM Director;
Garantia de 03 anos on-site 24 x 7, atendimento em
4 horas.
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
6. Quais soluções buscamos?
Assegurar a integridade de qualquer alteração
realizada a qualquer intervalo de tempo;
Minimizar o risco de indisponibilidade do
ambiente;
Atingir disponibilidade inicial de 99%
(~3,5dias/ano ou ~7h/mês)
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
7. Planejamento
Que aplicações requerem alta disponibilidade?
Qual o nível de serviço requerido por essas
aplicações?
Quais são os pontos de falhas em potencial no
ambiente e como eles podem ser
identificados?
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
8. Planejamento
Quais os pontos de falhas podem ser
automaticamente identificados?
Quais deles necessitam de uma customização
para disparar um evento de recuperação?
Qual o nível de conhecimento existente
do grupo que implementará e manterá
este ambiente?
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
9. Planejamento
Quantos nós são necessários para suportar a
aplicação?
Como os clientes conectamse à aplicação?
Qual configuração de rede possuímos?
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
10. Quem precisa estar envolvido?
Administrador de Redes
Administrador de SO
Adminsitrador da Aplicação
Administrador de Banco de Dados
Arquitetos e Analistas da Aplicação
Suporte
Usuários da aplicação
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
11. Cenário ideal
NLB
WEB01 WEB02 WEB01 WEB02
APP01 APP02 APP01 APP02
BD01 BD02 BD01 BD02
SAN SAN SAN SAN
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
12. Cenário ideal
NLB
WEB01 WEB02 WEB01 WEB02
APP01 APP02 APP01 APP02
Não podemos
BD01 BD02 BD01 BD02
abraçar o
mundo no
momento...
SAN SAN SAN SAN
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
13. Cenário ideal reduzido
NLB
WEB01 WEB02
APP01 APP02
BD01 BD02
SAN SAN
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
14. Cenário ideal
NLB Sem NLB! ”:(
WEB01 WEB02
APP01 APP02
PostgreSQL sozinho não
suporta replicação! ”:(
BD01 BD02
SAN SAN
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
15. Cenário ideal reduzido
ROUND ROBIN
WEB01 WEB02
mod_jk
APP01 APP02
QUEM??
BD01 BD02
SAN
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
16. Soluções aproximadas
Middlewares que trabalhem entre servidores
PostgreSQL e softwares clientes
Candidatos:
pgpoolII
Sequoia
Existem outras soluções?
pgcluster, pl/proxy, ...
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
17. Características do pgpoolII
Limita conexões excedentes;
Pool de conexões;
Replicação até 128 nós;
Balanceamento de carga em consultas;
Consultas paralelas;
Tolerância a falhas transparente para os
clientes ;
Nível de complexidade do restore alto;
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
18. Características do sequoia
Replicação via driver JDBC próprio;
Necessidade de um ou mais controladores;
Balanceamento de carga em consultas;
Consultas paralelas;
Tolerância a falhas transparentes para os
clientes;
Nível de complexidade do restore baixo;
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
19. Preparação do cenário de testes
Estrutura original do piloto no novo ambiente
Uso do pgScript para criação de massa de
dados (~50GB)
Escolha de uma amostra de instruções do
próprio sistema;
Etapa 1: 50 con. 1.000.000 transac.
Etapa 2: 100 con. 1.500.000 transac.
Etapa 3: 100 con. 2.000.000 transac.
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
20. Cenário utilizando pgpoolII
ROUND ROBIN
WEB01 WEB02
APP01 APP02
pgpoolII
BD01 BD02
SAN
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
21. Cenário utilizando pgpoolII
ROUND ROBIN Uma instância do pgpool
●
pode estar conectada a n
WEB01 WEB02
backends;
Um ponto único de falha;
●
Pode ser criada uma árvore;
APP01 APP02 ●
Velocidade de transação
●
pgpoolII
restrita ao nó mais lento;
BD01 BD02 Retornamos à estaca zero?
●
Storage subutilizado?
●
SAN
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
22. Exemplo configuração pgpoolII
# Master node info
backend_hostname0 = ‘localhost’
backend_port0 = 5432
backend_data_directory0 = ‘/home/yasaba/demo/5432/data’
# Secondary node info
backend_hostname1 = ‘localhost’
backend_port1 = 5433
backend_data_directory1 = ‘/home/yasaba/demo/5433/data’
# Enable replication
replication_mode = true
# Enable load balance
load_balance_mode = true
# Online recovery user
recovery_user = ‘yasaba’
# The first stage script
recovery_1st_stage_command = ‘basebackup.sh’
# The second stage script
recovery_2nd_stage_command = ‘pgpoolrecovery’
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
23. Cenário utilizando sequoia
ROUND ROBIN
WEB01 WEB02
APP01 APP02
JDBC
JDBC
sequoia sequoia
BD01 BD02
SAN
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
24. Cenário utilizando sequoia
ROUND ROBIN Várias instâncias do
●
sequoia podem estar
WEB01 WEB02
conectada a n backends;
Pontos de falha distribuídos;
●
Níveis de RAIDb (0, 1, 2)
APP01 APP02 ●
JDBC
JDBC
Velocidade de transação
●
sequoia sequoia
restrita ao nó mais lento;
BD01 BD02 Retornamos à estaca zero?
●
Storage subutilizado?
●
SAN
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
27. Resultados obtidos
Identificar qual solução consegue satifazer
nossos prérequisitos de disponibilidade e
desempenho;
Vamos aos números...
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
34. Resultados obtidos
PGPOOL SEQUOIA
TPS RPS
TPS TPS
Média 2506,431 11123,570 1503,856 986,853
Média Harmonica 2478,442 11071,438 1487,066 984,572
Média Geométrica 2494,435 11099,975 1496,660 985,765
Desvio Padrão 93,147 278,886 55,875 29,566
3000,000
2500,000
2000,000
Média
1500,000 Média Harmonica
Média Geométrica
Desvio Padrão
1000,000
500,000
0,000
TPS PGPOOL TPS SEQUOIA TPS
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
35. Gráfico comparativo entre o cenário
com e sem pgpoolII
12000
10000
8000
6000
4000
2000
0
TPS RPS PGPOOL TPS
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
36. Gráfico comparativo entre o cenário
com e sem sequoia
12000
10000
8000
6000
4000
2000
0
TPS RPS SEQUOIA TPS
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
37. Conclusões obtidas
O ganho no balanceamento de consultas não é
surpreendente;
O cenário com pgpoolII não garante alta
disponibilidade caso ele próprio falhe;
O cenário com o sequoia exige o uso de mais
servidores, ou utilização dos próprios
servidores de banco ou de aplicação para
executar;
Queda substancial na escrita de dados;
Criação de mais pontos de falhas;
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008
38. Finalizando
Solução proposta pela NTT;
Discussão na lista pgsqlhackers entre Greg
Smith, Itagaki Takahiro, Markus Wanner;
Testar RAIDb2 do sequoia;
679000000 Transações
271600 Segundos
75,44 Horas
25,15 Dias
Dickson S. Guedes - http://makeall.wordpress.com - PGCon Brasil 2008