Você está na página 1de 56

PostgreSQL - Cluster, Alta

Disponibilidade e Balanceamento de
Carga

0.1

Braslia DF

Organizaca o
Eduardo Santos

Autoria
Elias Mussi

PostgreSQL - Cluster, Alta Disponibilidade e Balanceamento de Carga.


Braslia, 2013.
48 p. : il.
Inclui Bibliografia.
e
1. PostgreSQL. 2. Cluster e Grid. 3. Tecnologias da Informacao

Comunicacao.

4. Alta Disponibilidade.

A menos que modifiquemos a nossa maneira de pensar, nao seremos capazes de


resolver os problemas causados pela forma como nos acostumamos a ver o mundo.

Albert Einstein

P OSTGRE SQL E C LUSTER

Coordenaca o
Textos compilados por Eduardo Santos
Material contido no Guia de Cluster e Grid do Governo Federal

O material aqui contido e resultado de uma compilaca o de textos do Guia de Cluster


e Grid do Governo Federal. Assim como o texto original, obedece a` licenca Creative
Commons 2.0 Atribuica o. A reproduca o em parte ou totalmente e autorizada desde que
da CC-GNU GPL, cujo conteudo

a fonte seja reconhecida, de acordo com as orientacoes


esta disponibilizado no Apendice A.

Figura 1: Creative Commons

O Guia de Cluster original esta disponvel no Portal do Governo Eletronico,


no endereco
http://www.governoeletronico.gov.br/anexos/guia-de-cluster

0.1
V ERS AO

P AGINA
IV

Sumario

Sumario

Lista de figuras

viii

Lista de tabelas

viii

1 Introduca o

1.1

O que e o PostgreSQL? . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2

Historico
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 Cluster e Grid
2.1

2.2

0.1
V ERS AO

As Novas Demandas Computacionais . . . . . . . . . . . . . . . . .

2.1.1

Computaca o sob Demanda . . . . . . . . . . . . . . . . . . .

2.1.2

Aproveitamento de Ciclos Ociosos . . . . . . . . . . . . . . .

Dois Paradigmas Computacionais . . . . . . . . . . . . . . . . . . .

2.2.1

Computaca o de Grande Porte . . . . . . . . . . . . . . . . . .

2.2.2

Computaca o Distribuda . . . . . . . . . . . . . . . . . . . . .

11

P AGINA
V


SUM ARIO

P OSTGRE SQL E C LUSTER

2.2.3

Comparaca o: Grande Porte e Distribuda . . . . . . . . . . .

11

2.2.4

da Computaca o Distribuda . . . . . . . . . . .
As Geracoes

13

2.3

Por que utilizar? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14

2.4

Vantagens Tecnicas de Utilizaca o de Cluster e Grid . . . . . . . . .

16

2.5

Cluster de Banco de Dados . . . . . . . . . . . . . . . . . . . . . . . .

18

3 Construindo o Cluster de Banco de Dados

19

3.1

Banco de Dados Distribudos . . . . . . . . . . . . . . . . . . . . . .

22

3.2

Replicaca o de Banco de Dados . . . . . . . . . . . . . . . . . . . . .

23

4 Cluster PostgreSQL
4.1

25

Alta Disponibilidade[10] . . . . . . . . . . . . . . . . . . . . . . . . .

26

4.1.1

Replicaca o Master-Slave . . . . . . . . . . . . . . . . . . . . .

27

4.1.2

Replicaca o Multi-Master . . . . . . . . . . . . . . . . . . . . .

31

4.2

Balanceamento de Carga . . . . . . . . . . . . . . . . . . . . . . . . .

32

4.3

PGpool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32

4.3.1

34

PGpool-II . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

I Apendices

36

A Licenca CC-GNU GPL

37

0.1
V ERS AO

P AGINA
VI

P OSTGRE SQL E C LUSTER

Referencias Bibliograficas

0.1
V ERS AO

SUM ARIO

46

P AGINA
VII

Lista de Figuras
1

Creative Commons . . . . . . . . . . . . . . . . . . . . . . . . . . . .

iv

2.1

Evoluca o da carga de processamento e a utilizaca o da computaca o


de grande porte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

Evoluca o da carga de processamento e a utilizaca o da soluca o de


processamento distribudo. . . . . . . . . . . . . . . . . . . . . . . .

12

Evoluca o da utilizaca o de Arquiteturas de alto desempenho. Fonte


Top500.org . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15

2.4

Evoluca o da utilizaca o de S.O. Fonte Top500.org . . . . . . . . . . .

16

2.5

Evoluca o da utilizaca o por segmento de mercado. Fonte Top500.org 17

4.1

Arquitetura PG-pool . . . . . . . . . . . . . . . . . . . . . . . . . . .

35

A.1 Creative Commons . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

2.2

2.3

0.1
V ERS AO

P AGINA
VIII

Lista de Tabelas

2.1

0.1
V ERS AO

Diferencas entre computaca o de grande porte e distribuda

. . . .

13

P AGINA
1

Captulo 1
Introduca o
O documento descrever as tecnologias de cluster e grid utilizadas para a
implementaca o de cluster em bancos de dados corporativos baseados no SGBD
PostgreSQL.

1.1 O que e o PostgreSQL?


O PostgreSQL e um SGBD (Sistema Gerenciador de Banco de Dados) objeto
relacional de codigo
aberto, com mais de 15 anos de desenvolvimento. E extremamente robusto e confiavel, alem de ser extremamente flexvel e rico em
recursos. Ele e considerado objeto-relacional por implementar, alem das caractersticas de um SGBD relacional, algumas caractersticas de orientaca o a objetos,
como heranca e tipos de dados personalizados.

1.2 Historico

1985 Primeiro desenho de um possvel sistema de armazenamento (ainda projeto

Postgres) na universidade de Berkeley, California


[13]
1987 Primeira modelagem [14]
0.1
V ERS AO

P AGINA
2

P OSTGRE SQL E C LUSTER

1.2 - H IST ORICO

1989 Definica o do primeiro sistema de regras [15]


Fim da fase academica

1993 Empresa Illustra transforma parte do codigo


em um produto comercial.
Mais tarde a empresa se tornaria Informix, ate ser comprada pela IBM
1993 Desenvolvimento de uma versao paralela pela comunidade (principalmente universidades) e novo nome: PostgreSQL

0.1
V ERS AO

P AGINA
3

Captulo 2
Cluster e Grid

2.1 As Novas Demandas Computacionais

As atividades economicas
que utilizam redes eletronicas
como plataforma tec

nologica
tem sido denominadas negocios
eletronicos
(e-business). Essa expressao
comerciais, administrativas e contabeis,
engloba os diversos tipos de transacoes

que envolvem governo, empresas e consumidores. O comercio eletronico


(e
commerce) e a principal atividade dessa nova categoria de negocios.

Os atores institucionais envolvidos nos servicos governamentais sao o proprio


Externas (B, de business), e o Cidadao (C), que interGoverno (G), Instituicoes
entre esses atores em
agem entre si de varias maneiras. Ha cinco tipos de relacoes
governamentais:
aplicacoes

B2B (business-to-business):
entre empresas, exemplos: EDI, portais verticais de negocios;

transacoes
B2C/C2B (business-to-consumer/consumer-to-business):
entre empresas e consumidores, exemplos: lojas e shoppings virtransacoes
tuais;
B2G/G2B (business-to-government/government-to-business):
envolvendo empresas e governo, exemplos: EDI, portais, comtransacoes
do Governo que envolvem interaca o com entipras. Corresponde a acoes
0.1
V ERS AO

P AGINA
4

P OSTGRE SQL E C LUSTER

2.1 - A S N OVAS D EMANDAS C OMPUTACIONAIS

dades externas. O exemplo mais concreto deste tipo e a conduca o de com

pras, contratacoes,
licitacoes,
etc, via meios eletronicos;
C2C (consumer-to-consumer):
entre consumidores finais (exemplos: sites de leiloes,

transacoes
classificados on-line);
G2C/C2G (government-to-consumer/consumer-to-government):

transacoes
envolvendo governo e o cidadao (consumidores finais dos
servicos do Governo), exemplos: pagamento de impostos, servicos de
do Governo de prestaca o (ou recebicomunicaca o). Corresponde a acoes
e servicos ao cidadao via meios eletronicos.

mento) de informacoes
O ex em um website
emplo mais comum deste tipo e a veiculaca o de informacoes
ao do governo, aberto a todos os interessados;
de um org
G2G (government-to-government):
entre instituicoes
do governo em qualquer nvel ou esfera do
transacoes
que integram acoes
do Governo horizonPoder. Corresponde a funcoes
talmente, exemplo: no nvel Federal, ou dentro do Executivo; ou verticalmente, exemplo: entre o Governo Federal e um Governo Estadual.

Tais aplicacoes,
especialmente as de escala nacional, que costumam tratar de

tecnologicas,

imensas quantidades de dados, que perpassarao inumeras


geracoes
sao tao carregadas de variaveis e condicionantes que, tipicamente, sao descritos
e caracterizados como sistemas complexos:
gigantescas, tais como milhoes
de usuarios, centenas de
tem dimensoes

funcoes,
etc.;
tem especificaca o dinamica, isto e , se modifica ao longo do tempo, para
acomodar novas necessidades, revisao de prioridades, etc.;
encia natural das
nunca terminam de ser implementados, como consequ
duas caractersticas anteriores.

A ampliaca o e a melhoria da qualidade dos processos internos e dos servicos


prestados refletem-se na necessidade de aumento da capacidade computacional

do setor publico
e, por se tratarem de servicos crticos, possuem como caractersticas principais de demandas computacionais:
0.1
V ERS AO

P AGINA
5

P OSTGRE SQL E C LUSTER

SOB D EMANDA
2.1.1 - C OMPUTAC AO

alta disponibilidade;
de usuarios simultaneos;
suporte a milhoes
alta capacidade de processamento;
de reg capacidade de trabalhar com bancos de dados da ordem de milhoes
istros;
tolerancia a falhas de hardware e software;
facilidade de integraca o e interoperabilidade;
abertos de hardware e software;
adoca o de padroes
armazenamento massivo da ordem de TeraBytes de dados;

2.1.1 Computaca o sob Demanda


Varios sistemas de governo possuem demandas flutuantes, ou seja, durante um
momento convivem com pouca ou nenhuma carga de processamento e em outro
momento especfico possuem uma elevada carga de processamento.
Um exemplo deste perfil e o sistema de declaraca o de imposto de renda. Durante
um perodo do ano e ativada a entrada de dados no sistema para a realizaca o
de imposto de renda. Quanto mais se aproxima o final deste
de declaracoes
e, consequentemente,

perodo, maior a quantidade de declaracoes


a capacidade
computacional necessaria para o funcionamento do sistema. O mesmo ocorre
com o SIAPE, so que neste caso a utilizaca o para processamento e entrada de
dados no sistema ocorre com maior concentraca o durante alguns dias do mes.
A arquitetura da computaca o de grande porte nao possui capacidade para que
facilmente se aumente ou diminua seu poder computacional, sem esbarrar nas
barreiras impostas por seu hardware especializado e proprietario, por conta de seu
alto custo total de propriedade e a dificuldade de aquisica o destes equipamentos.

Em funca o desta relaca o de dependencia, a administraca o publica


e obrigada a
adquirir um hardware com maior capacidade de processamento para atender a
demanda de pico de processamento do sistema. Durante quase toda a sua vida
0.1
V ERS AO

P AGINA
6

P OSTGRE SQL E C LUSTER

2.1.2 - A PROVEITAMENTO DE C ICLOS O CIOSOS

util,
o equipamento adquirido possuira capacidade de processamento ociosa, devido a` s caractersticas de demandas flutuantes de processamento desses sistemas
governamentais.
Em resumo, a administraca o alocara na maior parte do tempo recursos financeiros em um equipamento subutilizado, quando este recurso poderia ser utilizado em a reas com demandas mais urgentes.
como essas, a administraca o publica

