Você está na página 1de 5

Areplicaodedadosumatcnicabastanteutilizadaatualmente.Comooprprionomejdiz,elaconsistenamanutenodecpiasde tensdedados,comointuitodemelhoraraperformancee/outolernciaafalhasdesistemas(distribudosouno).Umadasprincipais dificuldadesdaaplicaodestatcnicamanteraconsistnciadasrplicas,emespecialnomomentodesuaatualizao.Tambm,os sistemasdebancodedadosdistribudoscompartilhamdomesmoproblema,quandotodososservidoresdevemchegaraumadeciso comum.Algunsprotocolosdeatualizaoatmica,chamadosdeprotocolosdecommit,tmsidopropostoseestudadosparaquea integridadedosistemasejamantido,semquesetenhagrandeperdadeperformance. Doisprotocolosdestetiposeroestudadosaqui,ambosbaseadosnoProtocolode3Fases(3PhaseCommit)[SKE82].SoelesoRMC [GUE96]eoE3PC[KEI95]. Primeiramente,serdescritodemaneirasuscintaoprotocolode3fases,ondeseromostradosalgunsdeseusproblemasquemotivarama proposiodenovosprotocolosqueoestendessem.Emseguida,osprotocolosacimacitadosserodescritos.

CaractersticasPrincipais O3PCassimchamadoporpossuir3estgios,quevisamgarantiraatomicidadedatransaosendorealizada.Esteprotocolobaseado emquorum,ouseja,precisoquehajaumnmeromnimoderplicasdisponveis(nofalhas)equeelasconcordemnummesmo resultado,paraqueatransaopossaserefetivada.Suacaractersticanobloqueantevlidaemcasodeumafalhaseafalhasedifundir eoquorumforperdido,osparticipantesficambloqueados. Funcionamento Basicamente,existeumcoordenadorqueoresponsvelporiniciaroprotocoloecoordenartodooprocessodecommit.Eleenvia mensagensparatodososparticipantesdatransao,comunicandoqueumatransaoestsendoiniciadaeficaemumestadodeespera. Cadaparticipanterecebeamensageminicialerespondeseestaptoounoarealizaratransao.Ocoordenadorcoletatodasas respostasedcontinuidadeaoprocesso,analisandoasrepostasrecebidasechegandoaumveredito(realizaouabortaatransao).Se qualquerumdosvotosfornegativo,adecisoseraborto.Casocontrrio,ocoordenadorfazumcommitecomunicaadecisoatodosos participantes. Ossitesenvolvidosnatransaopodemestarnosseguintesestados: q:estadoinicial w:espera.Ocoordenadoraguardaosvotosdosparticipantes.Osparticipantesaguardamadecisodocoordenador. pa:preaborto.Houvealgumafalhaenosepdechegardecisodecommit.Esteestadosaparecesehouveralgumafalha. a:aborto.Umadecisodeabortofoitomada. pc:precommit.Osparticipantesvotaramsimeesperamumaconfirmaodocoordenador.Estadonecessrioparaquesepossahaver recuperaonocasodefalhas. c:commit.Umadecisodecommitfoitomada.

FIGURA1:3PCbaseadoemquorum

Eleiodeumnovocoordenador Ocoordenadorcoletaestadosdetodososparticipantesconectados Ocoordenadortentaalcanarumadeciso.Adecisotomadausandoosestadoscoletados.O coordenadorfazummulticastdeumamensagemquereflitaadeciso Aorecebimentodeumprecommitoupreaborto,cadaparticipanteenviaumACKparaocoordenador RecebendoACKsparaprecommitdeumquorumdecommitouACKsparapreabortodeumquorumde aborto,ocoordenadorfazummulticastdadecisocorrespondente(commitouaborto) Recebendoumamensagemdecommitouaborto,osparticipantesprocessamatransaodeacordo


FIGURA2:Procedimentoderecuperaono3PC

Nocasodeocorrerfalhasporexemplo,ocorreumapartionaredeouumobjetofalhaouarecuperaodealgumafalhaumobjetoou partioderederessurgem,umprocedimentoderecuperaoinvocado.Este,consistede2fases:primeiramente,umnovocoordenador eleitoento,tentaseformarumnovoquorumpararesolveratransao.Oprocedimentoderecuperaodescritonafigura2. Problemas Osparticipantesdatransaopodemficarbloqueadosquandoacontecemfalhasnosistemaeoprocedimentoderecuperaodeparase comaseguintesituao:umobjetoencontrasenoestadopreabortoeoutro,noestadoprecommit.Mesmoquehouverumquorum,os participantesficarobloqueados,deacordocomasregrasdedecisodoprocedimento. Oprotocolo3PC,emsuaversooriginal,noerabaseadoemquorum.Todososparticipantesdeviamvotarsim.Sealgumdelesvotasse no,atransaoeraabortada.Istochamadodeabortounilateral,vistoquesemprequeumdosparticipantesaborta,todosabortam. Naversobaseadaemquorum,havia,ainda,oproblemadeoportunidadesperdidas.Tomemoscomoexemplo,5objetosparticipandode umatransao.Umquorumsimplesformadopor3elementos.Supondoseque4destesobjetosestejamfuncionandoperfeitamente, quandoocoordenadorreceberos3primeirosvotos,dcontinuidadeaoprotocolo.Assim,seumdestes3falharem,atransaoser abortada,mesmoquehajaoquartoobjetoso,masquenofoilevadoemconsiderao. Comointuitoderesolveralgunsdestesproblemas,novosprotocolosforampropostos,comooE3PC,quevisaresolveroproblemade

