Vous êtes sur la page 1sur 12

1

Aniceto de Angelina Francisco


Chania Ruvimbo Chidacua
Felson Felisberto Murrumela
Michel B. Jos Viseu
Pinto Alficha Zambo
Ramos Paulino Chale

Controle de Concorrncia em base de dados distribudos


(4o Grupo)

Universidade Pedaggica
Nampula
2016

Aniceto de Angelina Francisco


Chania Ruvimbo Chidacua
Felson Felisberto Murrumela
Michel B. Jos Viseu
Pinto Alficha Zambo
Ramos Paulino Chale

Controle de Concorrncia em base de dados distribudos

Trabalho em grupo de caracter avaliativo


da cadeira de Sistemas Distribudos ao
curso de Licenciatura em informtica.
MSC. Geraldo C. Nhadumbuque

Universidade Pedaggica
Nampula
2016

ndice
Introduo..........................................................................................................................3
1. Controle de concorrncia em base de dados distribudos..............................................4
1.1. Controle de transaces em bancos de dados.............................................................4
1.1.1. A tcnica de bloqueio em duas fases para controle de concorrncia.......................5
1.2. Protocolo com base em Timestamps..........................................................................6
1.3. Protocolos Multi-verso.............................................................................................7
1.4. Controle de Deadlock.................................................................................................7
1.4.1. Protocolo de Preveno de Deadlock......................................................................7
1.4.2. Tcnicas Baseadas em Timestamping.....................................................................8
1.5. Insero e Remoo de Dados....................................................................................8
1.5.1. Tuplas Fantasma na Insero e Remoo de Dados................................................9
Concluso........................................................................................................................10
Bibliografia......................................................................................................................11

Introduo
Banco de dados distribudos, so redes de computadores (dispositivos computacionais
interligados, com o objecto de compartilhar informaes) que viso ao acesso rpido e
flexvel da informao, visto que, os utentes destes sistemas esto distintamente
distribudos dentro de uma mesma organizao (empresa).
No presente trabalho de carcter avaliativo da cadeira de Sistemas Distribudos, visa
fazer um estudo do Controle de Concorrncia destes bancos de dados, abordando-se
subtemas como: Controle de transaces em bancos de dados, A tcnica de bloqueio em
duas fases para controle de concorrncia, Protocolo com base em Times Tamps,
Protocolos Multi-verso, Controle de Deadlock, Protocolo de Preveno de Deadlock,
Tcnicas Baseadas em Timestamping, Insero e Remoo de Dados e Tuplas Fantasma
na Insero e Remoo de Dados. Objectivo do trabalho de conhecer o processo
efectuado em uma base de dados distribudos, e de mera importncia o conhecimento
do seu controlo de coerncia para entender em que ordem os dados so estruturados,
acessados e modificados.

1. Controle de concorrncia em base de dados distribudos


BHARGAVA (1999) para ele, o controle de concorrncia o processo de garantir a
consistncia da execuo das transaces concorrentes. Auxiliado pelo agendador do
SGBD e os mecanismos de controle de concorrncia verificam a ordem de execuo das
fases individuais de cada transaco.
Com o crescente uso de sistemas de computao distribuda em uma vasta srie de
aplicaes, os sistemas so compostos por vrios processadores que operam
concorrentemente auxiliando na execuo de uma dada tarefa. O objectivo essencial nas
arquitecturas distribudas a flexibilidade.
Ela obtida pela integrao de computadores de diversos tipos em um mesmo sistema
sem restries quanto distribuio fsica dos componentes.
As redes se tornaram economicamente mais favorveis. Embora o custo e as
complexidades de transmisso possam ser factores limitantes, ainda assim vantajoso
para uma empresa ter uma rede interligando cada servio ou cada dependente devido ao
aumento da capacidade de processamento e a alargamento das possibilidades de atingir
um maior grau de descentralizao das aces e das decises. Por exemplo: no caso de
um banco de dados, comum que certas informaes sejam essenciais apenas para
determinados departamentos, seria plausvel que essas informaes estivessem
depositadas junto a esses departamentos propagando um acesso mais acelerado.
1.1. Controle de transaces em bancos de dados
Segundo GUIRRA (2013) qualquer banco de dados que seja usado por mais de um
usurio, ter que gerir o controle de concorrncia entre as informaes que esto sendo
acessadas pelos usurios.
Controle de concorrncia sempre que, em um banco de dados, usurios diferenciados
tentam acessar a mesma informao e ento realizado um controle entre essas
transaces. Muita parte dessas tcnicas garante a serializao, que a execuo das
transaces de forma serial. Para isso, indispensvel saber que transaces so todas
as operaes executadas entre o princpio e o final da transaco, e para gerenciar as
transaces necessrio conhecer as caractersticas comumente chamadas de ACID
(acrnimo de Atomicidade, Consistncia, Isolamento e Durabilidade) que devem ser
usadas pelos mtodos de controle de concorrncia e recuperao do SGBD:

A Atomicidade quando a transaco deve ser executada por completo ou ela