Para equacionar questoes


esta em busca
de alternativas computacionais baseadas em Cluster e Grid que auxiliem na
resoluca o desse desafio de computaca o sob demanda, minimizando a capacidade

de processamento ociosa existente dentro da administraca o publica,


bem como a
alocaca o de recursos financeiros desnecessarios.

2.1.2 Aproveitamento de Ciclos Ociosos

Estima-se que a administraca o publica


direta possua um parque computacional
de trabalho, que adotam um padrao de uso coem torno de 300 mil estacoes
mum. Este padrao consiste numa maior utilizaca o destes equipamentos durante
os horarios de expediente comercial de trabalho. Entretanto, ate mesmo durante
os horarios de maior utilizaca o destes equipamentos existem grandes perodos
de ociosidade do uso de processamento dos mesmos. Este imenso recurso computacional ocioso poderia ser amplamente aproveitado atraves do emprego de
paradigmas de computaca o probabilstica e Grid Computing. Alguns possveis
usuarios desta capacidade de processamento seriam: o governo atraves do processamento e execuca o de sistemas internos, e as universidades e centros de
pesquisa atraves de projetos de pesquisa cientfica [9].
Existem diversos projetos mundiais de aproveitamento de recursos ociosos de
processamento que demonstram o poder da computaca o probabilstica. Alguns
exemplos sao: SETI@home, que posteriormente deu origem ao BOINC1 , uma
infra-estrutura aberta de computaca o em rede; e o distributted.net2 , um projeto
de computaca o distribuda para finalidades genericas criado em 1997. Nestes
1

Berkeley Open Infrastructure for Network Computing


http://boinc.berkeley.edu/
2
http://distributted.net
0.1
V ERS AO

P AGINA
7

P OSTGRE SQL E C LUSTER

2.2 - D OIS PARADIGMAS C OMPUTACIONAIS

projetos sao utilizados os ciclos ociosos de processamento de maquinas interligadas na internet, nao dedicadas exclusivamente a` rede de processamento e dispersas mundialmente.
Uma lista extensa porem incompleta de projetos de aproveitamento de ciclos de
processamento ociosos pode ser encontrada na pagina:
http://en.wikipedia.org/wiki/List of distributed computing projects

Existem no Brasil diversas atividades de pesquisa em andamento e solucoes


desenvolvidas em universidades brasileiras que poderiam ser utilizadas para
de
aproveitar a capacidade de processamento ocioso das milhares de estacoes
sao: o vCluster[8] e o
trabalho do governo brasileiro. Algumas dessas solucoes

Ourgrid[6], desenvolvidos respectivamente pela Pontifcia Universidade Catolica


do Rio Grande do Sul e pela Universidade Federal de Campina Grande.

2.2 Dois Paradigmas Computacionais


O modelo atualmente adotado pelas empresas de informatica governamentais
e por muitas grandes empresas, para resolver o paradigma exposto na sessao
anterior, e caracterizado principalmente pelos sistemas heterogeneos de grande
porte, com a utilizaca o de mainframes e supercomputadores.
de Cluster e Grid vem criando uma nova alternativa
A evoluca o das solucoes
para os ambientes computacionais de grande porte. A utilizaca o de ambientes
clusterizados para computaca o de alta performance vem crescendo rapidamente
e ja e quase predominante para as grandes maquinas utilizadas nos dias de hoje.

2.2.1 Computaca o de Grande Porte


A computaca o de grande porte e definida como sistema de alta capacidade de
computaca o, tambem conhecida como Alta plataforma, esta e caracterizada
pela utilizaca o de Mainframes e supercomputadores.
Mainframes sao sistemas de computaca o, dedicados normalmente ao processa 0.1
V ERS AO

P AGINA
8

P OSTGRE SQL E C LUSTER

DE G RANDE P ORTE
2.2.1 - C OMPUTAC AO

e transacoes.

mento de um volume grande de informacoes


Os mainframes sao
capazes de oferecer servicos de processamento a milhares de usuarios atraves
de milhares de terminais conectados diretamente ou atraves de uma rede distribuda. Sao computadores que geralmente ocupam um grande espaco fsico
e necessitam de ambiente especial para seu funcionamento. Os mainframes sao
em grande velocidade e sobre um volume muito
capazes de realizar operacoes
grande de dados. Os mainframes nasceram em 1946 e foram constantemente
aperfeicoados. Em 7 de abril de 1964, a IBM apresentou o System/360, mainframe que, na e poca, foi o maior projeto de uma empresa. Desde entao, outras
empresas, como a HP e a Burroughs (atual Unisys) lancaram seus modelos de
mainframe.
Supercomputador e um computador com altssima velocidade de processamento

e grande capacidade de memoria,


empregado em pesquisas cientficas e militares. Este termo e geralmente confundido com cluster, um tipo de supercomputador criado a partir da cooperaca o de varios computadores convencionais.
Os primeiros supercomputadores foram criados na decada de 1960 por Seymour

Cray. Seymour Cray fundou sua propria


empresa, a Cray Research, em 1970 e
dominou o mercado da supercomputaca o durante 25 anos (1965-1990).
A distinca o entre supercomputadores e mainframes nao e clara e direta, mas genericamente sao diferenciados pelas tarefas submetidas, os supercomputadores sao
utilizados na soluca o de problemas em que o tempo de calculo e um limite (processamento), enquanto os mainframes sao utilizados em tarefas que exigem alta
disponibilidade, envolvem alta taxa de transferencia de dados (internos ou externos ao sistema) e acessos simultaneos (WikiPedia[17]).
A Figura 2.1, representa o problema de escalabilidade e dimensionamento decorrente da utilizaca o da computaca o de grande porte. A a rea mais escura reflete
uma possvel evoluca o da carga3 de processamento em um perodo de tempo.

A palavra carga e utilizada nesta seca o para representar o uso de recurso computacional, seja
de processamento, rede e armazenamento.
0.1
V ERS AO

P AGINA
9

P OSTGRE SQL E C LUSTER

DE G RANDE P ORTE
2.2.1 - C OMPUTAC AO

Figura 2.1: Evoluca o da carga de processamento e a utilizaca o da computaca o de grande porte.

Inicialmente, para responder a` uma demanda de carga de processamento C1 e


necessario que a Administraca o adquira uma soluca o com capacidade de processamento superior a` exigencia inicial. Essa medida justifica-se pelo ja citado
alto custo do equipamento envolvido: uma vez que recursos financeiros serao
empregados na utilizaca o de maquinas multiprocessadas, e interessante que essas maquinas operem no maior tempo possvel. Dessa forma, para satisfazer a
demanda de processamento destacada em C1 , adquire-se uma soluca o com capacidade C2 , superior, que ira garantir o funcionamento do ambiente ate que a
exigencia de processamento atinja seu limite maximo. Na figura 2.1, a a rea mais
clara representa a capacidade ociosa de processamento do equipamento utilizado
em funca o do tempo.
Quando o limite de processamento do equipamento for alcancado, tornase necessario a realizaca o de um upgrade, que geralmente caracteriza-se pela
substituica o do equipamento original por um novo, ou pela incorporaca o de
novo hardware ao equipamento original. Qualquer uma das alternativas exigira
elevado custo financeiro. Assim, passa-se a` utilizaca o de um equipamento com
capacidade de processamento C3 , para novamente garantir a operacionalizaca o
do ambiente por mais um perodo de tempo (T 1 ate T 2), inaugurando um ciclo
determinado pela carga de processamento a ser suporconstante de atualizacoes
tada.
0.1
V ERS AO

P AGINA
10

P OSTGRE SQL E C LUSTER

D ISTRIBUI DA
2.2.2 - C OMPUTAC AO

No caso da utilizaca o da computaca o de grande porte, percebe-se que as solucoes


adquiridas operam a maior parte do tempo com carga de processamento inferior
a` sua capacidade, devido ao alto custo de hardware associado a` dificuldade de
dimensionamento do ambiente, conforme representado pela a rea mais clara na
Figura 2.1 e normalmente quando atingem a carga maxima, sofrem dificuldades
de expansao do hardware(capacidade de processamento).

Portanto, em ultima
instancia, a Administraca o aloca recursos financeiros em
uma soluca o cuja capacidade de processamento nao sera plenamente exigida na
fase inicial de alocaca o de recursos computacionais.

2.2.2 Computaca o Distribuda


Por utilizar componentes fsicos comuns em sua arquitetura, um ambiente cluster
apresenta facilidade de dimensionamento da capacidade de processamento. O
ambiente pode ser concebido de acordo com a exigencia inicial da carga de pro` medida que a carga aumenta, novos componentes
cessamento do ambiente. A
fsicos podem ser facilmente alocados no ambiente para suprir a necessidade de
processamento. Como nestes ambientes podem ser empregados hardwares mais
abertos, ou utilizados pelo mercado, consegue-se realizar um rapido dimensionamento com custo reduzido, maximizando a capacidade de processamento do
ambiente.
A Figura 2.2 apresenta o resultado da utilizaca o do ambiente cluster. Para efeito
de ilustraca o foram utilizados os mesmos parametros da Figura 2.1 (relativa a`
adoca o da computaca o de grande porte). As linhas em vermelho representam a
evoluca o do dimensionamento da carga de processamento do ambiente cluster.

2.2.3 Comparaca o: Grande Porte e Distribuda


Existem similaridades e diferencas entre os ambientes de grande porte e os de
computaca o distribuda. Embora os ambientes de computaca o distribuda sejam
mais recentes e tenham arquitetura computacional mais moderna, alguns especialistas cogitam uma volta ao passado do grande porte.
0.1
V ERS AO

P AGINA
11

P OSTGRE SQL E C LUSTER

: G RANDE P ORTE E D ISTRIBUI DA


2.2.3 - C OMPARAC AO

Figura 2.2: Evoluca o da carga de processamento e a utilizaca o da soluca o de processamento distribudo.

Existem grandes similaridades entre as arquiteturas de computaca o de grande


porte e a computaca o distribuda. Por exemplo, os dois ambientes precisam de
uma estrutura fsica complexa, no que tange a: seguranca e controles de acesso
ao ambiente, de refrigeraca o do ambiente e a organizaca o semelhante do espaco.
Algumas dessas similaridades sao:

Alto Poder de Processamento;


Alta Disponibilidade;
e Usuarios simultaneos;
Suporte a Milhares de Transacoes
Contingenciamento de recursos;
Administraca o do ambiente operacional;
Grande Capacidade de Armazenamento.

