sd08 - controle de concorrência.ppt
TRANSCRIPT
-
8/16/2019 SD08 - Controle de Concorrência.ppt
1/29
SistemasDistribuídos
Parte 08
Controle de Concorrência
Coanteúdo adaptado a partir do material do professor Edmar Rezende (PUC-Campinas)
-
8/16/2019 SD08 - Controle de Concorrência.ppt
2/29
Transaçes Distribuídas
• Transaçes !ue afetam dados armazenados em um úni"olo"al podem ser tratadas "omo se o"orressem em umban"o de dados "entralizado
• Transaçes !ue en#ol#em mais de um lo"al pre"isam de
"oordenaç$o• %s propriedades A.C.I.D. pre"isam ser mantidas em
todos os lo"ais en#ol#idos na transaç$o – &udanças de estado A T'&C%S em todas as m!uinas
en#ol#idas
– Todos os lo"ais de#em ter dados C'*SSTE*TES – %s transaçes de#em o"orrer de forma IS'+%D% apesar do
paralelismo
– %s alteraçes em todas as r,pli"as de dados de#em ser DUR.ES
– 2 –
-
8/16/2019 SD08 - Controle de Concorrência.ppt
3/29
Transaçes Distribuídas
• /al0as !ue podem afetar a e1e"uç$o de transaçesdistribuídas2 – /al0as de m!uinas – /al0as de "omuni"aç$o entre as m!uinas en#ol#idas
• &ensa3em perdida ou "orrompida• ndisponibilidade de rota• Parti"ionamento da rede pode obri3ar a um aborto
da transaç$o
• 4uando uma m!uina n$o responde5 as demais n$otem "omo saber se o"orreu uma fal0a de m!uina oude "omuni"aç$o5 muito menos se a fal0a , temporriaou permanente
– 3 –
-
8/16/2019 SD08 - Controle de Concorrência.ppt
4/29
Transaçes Distribuídas
• Tratamento de fal0as em transaçesdistribuídas – R,pli"as de dados 0ospedados no site !ue fal0ou
dei1am de ser atualizadas – ' site n$o , mais usado em transaçes futuras – Transaçes ati#as no site !ue fal0ou s$o abortadas – Se o ser#idor !ue fal0ou desempen0a um papel
#ital5 de#e ser substituído por outro – %o se reinte3rar 6 rede5 o site de#e ter seu estado
atualizado perante os demais e !ual!uer "on7itode#e ser resol#ido (preferen"ialmente antes de estardisponí#el aos usurios e apli"açes)
– 4 –
-
8/16/2019 SD08 - Controle de Concorrência.ppt
5/29
Transaçes Distribuídas
• &odos de e1e"uç$o2 – Podem ser e1e"utadas de modo2
• Sequencial2 Uma transaç$o T8
termina antes do iní"io de outratransaç$o T95 ou "omeça ap:s o ;nalde T9
• Concorrente2 Partes das transaçes T8 e T9 podem ser pro"essadassimultaneamente5 sem pre
-
8/16/2019 SD08 - Controle de Concorrência.ppt
6/29
Transaçes Distribuídas
• &odos de e1e"uç$o ("ont>)2 – E1e"uçes "on"orrentes s$o ne"essrias
para mel0orar o desempen0o do ambiente
(espe"ialmente em ambientes distribuídos)• ' sistema ao !ual a transaç$o foi
submetida deve garantir que nãohaja interferência das demais
transações• 'u se
-
8/16/2019 SD08 - Controle de Concorrência.ppt
7/29
solamento e Serializaç$o
– solamento• Uma transaç$o n$o toma
"on0e"imento de outras transaçes
"on"orrentes• Para se formalizar o isolamento ,
adotado o "rit,rio de serialização
– 7 –
-
8/16/2019 SD08 - Controle de Concorrência.ppt
8/29
solamento e Serializaç$o
– Serializaç$o• 4uando di#ersas transaçes "on"orrentes
s$o e1e"utadas5 suas operaçes podem ser
inter"aladas de modo in"on#eniente5"ausando in"onsist=n"ias• ' "rit,rio de serializaç$o , a garantiaassegurada elo sistema de que o
resultado da e!ecução concorrente deum conjunto de transações seja omesmo que o roduzido ela suae!ecução serial (se!uen"ial)>
– 8 –
-
8/16/2019 SD08 - Controle de Concorrência.ppt
9/29
Es"alonador (S"0eduler)
• %s transaçes de#em 3arantir e1e"uç$o emisolamento5 por,m5 na maioria dos sistemas 0muitas transaçes sendo e1e"utadas ao mesmotempo>
• ' escalonador (tamb,m "on0e"ido "omo?Scheduler ? ou ?@eren"iador de Controle deCon"orr=n"iaA) de#e asse3urar !ue as açesindi#iduais das #rias transaçes se
-
8/16/2019 SD08 - Controle de Concorrência.ppt
10/29
Es"alonador (S"0eduler)
• Como trabal0a um es"alonadorB – Um s"0eduler típi"o utiliza #loqueios (locks)
sobre os itens do ban"o de dados para essa;nalidade>
– Esses blo!ueios impedem !ue duas transaçesten0am a"esso ao mesmo item de dado pormeios !ue intera
-
8/16/2019 SD08 - Controle de Concorrência.ppt
11/29
lo!ueios (Locks)
• uma t,"ni"a bastante usada por S@Ds
• Para 3arantir escalonamento serializ$vel ,
ne"essrio !ue o a"esso ao dado se
-
8/16/2019 SD08 - Controle de Concorrência.ppt
12/29
lo!ueios (Locks)
• Para de"idir !ue transaç$o #ai a"essardeterminada informaç$o o es"alonador usa umata#ela de #loqueios – % transaç$o pode realizar suas operaçes somente
deois !ue o 3eren"iador de "ontrole de"on"orr=n"ia "on"edeu o blo!ueio a transaç$o
– % transaç$o s: a"essa um dado sobre o !ual elamant,m al3um tipo de blo!ueio
• ne"essrio de;nir o modo de blo!ueio apropriadopara o tipo de a"esso dese
-
8/16/2019 SD08 - Controle de Concorrência.ppt
13/29
lo!ueios (Locks)
• &atriz de "ompatibilidade
– Durante um blo!ueio5 transações com modosincomat&veis eseram
– 13 –
+'4UE' S'+CT%D'
+'4UE'
ESTE*T
E
Compartil0a
do
E1"lusi#o
Compartil0a
do
S& *F'
E1"lusi#o *F' *F'
-
8/16/2019 SD08 - Controle de Concorrência.ppt
14/29
lo!ueios (Locks)
• nstruçes de blo!ueio – Para ;ns de demonstraç$o de situaçes de
blo!ueio5 usa-se2• Para blo!ueios comartilhados (S0ared +o"G)
– '(C)*S+,-
• Para blo!ueios e!clusivos (E1"lusi#e +o"G) – '(C)*+,-
• Para li#eração (Unlo"G) de !ual!uer blo!ueio – /0'(C)+,-
• 'nde ?4A , o recurso manipulado pelatransaç$o
– 14 –
-
8/16/2019 SD08 - Controle de Concorrência.ppt
15/29
lo!ueios (Locks) -
E1emplos• Considere duas transaçes T8 e T95 onde2 – T8 transfere HI da "onta % para a "onta – T9 apresenta o resultado de %J
– Em e1e"uç$o serial2• Se2 T8 e depois T9 displaK (J%) L MII• Se2 T9 e depois T8 displaK (J%) L MII
– 15 –
T8 T9lo"G-(%)read(%)%2L%-HINrite(%)unlo"G(%)lo"G-()read()2LJHINrite()unlo"G()
lo"G-S()read()unlo"G()lo"G-S(%)read(%)unlo"G(%)displaK (J%)
-
8/16/2019 SD08 - Controle de Concorrência.ppt
16/29
lo!ueios (Locks) -
E1emplos• ' !ue a"onte"e se o dado for liberado lo3o ap:so a"esso a eleB
– 16 –
T8 T9lo"G-(%)
read(%)%2L%-HINrite(%)unlo"G(%)
lo"G-()read()2LJHINrite()unlo"G()
lo"G-S()read()unlo"G()lo"G-S(%)
read(%)unlo"G(%)displaK (J%)
1assa amostrar 234
%55AD( 666
TEMPO
-
8/16/2019 SD08 - Controle de Concorrência.ppt
17/29
lo!ueios (Locks) -
E1emplos• ' !ue a"onte"e se a liberaç$o for adiadaB
– 17 –
T8 T9lo"G-(%)
read(%)%2L%-HINrite(%)
lo"G-()read()2LJHINrite()unlo"G(%)unlo"G()
lo"G-S()read()lo"G-S(%)read(%)displaK (J%)
unlo"G()unlo"G(%)
Deve aguardara li#erção de ADeve aguardara li#erção de 7
D%AD'(C) 666
TEMPO
-
8/16/2019 SD08 - Controle de Concorrência.ppt
18/29
Proto"olos de lo!ueio
• Con"lus$o2 – Se ma1imizarmos a "on"orr=n"ia (liberaç$o do dado o mais
"edo possí#el) podemos gerar estados inconsistentes – Se n$o liberarmos o dado antes de blo!uearmos outro5 pode
o"orrerdeadlock
– Em #irtude destas duas situaçes , ne"essria a apli"aç$ode "ertas re3ras !ue de;nam quando uma transaç$o podeblo!uear e liberar "ada dado
• C0amamos estas re3ras de rotocolos de #loqueio –
Estes proto"olos 3arantem !ue !uando uma transaç$osoli"ita blo!ueio sobre um determinado item de dado emparti"ular5 e nen0uma outra transaç$o mant,m o mesmoitem de dado blo!ueado de modo "on7itante5 tal blo!ueiopode ser "on"edido>
– 18 –
-
8/16/2019 SD08 - Controle de Concorrência.ppt
19/29
E1emplo2 Proto"olo 9 P+
• Tamb,m "on0e"ido "omo2 – Proto"olo ?TNo P0ase +o"GA – Proto"olo ifsi"o de lo!ueio
• /un"ionamento2 – Cada transaç$o de#e blo!uear e liberar re"ursos
em duas fases distintas2• 8ase de e!ansão9 uma transaç$o pode
obter blo!ueios5 mas n$o pode liberar nen0um• 8ase de encolhimento9 uma transaç$o pode
liberar blo!ueios5 mas n$o "onse3ue obternen0um blo!ueio no#o
– 19 –
-
8/16/2019 SD08 - Controle de Concorrência.ppt
20/29
E1emplo2 Proto"olo 9 P+
• ' ponto de es"alonamento no !ual a transaç$o obte#eseu blo!ueio ;nal (o ;m da fase de e1pans$o) , "0amadode ponto de blo!ueio da transaç$o
• %s transaçes podem ser ordenadas de a"ordo "om seuspontos de blo!ueio – Essa ordenaç$o ,5 de fato5 uma ordenaç$o serializada
de transaçes• mportante2 ' proto"olo 9P+ n$o 3arante imunidade
"ontra deadlo"Gs
– 20 –
-
8/16/2019 SD08 - Controle de Concorrência.ppt
21/29
E1emplo2 Proto"olo 9 P+
• Se uma transaç$o Ti fal0ar5 por !ual!uer raz$o5 ,pre"iso desfazer seus efeitos para 3arantir apropriedade de atomi"idade de transaç$o>
• Em um sistema !ue permite e1e"uçes "on"orrentes5
tamb,m , ne"essrio asse3urar !ue !ual!uertransaç$o T< !ue se
-
8/16/2019 SD08 - Controle de Concorrência.ppt
22/29
DE%D+'COs
• Como lidar "om deadlo"GsB – :;todo
-
8/16/2019 SD08 - Controle de Concorrência.ppt
23/29
DE%D+'COs
• Como lidar "om deadlo"GsB – :;todo 29 1revenção contra deadloc=s
• *$o dei1ar entrar em deadlo"G• &,todo usado !uando a probabilidade de 0a#er
deadlo"Gs , muito alta• E1istem #rias forma de implementar• Soluçes PESS&ST%S2
– lo!ueio 9P+ ri3oroso (ou "onser#ador)
– Timestamp (Nait-die e Nound-Nait) – Espera Cautelosa ("autious-Naitin3)
• Soluç$o 'T&ST%2 – .alidaç$o
– 23 –
-
8/16/2019 SD08 - Controle de Concorrência.ppt
24/29
DE%D+'COslo!ueio 9P+ Conser#ador• .ariante do proto"olo 9P+ ori3inal• /un"ionamento2
– Uma transaç$o ?T1A de#e blo!uear todos os dados !ue dese
-
8/16/2019 SD08 - Controle de Concorrência.ppt
25/29
DE%D+'COs Timestamp
• Para "ada transaç$o T1 , atribuído um r:tulo detempo , asso"iado TS(T1) Timestamp de T1 – Cada dado tamb,m possui seu timestamp
• /un"ionamento2 – 4uando uma transaç$o blo!ueia um determinado dado5
atualiza o timestamp do mesmo "om seu pr:prio timestamp> – 4uando uma transaç$o dese
-
8/16/2019 SD08 - Controle de Concorrência.ppt
26/29
DE%D+'COs Timestamp• Problema2
– Trata blo!ueios e1"lusi#os e "ompartil0ados "omo se fosse amesma "oisa (isso obri3a a tratar todos "omo e1"lusi#os)
• Soluç$o2 –
Usar dois timestamps para "ada dado2 um para leitura e atualizaç$o(e1"lusi#o) e outro pra apenas leitura ("ompartil0ado)
• .anta3em – E#ita star#ation (espera inde;nida) de uma transaç$o – % ordem de e1e"uç$o das transaçes , de;nida (indiretamente)
antes !ue elas "ome"em a e1e"utar – Elimina o overhead de blo!ueio
• Des#anta3em – &uitos abortos podem ser pro#o"ados5 sem nun"a o"orrer um
deadlo"G
– 26 –
-
8/16/2019 SD08 - Controle de Concorrência.ppt
27/29
DE%D+'COsEspera Cautelosa• /un"ionamento
– Se T1 dese
-
8/16/2019 SD08 - Controle de Concorrência.ppt
28/29
DE%D+'COs.alidaç$o• T,"ni"a na !ual atualizaçes de uma transaç$o T1
s$o feitas sobre ":pias lo"ais dos dados• /un"ionamento
– Um pro"esso !ue "omeça uma transaç$o "ria um espaço
pri#ado em mem:ria "ontendo ":pias de todos os ob
-
8/16/2019 SD08 - Controle de Concorrência.ppt
29/29
DE%D+'COs.alidaç$o• .anta3ens
– Reduz o overhead durante a e1e"uç$o de T1 – E#ita aborto em "as"ata –
T1 n$o 3ra#a alteraçes em dados antes de suasatualizaçes serem #alidadas em mem:ria• Des#anta3ens
– Se 0ou#e interfer=n"ia entre T1 e outras
transaçes (isso n$o , esperado pois a t,"ni"a ,otimista)5 isso , des"oberto somente ao ;nal dae1e"uç$o de T1 inteira (na #alidaç$o) e s: ap:sessa #alidaç$o T1 pode ser reini"iada
– 29 –