no deve ser executada de forma alguma. Caso haja alguma lacuna durante a
transaco, os efeitos parciais desta transaco no banco devem ser destrudos.
Para que essa transaco onde teve a lacuna seja desfeita, necessrio que o
banco de dados envie o comando que destrua a tal transaco, garantindo assim
a integridade do banco.
A preservao da Consistncia Faz com que uma transaco seja efectuada
desde o principio at o final sem que haja a interveno de outras transaces
durante sua realizao.
O Isolamento garante que a realizao de uma determinada transaco no
sofrer a interferncia de qualquer outra transaco que esteja acontecendo
simultaneamente.
A Durabilidade (ou permanncia) a garantia de que aps uma transaco com
xito deve ser encerrada, estes dados escritos devem consistir no banco de dados
mesmo que ocorrem quaisquer tipos de erro no sistema.
1.1.1. A tcnica de bloqueio em duas fases para controle de concorrncia
Idem, A tcnica de bloqueio em duas etapas para controle de concorrncia baseada no
bloqueio de itens de dados, sendo que, chamamos de bloqueio uma inconstante que fica
ligada ao item de dados. Este bloqueio pode ser binrio (possui dois valores: 1 e 0),
logo, o item de dados est bloqueado ou no est bloqueado. (GUIRRA, 2013)
So usadas duas operaes para o bloqueio binrio, so elas: lock(1) e unlock(0),
quando o item de dados est sendo executado, o estado da varivel lock(1), assim que
a transaco termina a execuo do item enviada a operao unlock(0), ento, o item
j est livre para outra transaco. Duas maneiras de bloquear (lock) os dados so:
Bloqueio compartilhado: autorizado que vrias transaces acessem um
mesmo item "A" se todas elas acessarem este item "A" apenas para fins de
leitura.
Bloqueio Exclusivo: um item bloqueado para escrita chamado de
bloqueado exclusivo, quando uma nica transaco assegura o bloqueio no
item.
1.2. Protocolo com base em Timestamps

Segundo GUIRRA (2013) em um item de Banco de Dados s existe apenas uma nica
transaco utilizando aquele item de dado. A dificuldade comea a ocorrer quando
temos mais de uma operao tentando fazer uso do mesmo item de dado, pois ser
necessrio que de alguma forma isso seja organizado de maneira justa e coerente.
Um exemplo de uma agncia bancria, se a ordem de entrega das senhas feita
conforme a chegada do cliente a agncia, podemos supor ento que cada cliente tem um
tempo X, que determina o horrio da sua chegada na agncia. Se tivermos dois clientes
A e B, sendo que, o cliente A chegou no tempo 1 e o cliente B chegou no tempo 2, logo,
o cliente A ser atendido primeiro que o cliente B, pois seu horrio de chegada mais
antigo. Temos ento, um controle de concorrncia baseado no Registro de Tempo.
De forma similar, preciso que o sistema de banco de dados faa o controle da
execuo quando existem transaces que esto concorrendo entre si, para garantir a
consistncia do banco de dados.
O algoritmo precisa garantir que a ordem em que o item est sendo acessado no est
violando a ordem do rtulo de tempo, e para isso o algoritmo associa a cada item X do
banco de dados dois valores de rtulo de tempo(TS), sendo:

read_TS(X) - rtulo de tempo de leitura;

write_TS(X) - rtulo de tempo de gravao.

Esses timestamps so actualizados sempre que uma nova instruo read_TS(X) ou


write_TS(X) executada. Sempre que uma transaco read e write desfeita pelo
esquema de controle de concorrncia, esta transaco recebe um novo timestamp e
reiniciada. O rtulo de tempo (TO) compara o rtulo de tempo de T com read_TS(X) e
write_TS(X) para garantir que o rtulo da transaco de tempo no seja violado.
O protocolo de ordenao de timestamp pode prevenir o deadlock (ou impasse).
Existem dois esquemas que impedem o deadlock, eles so chamados de:
Wait-die (esperar-morrer) - Se a transaco A < B, ou seja, A mas antiga do
que B, ento A autorizada a esperar. Caso contrario o A revertido ( morre ).
Wound-wait (ferir-esperar) - Se a transaco A > B, ou seja, A mas novo do
que B, ento A autorizada a esperar. Caso contrario o B revertido ( ferido ).