A tabela 2.1 apresenta as principais diferencas entre as duas abordagens tec


nologicas
tratadas na seca o 2.2.

0.1
V ERS AO

P AGINA
12

DA C OMPUTAC AO
D ISTRIBUI DA
2.2.4 - A S G ERAC OES

P OSTGRE SQL E C LUSTER

Cluster e Grid

Grande Porte
- Alto custo de implantaca o;

- Baixo custo de implantaca o;

- Dependencia

unico;

- Independencia de fornecedores
facilidade de negociaca o;

- Utilizaca o
pecfico;

de

de

fornecedor

hardware

es-

- Utilizaca o de hardware comum


padrao PC;

- Alto custo de manutenca o;

- Baixo custo de manutenca o;

- Dificuldade de redimensionamento do ambiente;

- Facilidade de redimensionamento do ambiente;

- Utilizaca o parcial da capacidade


de processamento;

- Maximizaca o da capacidade de
processamento;

- Grande custo total de propriedade;

- Baixo custo
priedade;

- Tecnologia estabelecida no mercado.

- Tecnologia inovadora.

total

de

pro-

Tabela 2.1: Diferencas entre computaca o de grande porte e distribuda

2.2.4 As Geracoes
da Computaca o Distribuda

Durante os ultimos
20 anos, a computaca o distribuda passou por um processo

intenso de mudancas e revolucoes.


Este processo foi marcado por 5 geracoes
computacionais descritas a seguir:

Primeira Geraca o de Computaca o distribuda:


A primeira geraca o, tambem conhecida como host-based computting, e
baseada na utilizaca o de terminais burros que servem apenas como meio de
softwares e dados que encontram-se no computavisualizaca o de aplicacoes,
dor central. Os recursos computacionais de processamento e armazenamento utilizados nesta geraca o sao exclusivamente do computador que

hospeda as aplicacoes.
Segunda Geraca o de Computaca o distribuda:
Na segunda geraca o, passam a ser utilizados computadores clientes com
pequena capacidade de processamento, capazes de suportar a emulaca o de
0.1
V ERS AO

P AGINA
13

P OSTGRE SQL E C LUSTER

2.3 - P OR QUE UTILIZAR ?

continuam sendo armazenadas e executerminal, entretanto, as aplicacoes


tadas em um servidor remoto.
Terceira Geraca o de Computaca o distribuda:
A terceira geraca o e caracterizada pelo utilizaca o do paradigma de cliente
sao desenvolvidas para serem parcialmente exee servidor, as aplicacoes
cutadas em um computador cliente, terem uma interface com o usuario e
interagirem com servidores de aplicaca o.
Quarta Geraca o de computaca o distribuda:

A quarta geraca o e caracterizada pela utilizaca o de aplicacoes


multi
camadas com regras de negocio,
interface de usuarios e dados separadas
entre ambiente de interaca o do usuario e varias camadas de servidores.
Quinta geraca o de computaca o distribuda:
A quinta geraca o, tambem conhecida como grid computing, e caracterizada
pela existencia e pela utilizaca o por parte do cliente de recursos computacionais alocados em um pool virtual, de forma que o cliente utiliza capacidade computacional de acordo com a sua necessidade, sem precisar ter
maiores detalhes ou controle de onde estao os recursos utilizados.
aconteceu mudancas estruDa mesma forma que em cada uma destas inovacoes
entre as pessoas (usuarias ou desenvolvedores de tecnologias)
turais nas relacoes
de desenvolvimento e
e os sistemas computacionais, bem como nas concepcoes
aplicaca o de sistemas informatizados, o mesmo ira ocorrer na adoca o de tecnologias em Cluster e Grid. Nao existe tecnologia pior ou melhor do ponto de vista
global, cada tecnologia possui seu nicho de utilizaca o e aplicaca o.
Cabera aos gestores dos sistemas realizar as devidas analises para verificar
quais procedimentos deverao ser tomados, tanto para a migraca o ou desenvolvi quanto para evitar gastos dispendiosos e criar um ambiente
mento de aplicacoes,
propcio para a utilizaca o destas tecnologias.

2.3 Por que utilizar?

O uso das tecnologias de Cluster e Grid tem aumentado nos ultimos


25 anos,
de pesquisa, algumas das a reas de maior utilizaca o
principalmente em aplicacoes
0.1
V ERS AO

P AGINA
14

P OSTGRE SQL E C LUSTER

2.3 - P OR QUE UTILIZAR ?

destas tecnologias sao: pesquisa genetica, bioinformatica, fsica, qumica, engen e


haria, climatologia, petroqumica, pesquisa espacial e resoluca o de equacoes
metodos matematicos.
Apesar das tecnologias de clusters serem recentes, sua utilizaca o e crescente e
ja domina a lista das maquinas mais rapidas do mundo. A figura 2.3 mostra a
evoluca o percentual das arquiteturas de sistemas de alto desempenho no mundo,
onde os sistemas classificados como Clusters ja sao responsaveis por 72, 80%
dos ambientes de supercomputaca o classificados na lista. Os dados sao da
organizaca o top500.org [16].

Figura 2.3: Evoluca o da utilizaca o de Arquiteturas de alto desempenho. Fonte Top500.org

Assim como as arquiteturas de cluster vem crescendo, a utilizaca o de software


livre (GNU/Linux) tambem vem crescendo de forma progressiva. A figura 2.4

mostra a evoluca o de sua utilizaca o nos ultimos


anos.

O mercado corporativo tem percebido as vantagens e possibilidades de negocios


relacionadas a utilizaca o de tecnologias baseadas em Cluster e Grid, sendo observado um crescimento da adoca o destas tecnologias nesse mercado. Este fato
pode ser analisado pelo investimento para desenvolvimento destas tecnologias
realizado pelas maiores empresas de tecnologia do mundo, como Oracle, Google,
IBM, Intel, AMD, Sun, Cisco, entre outras, somado ao aumento da demanda por
arquiteturas computacionais alternativas. Uma pesquisa realizada no ano de 2004
0.1
V ERS AO

P AGINA
15

P OSTGRE SQL E C LUSTER

DE C LUSTER E G RID
2.4 - VANTAGENS T E CNICAS DE U TILIZAC AO

Figura 2.4: Evoluca o da utilizaca o de S.O. Fonte Top500.org

pelo instituto Forrest Research4 constatou que 37% das grandes empresas do mercado corporativo estao em alguma fase de adoca o/desenvolvimento de projetos
baseados em tecnologias de Grid Computing.
A organizaca o Top500 tambem mantem os dados sobre os segmentos corporativos que utilizam as maquinas de maior capacidade computacional do mundo,
a figura ?? mostra a evoluca o no tempo desses segmentos de utilizaca o.

2.4 Vantagens Tecnicas de Utilizaca o de Cluster e


Grid
A sessao 2.1 apresenta algumas demandas e desafios computacionais e a possibilidade de utilizaca o de tecnologias baseadas em cluster e grid para auxiliar no
atendimento destas demandas. Assim observa-se que utilizaca o destas tecnologias possui as seguintes vantagens tecnicas:

Utilizaca o de hardware padrao de mercado em sistemas crticos atraves


