sd08 - controle de concorrência.ppt

Upload: maisa-cordeiro

Post on 06-Jul-2018

216 views

Category:

Documents


0 download

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 –