Vous êtes sur la page 1sur 20

Sistemas Distribudos Transaes Atmicas

Disciplina: Sistemas Distribudos Prof.: Edmar Roberto Santana de Rezende Faculdade de Engenharia de Computao Centro de Cincias Exatas, Ambientais e de Tecnologias Pontifcia Universidade Catlica de Campinas

Nov/2004

Sistemas Distribudos - Edmar R. S. de Rezende 2004

1 / 20

Transaes Transaes Atmicas Atmicas


Introduo Introduo

! Abstrao em alto nvel para ocultar:


" " " uso de semforos para controle de concorrncia preveno de deadlocks recuperao de falhas

! Vantagem:
" programadores concentram-se nos algoritmos das aplicaes

! Sinnimos:
"
Nov/2004

atomic transaction, transaction, atomic action.


Sistemas Distribudos - Edmar R. S. de Rezende 2004 2 / 20

Transaes Transaes Atmicas Atmicas


Exemplos Exemplosde deTransaes Transaes ! Um cliente, em um PC ligado por modem, faz transferncia de fundos de uma conta bancria para outra, em dois passos:
(1) Saque(quantia, conta1) (2) Deposite(quantia, conta2)

! Se a ligao telefnica cair entre os passos (1) e (2):


" o dinheiro desaparece!

! Soluo:
" " passos (1) e (2) devem ocorrer como uma transao atmica (como se fosse um nico passo) se a ligao telefnia cair entre os passos (1) e (2), os efeitos do passo (1) devem ser cancelados
Sistemas Distribudos - Edmar R. S. de Rezende 2004 3 / 20

Nov/2004

Transaes Transaes Atmicas Atmicas


Armazenamento ArmazenamentoEstvel Estvel ! Informao armazenada em RAM perdida se faltar energia ou se a mquina falhar ! Informao armazenada em disco perdida se a cabea do disco falhar ! Informao armazenada em memria estvel sobrevive ! Implementao tpica:
" disco replicado

Nov/2004

Sistemas Distribudos - Edmar R. S. de Rezende 2004

4 / 20

Transaes Transaes Atmicas Atmicas


Primitivas PrimitivasTransacionais Transacionais ! BEGIN_TRANSACTION:
" " " " " " marca o incio da transao termina a transao e tenta fazer o commit destri a transao; restaura os valores anteriores (do incio da transao) l dados de um objeto (por exemplo, um arquivo) escreve dados em um objeto

! END_TRANSACTION: ! ABORT_TRANSACTION:

! READ: ! WRITE:

Nov/2004

Sistemas Distribudos - Edmar R. S. de Rezende 2004

5 / 20

Transaes Transaes Atmicas Atmicas


Primitivas PrimitivasTransacionais Transacionais BEGIN_TRANSACTION reserve So Paulo - Salvador reserve Salvador - Braslia reserve Braslia - So Paulo END_TRANSACTION BEGIN_TRANSACTION reserve So Paulo - Salvador reserve Salvador - Braslia reserve Braslia - So Paulo => ABORT_TRANSACTION

Nov/2004

Sistemas Distribudos - Edmar R. S. de Rezende 2004

6 / 20

Transaes Transaes Atmicas Atmicas


Propriedades es Propriedadesdas dasTransa Transa es ! Atmica:
" " " " para o mundo externo, a transao ocorre de forma indivisvel a transao no viola invariantes de sistema transaes concorrentes no interferem entre si (serializable) os efeitos de uma transao terminada com commit so permanentes

! Consistente: ! Isolada: ! Durvel:

Nov/2004

Sistemas Distribudos - Edmar R. S. de Rezende 2004

7 / 20

Transaes Transaes Atmicas Atmicas


Isolamento Isolamento

BEGIN_TRANSACTION x = 0; x = x + 1; END_TRANSACTION

BEGIN_TRANSACTION x = 0; x = x + 2; END_TRANSACTION

BEGIN_TRANSACTION x = 0; x = x + 3; END_TRANSACTION

Nov/2004

Sistemas Distribudos - Edmar R. S. de Rezende 2004

8 / 20

Transaes Transaes Atmicas Atmicas


Escalonamentos Escalonamentos

Escalon. 1
x = 0; x = x + 1; x = 0; x = x + 2; x = 0; x = x + 3; Legal

Escalon. 2
x = 0; x = 0; x = x + 1; x = x + 2; x = 0; x = x + 3; Legal

Escalon. 3
x = 0; x = 0; x = x + 1; x = 0; x = x + 2; x = x + 3; Ilegal

Nov/2004

Sistemas Distribudos - Edmar R. S. de Rezende 2004

9 / 20

Transaes Transaes Atmicas Atmicas


Transa es Transa esAninhadas Aninhadas ! A transao top-level cria sub-transaes que executam em paralelo, em processadores distintos:
" " melhor desempenho programao mais simples

! Se uma transao top-level abortar:


" todas as suas sub-transaes tambm devem abortar

! Uma sub-transao
" " herda todos os objetos controlados pela transao top-level faz cpia local de todos os objetos herdados e s repassa os novos valores destes objetos transao top-level em caso de commit da sub-transao
Sistemas Distribudos - Edmar R. S. de Rezende 2004 10 / 20

Nov/2004

Transaes Transaes Atmicas Atmicas