bloqueiodo3PC,eoRMC,queotimizaoproblemadeabortounilateraleoportunidadesperdidas.


OEnhancedThreePhaseCommitumprotocolobaseadono3PC.Seuobjetivoprincipalpermitirqueumquorumnosistemasemprefaa progresso.Tantoseusestadoscomoseufuncionamentobsicosimilarao3PC.Anicadiferenaestnoprocedimentoderecuperao, quemantmdoiscontadoresadicionais.Estescontadoresvisamresolveroproblemadebloqueiodoprotocolo3PC,permitindo,assim, maiorresistnciaafalhas. Oproblemadebloqueiodoprotocolo3PCpoderiaserresolvidosehouvessealgumainformaosobreaordemdoseventos,ouseja,qual dosdoisestados(preaborteprecommit)foiestabelecidoporltimo.Esteestadoseria,ento,omaisseguro. EstainformaosobreaseqnciadoseventosjustamenteafunodosdoiscontadoresadicionaismantidosnoprotocoloE3PC. Atravsdestescontadores,possveldecidirqualoestadomaisseguronasituaodescrita,evitandoobloqueiodosparticipantesda transao. OscontadoressonomeadosLast_ElectedeLast_Attempt.Oprimeiroindicaonmerodaltimaeleiodaqualoobjetoparticipoue atualizadasemprequeumnovocoordenadoreleito.Last_Attemptonmerodaltimatentativadecommitouabortoqueoobjeto participou.Seocoordenadorchegaraumadeciso,elemudaseuvalordeLast_AttemptparaLast_Elected.Osparticipantessfazemo mesmo,ouseja,alteramLast_AttemptparaLast_Elected,seelespassaremparaoestadoprecommitoupreaborto. OcontadorLast_Attemptgaranteumaordemlinearnasdecisesdeprecommitoupreaborto.Entopossvelsaberaordemcronolgica dosacontecimentos.OLast_ElectedgarantequeduastentativascontraditriasnoserofeitascomomesmovalordeLast_Attempt.Isto querdizerquesejfoitomadaumadecisocomumvalordeLast_Attempt,outradecisonopodersertomadacomomesmovalorde Last_Attempt.Oprocedimentoderecuperaomostradonafigura3.

Eleiodeumnovocoordenador.Aeleionobloqueante,reinicializadaemcasodefalhas.No decorrerdaeleio,ocoordenadorcoletaosvaloresdeLast_Electeddetodososparticipantese determinaoMax_Elected.OcoordenadormudaovalordeLast_ElectedparaMax_Elected+1enotifica todososparticipantesdesuaeleioeovalordeMax_Elected AorecebimentodoMax_Elected,osparticipantesmudamLast_ElectedparaMax_Elected+1eenviam seuestadolocaleovalordeLast_Attemptparaocoordenador Ocoordenadortentaalcanarumadeciso.Adecisotomadausandoosestadoscoletados.Sea decisonoforbloquear,ocoordenadormudaovalordeLast_AttemptparaLast_Electedefazum multicastdadeciso Aorecebimentodeumprecommitoupreaborto,cadaparticipantemudaseuLast_Attemptpara Last_ElectedeenviaumACKparaocoordenador RecebendoACKsparaprecommitdeumquorumdecommitouACKsparapreabortodeumquorumde aborto,ocoordenadorfazummulticastdadecisocorrespondente(commitouaborto) Recebendoumamensagemdecommitouaborto,osparticipantesprocessamatransaodeacordo
FIGURA3:ProcedimentoderecuperaonoE3PC

Mesmoqueocorreremfalhasemcascata,oE3PCgarantequeoprotocolotercontinuidade.OE3PCnorequermaiscomunicaoou tempoqueo3PC.Amaiorresistnciaafalhasalcanadadeveseaosdoiscontadoresadicionais.Osautoresassumemqueoconjuntode participantesfixoeconhecidoportodososparticipantes. Umacaractersticainteressantedesteprotocoloqueelepermitequeosistemadequorumsejaeleitodevriasmaneiras(e.g.votao compesos),permitindograndeflexibilidade.