de alta disponibilidade,
da transferencia do gerenciamento das funcoes
tolerancia a` falhas e balanceamento de carga do hardware para o software.
4

Forrester, 2004. http://www.forrester.com/go?docid=34449

0.1
V ERS AO

P AGINA
16

P OSTGRE SQL E C LUSTER

DE C LUSTER E G RID
2.4 - VANTAGENS T E CNICAS DE U TILIZAC AO

Figura 2.5: Evoluca o da utilizaca o por segmento de mercado. Fonte Top500.org

Diminuindo a necessidade de hardware especializado, aumentando a concorrencia entre as empresas fornecedoras e propiciando ao governo a inde
pendencia tecnologica
de fornecedores de hardware.

Em geral, as tecnologias de Cluster e Grid possuem como base padroes


abertos e interoperaveis. Facilitando a integraca o de sistemas baseados nestas tecnologias, em oposica o a sistemas em computaca o de grande porte que
fechautilizam, em sua grande parte, tecnologias proprietarias e padroes
dos.
baseadas em software livre que permitem a
Disponibilidade de solucoes

implementaca o de sistemas de cluster e grid sem a necessidade de onus


de
licencas de software, alem de permitir a melhoria, alteraca o, distribuica o e
seguranca, transparencia e possibilidade de
compartilhamento de solucoes,
auditoria plena do sistema.
Maior Facilidade de aumentar ou diminuir a capacidade computacional
de acordo com a demanda existente, utilizando Grids e Clusters computacionais.
Possibilidade do desenvolvimento de sistemas e servicos que utilizem os
conceitos de computaca o sob demanda, com o objetivo de aproveitar da
melhor maneira possvel os sistemas e recursos computacionais existentes.
0.1
V ERS AO

P AGINA
17

P OSTGRE SQL E C LUSTER

2.5 - C LUSTER DE B ANCO DE D ADOS

Possibilidade de realizar o aproveitamento de ciclos ociosos de computadores ja existentes na infra-estrutura de TI atual.

2.5 Cluster de Banco de Dados


A adoca o de tecnologias em Cluster e Grid muitas vezes podera impactar nas
entre as pessoas (usuarios ou desenvolvedores de tecnologias) e os
relacoes
sistemas computacionais, da mesma forma que qualquer outra mudanca tec
nologica.
Os gestores, juntamente com os tecnicos, deverao definir qual tecnologia sera adotada, quando adotar e sobre qual metodologia/procedimento
atraves de uma analise previa dos possveis benefcios obtidos com a mudanca

tecnologica
e os riscos/impactos envolvidos.
A camada de banco de dados e uma das partes crticas da maioria dos sistemas.
Uma falha, indisponibilidade ou problemas de integridade na camada de banco
de dados pode ser responsavel pela indisponibilidade de um sistema inteiro ou
ate mesmo pela perda de dados que encontravam-se armazenados. Por conta
desse motivo, esta camada deve ser avaliada, desenvolvida e implementada com
cuidado.
Existem diversos cenarios em que as tecnologias de cluster para banco de dados
podem ser utilizadas, sendo que as principais podem ser classificadas em:
Alta Disponibilidade: Nesta categoria encontram-se as tecnologias de
replicaca o e alta disponibilidade. Para replicaca o normalmente e utilizada

alguma soluca o propria


ou especfica para o sistema de banco de dados utilizado.
Paralelizaca o de Consultas SQL: Nesta categoria encontram-se as tecnologias de paralelizaca o de consultas SQL, cujo objetivo e aumentar
a velocidade de processamento e execuca o de consultas sql complexas,
particionando-a e distribuindo em um conjunto de servidores.

Distribuica o do banco e balanceamento das requisicoes:


Este tipo de tec transacionais, onde
nologia e utilizada normalmente em grandes aplicacoes
e necessario aumentar a performance e disponibilidade.

0.1
V ERS AO

P AGINA
18

Captulo 3
Construindo o Cluster de Banco de
Dados
Existem muitas formas de se trabalhar com banco de dados de forma a se obter
maior performance e/ou para obter outras caractersticas desejaveis que nao
estao disponveis facilmente nos SGDBs mais conhecidos.
Algumas das a reas de pesquisa e desenvolvimento de bancos de dados mais
avancados sao apresentadas a seguir.
Design de bancos de dados distribudos.

O design de banco de dados distribudos responsivo e uma preocupaca o basica


para os sistemas de informaca o. Em redes com grande largura da banda,
latencia e processamento local sao os fatores mais significativos para consultas
e atualizaca o de dados no que se refere ao tempo de resposta do sistema. O
processamento paralelo de consultas pode ser usado para minimizar os efeitos,
particularmente se for considerado no momento do design do sistema de banco
de dados.
O design de banco de dados distribudo pode ser visto como um problema de
que possuem relaca o com: a fragmentaca o de
otimizaca o que requer solucoes
dados, a alocaca o de dados, e a otimizaca o local.

0.1
V ERS AO

P AGINA
19

P OSTGRE SQL E C LUSTER

CAP ITULO
3 : C ONSTRUINDO O C LUSTER DE B ANCO DE D ADOS

Processamento de consultas distribudo.

Em sistemas distribudos de grande escala, e frequentemente


difcil achar um

plano otimo
para consultas distribudas: sistemas distribudos podem ficar muito
grandes, envolvendo milhares de parques computacionais heterogeneos. Como
novos bancos de dados podem ser adicionados/removidos do sistema, fica mais

difcil para o processador de consulta manter estatsticas precisas das relacoes


de consulta relaparticipantes armazenadas nos diferentes sites e das operacoes
cionadas. Tambem, como a carga de trabalho dos varios servidores de processamento e a velocidade de transmissao dos links entre eles flutuam durante o tempo
de processamento dos trabalhos, ha a necessidade de mecanismos de consulta
distribudos, que dinamicamente se adaptem a grandes ambientes distribudos.
Controle de Concorrencia.

O Controle de concorrencia (CC) permite os usuarios acessar um banco de dados


distribudo mantendo a impressao que esta acessando o banco de dados em um
sistema dedicado.
Para isto, sao necessarios mecanismos de CC que intercalem a execuca o de um
debaixo de certas regras de consistencia, enquanto maxconjunto de transacoes
imizam a capacidade de execuca o concorrente do sistema. As duas principais
categorias de mecanismos de CC sao:
ate que
Concorrencia Otimizada - Retardo da sincronizaca o das transacoes
sejam confirmadas. Conflitos sao menos provaveis mas nao
as operacoes
de rollback
serao conhecidos ate que eles acontecam, tornando operacoes
mais caras.
potencialmente concorrentes de transacoes
sao
Pessimista - As execucoes
sincronizadas no incio de seus ciclos execuca o. Desta forma, fica mais facil
realizar o bloqueio, entretanto os problemas devem ser conhecidos anteriormente para diminuir os custos de rollbacks.
Processamento de Transacoes.

0.1
V ERS AO

P AGINA
20

P OSTGRE SQL E C LUSTER

CAP ITULO
3 : C ONSTRUINDO O C LUSTER DE B ANCO DE D ADOS

distribudas proveem unidades de execuca o segura que permitem


Transacoes

que varias operacoes


sejam executadas em locais diferentes e proveem a
preservaca o da consistencia dos dados de um estado de execuca o para outro.
Um protocolo comum para assegurar cumprimento correto de uma transaca o distribuda e o de execuca o em duas fases (two-phase commit - 2PC). Enquanto o
que sao executadas em um curto
2PC e normalmente aplicado para transacoes
distribudas de
perodo de tempo, ele se torna impraticavel para transacoes
grande escala por causa do lock de recursos disponveis/utilizados concorrentemente. Para isto, existem diferentes propostas, como a de dividir a execuca o de
menores de tarefas atomicas

processos que ocupam muito tempo em sucessoes


e
a definica o de mecanismos de compensaca o.
Replicaca o de Dados.

O desafio fundamental na replicaca o de dados e manter um baixo custo nas


enquanto se assegura a consistencia dos parques computacionais do
atualizacoes
cluster. A dificuldade do problema aumenta significativamente em ambientes de
larga escala devido a latencia alta e a probabilidade de quedas da rede. As duas
principais categorias de tecnicas de replicaca o de banco de dados sao:

Replicaca o sncrona - implica em um protocolo de commit atomico


ao
mais lenta
longo do qual assegura consistencia alta a` s custas de transacoes
e a presenca de deadlocks.
sao processadas periodicamente
Replicaca o assncrona - as atualizacoes
do cluster, permitindo um processo de transaca o mais efipor todos os nos
ciente, ao custo de uma baixa garantia da consistencia global dos dados.

Integraca o de Dados.

Conflitos diferentes surgem da representaca o descoordenada de conceitos ao se

integrar fontes de dados autonomas


e distribudas. Exemplos destes conflitos
sao: tipo de dados, estrutura, conflito de nomes, atributos perdidos, e conflitos de
generalizaca o. Todos estes conflitos podem ser estaticamente enderecados entre
eles, durante integraca o dos esquemas de dados ou dinamicamente na geraca o
0.1
V ERS AO

P AGINA
21

P OSTGRE SQL E C LUSTER

3.1 - B ANCO DE D ADOS D ISTRIBUI DOS

de visao/consultas. De acordo com a arquitetura de integraca o, e a estrategia de


manipulaca o de consultas, sistemas de integraca o de banco de dados podem ser:

Sistema de Multi-banco de dados - coleca o de bancos de dados integrados


nos quais cada DBMS mantem controle em cima de seus bancos de dados
globais.
locais, mas coopera com a federaca o aceitando operacoes
Sistema de mediador - bancos de dados sao integrados, atraves de um componente de mediaca o que executa traduca o de dados em um modelo de

dados canonico
comum.
Sistemas de Metadados - consultas sao formuladas dinamicamente em
cada banco de dados pela interaca o com um dicionario de metadados
global.

Existem varios tipos de clusters de banco de dados:

Banco de dados distribudos: Nesse tipo de banco de dados os dados sao


distribudos em um conjunto de servidores. O acesso ao banco de dados e
direcionado ao servidor onde se encontra o dado.
Banco de dados em alta disponibilidade: Dois ou mais servidores em cluster
de alta disponibilidade (MASTER/SLAVE), onde um servidor MASTER e
responsavel pelo servico e os servidores SLAVE ficam aguardando a falha
do MASTER para assumirem o servico.
Banco de dados em alta disponibilidade e distribudos: E um cluster de
banco de dados onde as duas tecnologias anteriores estao presentes, criando
um banco de dados escalavel e tolerante a falhas.

3.1 Banco de Dados Distribudos


Definicoes

0.1
V ERS AO

P AGINA
22

P OSTGRE SQL E C LUSTER

DE B ANCO DE D ADOS
3.2 - R EPLICAC AO

1. Segundo C. J. Date [7],


Um sistema de banco da dados distribudos consiste em uma coleca o de
locais, conectados por alguma rede de comunicaca o e que:
a. Cada um dos locais e um sistema de banco de dados completo com

seus proprios
direitos, mas
b. Os bancos de dados locais trabalham em conjunto para que os usuarios
que acessam os dados de qualquer outro local da rede possa acessar os
dados de forma transparente.
2. Um banco de dados distribudo e um banco de dados que esta sob o controle de um sistema de administraca o de banco de dados central, no qual
dispositivos de armazenamento (storage) sao anexados a um computador.
O armazenamento pode ser em varios computadores localizados no mesmo
local fsico, ou dispersos em uma rede de computadores interconectados.

O banco de dados, pode ser distribudo fisicamente atraves de multiplos


locais.
Um banco de dados distribudo e dividido em varias partes ou fragmentos. Essas
partes ou fragmentos do banco de dados distribudo podem ser replicadas, para
por exemplo criar ambientes de redundancia, RAID, ou mesmo copias para Data
Warehouse.
Alem de replicaca o e fragmentaca o em banco de dados distribudos, existem
varias outras tecnologias para design de banco de dados distribudos. Por exemplo, autonomia local, tecnologias de bancos de dados distribudos sncronos
e assncronos. A implementaca o destas tecnologias podem e definitivamente de
pendem das necessidades das a reas de negocios
e de a sensibilidade e confidenciabilidade dos dados a serem armazenados no banco de dados.

3.2 Replicaca o de Banco de Dados

Um banco de dados replicado e um sistema de bancos de dados com copias


distribudas em uma ou mais maquinas. Este tipo de sistema oferece alta disponi

bilidade e tolerancia a falhas, ja que nao ha apenas uma unica


copia
dos dados,
nao onerarao apenas uma
e melhoria de desempenho, posto que as requisicoes
fonte de dados.
0.1
V ERS AO

P AGINA
23

P OSTGRE SQL E C LUSTER

DE B ANCO DE D ADOS
3.2 - R EPLICAC AO

Para se implementar a replicaca o em bancos de dados podem ser usados dois


metodos levando-se em consideraca o a maneira como e feita a propagaca o de
uma atualizaca o.
Uma primeira aproximaca o e chamada replicaca o sncrona, ou seja uma
atualizaca o (modificaca o fruto de uma operaca o de UPDATE, INSERT ou
que
DELETE, por exemplo) so e consumada se for realizada em todos os nos

compoem
o sistema. Isto significa que o cliente tera de esperar ate que todas as
instancias do banco de dados sejam modificadas para receber uma confirmaca o,

garantindo a integridade da informaca o entre os nos.


A outra aproximaca o e realizar a atualizaca o de maneira assncrona, ou seja as
sao difundidas entre os nos
apos
ser efetivada em um servidor e a
modificacoes
resposta ser enviada ao cliente. O tempo de resposta, se comparado ao metodo
anterior e menor, porem isto pode gerar inconsistencias entre as replicas.
a um
Uma maneira de se contornar estes problemas e restringir as atualizacoes

chamado copia

unico
no,
primaria ou MASTER, o que impede que atualizacoes
em um mesmo objeto sejam feitas em duas maquinas diferentes. Todas as

operacoes
de modificaca o no banco serao enviadas para esta maquina que

cuidara de propagar as modificacoes.