Implementa o Implementa o

! Mtodos de controle sobre modificaes:


Espao de trabalho privado Log

! Protocolo de commit em duas fases

Nov/2004

Sistemas Distribudos - Edmar R. S. de Rezende 2004

11 / 20

Transaes Transaes Atmicas Atmicas


rea reade deTrabalho TrabalhoPrivada Privada ! Um processo que comea uma transao
" cria um espao contendo cpias de todos os objetos manipulados pela transao

! Se ocorrer commit:
" a transao repassa os novos valores dos objetos para os seus originais

! Problema:
" alto custo

! Otimizao:
"

shadow blocks

Nov/2004

Sistemas Distribudos - Edmar R. S. de Rezende 2004

12 / 20

Transaes Transaes Atmicas Atmicas


rea reade deTrabalho TrabalhoPrivada Privada

ndice 0 1 2

ndice 0 1 2

ndice private workspace ndice 0 1 2 3 0 2 1 3


13 / 20

0 2'

0 1 2' 3'

1
Nov/2004

3'

Sistemas Distribudos - Edmar R. S. de Rezende 2004

Transaes Transaes Atmicas Atmicas


Log Log ! Writeahead log ou intentions list
" " " Os objetos originais so modificados durante a transao Antes de cada modificao, um registro escrito em um arquivo de log (em memria estvel) Cada registro de log informa o valor anterior e o valor novo de um objeto, alm de informar que transao fez a modificao no objeto Se ocorrer commit um registro apropriado inserido no log Se ocorrer abort todas as operaes efetuadas pela transao so desfeitas com base no log, comeando pelo ltimo registro (rollback)

" "

Nov/2004

Sistemas Distribudos - Edmar R. S. de Rezende 2004

14 / 20

Transaes Transaes Atmicas Atmicas


Log Log x = 0; y = 0; BEGIN_TRANSACION x = x + 1; y = y + 2; x = y * y; END_TRANSACION

Log x = 0/1 y = 0/2 x = 1/4

Nov/2004

Sistemas Distribudos - Edmar R. S. de Rezende 2004

15 / 20

Transaes Transaes Atmicas Atmicas


Protocolo Protocolode deCommit Commitem emDuas DuasFases Fases ! A ao de commit deve ser instantnea e indivisvel ! Pode ser necessria a cooperao de muitos processos, em mquinas distintas
" cada qual com um conjunto de objetos envolvidos na transao

! Um processo designado como o coordenador


" normalmente o prprio cliente que inicia a transao

! Os demais processos:
" so designados como subordinados

! Toda ao registrada em log:


" armazenado em memria estvel, para o caso de falha durante a transao
Sistemas Distribudos - Edmar R. S. de Rezende 2004 16 / 20

Nov/2004

Transaes Transaes Atmicas Atmicas


Protocolo Protocolode deCommit Commitem emDuas DuasFases Fases

! Fase 1:
O coordenador registra prepare em log e envia a mensagem prepare para os subordinados Um subordinado registra ready / abort em log e envia a mensagem ready / abort para o coordenador O coordenador coleta todos as mensagens ready

! Fase 2:
O coordenador registra a deciso em log e envia mensagem commit / abort para os subordinados Um subordinado registra commit / abort em log, toma a ao correspondente e envia mensagem finished ao coordenador

Nov/2004

Sistemas Distribudos - Edmar R. S. de Rezende 2004

17 / 20

Transaes Transaes Atmicas Atmicas


Controle ncia Controlede deconcorr concorr ncia

! Locking
" Um gerente centralizado ou distribudo registra todos os locks e rejeita pedidos de lock em objetos j alocados a outros processos
lock para escrita deve ser exclusivo, mas lock para leitura pode ser compartilhado quanto menor a granularidade do lock maior a chance de paralelismo, mas tambm maior a chance de deadlock

"

Lock em duas fases:


-

growing: todos os locks so adquiridos shrinking: todos os locks so liberados

"

Strict two-phase locking:


a fase shrinking ocorre instantaneamente (previne cascade aborts)

Nov/2004

Sistemas Distribudos - Edmar R. S. de Rezende 2004

18 / 20

Transaes Transaes Atmicas Atmicas


Controle ncia Controlede deconcorr concorr ncia

! Controle otimista
" " Os objetos so modificados sem preocupao com concorrncia at o fim da transao Quando chegar o momento de commit:
a transao verifica se outra transao modificou os mesmos objetos que ela tenha modificado

"

Se no h conflito:
o commit feito (repasse de objetos do espao de trabalho privado) seno feito um abort

Nov/2004

Sistemas Distribudos - Edmar R. S. de Rezende 2004

19 / 20

Transaes Transaes Atmicas Atmicas


Controle ncia Controlede deconcorr concorr ncia

! Timestamps
" " " Cada transao recebe um timestamp nico em seu incio Cada objeto no sistema tem um read timestamp e um write timestamp, dizendo que transao fez a operao Se transaes so curtas e espaadas no tempo, normalmente, quando uma transao fizer acesso a um objeto, os timestamps do objeto sero mais velhos que o timestamp da transao
caso contrrio a transao est atrasada e deve ser abortada

Nov/2004

Sistemas Distribudos - Edmar R. S. de Rezende 2004

20 / 20

Vous aimerez peut-être aussi