29
Consistência e Replicação Alunos: Felipe Marlon de Carvalho Sales Fernando Henrique Ferreira e Silva

Consistência e Replicação

Embed Size (px)

DESCRIPTION

Dados Replicados são utilizados para se aprimorar a confiabilidade.

Citation preview

Consistncia e ReplicaoAlunos:Felipe Marlon de Carvalho SalesFernando Henrique Ferreira e SilvaConsistncia e ReplicaoDados replicados so utilizados para aprimorar a confabilidade ou melhorar o desempenho;m dos principais problemas ! manter as r!plicas consistentes;Modelos de consist"ncia tem como premissa que v#riosprocessos acessam dados compartilhados;Modelos de consist"ncia para dados compartilhados costumam ser di$%ceis de implementar com efci"ncia em sistemas de &rande escala;Razes para Replicao Confabilidade ' poss%vel continuar trabalho mesmo que uma das r!plicas caia; Maior prote(o de dados corrompidos; Desempenho Amplia(o em quantidade para dividir trabalho de servidor centralizado) diminuindo o es$or(o para cada servidor; Amplia(o &eo&r#fca para diminuir tempo de acesso adados) aumentando o desempenho dos clientes;Razes para ReplicaoConsist"ncia Sempre que uma c*pia ! modifcada) ! necess#rio atualizar todas as r!plicas) o que pode &erar) no m%nimo) em maior lar&ura de banda para manter consist"ncia dos dados+Modelos de Consistncia Centrados emDados A consist"ncia tem sido discutida no conte,to de opera(-es de leitura e escrita em dados compartilhados por meio de:. Mem*ria compartilhada /distribu%da0;. 1anco de dados /distribu%do0;. Sistema de arquivos /distribu%do0; 2s termos listados anteriormente sero chamado indistintamente de depsito de dados+ Cada processo que pode acessar dados do dep*sito tem uma c*pia local /ou pr*,ima0 dispon%vel do dep*sito inteiro+ 2pera(-es de escrita so propa&adas para outras c*pias+. Alterou dados3 4 5scrita+ 6o alterou dados3 4 7eitura+Modelo de Consistncia . contrato entre processose dep*sitos que frma que o dep*sito $uncionar# demaneira correta se os processos concordarem emobedecer certas re&ras+Modelos de Consistncia Centrados em Dados Consistncia Contnua8uais inconsist"ncias so toler#veis3. Defnidas a partir de tr"s ei,os) que $ormam $ai,as de consistncia contnua:9+ Desvio em valores num!ricos entre r!plicas;: C*pias no podem variar por mais que dado valor absoluto ou relativo;: 6;mero de atualiza(-es no vistas por outras r!plicas;+ Desvio em rela(o ? ordena(o de opera(-es deatualiza(o+: @olera ordena(o di$erente temporariamente aplicadas provisoriamente a uma c*pia local tempor#ria) mas que devem ser re$eitas na ordem correta antes de se tornarem permanentes+Modelos de Consistncia Centrados em Dados Ordenao consistente de operaes: Modelos de pro&rama(o concorrente quetratam de ordenar opera(-es consistentemente em dados compartilhados replicados:. Consist"ncia seqAencial;. Consist"ncia causal+: Ampliam os modelos de consist"ncia cont%nua no sentido de que) quando $or preciso comprometer atualiza(-es provis*rias em r!plicas) estas tero de che&ar a umacordo sobre uma ordena(o &lobal dessas atualiza(-es+Modelos de Consistncia Centrados em Dados Consistncia seqencial: Defnido em 9BCB por 7amport+ DizDse que um dep*sito de dados ! seqAencialmente consistente quando satis$az a se&uinte condi(o:. 2 resultado de qualquer e,ecu(o ! o mesmo que seria se as opera(-es /de leitura e escrita0 realizadas por todos os processos no dep*sito de dados $ossem e,ecutadas na mesma ordem seqAencial e as opera(-es de cada processo individual aparecessem nessa seqA"ncia na ordem especifcada por seu pro&rama+: 7o&o) qualquer intercala(o v#lida de opera(-es ! aceit#vel) mas todos os processos vem a mesma intercalao de operaes+. 6ada ! dito sobre o tempo;. 2 processo Ev"F escritas de todos) mas apenas as suaspr*prias leituras+Modelos de Consistncia Centrados em Dados Consistncia CausalGepresenta um en$raquecimento da consist"ncia seqAencial no sentido que $az distin(o entre eventos que so potencialmente relacionados por causalidade e os que no so+. Se o evento b ! causado ou inHuenciado por umevento anterior a) ento ! necess#rio que todos veIam primeiro a e) depois) b. Se o processo J9 escreve x) em se&uida J< l" x e escreve y) os dois primeiros so causais) por!m as duas escritas so concorrentes+Modelos de Consistncia Centrados em Dados Consistncia CausalJara um dep*sito de dados ser considerado consistente por causalidade) ! necess#rio que obede(a ? se&uinte condi(o:Escritas que so potencialmente relacionadas por causalidade devem ser vistas por todos os processos na mesma ordem. Escritas concorrentes podem ser vistas em ordem diferente em mquinas diferentes.Kmplementar consist"ncia causal requer monitorar quais processos viram quais escritas+Modelos de Consistncia Centrados em Dados Consistncia vs. Coerncia: Modelo de Consistncia descreve o que pode ser esperado com rela(o ao conIunto de itens de dados quando v#rios processos operam concorrentemente sobre aqueles dados+. m conIunto ! consistente se adere ?s re&ras descritas pelo modelo+: Modelos de Coerncia descreve o que pode ser esperado para s* um item de dados+. m item replicado em v#rios lu&ares adere ?s re&ras defnidas pelo seu modelo de coer"ncia associado+. Modelo popular: consist"ncia seqAencial) mas aplicado a s* um item de dados+: 6o caso de escritas concorrentes) a certa altura todos os processos vero ocorrer a mesma ordem de atualiza(-es+Modelos de Consist"ncia Centradosno ClienteModelos de consistncia Centrados no cliente Consistncia eventual: m modelo de consist"ncia muito $raca) no qual dep*sitos de dados so caracterizados pela aus"ncia de atualiza(-es simultLneas ou) quando tais atualiza(-es acontecem) elas podem ser resolvidas com $acilidade+: A maioria das opera(-es envolve ler dados+. 5m muitos sistemas de bancos de dados) a maioria dosprocessos difcilmente e,ecuta opera(-es de atualiza(o;. 6o D6S) apenas a autoridade de nomea(o pode atualizar sua por(o do espa(o de nomes;: ConHitos escritaescrita nunca ocorrero) mas sim conHitos leituraescrita+. J#&inas MMM) que so atualizadas apenas peloNebmaster;: so de pro,ies e caches para melhorar efci"ncia+Modelos de consistncia Centrados no cliente Consistncia eventualModelos de consistncia Centrados no cliente Consistncia centrada no cliente: 8uando se usa dep*sitos de dados de consist"ncia eventual e um mesmo usu#rio pode operar sobre r!plicas di$erentes) podeDse obter inconsist"ncias+: Gesolvidas a partir de consist"ncia centrada no cliente:. D# &arantia a um nico cliente de consist"ncia de acesso a um dep*sito de dados por esse cliente;. 6o h# &arantia para acessos concorrentes por clientes di$erentes+: Dividido em O modelos:. 7eituras monotPnicas;. 5scritas monotPnicas;. 7eiaDsuasDescritas;. 5scritasDse&uemDleituras+Modelos de consistncia Centrados no cliente !eituras monot"nicas: Se um processo ler o valor de um item de dados ,) qualquer opera(o de leitura sucessiva de , e,ecutada por esse processo sempre retornar# o mesmo valor ou um valor mais recente+. 7eitura de 5Dmails Ecom cacheF+Modelos de consistncia Centrados no cliente #scritas monot"nicas: ma opera(o de escrita e,ecutada por um processo em um item de dados , ! conclu%da antes de qualquer opera(o de escrita sucessiva em , pelo mesmo processo+. Atualiza(o vers-es de bibliotecas substituindo uma ou mais $un(-es+$erenciamento de R%plicas: 2nde) quando e por quem r!plicas devem ser posicionadas3. Josicionar servidores de rplicas;: ' o posicionamento de hardNare: encontrar as melhores localiza(-es para colocar um servidor que pode hospedar dep*sito de dados /ou parte dele0;. Josicionar contedo;: ' o posicionamento dos dados e so$tNares: encontrar o melhor servidor para colocar conte;do+$erenciamento de R%plicas&osicionamento do servidor de r%plicas: Consiste em selecionar as melhores K delocaliza(-es para se instalar servidores de r!plicas;. Gesolvidos por heur%sticas baseadas na distLncia /lat"ncia) lar&ura de banda0 entre clientes e localiza(-es;. K&norar posi(-es de clientes considerando a Knternet como um conIunto de Sistemas AutPnomos /AS0 e distribuir replica(-es nos AS que possuem maior n;mero de enlaces;: Kdentifcar re&i-es para posicionamento de r!plicas contendo n*s que acessam o mesmo conte;do+: 6ecess#rio determinar o tamanho das c!lulas) $eito pela $un(oda distLncia m!dia entre dois n*s e do n;mero de r!plicasrequeridas+$erenciamento de R%plicasReplicao e posicionamento de conte'do: So distin&uidos tr"s tipos de r!plicas or&anizadas lo&icamente:. R%plicas permanentes: conIunto inicial de r!plicas que constituem um dep*sito distribu%do;: Servidores que esto em uma ;nica localiza(o;: #spel(amento /servidores &eo&rafcamente espalhados pela Knternet0+. R%plicas iniciadas por servidor: c*pias de um dep*sito de dados para aprimorar desempenho e criadas por iniciativa do /propriet#rio do0 dep*sito de dados+: Jara reduzir car&a do servidor;: Geplica(o ou mi&ra(o de arquivos para pro,imidade de clientes que emitem muitas requisi(-es;. R%plicas iniciadas por cliente;: Cache na m#quina do cliente;: Cache em m#quina compartilhada por clientes de uma 7A6+$erenciamento de R%plicasReplicao e posicionamento de conte'do$erenciamento de R%plicasDistri)uio de conte'do: 2 &erenciamento de r!plicas tamb!m trata da propa&a(o de conte;do atualizado para servidores de r!plicas relevantes) se&uindo os compromissos:. 5stado vs+ 2pera(-es+. Jrotocolos de recupera(o de atualiza(o vs+ protocolos de envio de atualiza(-es+. nicast vs+ Multicast+Jrotocolos de Consist"nciaCorresponde ? implementa(o de um modelo de consist"ncia+&rotocolos )aseados em servidorprim*rioServidor prim#rioDdeDapoio com leitura local /remoteDNrite0: 5scritas encaminhadas e e,ecutadas no prim#rio; 7eitura Gemota; Atualiza(-es bloqueiam at! terem e,ecutado em todas as r!plicas;Servidor prim#rioDdeDapoio com escrita local /localDNrite0: A c*pia prim#ria mi&ra para o servidor local para poder ser escrita; 7eituras locais; Atualiza(-es so propa&adas ap*s atualiza(o local;&rotocolos de replicao ativa6os protocolos baseados em prim#rio) o prim#rio propa&a as atualiza(-es antes de responder ao cliente) atrasando a resposta do servi(o+6o protocolo de replica(o ativa:As leituras so e,ecutadas localmenteAs escritas so e,ecutadas em todas as r!plicas) na mesma ordemJortanto) requer multicast com ordena(o total&rotocolos )aseados em consensos@"m por base o uso de vota(o D clientes t"m de obter permisso de v#rios servidores antes de lerem ou escreverem um dado replicado+Jara ler ,) um cliente tem de reunir um readDquorum com 6G servidores) ou mais) de 6 r!plicas de , e,istentes+Jara escrever ,) um cliente tem de reunir um NriteDquorum com pelo menos 6M servidores+2s valores de 6G e 6M t"m de satis$azer:6G R 6M S 6 /previne conHitos readDNrite06M S 6T< /previne conHitos NriteDNite0