A contrapartida para este modelo e permi em qualquer banco que componha o sistema, nao introduzindo
tir atualizacoes
uma replica privilegiada mas requerendo um sistema que resolva conflitos de
possveis inconsistencias.
O uso de middleware (software interface entre os clientes e o sistemas de bancos de
dados) se tornou um atrativo, ja que permite a construca o de sistemas replicados
sem a necessidade de modificaca o do sistema de gerenciamento de banco de da sao
dos, nem no banco de dados em si. Em sistemas desta natureza as requisicoes
enviadas ao middleware que se encarrega de propaga-las a` s replicas de maneira a
prover controle de replicaca o e balanceamento de carga.

0.1
V ERS AO

P AGINA
24

Captulo 4
Cluster PostgreSQL

Nos ultimos
anos, com o crescimento do PostgreSQL no Mercado Corporativo,
a necessidade de possuir algum tipo de ferramenta de replicaca o que permitisse
a utilizaca o em sistemas de grande porte se tornou crtica. Ja havia no Mercado
ferramentas de replicaca o como o Slony-I 4.1.1, que permitiam a escalabilidade
para sistemas com milhares de consultas simultaneas, mas a performance e a
dificuldade de manutenca o tornavam difcil a adoca o em larga escala.
Um grande passo foi dado no lancamento da versao 8.2 [11], quando foi adicionada a configuraca o de servidores Warm Stand By. A ferramenta possibilitava
do PostgreSQL para subir automaticaconfigurar o arquivamento de transacoes
mente em outro servidor, trazendo principalmente:

Facilidade para recuperaca o do Banco de Dados em caso de desastre;


Administraca o simplificada, facilitando a implementaca o.

Contudo, o passo definitivo foi dado no lancamento da versao 9.0 [12] com a
adica o do mecanismo de Hot Stand By. Passou a ser possvel, utilizando apenas
configuraca o do banco de dados, montar um cluster do tipo Master-Slave em
poucos minutos, de maneira relativamente segura e confiavel.
Alguns dos principais mecanismos descritos serao abordados no texto a seguir,
com descrica o da arquitetura e exemplos de utilizaca o.
0.1
V ERS AO

P AGINA
25

P OSTGRE SQL E C LUSTER

4.1 - A LTA D ISPONIBILIDADE [10]

4.1 Alta Disponibilidade[10]


Os servidores de banco de dados podem trabalhar em conjunto para permitir
que um outro servidor assuma rapidamente caso ocorra uma falha no servidor primario (alta disponibilidade), ou para permitir que muitos computadores
fornecam os mesmos dados (balanceamento de carga). Normalmente e possve
que varios servidores de banco de dados trabalhem em conjunto perfeitamente;
servidores web que servem paginas estaticas podem ser combinados facilmente
entre diferentes maquinas. De fato,
simplesmente balanceando as requisicoes
do banco de dados fossem somente leitura o balanceamento
caso as operacoes
poderia ser feito de maneira natural. Contudo, a maor parte dos servidores
de leitura e escrita com muita
de banco de dados precisam atender requisicoes
frequencia, tornando a combinaca o significativamente mais complexa. Isso acontece porque e necessario propagar os dados escritos em um dos servidores para
todos os outros que trabalham em modo somente leitura, de modo que os resultados retornados sejam consistentes.
O problema de sincronizaca o e a principal dificuldade para construir um cluster
de banco de dados. Como nao ha soluca o simples para eliminar o impacto da

desenvolvidas. Cada
operaca o em todos os casos de uso, ha multiplas
solucoes
uma ataca o problema de forma diferente, minimizando o impacto para a carga
proposta.
permitem que somente um dos servidores modifiquem os daAlgumas solucoes
dos, chamados como servidores de escrita, servidores Master ou primarios. Servidores que registram as mudancas no Master sao chamados de Standby ou Slave.
ate que seja promovido a Master
Um servidor Standby que nao aceita conexoes
e chamado de Warm Stand By, e um que permite a conexao em modo somente
leitura e chamado de Hot Stand By.
sncronas, significando que uma transaca o que modifique
Ha ainda as solucoes
os dados nao e considerada finalizada ate que seja propagada a todos os outros
servidores. Assim, qualquer falha em um dos servidores nao representa perda de
dados, alem de garantir que qualquer servidor do cluster vai retornar resultados
assncronas, que
consistentes a qualquer momento. Ao contrario das solucoes
permitem algum delay entre o instante do commit e a sua propagaca o aos outros servidores, tornando possvel que uma consulta em algum dos servidores re 0.1
V ERS AO

P AGINA
26

P OSTGRE SQL E C LUSTER

M ASTER -S LAVE
4.1.1 - R EPLICAC AO

torne um resultado ligeiramente atrasado. A comunicaca o assncrona e utilizada


quando a comunicaca o sncrona seria lenta demais.
Em qualquer uma das escolhas a performance e o fator mais importante.

4.1.1 Replicaca o Master-Slave


Na replicaca o Master-Slave ha um servidor definido como Master ou Mestre,

unico
do cluster onde e possvel inserir os dados. Os outros servidores se com
portam como Slave ou Escravos, permitindo a consulta de informacoes.
O ajuste
em sistemas com muita demanda em operacoes
de consulta, sem o risco de
e util
inconsistentes em qualquer um dos servidores.
envio de informacoes

Hot Stand By

Hot Stand By e o termo utilizado para descrever a possibilidade de conectar


somente leitura enquanto o servidor esta em
ao banco para executar operacoes
modo archive recovery ou standby. Pode ser utilizado tanto para replicar os dados
quanto para restaurar um backup do banco para um estado desejado com muita
precisao. O termo Hot Standby tambem se refere a` possibilidade do servidor de
mudar de um estado de recuperaca o a` operaca o normal enquando os usuarios
abertas.
continuam executando consultas e/ou mantem suas conexoes
Os dados em standby levam algum tempo para chegar do servidor primario, de
forma que ha um delay mensuravel entre ambos. Executar a consulta em ambos
os servidores quase ao mesmo tempo pode retornar resultados diferentes. Dizemos entao que os dados no servidor standby estao eventualmente consistentes
com o primario. Uma vez que o registro do commit da transaca o e executado novamente no servidor standby, as mudancas causadas pela transaca o serao visveis
em qualquer snapshot do standby.
O servidor Hot Stand By permite a execuca o dos seguintes comandos:

Consulta - SELECT, COPY TO


0.1
V ERS AO

P AGINA
27

P OSTGRE SQL E C LUSTER

M ASTER -S LAVE
4.1.1 - R EPLICAC AO

Cursores - DECLARE, FETCH, CLOSE


Parametros - SHOW, SET, RESET

Controles de gerenciamento de transacoes


BEGIN, END, ABORT, START TRANSACTION
SAVEPOINT, RELEASE, ROLLBACK TO SAVEPOINT
EXCEPTION blocks and other internal subtransactions
LOCK TABLE, somente nos seguintes modos: ACCESS SHARE, ROW
SHARE or ROW EXCLUSIVE.
Plans e resources - PREPARE, EXECUTE, DEALLOCATE, DISCARD
- LOAD
Plugins e extensoes

iniciadas no Hot Stand By nao receberao um ID e nao podem escrever


Transacoes
produzirao erros:
no WAL (Write-Ahead Log). Assim, as seguinte acoes

Data Manipulation Language (DML) - INSERT, UPDATE, DELETE, COPY


permitidas que resultarao em
FROM, TRUNCATE. Note que nao ha acoes
um gatilho (TRIGGER) sendo executado em estado de recuperaca o (recovery). A restrica o se aplica ate mesmo a tabelas temporarias porque as linhas
da tabela nao podem ser lidas ou escritas sem atribuir um ID de transaca o,
o que nao e possvel atualmente num ambiente de Hot Stand By.
Data Definition Language (DDL) - CREATE, DROP, ALTER, COMMENT. A
restrica o se aplica ate mesmo a tabelas temporarias, pois para permitir tais
seria necessaria atualizar as tabelas de catalogo do sistema.
operacoes
SELECT ... FOR SHARE UPDATE, porque nao e possvel atribuir travas
de linha sem atualizar os respectivos arquivos de dados.
Regras em execuca o de SELECT que geram comandos DML.
LOCK que requisita um modo maior que ROW EXCLUSIVE MODE.
LOCK na forma padrao resumida, ja que ela solicita ACCESS EXCLUSIVE
MODE.
0.1
V ERS AO

P AGINA
28

P OSTGRE SQL E C LUSTER

M ASTER -S LAVE
4.1.1 - R EPLICAC AO

que ajustam o estado explicitamente


Comandos para gerencia de transacoes
a nao somente leitura:
BEGIN READ WRITE, START TRANSACTION READ WRITE
SET TRANSACTION READ WRITE, SET SESSION CHARACTERISTICS AS TRANSACTION READ WRITE
SET transaction read only = off
Comandos para commit em duas fases: PREPARE TRANSACTION, COM
MIT PREPARED, ROLLBACK PREPARED porque ate mesmo as tranacoes
somente leitura precisam escrever no WAL na fas de preparaca o (primeira
fase do commit de duas fases).
Atualizaca o de sequencias - nextval(), setval()
LISTEN, UNLISTEN, NOTIFY

somente leitura utilizar


No modo de operaca o normal e permitido a transacoes
Hot Stand
os comandos LISTEN, UNLISTEN e NOTIFY, de forma que as sessoes
maiores do que sessoes
somente leitura. E possvel que
By operam sob restricoes
sejam suavizadas em versoes
futuras do PostgreSQL.
algumas dessas restricoes

Slony

Slony[1] e um sistema de replicaca o master para muitos slaves que suporta


cascateamento e transformaca o de slaves para master , possui capacidade
para replicar grandes bancos de dados em ate doze servidores slave. O Slony foi
devem estar
criado para atender a data centers e stios de backup onde todos os nos
disponveis a qualquer momento.
Ha alguns modelos distintos de replicaca o de bancos de dados, e difcil que um
modelo se adapte a` todas as necessidades. O modelo implementado no Slony-I

e chamado de replicaca o assncrona usando triggers para coletar as atualizacoes,

onde uma origem comum e replicada em multiplas


copias
incluindo copias
cascateadas.

Em algumas situacoes,
Slony nao e aconselhavel:
0.1
V ERS AO

P AGINA
29

P OSTGRE SQL E C LUSTER

M ASTER -S LAVE
4.1.1 - R EPLICAC AO

. Sistemas com conectividade ruim


com certa imprevisibilidade na conexao.
. Replicaca o em nos

. Sistemas cuja configuraca o mude de maneira aleatoria.


. Sistemas onde schemas de bancos de dados podem ser mudados arbitrariamente.

Slony e um sistema de replicaca o independente de versao do PostgreSQL, permitindo ser iniciado ou parado sem a necessidade de ciclos de dump/reload.
Dentre as coisas que Slony nao e :

. Nao e um sistema de gerenciamento de rede.


nem muda um
. Nao possui nenhuma funcionalidade para detectar falha de no,
no master para outro, embora isso possa ser conseguido em conjunca o com outras ferramentas.
. Nao e um sistema de replicaca o multi-master, mas ha planos para transforma-lo
em multi-master na versao 2, muito embora seja um projeto separado e ainda
encontre-se em desenvolvimento.

Modelos de replicaca o Ha alguns modelos distintos de replicaca o de bancos