CaractersticasPrincipais ORMCbaseadonaversodistribudado3PC(D3PC).Nestaverso,ocoordenadortemafunodedarincioaoprocesso.Daem diante,noexistemaisocoordenador.Todososparticipantesagemdemaneiraigual,mandandomensagensparatodososoutros participantes,tentandochegaraumacordo.Destamaneira,noexisteoproblemadefalhadocoordenador,poisoprocessono centralizado.Sealgumdosparticipantesfalhar,atransaopodecontinuar,desdequehajaumquorum.Adecisodecommitpodeser alcanadasehouverumamaioriadevotosafavor(aocontrriodoD3PC)enosuspeitamunsdosoutros.Outracaractersticainteressante desteprotocoloqueeleintegraogerenciamentodeversoutilizadonasestratgiasdereplicao.Damesmamaneira,integratransaes aninhadasdentrodoprotocolodecommit. Funcionamento Oprotocolotemcomobaseumsistemaassncrono,somadoadetectoresdefalhasnoconfiveis.Almdisso,assumeseuma

configuraoestticadeparticipantes.Eleconsistede3passos.Noprimeiro,ocoordenadordincioaoprotocoloenviandoumpedidode votoparatodososparticipantes.Aoreceberestepedido,todososparticipantesmandamomesmoparatodososoutros,paragarantirque todosorecebero,mesmoqueocoordenadorparedefuncionar.Apsenviarospedidos,osparticipantesenviamseusvotos,igualmente paratodososparticipantesdatransao. Nopassoseguinte,todososparticipantesrecebemosvotosdetodososoutrosparticipantes.Sehouverumamaioriavotando"sim",ento cadaumenviasuapropostadecommit.Casocontrrio,umprocedimentodeterminaoinvocado,oqualgarantequetodosterminemo protocolocomamesmadeciso(commitouaborto). Nopasso3,seosparticipantesreceberemamaioriadaspropostasdecommit,entoelesdecidirofazerocommitdatransao.Seisto noacontecer,oprocedimentodeterminaoserinvocado.OprotocoloRMCmostradonafigura4.

FIGURA4:RMC

EstavariaoaoprotocoloD3PCtemcomoprincipalobjetivopreservaratolernciaafalhasdaestratgiadereplicaoeaproveitartodas asoportunidadesdecommitdatransao.Eleevitaoproblemasdeabortounilateralpornecessitarapenasdeumamaioriavotando"sim". Oproblemadeoportunidadesperdidastambmresolvido,poisosvotosdetodososparticipantessoesperadosoualgumainformaode queestofalhose,portanto,mesmoquealgumdelesfalhar,osoutrospodemcontinuar,seaindahouverumquorum.


Oprotocolo3PC,apesardebastantedifundido,possuialgunsproblemas.Dependendodesuaaplicao,estesproblemaspodemser relevantesedevemserresolvidosdealgumamaneira.Osprincipaisdelessooabortounilateral,asoportunidadesperdidaseasituaode bloqueiodoprotocolo.Algunsprotocolosbaseadosno3PCresolvemseusproblemasdemaneirasimples,semmuitasalteraes.Esteo casodoE3PCedoRMC.OE3PCresolveosproblemasdeabortounilateralebloqueio,permitindoqueumquorumnosistemasemprefaa progresso.JoRMCresolveosproblemasdeabortounilateraleoportunidadesperdidasebaseadonaversodistribudado3PC. Aomeuver,mesmoresolvendoosproblemasdoprotocolo3PC,osprotocolosdescritostmalgumasdesvantagens.OE3PCbaseadona versocentralizada.Conseqentemente,semprequeocoordenadorfalharouhouverumapartioderede,haverumatrasoporcausada eleiodeumnovocoordenador.ORMC,porserdistribudo,requerbastantecomunicaoentreosparticipantesdatransao,podendo causarumcongestionamentonomeiodecomunicao.Porm,estascaractersticaspodemnosertograves,considerandoseograude tolernciaafalhasprovido.


[GUE96]GUERRAOUI,RachidOLIVEIRA,RuySCHIPER,Andr.AtomicUpdatesofReplicatedData.CommunicationsofACM,Vol.39, N.4,April1996,p.8487.

[KEI95]KEIDAR,IditDOLEV,Danny.IncreasingtheResilienceofAtomicCommit,atNoAditionalCost.InProceedingsofthe14thACM SymposiumonPrinciplesofDatabaseSystems.May1995. [RAB92]RABINOVICH,MichaelLAZOWSKA,Edward.AFaultTolerantCommitProtocolforReplicatedDatabases.ACM11thSymposium onPrinciplesofDatabasesSystems.1992,p.139148. [SKE82]SKEEN,D.AQuorumBasedCommitProtocol.InBerkeleyWorkshoponDistributedDataManagementandComputer Networks(6),p.6980.February1982.Bibliografianoconsultada,apenasreferenciada.

Você também pode gostar