Em ambos os esquemas, a transaco mais nova (que entrou depois) acaba sendo
abortada pela transaco que mais velha (que entrou primeiro), se elas estiverem
envolvidas em um deadlock.
Nesta tcnica existe a possibilidade de paralisao de transaces longas, caso uma srie
repetitiva de transaces curtas causar o reincio da transaco longa. Caso isso ocorra,
necessrio que as transaces que esto em conflito sejam suspensas temporariamente
para permitir que a transaco seja concluda.
1.3. Protocolos Multi-verso
Segundo KORTH & SILBERSHCATZ (2006) consideram que o controle de
concorrncia multiverso um processo de controle de concorrncia comumente
utilizado por sistemas de gerenciamento de banco de dados para disponibilizar acesso
simultneo ao banco de dados. Ao serem iniciados novos processos de leitura de um
banco de dados, se no mesmo momento haver um outro processo que est actualizando,
pode ocorrer que o processo de leitura esteja lendo veja somente uma parte do que est
sendo actualizado, ou seja, um dado incoerente.
1.4. Controle de Deadlock
Segundo Carolina (2012) Deadlock uma situao em que duas ou mais transaces
esto em estado simultneo de espera, cada uma aguardando que uma das demais libere
um bloqueio para ela poder prosseguir. Os principais mtodos para solucionar o impasse
podem resultar na repetio da transaco.
1.4.1. Protocolo de Preveno de Deadlock
Conservador: se algum dos itens no pode ser bloqueado, nenhum ser bloqueado.
Ordenado: tentar por uma ordenao em todos os itens e os locks s podem ocorrer
segundo esta ordem.
1.4.2. Tcnicas Baseadas em Timestamping
Idem, Nas tcnicas baseadas em Timestamping o Identificador nico assinalado a cada
transaco esto ordenados segundo a ordem em que as transaces comearam. A
principal vantagem, no usa bloqueios, logo deadlock impossvel. (Carolina, 2012)

Inesperadamente o uso do bloqueio pode causar situaes inadequadas. Considerando a


classe parcial abaixo. J que T3 assegura um bloqueio exclusivo sobre B, e T4 requisita
um bloqueio compartilhado em B, T4 espera que T3 condicione B. Analogamente, como
T4 assegura um bloqueio compartilhado em A, e T3 est requisitando um bloqueio
exclusivo em A, T3 est esperando que T4 libere A. Deste modo, chega a uma situao
em que nenhuma dessas transaces pode processar em sua forma normal. Essa situao
chamada de DEADLOCK (impasse). Quando um deadlock ocorre, o sistema necessita
destruir uma das duas transaces.

1.5. Insero e Remoo de Dados


As operaes de insero e remoo devem ser consideradas no controle de
concorrncia, pois so conflituantes com qualquer outra operao.
Em protocolos de bloqueio em duas fases e com base em Timestamps funcionaro da
seguinte maneira:
Em protocolo de bloqueio em duas fases deve-se bloquear o dado em modo
exclusivo para inserir ou remove os dados.
Em protocolo com base em Timestamps deve-se inicializar a W-TS(Q) e RTS(Q) com o timestamp da transaco que insere o dado Q. Deve-se fazer o
teste para operaes que alteram o valor do dado no momento da remoo
1.5.1. Tuplas Fantasma na Insero e Remoo de Dados
Tuplas fantasmas bloqueia os dados at o final da transaco, garantido que os valores
dos dados acessados no sejam modificados por outras transaces, mas permitem a
insero de novas tuplas na tabela. As transaces abaixo no so conflituantes se
fizermos controle de concorrncia por tupla, mas entram em conflito se forem
executadas concorrentemente.

select sum(saldo)

insert into contas

from contas

values(123,Joo,50.00)

Solues
possveis:
Bloquear toda a relao pouca concorrncia
Bloquear um campo especial que indica que uma transaco est inserindo ou
removendo dados
Bloquear o ndice da relao

Concluso
O Controle de Concorrncia nos bancos de dados, visa assegurar que os processos de
transaces de informaes sejam feitas de maneira flexvel, Consistente e Ordeira, para
tal existem mecanismos de bloqueio para assegurar que estes processos obedeam estes
requisitos. Num caso concreto o acesso a informaes nos bancos de dados, para os
usurios obedece regras.
A maior dificuldade nos bancos de dados que um item seja acessado por vrios
usurios ao mesmo tempo, mais na verdade o que acontece que, a partir de protocolos
de bloqueio, se dois usurios acessam o mesmo item a prioridade da resposta dos
pedidos enviados gozam de tempo de requisio, isto , o primeiro a requisitar a
informao o primeiro a ter o acesso a resposta enquanto o de seguida fica em espera
ou bloqueio. Embora que estes sistemas envolvam custos um poo elevados tem a
vantagem ao acesso rpido da informao, visto que a cada distribuio tem seus
privilgios e limitaes ou por outra, cada distribuio s tem acesso ao que lhe
compete.

Bibliografia
KORTH, Henry F. e SILBERSHCATZ, Abraham; Sistemas de Banco de Dados;
Elsevier; 5 Ed., 2006.
BHARGAVA, Bharat. Concurrency Control in Database Systems. IEEE Transactions
on Konowledge and data engineering, Volume 11, N. 1. 1999.
GUIRRA, Michelle. Controle de concorrncia entre transaces em bancos de
dados.

Disponvel

na

internet

via

http://www.devmedia.com.br/controle-de-

concorrencia-entre-transacoes-em-bancos-de-dados/27756. Arquivo capturado em 17 de


Maio de 2016.

CAROLINA, F. F. Ana. Base de dados: controle de coerncia. Universidade Federal de


Pernambuco. Disponvel em http://www.cin.ufpe.br/~in940/controleconcorrencia.pdf.
Arquivo capturado em 17 de Maio de 2016.

Vous aimerez peut-être aussi