de dados, e difcil que um modelo se adapte a` todas as necessidades. O modelo
implementado no Slony-I e chamado de replicaca o assncrona usando triggers

para coletar as atualizacoes,


onde uma origem comum e replicada em multiplas

copias
incluindo copias
cascateadas.
Slony nao propaga mudancas em schemas, nem replica grandes objetos. Slony
com triggers, sendo que apenas tabelas e sequencias

coleta as atualizacoes
sao
replicadas.
0.1
V ERS AO

P AGINA
30

P OSTGRE SQL E C LUSTER

M ULTI -M ASTER
4.1.2 - R EPLICAC AO

4.1.2 Replicaca o Multi-Master


sao enviadas a todos os servidores do
Na replicaca o Muti-Master as transacoes
A conCluster, mantendo a informaca o sempre atualizada em cada um dos nos.
sequencia e a perda de performance na inseraca o dos dados, uma vez que e
necessario esperar a propagaca o dos dados terminar antes de disponibiliza-los
para consulta.

Bucardo

O Bucardo e um daemon escrito em Perl que espera uma operaca o de NOTIFY e


age quando ela acontece, conectando-se a outros bancos de dados e propagando

neles as informacoes.
Toda a informaca o necessaria ao daemon e armazenada em
um banco de dados interno, incluindo a lista de todos os servidores envolvidos na
replicaca o e como acessa-los, alem da lista de tabelas a serem replicadas e como
devem ser replicadas.
A replicaca o dentro do Bucardo segue o seguinte fluxo:

1. Uma mudanca e feita em alguma tabela, e a alteraca o e gravada na tabela


bucardo delta;
2. Uma notificaca o e enviada ao daemon principal do Bucardo, informando que
a tabela foi alterada;
3. O daemon envia uma notificaca o para o controlador sobre aquela sincronia
e volta a escutar por mudancas;
4. O controlador cria um kid para cuidar da replicaca o ou envia um sinal para
algum existente;
5. O kid inicia uma nova transaca o e desabilita os TRIGGERS e Rules para a
tabela em questao.

6. Ele recupera uma lista de quais linhas foram alteradas desde a ultima
replicaca o e compara as duas para saber o que deve ser feito;
0.1
V ERS AO

P AGINA
31

P OSTGRE SQL E C LUSTER

4.2 - B ALANCEAMENTO DE C ARGA

7. Se houver um conflito ele sera tratado por um mecanismo de gerencia de


conflitos padrao ou por um customizado, ajustado por tabela;
8. TRIGGERS e Rules sao habilitados novamente e a transaca o recebe um
COMMIT;
9. Se a transaca o falhar sao executados os tratamentos de exceca o;
10. O filho sinaliza ao controlador que foi finalizado.

4.2 Balanceamento de Carga


entre os varios servidores do clusO Balanceamento de carga divide as execucoes
ter.

4.3 PGpool
PGpool[4] e um middleware para PostgreSQL, distribudo sob licenca BSD, que se
situa entre os clientes e os servidores de banco de dados provendo alta disponibilidade, replicaca o e balanceamento de carga. Alem destas caractersticas em

comum com outros sistemas similares, PGpool adicionalmente salva as conexoes


com os servidores PostgreSQL por ele coordenados (PGpool atualmente trabalha apenas com dois servidores PostgreSQL), reutilizando-as quando uma
nova conexao com mesmas propriedades (nome de usuario, banco de dados, protocolo) chega, reduzindo sobrecarga de conexao e aumentando a taxa de transferencia de todo o sistema.
Como sistema de replicaca o de dados, PGpool permite backup em tempo real de
SQL para ambos os servibancos de dados, enviando as mesmas declaracoes
dores, podendo ser considerado um sistema de replicaca o sncrona. Apesar
SQL sao dependentes do servidor no qual sao execudisto algumas instrucoes
aleatorias,

tadas como funcoes


OID, XID e timestamp, nao sendo replicadas com o
mesmo valor para ambos servidores.
0.1
V ERS AO

P AGINA
32

P OSTGRE SQL E C LUSTER

4.3 - PG POOL

Se algum problema torna um dos servidores PostgreSQL indisponvel, o PGpool


tenta continuar o servico com o servidor ainda ativo, este modo e chamado
modo degenerado. Inconvenientemente, o PGpool nao oferece nenhum metodo
para voltar um servidor com problemas de novo no cluster, sendo necessario
que os bancos sejam sincronizados novamente. A melhor maneira e desativar
o servidor ativo, sincronizar os arquivos do Postgresql via rsync, por exemplo,
reiniciar os bancos e o PGpool.
O PGpool envia uma query para o master que envia para o slave antes do
master completar a query. Isto pode aumentar a performance (desempenho)
mas acrescenta o risco de deadlock. Para balancear performance e risco, PGpool pode operar de duas formas:

1) modo restrict: Neste modo, PGpool espera a conclusao da query no no master para depois envia-la para o secundario. Este e o modo de operaca o padrao
e mais seguro do PGpool.
2) palavra chave /*STRICT*/: Visando performance, o modo restrict pode ser
desabilitado atraves do ajuste da diretiva PGpool restrictna configuraca o
do PGpool. Para inibir deadlocks, deve-se inserir a /*STRICT*/ no inicio de
cada query passvel de produzir deadlock, como por exemplo:
/*STRICT*/ LOCK TABLE t1;

Caso algum deadlock ocorra, nao sendo detectado pelo proprio


PostgreSQL,
nao responderem por um certo intervalo
PGpool abortara a sessao se um dos nos
de tempo configuravel.

Para propositos
de balanceamento de carga (configuravel pelo parametro
load balance mode no arquivo de configuraca o), as consultas SELECTsao

distribudas entre o no master e o slave de maneira aleatoria,


para aumentar performance.
SELECTpodem introduzir alteracoes

E importante notar que mesmo instrucoes


que podem modifica-los. Em casos como este
em bancos chamando funcoes
nao se deve usar o balancemanto de carga, sendo necessario se usar espacos em
branco antes da query para que ela nao seja distribuda.
0.1
V ERS AO

P AGINA
33

P OSTGRE SQL E C LUSTER

4.3.1 - PG POOL -II

Eis uma lista de vantagens no uso do PGpool:

na aplicaca o.
. Nao e necessario modificacoes
. Qualquer linguagem pode ser usada.

com o PostgreSQL pode ser limitado.


. O numero
de conexoes
. Tolerancia a falhas. Caso ocorra falha em um servidor PostgreSQL, o outro
assume automaticamente.
. Replicaca o.
. Balanceamento de carga, consultas somente leitura podem ser distribudas entre os servidores.

Desvantagens:

. Sobrecarga. Todos os acessos ao PostgreSQL passam pelo PGpool o que pode


reduzir um pouco a performance (de 1 a 15%, de acordo com os desenvolvedores, em testes feitos com pgbench).
. Nem todos protocolos da libpq sao suportados:
1 Nenhum metodo de autenticaca o exceto truste clear text passwordem
modo de replicaca o.
2 Em modo nao replicado so sao aceitos trust, clear text password,
crypte md5.
3 Controle de acesso via pg hba.conf nao e suportado.
. Sem controle de acesso, qualquer um pode acessar PGpool, o que pode ser impedido via iptables, por exemplo.

4.3.1 PGpool-II
PGpool-II e um projeto que herdou as caractersticas do PGpool, mas que su
expansvel via recompilaca o
porta multiplas
instancias do PostgreSQL (128 nos,
0.1
V ERS AO

P AGINA
34

P OSTGRE SQL E C LUSTER

4.3.1 - PG POOL -II

o que aumenta
do codigo-fonte)
e processamento paralelo nos multiplos
nos,
muito a performance.
A arquitetura do PGpool-II consiste, em um System DB que processa as
administrativas e operacoes
agregadas, e multiplos

onde sao arinformacoes


nos
mazenados os dados. Novos dados serao includos/alterados no no DB baseado
em regras de particionamento pre-definido. Uma regra de particionamento e
SQL e sao armazenadas no System DB, que e outro servidefinida por funcoes
dor PosgreSQL. A arquitetura do PGpool-II e ilustrada na figura 4.1 que se segue.

Figura 4.1: Arquitetura PG-pool

0.1
V ERS AO

P AGINA
35

Parte I
Apendices

0.1
V ERS AO

P AGINA
36

Apendice A
Licenca CC-GNU GPL

Figura A.1: Creative Commons

Licenca Publica
Geral do GNU (GPL) [General Public License]
Versao 21 , Junho de 1991 Direitos Autorais Reservados (c) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite [conjunto] 330, Boston, MA [Massachusetts] 02111-1307 USA [Estados Unidos da America]

deste
E permitido a qualquer pessoa copiar e distribuir copias
sem alteracoes
documento de licenca, sendo vedada, entretanto, qualquer modificaca o.

Introduca o

As licencas da maioria dos softwares sao elaboradas para suprimir sua liberdade

de compartilha-los e modifica-los. A Licenca Publica


Geral do GNU, ao contrario,
1

Disponvel

em

http://creativecommons.org/licenses/GPL/2.0/

legalcode.pt.
0.1
V ERS AO

P AGINA
37

P OSTGRE SQL E C LUSTER

CAP ITULO
A : L ICENC A CC-GNU GPL

visa garantir sua liberdade de compartilhar e modificar softwares livres para asse
gurar que o software seja livre para todos os seus usuarios. Esta Licenca Publica
Geral e aplicavel a` maioria dos softwares da Free Software Foundation [Fundaca o
do Software livre] e a qualquer outro programa cujos autores se comprometerem
a usa-la. (Em vez dela, alguns outros softwares da Free Software Foundation sao

cobertos pela Licenca Publica


Geral de Biblioteca do GNU). Voce tambem podera
aplica-la aos seus programas.
Quando falamos de Software Livre, estamos nos referindo a` liberdade, nao ao

preco. Nossas Licencas Publicas


Gerais visam garantir que voce tenha a liberdade

de distribuir copias
de Software Livre (e cobrar por isso se desejar), que receba

codigo-fonte
ou possa obte-lo se desejar, que possa modifica-lo ou usar partes
dele em novos programas livres; finalmente, que voce tenha ciencia de que pode
fazer tudo isso.

Para proteger seus direitos, necessitamos fazer restricoes


que probem que
alguem negue esses direitos a voce ou que solicite que voce renuncie a eles. Es se traduzem em determinadas responsabilidades que voce devera
sas restricoes

assumir, se for distribuir copias


do software ou modifica-lo.

Por exemplo, se voce distribuir copias


de algum desses programas, tanto gratuitamente como mediante uma taxa, voce tera de conceder aos receptores todos
os direitos que voce possui. Voce tera de garantir que, tambem eles, recebam ou

possam obter o codigo-fonte.


E voce tera a obrigaca o de exibir a eles esses termos,
para que eles conhecam seus direitos.
Protegemos seus direitos atraves de dois passos: (1) estabelecendo direitos autorais sobre o software e (2) concedendo a voce esta licenca, que da permissao
legal para copiar, distribuir e/ou modificar o software.
Alem disso, para a proteca o de cada autor e a nossa, queremos ter certeza de que
todos entendam que nao ha nenhuma garantia para este Software Livre. Se o software for modificado por alguem e passado adiante, queremos que seus receptores
saibam que o que receberam nao e o original, de forma que quaisquer problemas
dos autores originais.
introduzidos por terceiros nao afetem as reputacoes
Finalmente, qualquer programa livre e constantemente ameacado por patentes de
software. Queremos evitar o risco de que redistribuidores de um programa livre
0.1
V ERS AO

P AGINA
38

P OSTGRE SQL E C LUSTER

CAP ITULO
A : L ICENC A CC-GNU GPL

obtenham individualmente licencas sob uma patente, tornando o programa, com


efeito, proprietario. Para impedir isso, deixamos claro que qualquer patente deve
ser licenciada para o uso livre por parte de qualquer pessoa ou, entao, simplesmente nao deve ser licenciada.

Os exatos termos e condicoes


para copia,
distribuica o e modificaca o

E
seguem abaixo. TERMOS E CONDIC
OES
PARA COPIA,
DISTRIBUIC
AO

MODIFICAC
AO.

1. Esta Licenca se aplica a qualquer programa ou outra obra que contenha


um aviso inserido pelo respectivo titular dos direitos autorais, informando
que a referida obra pode ser distribuda em conformidade com os termos

desta Licenca Publica


Geral. O termo Programa, utilizado abaixo, referese a qualquer programa ou obra, e o termo obras baseadas no Programa
significa tanto o Programa, como qualquer obra derivada nos termos da
legislaca o de direitos autorais: isto e , uma obra contendo o Programa ou

uma parte dele, tanto de forma identica como com modificacoes,


e/ou
traduzida para outra linguagem. (Doravante, o termo modificaca o inclui tambem, sem reservas, a traduca o). Cada licenciado, doravante, sera
denominado voce.

Outras atividades que nao a copia,


distribuica o e modificaca o, nao sao
cobertas por esta Licenca; elas estao fora de seu escopo. O ato de executar
e o resultado gerado a partir do Programa
o Programa nao tem restricoes

encontra-se coberto somente se seu conteudo


constituir uma obra baseada
no Programa (independente de ter sido produzida pela execuca o do Programa). Na verdade, isto dependera daquilo que o Programa faz.

2. Voce podera fazer copias


identicas do codigo-fonte
do Programa ao recebelo e distribui-las, em qualquer mdia ou meio, desde que publique, de forma

ostensiva e adequada, em cada copia,


um aviso de direitos autorais (ou
copyright) apropriado e uma notificaca o sobre a exoneraca o de garantia;

referentes a esta
mantenha intactas as informacoes,
avisos ou notificacoes
Licenca e a` ausencia de qualquer garantia; e forneca a quaisquer outros re
ceptores do Programa uma copia
desta Licenca junto com o Programa.

