Você está na página 1de 40

1

Modelos de Consistncia e
Replicao de Dados
Prof. Raul Ceretta Nunes
Curso de Cincia da Computao
ELC1018 - Sistemas Distribudos
2
Introduo
G SD adequado para replicao de dados
G Replicas devem ser mantidas consistentes
G Questes:
hO que significa consistncia de dados replicados?
hQuais as maneiras para obter consistncia?
hComo o desempenho afetado por diferentes modelos
de consistncia?
hComo a consistncia implementada?
Forma de distribuio dos updates para as rplicas
Forma de manter a consistncia (forte ou fraca)
3
Razes para replicao
G Duas razes:
hConfiabilidade
colapso de processo
dados inconsistentes (usar valor da maioria)
hDesempenho
Escalabilidade atravs de servios replicados
Reduo de trfego de rede atravs de rplicas mais
prximas
G Preo a pagar: gerenciamento das rplicas
para manter consistncia
4
Objeto Remoto Compartilhado
G Organizao composta por um objeto remoto distribudo que
compartilhado por dois clientes.
5
Objeto Remoto Compartilhado
G Objetos encapsulam dados e operaes sobre
dados
G Middleware gerencia distribuio de objetos
remotos (operaes so independentes dos dados)
G Como proteger o objeto remoto contra acessos
simultneos realizados por mltiplos clientes?
hControlar no prprio objeto (ex: synchronized do Java)
hControlar no middleware (ex: adaptador de objetos)
6
Objeto Remoto Compartilhado
a) Objeto remoto capaz de controlar invocaes concorrentes.
b) Objeto remoto que requer um adaptador de objeto para controlar
invocaes concorrentes.
7
Replicao de Objeto Remoto
G Objeto remoto compartilhado e replicado
necessita de sincronizao adicional para
garantir que invocaes concorrentes sejam
resolvidas na ordem correta em cada rplica.
G 2 abordagens:
hControlar sincronizao no objeto replicado.
Vantagem: uso de protocolo de replicao especfico.
hControlar sincronizao no middleware
Vantagem: simplifica tarefa do desenvolvedor de
aplicaes
8
Replicao de Objeto Remoto
a) Um sistema distribudo para objetos cientes da replicao, que
controlam sua replicao.
b) Um sistema distribudo responsvel pelo gerenciamento de
replicao.
9
Modelos de Consistncia
Centrado nos dados
Hip: dados compartilhados
p/ mltiplos processos
Forte
p/ read/write
Fraca
p/ srie de read/write
via variveis de sync
Estrita - write p/ ordem total temporal
Linear - write p/ ordem total
baseada em relgio global
Seqencial - write p/ ordem total
Causal - write p/ ordem causal
FIFO - write p/ ordem causal
Fraca - update p/ operao
Release - update na liberao
Entry - update na entrada
Centrado no cliente
Hip: dados atualizados p/
um nico processo
Leituras monotnicas - reads em ordem temporal
Escritas monotnicas - writes em ordem temporal
Leituras vem escritas
Escritas seguem leituras
10
Consistncia Estrita
G Operao tem efeito instantneo em todos.
G Deve manter ordem temporal (relgio fsico).
G Impossvel de ser implementado.
Comportamento de dois processos operando sobre o mesmo dado:
(a) Um armazenamento com consistncia estrita.
(b) Um armazenamento que viola a consistncia estrita.
11
Consistncia Seqencial
G Todos os processos observam as operaes na
mesma ordem (ordem total).
G Nada dito sobre o instante temporal fsico.
G Aplicado em memria compartilhada de sistemas
multiprocessados.
G Equivalente a serializabilidade transacional
(operao equivale a uma transao).
G A verificao de consistncia se d atravs da
anlise de histricos locais.
G Problema: t
read
+ t
write
t
transferncia
12
Consistncia Seqencial
(a) Um armazenamento com consistncia seqencial.
(b) Um armazenamento com violao de consistncia seqencial.
13
Ex: Consistncia Seqencial
z = 1;
print (x, y);
y = 1;
print (x, z);
x = 1;
print ( y, z);
Process P3 Process P2 Process P1
y = 1;
x = 1;
z = 1;
print (x, z);
print (y, z);
print (x, y);
Prints: 111111
Signature:
111111
y = 1;
z = 1;
print (x, y);
print (x, z);
x = 1;
print (y, z);
Prints: 010111
Signature:
110101
x = 1;
y = 1;
print (x,z);
print(y, z);
z = 1;
print (x, y);
Prints: 101011
Signature:
101011
(b)
x = 1;
print ((y, z);
y = 1;
print (x, z);
z = 1;
print (x, y);
Prints: 001011
Signature:
001011
(a)
G Trs processos executando concorrentemente e 4 execues possveis.
14
Linearizabilidade
G Mais fraco do que a consistncia estrita mas
mais forte do que a consistncia seqencial.
G Todos os processos observam as operaes
na mesma ordem (ordem total) + timestamp.
G Se t
s
op
1
(x) < t
s
op
2
(x) ento op
1
(x) op
2
(x)
G Utilizada para assistir verificao formal de
algoritmos concorrentes.
15
Consistncia Causal
G Writes potencialmente relacionados devem
ser vistos por todos na mesma ordem.
G Writes concorrentes podem ser vistos em
ordens diferentes.
G Implementao via vetor de relgios lgicos.
16
Consistncia FIFO
G Observa apenas a ordem das operaes no
processo da operao.
G Fcil de implementar, pois precisa apenas da
incluso de um nmero de seqncia.
G Em memria compartilhada distribuda
chamado de PRAM Pipelined RAM.
17
Ex: Consistncia FIFO
y = 1;
print (x, z);
z = 1;
print (x, y);
x = 1;
print (y, z);
Prints: 01
(c)
x = 1;
y = 1;
print(x, z);
print ( y, z);
z = 1;
print (x, y);
Prints: 10
(b)
x = 1;
print (y, z);
y = 1;
print(x, z);
z = 1;
print (x, y);
Prints: 00
(a)
18
Problema da Consistncia FIFO
G Fraco a ponto de permitir a morte de ambos
os processos concorrentes, o que no
permitido com consistncia seqencial.
y = 1;
if (x == 0) kill(P1);
x = 1;
if (y == 0) kill(P2);
Process P2 Process P1
19
Consistncia Fraca
G Synchronization accesses are sequentially
consistent. All synchronization accesses
must be performed before a regular data
access and vice versa (programmer-imposed
consistency).
20
Consistncia Fraca na Sada
G Same as weak consistency except that
synchronization accesses must only be
processor consistent with respect to each
other.
21
Eventual Consistency
22
Monotonic Reads
a) A monotonic-read consistent data store
b) A data store that does not provide monotonic reads.
G Se o processo l o valor de um item de dado x, qualquer
operao de leitura sucessiva de x pelo processo ir
retornar sempre o mesmo valor ou um valor mais recente.
G The read operations performed by a single process P at
two different local copies of the same data store.
23
Monotonic Writes
a) A monotonic-write consistent data store.
b) A data store that does not provide monotonic-write consistency.
G Uma operao de escrita por um processo sobre um item
de dado x completada antes de qualquer operao de
escrita sucessiva do mesmo processo.
G The write operations performed by a single process P at
two different local copies of the same data store
24
Monotonic Writes
G Relao com o modelo FIFO:
hEm ambos a ordem das operaes nos
processos mantida em qualquer local.
hNo modelo FIFO so considerados vrios
processos concorrentes.
hNo modelo Monotonic Write considerado
apenas um nico processo (cliente).
25
Read Your Writes
a) A data store that provides read-your-writes
consistency.
b) A data store that does not.
G O efeito de uma operao de escrita por um processo
sobre um item de dado x sempre ser visto pela
operao de leitura de x pelo mesmo processo.
26
Writes Follow Reads
a) A writes-follow-reads consistent data store
b) A data store that does not provide writes-follow-reads
consistency
G Uma operao de escrita por um processo sobre um item
de dado x que sucede uma operao de leitura de x pelo
mesmo processo, ser resolvida sobre uma cpia de x
que contm o valor lido ou um mais recente.
27
Posicionamento das Rplicas
A organizao lgica dos diferentes conjuntos de cpias de
um dado armazenado dentro de trs anis concentricos.
G Onde, quando e por quem os dados esto distribudos?
28
Rplicas Permanentes
G Normalmente em pequeno nmero.
G Modelo de replicao esttica
G Exemplos:
hWeb server: replicao do servidor numa lan; ao chegar
uma requisio, ela direcionada a uma das rplicas.
hSite web distribudo (Mirror): site distribudo
geograficamente; clientes escolhem um site de uma lista.
hBanco de dados federados: BD distribudo e replicado.
29
Rplicas Iniciadas pelo Servidor
G Modelo de replicao dinmica.
G Rplicas so criadas de acordo com a
necessidade. Ex: para melhorar desempenho
G No caso de servidor web, so tambm
conhecidas por push caches.
G Problema: decidir onde e quando rplicas
deveriam ser criadas ou deletadas.
30
Rplicas Iniciadas pelo Servidor
G Contando acesso de diferentes clientes.
G Deciso baseada em threshold del(S,F)| rep(S,F)
31
Rplicas Iniciadas pelo Cliente
G A rplica uma cache.
G A consistncia da rplica por conta do usr.
G Usado somente para melhorar desempenho.
G Na web, uma rplica pode ser compartilhada
por mais do que um cliente.
32
Propagao de Atualizaes
G Abordagens para decidir o que propagar:
hPropagar somente uma notificao de um
update. Muito update pouco read.
Ex: protocolos de invalidao
hTransferir os dados de uma cpia para outra.
Interessante quando h muitos updates e reads.
hPropagar a operao de atualizao para outras
rplicas.
Replicao ativa
33
Pull versus Push Protocols
G A comparison between push-based and pull-based
protocols in the case of multiple client, single server
systems.
Fetch-update time Immediate (or fetch-update time)
Response time at
client
Poll and update Update (and possibly fetch update later) Messages sent
None List of client replicas and caches State of server
Pull-based Push-based Issue
34
Remote-Write Protocols (1)
G Primary-based remote-write protocol with a fixed server to
which all read and write operations are forwarded.
35
Remote-Write Protocols (2)
O princpio do protocolo
primrio-backup.
36
Local-Write Protocols (1)
Primary-based local-write
protocol in which a
single copy is migrated
between processes.
37
Local-Write Protocols (2)
G Primary-backup protocol in which the primary migrates
to the process wanting to perform an update.
38
Active Replication (1)
G The problem of replicated invocations.
39
Active Replication (2)
a) Forwarding an invocation request from a replicated object.
b) Returning a reply to a replicated object.
40
Quorum-Based Protocols
G Three examples of the voting algorithm:
a) A correct choice of read and write set
b) A choice that may lead to write-write conflicts
c) A correct choice, known as ROWA (read one, write all)