• Nenhum resultado encontrado

Arquitectura. Protocolos. Casos de Estudo: DNS Web

N/A
N/A
Protected

Academic year: 2021

Share "Arquitectura. Protocolos. Casos de Estudo: DNS Web"

Copied!
12
0
0

Texto

(1)

Sum ´ario

Replicac¸ ˜ao

Arquitectura.

Protocolos.

Casos de Estudo:

DNS

Web

1

Replicac¸ ˜ao: Arquitectura B ´asica

Transpar ˆencia ´e garantida principalmente pelo front end

stubs/proxies podem facilitar a transpar ˆencia, embora . . .

• Consist ˆencia ´e garantida atrav ´es de algoritmos distribu´ıdos

(2)

Protocolos de Consist ˆencia

Primary-CopyReplicated-WriteAvailable CopiesQuorum-Consensus 3

Primary-Copy Protocol

Uma das r ´eplicas ´e o prim ´ario e as outras s ˜ao de apoio

(backup) – primary-backup.

• Todas as operac¸ ˜oes s ˜ao submetidas ao prim ´ario:

O prim ´ario executa a operac¸ ˜ao e submete-a ou os seus resultados aos apoios, antes de responder.

Dependendo do mod ˆelo de avarias, o prim ´ario poder ´a ter que bloquear `a espera da resposta dos apoios.

• O prim ´ario ´e substitu´ıdo por um apoio, que passa a ser o

(3)

Protocolos Prim ´ario-Apoio com Leitura Local

Data store Primary server for item x Client Client Backup server W1. Write request

W2. Forward request to primary W3. Tell backups to update W4. Acknowledge update W5. Acknowledge write completed W1 W2 W3 W3 W3 W4 W4 W4 W5 R1. Read request R2. Response to read R1 R2

• Operac¸ ˜oes de leitura podem ser feitas em qualquer r ´eplica. • Operac¸ ˜oes de escrita s ˜ao feitas no prim ´ario.

Como no protocolo base, o prim ´ario propaga os resultados aos apoios.

• Permite um melhor desempenho, em especial se as

operac¸ ˜oes de leitura forem mais frequentes do que as operac¸ ˜oes de escrita.

5

Protocolo Prim ´ario-Apoio com Escrita Local

Data store Old primary for item x Client Client Backup server W1. Write request

W2. Move item x to new primary W4. Tell backups to update W5. Acknowledge update W3. Acknowledge write completed

R1 W2 W4 W4 W4 R2 R1. Read request R2. Response to read W1 W3 New primary for item x W5 W5 W5

• Operac¸ ˜oes de escrita podem ser feitas em qualquer r ´eplica.

Mas s ´o depois da r ´eplica se tornar prim ´ario, i.e. o prim ´ario ´e itinerante.

• Permite melhorar o desempenho se:

A r ´eplica escolhida estiver pr ´oximo do cliente.

A propagac¸ ˜ao dos resultados `as r ´eplicas ocorrer ap ´os um conjunto de operac¸ ˜oes de escrita.

(4)

Protocolo de Escrita Replicada

• Operac¸ ˜oes de escrita s ˜ao feitas em mais do que uma c ´opia.

Nos protocolos `a base de prim ´ario, operac¸ ˜oes de escrita s ˜ao executadas apenas no prim ´ario, sendo os resultados propagados aos apoios.

• Alguns protocolos:

Replicac¸ ˜ao activa (ou read-one, write-all); Votac¸ ˜ao (Quorum Consensus).

7

Read-one/Write-all Protocol (Active Replication)

• Nos protocolos baseados em prim ´ario, o prim ´ario tem que

propagar os resulados aos apoios, antes de responder ao cliente, aumentando `a lat ˆencia do servic¸o.

No read-one/write-all protocol:

operac¸ ˜oes de leitura podem ser executadas por qualquer r ´eplica;

operac¸ ˜oes de escrita t ˆem que ser executadas por todas as r ´eplicas, na mesma ordem.

• Assume determinismo das r ´eplicas:

