Sum ´ario
•
Replicac¸ ˜ao
–
Arquitectura.
–
Protocolos.
–
Casos de Estudo:
∗
DNS
∗
Web
1Replicac¸ ˜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
Protocolos de Consist ˆencia
• Primary-Copy • Replicated-Write • Available Copies • Quorum-Consensus 3Primary-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
Protocolos Prim ´ario-Apoio com Leitura Local
Data store Primary server for item x Client Client Backup server W1. Write requestW2. 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.
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.
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)
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;
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
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.
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
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.
Manutenc¸˜ao de Consist ˆencia em Web-caches
• O pedido HTTP get qualificado por um headerIf-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):
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.