Voce podera cobrar um valor pelo ato fsico de transferir uma copia,
e voce
pode oferecer, se quiser, a proteca o de uma garantia em troca de um valor.
0.1
V ERS AO

P AGINA
39

P OSTGRE SQL E C LUSTER

CAP ITULO
A : L ICENC A CC-GNU GPL

3. Voce podera modificar sua copia


ou copias
do Programa ou qualquer parte
dele, formando, dessa forma, uma obra baseada no Programa, bem como
ou obra, de acordo com os termos
copiar e distribuir essas modificacoes
da Clausula 1 acima, desde que voce tambem atenda a todas as seguintes

condicoes:
a. Voce deve fazer com que os arquivos modificados contenham avisos,
em destaque, informando que voce modificou os arquivos, bem como
a data de qualquer modificaca o.
b. Voce deve fazer com que qualquer obra que voce distribuir ou publicar,
que no todo ou em parte contenha o Programa ou seja dele derivada,
ou derivada de qualquer parte dele, seja licenciada como um todo sem
qualquer custo para todos terceiros nos termos desta licenca.
c. Se o programa modificado normalmente le comandos interativamente
quando executado, voce devera fazer com que ele, ao comecar a ser
executado para esse uso interativo em sua forma mais simples, imprima ou exiba um aviso incluindo o aviso de direitos autorais (ou
copyright) apropriado, alem de uma notificaca o de que nao ha garantia (ou, entao, informando que voce oferece garantia) e informando
que os usuarios poderao redistribuir o programa de acordo com essas

condicoes,
esclarecendo ao usuario como visualizar uma copia
desta
Licenca. (Exceca o: se o Programa em si for interativo mas nao im
primir normalmente avisos como esses, nao e obrigatorio
que a sua
obra baseada no Programa imprima um aviso).
Essas exigencias se aplicam a` obra modificada como um todo. Se
partes identificaveis dessa obra nao forem derivadas do Programa e
puderem ser consideradas razoavelmente como obras independentes

e separadas por si proprias,


nesse caso, esta Licenca e seus termos nao
se aplicarao a essas partes quando voce distribui-las como obras separadas. Todavia, quando voce distribui-las como parte de um todo
que constitui uma obra baseada no Programa, a distribuica o deste
todo tera de ser realizada em conformidade com esta Licenca, cujas
para outros licenciados se estenderao a` obra por completo
permissoes

e, consequentemente,
a toda e qualquer parte, independentemente de
quem a escreveu.
Portanto, esta clausula nao tem a intenca o de afirmar direitos ou contestar os seus direitos sobre uma obra escrita inteiramente por voce;
0.1
V ERS AO

P AGINA
40

P OSTGRE SQL E C LUSTER

CAP ITULO
A : L ICENC A CC-GNU GPL

a intenca o e , antes, de exercer o direito de controlar a distribuica o de


obras derivadas ou obras coletivas baseadas no Programa.
Alem do mais, a simples agregaca o de outra obra que nao seja baseada
no Programa a ele (ou a uma obra baseada no Programa) em um volume de mdia ou meio de armazenamento ou distribuica o, nao inclui
esta outra obra no a mbito desta Licenca.
4. Voce podera copiar e distribuir o Programa (ou uma obra baseada nele, de

acordo com a Clausula 2) em codigo-objeto


ou formato executavel de acordo
com os termos das Clausulas 1 e 2 acima, desde que voce tambem tome uma
das providencias seguintes:

a. Incluir o codigo-fonte
correspondente completo, passvel de leitura
pela maquina, o qual tera de ser distribudo de acordo com as
Clausulas 1 e 2 acima, em um meio ou mdia habitualmente usado
para intercambio de software; ou,
b. Incluir uma oferta por escrito, valida por pelo menos tres anos, para
fornecer a qualquer terceiro, por um custo que nao seja superior ao

seu custo de fisicamente realizar a distribuica o da fonte, uma copia

completa passvel de leitura pela maquina, do codigo-fonte


correspondente, a ser distribudo de acordo com as Clausulas 1 e 2 acima, em um
meio ou mdia habitualmente usado para intercambio de software; ou,
recebidas por voce, quanto a` oferta para disc. Incluir as informacoes

tribuir o codigo-fonte
correspondente. (Esta alternativa e permitida somente para distribuica o nao-comercial e apenas se voce tiver recebido

o programa em codigo-objeto
ou formato executavel com essa oferta,
de acordo com a letra b, acima).

O codigo-fonte
de uma obra significa o formato preferencial da obra
na mesma. Para uma obra exepara que sejam feitas modificacoes

cutavel, o codigo-fonte
completo significa o codigo-fonte
inteiro de to
dos os modulos
que ela contiver, mais quaisquer arquivos de definica o
de interface associados, alem dos scripts usados para controlar a
compilaca o e instalaca o do executavel. Entretanto, como uma exceca o

especial, o codigo-fonte
distribudo nao precisa incluir nada que nao
seja normalmente distribudo (tanto no formato fonte como no binario)
com os componentes principais (compilador, kernel e assim por diante)
do sistema operacional no qual o executavel e executado, a menos que
este componente em si acompanhe o executavel.
0.1
V ERS AO

P AGINA
41

P OSTGRE SQL E C LUSTER

CAP ITULO
A : L ICENC A CC-GNU GPL

Se a distribuica o do executavel ou codigo-objeto


for feita mediante a
permissao de acesso para copiar, a partir de um local designado, entao,

a permissao de acesso equivalente para copiar o codigo-fonte


a partir

do mesmo local sera considerada como distribuica o do codigo-fonte,


mesmo que os terceiros nao sejam levados a copiar a fonte junto com o

codigo-objeto.
5. Voce nao podera copiar, modificar, sublicenciar ou distribuir o Programa,
exceto conforme expressamente estabelecido nesta Licenca. Qualquer tentativa de, de outro modo, copiar, modificar, sublicenciar ou distribuir o Programa sera invalida, e automaticamente rescindira seus direitos sob esta

Licenca. Entretanto, terceiros que tiverem recebido copias


ou direitos de
voce de acordo esta Licenca nao terao suas licencas rescindidas, enquanto
estes terceiros mantiverem o seu pleno cumprimento.
6. Voce nao e obrigado a aceitar esta Licenca, uma vez que voce nao a assinou.
Porem, nada mais concede a voce permissao para modificar ou distribuir
o Programa ou respectivas obras derivativas. Tais atos sao proibidos por

lei se voce nao aceitar esta Licenca. Consequentemente,


ao modificar ou
distribuir o Programa (ou qualquer obra baseada no Programa), voce estara
manifestando sua aceitaca o desta Licenca para faze-lo, bem como de todos
para copiar, distribuir ou modificar o Programa
os seus termos e condicoes
ou obras nele baseadas.
7. Cada vez que voce redistribuir o Programa (ou obra baseada no Programa),
o receptor recebera, automaticamente, uma licenca do licenciante original,
para copiar, distribuir ou modificar o Programa, sujeito a estes termos e

adicionais ao excondicoes.
Voce nao podera impor quaisquer restricoes
erccio, pelos receptores, dos direitos concedidos por este instrumento. Voce
nao tem responsabilidade de promover o cumprimento por parte de terceiros desta licenca.
8. Se, como resultado de uma sentenca judicial ou alegaca o de violaca o
de
de patente, ou por qualquer outro motivo (nao restrito a` s questoes
(tanto atraves de mandado judipatentes), forem impostas a voce condicoes
desta
cial, contrato ou qualquer outra forma) que contradigam as condicoes
desta Licenca.
Licenca, voce nao estara desobrigado quanto a` s condicoes
Se voce nao puder atuar como distribuidor de modo a satisfazer simul sob esta licenca e quaisquer outras obrigacoes

taneamente suas obrigacoes


0.1
V ERS AO

P AGINA
42

P OSTGRE SQL E C LUSTER

CAP ITULO
A : L ICENC A CC-GNU GPL

encia, voce nao podera distribuir o Propertinentes, entao, como consequ


grama de nenhuma forma. Por exemplo, se uma licenca sob uma patente
nao permite a redistribuica o por parte de todos aqueles que tiverem rece
bido copias,
direta ou indiretamente de voce, sem o pagamento de royalties,

entao, a unica
forma de cumprir tanto com esta exigencia quanto com esta
licenca sera deixar de distribuir, por completo, o Programa.
Se qualquer parte desta Clausula for considerada invalida ou nao executavel, sob qualquer circunstancia especfica, o restante da clausula devera
continuar a ser aplicado e a clausula, como um todo, devera ser aplicada em
outras circunstancias.
Esta clausula nao tem a finalidade de induzir voce a infringir quaisquer
patentes ou direitos de propriedade, nem de contestar a validade de quais deste tipo; a unica

quer reivindicacoes
finalidade desta clausula e proteger
a integridade do sistema de distribuica o do Software Livre, o qual e imple
mentado mediante praticas de licencas publicas.
Muitas pessoas tem feito
a` ampla gama de software distribudo atraves desse
generosas contribuicoes
sistema, confiando na aplicaca o consistente deste sistema; cabe ao autor/doador decidir se deseja distribuir software atraves de qualquer outro sistema e um licenciado nao pode impor esta escolha.
Esta clausula visa deixar absolutamente claro o que se acredita ser uma con encia do restante desta Licenca.
sequ
9. Se a distribuica o e/ou uso do Programa for restrito em determinados pases,
tanto por patentes ou por interfaces protegidas por direito autoral, o titular original dos direitos autorais que colocar o Programa sob esta Licenca
podera acrescentar uma limitaca o geografica de distribuica o explcita excluindo esses pases, de modo que a distribuica o seja permitida somente
nos pases ou entre os pases que nao foram excludos dessa forma. Nesse
caso, esta Licenca passa a incorporar a limitaca o como se esta tivesse sido
escrita no corpo desta Licenca.
10. A Free Software Foundation podera de tempos em tempos publicar no e/ou versoes
revisadas da Licenca Publica