o estado duma r ´eplica depende apenas do estado inicial e da sequ ˆencia de operac¸ ˜oes que lhe s ˜ao aplicadas.

(5)

Available Copies Protocol

No Read-one/Write-all Protocol se uma r ´eplica estiver

avariada, n ˜ao ´e poss´ıvel executar operac¸ ˜oes de escrita.

A ideia no Available Copies Protocol ´e exigir que as

operac¸ ˜oes de escrita sejam executadas apenas nas r ´eplicas operacionais.

O primary-backup e o available copies podem ser usados

em redes que se partem:

Mas o acesso s ´o ´e poss´ıvel na partic¸ ˜ao com a maioria das r ´eplicas.

9

Quorum Consensus Protocols (1/2)

Este tipo de protocolos baseia-se no uso de quorums

conjuntos de r ´eplicas para realizar operac¸ ˜oes.

A propriedade fundamental destes quorums ´e:

se 2 operac¸ ˜oes podem interferir, ent ˜ao os respectivos quorums devem ter elementos comuns.

A B C D A B C D A B C D E F G H E F G H E F G H I J K L I J K L I J K L Read quorum Write quorum NR= 3, NW = 10 NR= 7, NW = 6 NR= 1, NW = 12 (a) (b) (c)

(6)

Quorum Consensus Protocols (2/2)

O Read-one/Write-all Protocol ´e um caso particular do

Quorum Consensus Protocol, no qual o read-quorum requer 1 r ´eplica (qualquer) e o write-quorum requer todas as

r ´eplicas.

• Em princ´ıpio, como operac¸ ˜oes de leitura s ˜ao mais

frequentes do que operac¸ ˜oes de escrita, read-quorums s ˜ao menores do que write-quorums.

• H ´a muitas variantes deste protocolo, visando

essencialmente:

minimizar o tamanho dos quorums para obter uma dada disponibilidade;

algumas variantes suportam quorum sets din ˆamicos.

Quorum Consensus Protocols funcionam com redes que

podem partir.

11

Replicac¸ ˜ao em DNS

• DNS baseia-se fortemente em replicac¸ ˜ao, por raz ˜oes de:

desempenho; disponibilidade.

• DNS tem algumas caracter´ısticas especiais que facilitam a

replicac¸ ˜ao:

a informac¸ ˜ao ´e alterada apenas numa r ´eplica; as r ´eplicas n ˜ao precisam ser actualizadas

sincronamente, i.e. ao mesmo tempo. O uso de dados desactualizados:

∗ n ˜ao tem consequ ˆencias ao n´ıvel da correcc¸ ˜ao das

aplicac¸ ˜oes que usam estes servic¸os;

(7)

Replicac¸ ˜ao no Domain Name System (DNS)

• Em DNS cada zona deve ter:

um e um s ´o servidor prim ´ario;

um ou mais servidores secund ´arios.

os quais mant ´em c ´opias dos Resource Records (RR) associados `a zona.

• Todas as alterac¸ ˜oes s ˜ao feitas no prim ´ario, sendo

eventualmente propagadas aos secund ´arios.

Para detectar alterac¸ ˜oes nos RRs duma zona, os Start of

Authority (SOA) RR incluem os seguintes campos:

Serial um inteiro de 32 bits que identifica a “vers ˜ao da zona”:

∗ sempre que se altera um RR da zona, tem-se que

alterar este campo.

Refreshum inteiro de 32 bits que especifica o intervalo de tempo m ´aximo (em s) entre tentativas de actualizac¸ ˜ao.

13

Propagac¸ ˜ao de Zonas entre Servidores em DNS

• 2 mecanismos de detecc¸ ˜ao de alterac¸ ˜ao da zona:

polling periodicamente o secund ´ario l ˆe o RR do tipo SOAe caso este tenha sido modificado, iniciar ´a a transfer ˆencia da zona;

notification sempre que o RR de tipo SOA ´e alterado, o

prim ´ario notifica os secund ´arios (exige uma alterac¸ ˜ao do protocolo – RFC 1996 –que ainda n ˜ao foi aprovada).

• 2 estrat ´egias de transfer ˆencia de dados:

incremental o secund ´ario pede ao prim ´ario para transferir os registos que foram modificados (exige alterac¸ ˜ao do protocolo – RFC 1995 – que ainda n ˜ao foi aprovada); n˜ao-incremental o secund ´ario pede ao prim ´ario para

(8)

World Wide Web (WWW)

• E um sistema cliente-servidor enorme com v ´arios milh ˜oes´

de servidores espalhados pela Internet. Client machine

Browser

OS

Server machine

Web server

1. Get document request 3. Response

2. Server fetches document from local file

• Cada servidor mant ´em um conjunto de documentos. • Um servidor aceita pedidos de clientes para transferir

documentos quer do quer para o servidor.

Tipicamente, um cliente faz parte dum browser, o qual

apresenta a informac¸ ˜ao obtida de forma apropriada.

15

HyperText Transport Protocol (HTTP)

• Toda a comunicac¸ ˜ao entre clientes e servidores usa HTTP. • HTTP ´e um protocolo do tipo request-reply muito simples:

O servidor n ˜ao tem que manter estado sobre a interacc¸ ˜ao com os clientes, i.e. ´e um protocolo sem estado.

• HTTP usa TCP:

Sempre que um cliente faz um pedido para um servidor estabelece uma conex ˜ao TCP.

A resposta ao pedido ´e transferida atrav ´es dessa conex ˜ao.

• O uso de TCP simplifica quer o cliente quer o servidor:

N ˜ao t ˆem que se preocupar com erros na comunicac¸ ˜ao. No caso de ruptura da conex ˜ao, o utilizador ´e notificado.

(9)

Mensagens (M ´etodos) HTTP

HTTP permite a transfer ˆencia de documentos quer do quer

para o servidor.

• As mensagens pedido mais comuns s ˜ao:

Operation Description

Head Request to return the header of a document Get Request to return a document to the client Put Request to store a document in the server side Post Request to add data to a document (collection) Delete Request to delete a document

head: permite obter apenas a metadata sobre um

documento, p.ex. a data da sua ´ultima actualizac¸ ˜ao.

get: ´e o m ´etodo usado mais frequentemente. Pode-se

especificar a transfer ˆencia condicional dum documento (p.ex. se tiver sido modificado depois duma data.)

put, post, delete: est ˜ao sujeitos normalmente a

autenticac¸ ˜ao e controlo de acesso.

17

Formato das Mensagens HTTP (1/2)

Message Header Name Value

Message Header Name Value Message Header Name Value

Message Header Name Value

Status line

Message body

Response message headers Operation Reference Version Request line

Request message headers

Message body

Status code

Version Phrase

(10)

Formato das Mensagens HTTP (2/2)

Alguns message headers:

Header Source Contents

Accept Client The type of documents the client can handle Authorization Client A list of client’s credentials

WWW-Authenticate Server Security challenge the client should respond to Date Either Date and time the message was sent

Expires Server The time for how long the response remains valid If-Match Client The tags the document should have

If-Modified-Since Client Tells server to return document only if it has been modified since the specified time

Last-Modified Server The time the returned document was last modified Location Server A document reference to which the client should

redirect its request

Referer Client Client’s most recently requested document • Alguns status codes:

1xx Informational: request received

2xx Success: request receive and accepted

3xx Redirection: the client must redirect its request

4xx Client error: the request has a syntax error, or could not be satisfied 5xx Server error: failure processing an apparently valid request

19

Web Caching

A maioria dos browsers mant ´em uma cache dos

documentos acedidos mais recentemente.

Web proxies s ˜ao usados essencialmente para construir e

manter uma cache partilh ´avel por v ´arios clientes.

E ainda poss´ıvel estabelecer uma hierarquia de caches´

cobrindo uma regi ˜ao geogr ´afica, p.ex. pa´ıs:

Neste caso, caching permite reduzir o tr ´afego, mas o tempo de resposta aumenta, muito provavelmente.

A partilha de caches s ´o ´e vantajosa se a “populac¸ ˜ao” que

faz essa partilha f ˆor mais ou menos homog ´enea: hit ratios raramente ultrapassam os 50%.

Outro problema com caching de documentos na Web ´e que

o conte ´udo de muitos destes documentos ´e din ˆamico, i.e. gerado pelos servidores quando processam um pedido.

(11)

Manutenc¸˜ao de Consist ˆencia em Web-caches

• O pedido HTTP get qualificado por um header

If-Modified-Sincepermite transferir um documento

apenas se tiver sido modificado:

O problema com esta aproximac¸ ˜ao, ´e que o cliente tem que entrar em contacto com o servidor.

Squid, um proxy, atribui uma data de expirac¸ ˜ao a cada

documento, que depende da data da ´ultima modificac¸ ˜ao. Modificac¸ ˜oes podem ser detectadas com muito atraso.

• Uma alternativa, raramente usada, ´e o servidor notificar os

proxies da alterac¸ ˜ao do documento atrav ´es duma mensagem de invalidac¸ ˜ao:

Para limitar a quantidade de informac¸ ˜ao a manter no servidor a um valor aceit ´avel, pode usar-se leases.

21

Replicac¸ ˜ao de Servidores

• A replicac¸ ˜ao de servidores permite:

Reduzir o tempo de resposta. Aumentar a disponibilidade.

• Uma soluc¸ ˜ao relativamente simples, que essencialmente

reduz o tempo de resposta, ´e o uso de clusters:

Front end Web server Web server Web server Web server Request Response

Front end handles all incoming requests and outgoing responses

LAN

Uma soluc¸ ˜ao n ˜ao transparente ´e o uso de mirrors:

Cabe ao cliente escolher o mirror a usar.

Uma terceira soluc¸ ˜ao ´e o uso de Content Delivery Networks

(CDNs):

(12)

CDN da Akamai (Patenteado nos EE.UU.)

• Explora a seguinte observac¸ ˜ao:

Imagens, sons e videos referenciados por (embebidos em) documentos HTML base raramente s ˜ao modificados.

Client

1. Get base document

2. Document with refs to embedded documents 3. Get embedded

documents

4a. Get embedded documents from local cache or server (if not already cached)

Original server CDN

server

5. Embedded

documents 4b. Embeddeddocuments Cache

• Documentos embebidos s ˜ao replicados em servidores. • URLs dum documento base s ˜ao alterados para referenciar

servidores virtuais, um por documento embebido.

• O servidor DNS do dom´ınio da CDN mapeia os servidores

virtuais em enderec¸os IP do mais pr ´oximo do cliente: O servidor DNS mant ´em um mapa da Internet.

Referências

Documentos relacionados

Ocorre que, passados quase sete anos da publicação da Lei n o  12.651/2012 e pacificadas as discussões sobre a sua aplicação, emendas a uma medida provisória em tramitação

O PROGRAMA AGENTES LOCAIS DE INOVAÇÃO, por este Edital, torna público a Retificação do Edital 03/2011, a Lista de Convocados para Realização das Dinâmicas de Grupo e

Diante do reordenamento dos portfólios mundiais, em que a economia global caminha para um novo equilíbrio, comandada pela maior dinâmica dos países desenvolvidos – em especial

Na Figura 4.7 ´e feita uma compara¸c˜ao em termos de throughput variando o n´ umero de relays da rede secund´aria com linha de visada e com os n´os do enlace secund´ario

Quando recebeu a missão de conduzir a Doutrina aqui na Terra, Tia Neiva se preocupou com a ação dos exus, e decidiu dar um passo perigoso, partindo em busca de cada um deles,

No entanto, a cultura predominante na gestão das unidades produtivas sucroalcooleiras, influenciada pelas altas taxas de rentabilidade dos mercados de etanol e de açúcar,

Esse é um resultado interessante já que os indicadores do trabalho de Sasseron e Carvalho (2008) foram propostos e testados em atividades do ensino fundamental

Percebemos que os e as jovens, assim como as crianças têm uma naturalidade para a prática de instrumentos percussivos e essa dinâmica propiciou uma nova dimensão para