vas versoes
Geral. Essas no
vas versoes
serao semelhantes em esprito a` presente versao, mas podem diferenciar-se, porem, em detalhe, para tratar de novos problemas ou

preocupacoes.

Cada versao recebe um numero


de versao distinto. Se o Programa especi
ficar um numero
de versao desta Licenca que se aplique a ela e a qualquer
0.1
V ERS AO

P AGINA
43

P OSTGRE SQL E C LUSTER

CAP ITULO
A : L ICENC A CC-GNU GPL

tanto
versao posterior, voce tera a opca o de seguir os termos e condicoes
daquela versao como de qualquer versao posterior publicada pela Free Soft
ware Foundation. Se o Programa nao especificar um numero
de versao desta
Licenca, voce podera escolher qualquer versao ja publicada pela Free Software Foundation.
11. Se voce desejar incorporar partes do Programa em outros programas livres
de distribuica o sejam diferentes, escreva ao autor soliccujas condicoes
itando a respectiva permissao. Para software cujos direitos autorais sejam da Free Software Foundation, escreva para ela; algumas vezes, abri para isso. Nossa decisao sera guiada pelos dois objetivos de
mos excecoes
preservar a condica o livre de todos os derivados de nosso Software Livre e
de promover o compartilhamento e reutilizaca o de software, de modo geral.

DE GARANTIA
EXCLUSAO
HA
NEN11. COMO O PROGRAMA E LICENCIADO SEM CUSTO, NAO
HUMA GARANTIA PARA O PROGRAMA, NO LIMITE PERMITIDO

PELA LEI APLICAVEL.


EXCETO QUANDO DE OUTRA FORMA ESTABELECIDO POR ESCRITO, OS TITULARES DOS DIREITOS AUTORAIS
E/OU OUTRAS PARTES, FORNECEM O PROGRAMA NO ESTADO
EM QUE SE ENCONTRA, SEM NENHUMA GARANTIA DE QUAL
QUER TIPO, TANTO EXPRESSA COMO IMPLICITA,
INCLUINDO, DEN
TRE OUTRAS, AS GARANTIAS IMPLICITAS
DE COMERCIABILIDADE E
A UMA FINALIDADE ESPECIFICA.

ADEQUAC
AO
O RISCO INTEGRAL
` QUALIDADE E DESEMPENHO DO PROGRAMA E ASSUMQUANTO A
CASO O PROGRAMA CONTENHA DEFEITOS, VOCE
IDO POR VOCE.
COM OS CUSTOS DE TODOS OS SERVIC
ARCARA
OS, REPAROS OU

CORREC
OES
NECESSARIAS.

12. EM NENHUMA CIRCUNSTANCIA,


A MENOS QUE EXIGIDO PELA LEI

APLICAVEL
OU ACORDADO POR ESCRITO, QUALQUER TITULAR
DE DIREITOS AUTORAIS OU QUALQUER OUTRA PARTE QUE POSSA
MODIFICAR E/OU REDISTRIBUIR O PROGRAMA, CONFORME PER RESPONSAVEL

MITIDO ACIMA, SERA


PARA COM VOCE POR DANOS,
INCLUINDO ENTRE OUTROS, QUAISQUER DANOS GERAIS, ESPECIAIS, FORTUITOS OU EMERGENTES, ADVINDOS DO USO OU IMPOSSIBILIDADE DE USO DO PROGRAMA (INCLUINDO, ENTRE OUTROS,
0.1
V ERS AO

P AGINA
44

P OSTGRE SQL E C LUSTER

CAP ITULO
A : L ICENC A CC-GNU GPL

PERDAS DE DADOS OU DADOS SENDO GERADOS DE FORMA IMPRECISA, PERDAS SOFRIDAS POR VOCE OU TERCEIROS OU A IMPOSSIBILIDADE DO PROGRAMA DE OPERAR COM QUAISQUER OUTROS PROGRAMAS), MESMO QUE ESSE TITULAR, OU OUTRA PARTE,

TENHA SIDO ALERTADA SOBRE A POSSIBILIDADE DE OCORRENCIA


DESSES DANOS.

FINAL DOS TERMOS E CONDIC


OES

Como Aplicar Estes Termos para Seus Novos Programas.


Se voce desenvolver um programa novo e quiser que ele seja da maior utilidade

possvel para o publico,


o melhor caminho para obter isto e fazer dele um Software Livre, o qual qualquer pessoa pode redistribuir e modificar sob os presentes
termos.
seguintes ao programa. E mais seguro anexaPara fazer isto, anexe as notificacoes
las ao comeco de cada arquivo-fonte, de modo a transmitir do modo mais eficiente a exclusao de garantia; e cada arquivo deve ter ao menos a linha de direitos autorais reservados e uma indicaca o de onde a notificaca o completa se
encontra.

uma linha para informar o nome do programa e uma breve ideia do


que ele faz. Direitos Autorais Reservados (c) nome do autor Este
programa e Software Livre; voce pode redistribu-lo e/ou modifica
lo sob os termos da Licenca Publica
Geral GNU conforme publicada
pela Free Software Foundation; tanto a versao 2 da Licenca, como (a
seu criterio) qualquer versao posterior.

Este programa e distribudo na expectativa de que seja util,


porem,
SEM NENHUMA GARANTIA; nem mesmo a garantia implcita de
A UMA FINALIDADE
COMERCIABILIDADE OU ADEQUAC
AO

ESPECIFICA.
Consulte a Licenca Publica
Geral do GNU para mais
detalhes.

Voce deve ter recebido uma copia


da Licenca Publica
Geral do GNU
junto com este programa; se nao, escreva para a Free Software Founda 0.1
V ERS AO

P AGINA
45

P OSTGRE SQL E C LUSTER

CAP ITULO
A : L ICENC A CC-GNU GPL

tion, Inc., no endereco 59 Temple Street, Suite 330, Boston, MA 02111 sobre como contatar voce por
1307 USA. Inclua tambem informacoes

correio eletronico
e por meio postal.

Se o programa for interativo, faca com que produza uma pequena notificaca o
como esta, quando for iniciado em um modo interativo:

Versao 69 do Gnomovision, Direitos Autorais Reservados (c) ano


POSSUI QUALQUER TIPO
nome do autor. O Gnomovision NAO
DE GARANTIA; para detalhes, digite show w. Este e um Software
digLivre e voce e bem-vindo para redistribu-lo sob certas condicoes;
ite show c para detalhes.

Os comandos hipoteticos show w e show c devem mostrar as partes apropri


adas da Licenca Publica
Geral. Naturalmente, os comandos que voce utilizar
que nao show w e show c; eles poderao ate
poderao ter outras denominacoes
ser cliques do mouse ou itens de um menu o que for adequado ao seu programa.
Voce tambem pode solicitar a seu empregador (se voce for um programador) ou

sua instituica o academica, se for o caso, para assinar uma renuncia


de direitos
autorais sobre o programa, se necessario. Segue um exemplo; altere os nomes:

A Yoyodyne Ltda., neste ato, renuncia a todos eventuais direitos autorais sobre o programa Gnomovision (que realiza passagens em
compiladores), escrito por James Hacker.
Assinatura de Ty Coon 1o de abril de 1989, Ty Coon, Presidente

Esta Licenca Publica


Geral nao permite a incorporaca o do seu programa a programas proprietarios. Se seu programa e uma biblioteca de sub-rotinas, voce
permitir a ligaca o de aplicacoes
proprietarias a`
podera considerar ser mais util

sua biblioteca. Se isso e o que voce deseja fazer, utilize a Licenca Publica
Geral de
Biblioteca do GNU, ao inves desta Licenca.

0.1
V ERS AO

P AGINA
46

Referencias Bibliograficas
[1] Introducing slony. http://www.onlamp.com/pub/a/onlamp/2004/11/18/
slony.html.
[2] Modifying slony clusters. http://www.onlamp.com/pub/a/onlamp/2005/
03/17/slony_changes.html.
[3] Pgcluster. http://pgcluster.projects.postgresql.org/.
[4] Pgpool. http://pgpool.projects.postgresql.org/.
[5] Postgresql. http://www.postgresql.org.
[6] Nazareno Andrade, Walfredo Cirne, Francisco Brasileiro, and Paulo Roisenberg. Ourgrid: An approach to easily assemble grids with equitable resource
sharing. 9th Workshop on Job Scheduling Strategies for Parallel Processing, June
2003.
[7] C. J. Date. An Introduction to Database Systems. Addison-Wesley, Reading,
MA, 6 edition, 1995.
[8] C. DE ROSE, BLANCO, F. MAILLARD, N. SAIKOSKI, K. NOVAES,
R. RICHARD, and O. RICHARD. The virtual cluster: a dynamic environment for exploitation of idle network resources. 14th symposium on Computer
Architecture and High-Performance Computing (SBAC-PAD 2002). USA: IEEE
Computer Society, pages p.141 148, 2002.
[9] Corinto Meffe, Elias O. P. Mussi, Leonardo Mello, and Rogerio Santanna dos
Santos. A tecnologia de cluster e grid na resoluca o de problemas de governo

eletronico.
The 18th International Symposium on Computer Architeture and High
Performance Computing, pages 18, Outubro 2006.
0.1
V ERS AO

P AGINA
47

REFER ENCIAS
BIBLIOGR AFICAS

P OSTGRE SQL E C LUSTER

[10] PostgreSQL. High availability. http://www.postgresql.org/docs/9.1/


static/high-availability.html. Acessado em 16/06/2013.
[11] PostgreSQL. Postgresql 8.2 release notes. http://www.postgresql.org/
docs/8.2/static/release-8-2.html. Acessado em 16/06/2013.
[12] PostgreSQL. Postgresql 9.0 release notes. http://www.postgresql.org/
docs/9.0/static/release-9-0.html. Acessado em 16/06/2013.
[13] Michael Stonebreaker and Lawrence A. Rowe.
The design of postgres, 1985.
http://s2k-ftp.cs.berkeley.edu:8000/postgres/papers/ERLM85-95.pdf Acessado em 22/05/2013.
[14] Michael Stonebreaker and Lawrence A. Rowe.
The postgres datamodel, 1987. http://s2k-ftp.cs.berkeley.edu:8000/postgres/papers/ERLM87-13.pdf Acessado em 22/05/2013.
[15] Michael
Stonebreaker,
Lawrence
A.
Rowe,
and
S.
Potamianos.
Postgres
rule
system,
1989.
http://www.postgresql.org/docs/9.2/interactive/biblio.html#STON87A
Acessado em 22/05/2013.
[16] TOP500. Top500.org.
20.04.2006 12:20.

http://www.top500.org/.

Ultima Visita em

[17] WikiPedia. Wikipedia, the free encyclopedia. http://pt.wikipedia.org/


wiki/Mainframes. Ultima Visita em 20.04.2005 12:20.

0.1
V ERS AO

P AGINA
48

Você também pode gostar