E5 Transaz

46

Transcript of E5 Transaz

Page 1: E5 Transaz
Page 2: E5 Transaz

BasidiDa(‐Sistemitransazionali2

C)ModelloRelazionale,Algebrarelazionale,SQL

1 2 3 4 5 6 7

E)TecnologiadiunDBMS

1 2 3 4 5 6

A)Introduzione

1 2

B)Prog.ConceGuale(ER)

1 2 3 4 5 6 7

D)Prog.LogicaeNormalizzazione

1 2 3 4

F)ProgrammazioneDB

1 2

Page 3: E5 Transaz

RicordiamoleprincipalicaraGerisNchedeiDBMS

BasidiDa(‐Sistemitransazionali3

  condivisionedeidaN  concorrenza

  qualitàdeidaN  integrità

  efficienza  caricamento,query,sort

  controllodell'accesso  privatezza

  robustezza

fuocosuintegrità,concorrenza,robustezza,efficienza

Page 4: E5 Transaz

IlconceGoditransazione

BasidiDa(‐Sistemitransazionali4

TRANSAZIONE(transacNon):ComplessodiOPERAZIONItendenNaportareilDBdaunostatocorreGoadunaltrostatocorreGo.

Latransazioneèun’unitàdielaborazionechegodedi4proprietà(ACID):

•  Atomicità•  Consistenza•  Isolamento

•  Durata(persistenza)

Page 5: E5 Transaz

Atomicità

BasidiDa(‐Sistemitransazionali5

ATOMICITÀ(atomicity)delletransazioni:leoperazioniprevistecosNtuisconountuGounico,devonopertantoessereeseguitenellalorointerezzaononessereeseguiteperniente.

SERIALIZZAZIONEDELLEOPERAZIONI:LeoperazionieventualmentesvolteinparallelodevonoportareilDBadunostatoequivalenteall'esecuzioneserialedellemedesimeoperazioni.

LatransazioneèquindiunaTRASFORMAZIONEATOMICAdallostatoinizialeaquellofinale.

Page 6: E5 Transaz

BasidiDa(‐Sistemitransazionali6

UnaTRANSAZIONEcosNtuisceunBLOCCODIRECOVERY(riprisNno)cioè:uninsiemedioperazionidelimitatedaistruzionialfinedipermeGereleoperazioni:

UNDO(disfare):incasodifallimentodellatransazionedeveesserepossibile"disfare"l'azionesvoltasuidaN

REDO(rifare):selatransazionehaavutosuccessomalemodifichealDBnonsonostateresepermanenN,lemodifichevannoripetute.

Atomicità

Page 7: E5 Transaz

Transazione"benformata"

BasidiDa(‐Sistemitransazionali7

BEGINTRANSACTIONcodiceconmanipolazionedeidaN

(leGureescriGure)COMMITWORK/ROLLBACKWORK

codiceprivodimanipolazionedidaN

ENDTRANSACTION

S 1 S 3 S fS i S 2W1 W2 W3 W4

Page 8: E5 Transaz

BasidiDa(‐Sistemitransazionali8

ComportamenNpossibili:commitwork:successoCOMMIT:finecorreGodellapartedimodificadellatransazione

("impegno"delDBMSatrasferireidaNmodificaNinmemoriapermanente)

S 1 S 3 S rS 0 S 2

COMMIT

Atomicità

Page 9: E5 Transaz

BasidiDa(‐Sistemitransazionali9

IncasodiguastoilsistemadiRECOVERYèincaricatodiriportareilDataBaseadunostatocorreGoprecedentealguasto.

STATOCORRETTOèunostatodelDBchenonrifleGeicambiamenNdovuNatransazionidimodificachenonsonostateterminateconsuccesso.

CAUSEDIGUASTO:

1)guastoall'internodiunatransazione2)guastoall'internodelswdibase

3)guastosullamemoriasecondaria4)guastosulsistemahardware

Recovery

Page 10: E5 Transaz

BasidiDa(‐Sistemitransazionali10

GUASTOALL'INTERNODIUNATRANSAZIONE

a)ABORT:unatransazionesiinterrompeperunerroresojwareequindiilDBMSneesegueilROLLBACK(“ritornoindietro”dellemodificheapportateaidaN)

b)ROLLBACKdiunatransazione:unatransazionepuòautonomamentechiedereilrollbacksescopreinconsistenzaneidaNolanonfanbilitàdelleoperazioni

c)ABORTFORZATOdiunatransazione:unatransazione“aborNta”èforzataalrollbackseilDBMSscopreviolazionedivincoliodiautorizzazioni,situazionidistallo(deadlock),fallimentodialtretransazionicoordinateinparallelo.

Recovery

Page 11: E5 Transaz

BasidiDa(‐Sistemitransazionali11

ComportamenNpossibili:commitwork:successoCOMMIT:finecorreGodellapartedimodificadellatransazione

("impegno"delDBMSatrasferireidaNmodificaNinmemoriapermanente)

S 1 S 3 S rS 0 S 2

COMMIT

Atomicità

Page 12: E5 Transaz

BasidiDa(‐Sistemitransazionali12

ComportamenNpossibili:rollbackwork(suicidio)abortforzato(omicidio)

S 1 S 3 S rS 0 S 2

UNDO UNDO

guasto

Atomicità

Page 13: E5 Transaz

BasidiDa(‐Sistemitransazionali13

ComportamenNpossibili:commitwork:successodellatransazionemaguastodopoilcommiteprimadellaconclusione

S 1 S 3 S rS 0 S 2

REDO

guasto

Atomicità

Page 14: E5 Transaz

BasidiDa(‐Sistemitransazionali14

LatransazionerispeGaivincolidiintegrità,comeconseguenza:selostatoinizialeècorreGoanchelostatofinaleècorreGo

IsolamentoLatransazioneèisolatadallealtretransazioniconcorrenN(nonesponeisuoistaNintermediprimadellasuaconclusione).Sievital'“effeGodomino”

PersistenzaGlieffendiuncommitworkdureranno“persempre”(indipendentementedaiguasNdelsistema)

Consistenza

Page 15: E5 Transaz

BasidiDa(‐Sistemitransazionali15

•  controllodiaffidabilita’:atomicità,persistenza

•  controllodiconcorrenza:isolamento•  controllodiesecuzione:consistenza

•  Controllodiaffidabilitàsuldatabaseserver•  gesNoneingresso‐uscita•  gesNonememorie

•  gesNonebuffer•  gesNonecommitwork/rollbackwork

•  gesNonegiornale

PergaranNreleproprietàacid

Page 16: E5 Transaz

BasidiDa(‐Sistemitransazionali16

•  memoriacentrale:

nonèpersistente

•  memoriadimassa:

èpersistentemapuòdanneggiarsi

•  memoriastabile:

memoriacheanchesesidanneggianonperdeidaNenoninterrompeilservizio:DISKMIRRORINGeRAID

Persistenzadellememorie

Page 17: E5 Transaz

BasidiDa(‐Sistemitransazionali17

Leinformazionivengonoparallelementeriportatesusistemididischidiversi.

DISKDRIVE2

DISK1 DISK2

BUS1

BUS2

CPU1

CPU2

UNITA’MULTIPROCESSORE

DISKDRIVE1

Replicazioneon‐line:mirroring

Page 18: E5 Transaz

BasidiDa(‐Sistemitransazionali18

DATABASESERVER

DATABASE

BACKUP

DUMP

IlDBMSNenesempreunavecchiacopiadelDBsuunaltrodisposiNvo(nastroodisco)aggiornataperiodicamente(DUMP).

Replicazioneoff‐line:unitàdibackup

Page 19: E5 Transaz

BasidiDa(‐Sistemitransazionali19

razionale:

•  usofrequentedeidaNgiànelbuffer•  scriGuradifferitadellabasedidaNonmizzandolescriGuresu

disco

discobufferdimemoria

centrale

i/o

GesNonedellamemoriacentrale

Page 20: E5 Transaz

BasidiDa(‐Sistemitransazionali20

paginax

paginay

memoriacentrale

bufferpool

y

x

Perognitransazionec’èuncertonumerodipaginedisponibilinelbufferpool,ilnumerodipendedalnumeroditransazioniedallelororichieste.LepaginecontenenNmodifichedevonoessereriscriGe.

Usodellamemoriacentrale

Page 21: E5 Transaz

BasidiDa(‐Sistemitransazionali21

aSTEAL‐ paginecondaNdirty,cioèmodificaNma ancorasenzacommit,soGraGeauna

transazioneanvaeriportatesudiscoNOSTEALbFORCE‐ paginescriGealcommit‐workNOFORCE

Normalmente:NO‐STEAL,NO‐FORCE

Letransazionirilascianolepagineallafine,quellemodificateverrannoriscriGeinmemoriapermanente.SenecessariolepaginedelletransazionivengonorimpiazzateconlapoliNcaLRU(LeastRecentlyUsed).

PoliNchedigesNonedelbuffer

Page 22: E5 Transaz

BasidiDa(‐Sistemitransazionali22

IlLOGregistrainmemoriastabileleazionisvoltedallatransazionesoGoformadicoppiedivalori:

UPDATE(U)trasforma:val1⇒val2

registrazione:BEFORE‐STATE(U)=val1AFTER‐STATE(U)=val2(chiamateanchebefore/ajerimage)

TIPIDIREGISTRAZIONINELGIORNALE:1BEGIN‐TRANSACTION2UPDATE/DELETE/INSERT3COMMIT/ABORT4  CHECKPOINT

Giornaleditransazione(Logfile)

Page 23: E5 Transaz

BasidiDa(‐Sistemitransazionali23

B(T1) U(T1) U(T1) C(T1)

topdelgiornalerecorddellatransazioniT1

LeinformazioniregistratesonodelNpo:1)idenNficatoredellatransazione;2)codicedioperazione;3)numerodisequenzanellog;4)puntatoreall'ulNmologrecorddellatransazione;5)idenNficatoredelfileedindirizzodelrecord(Nd);6)vecchiovalore,nuovovalore;

Ilgiornaleèsequenziale

Page 24: E5 Transaz

BasidiDa(‐Sistemitransazionali24

PerilLOG(checonNenel'insiemediinformazioninecessarieesufficienNperriportareilDBinunostatocorreGo)siuNlizzaunprotocollodiNpoWAP(WriteAheadProtocol):

SiscriveunrecorddiBEGINsulLOGprimadiiniziarel'esecuzionediunatransazioneLemodificheeffeGuatevengonoregistratesuldiscodelLOG(chiamatoancheaudittrail)PRIMAdivenireesteseallamemoriasecondaria

IlLOGèpresenteintuniDBMSdiunacertaimportanza.Insistemicheeseguonomoltetransazionipuòoccupareunospaziomoltoelevato(LOGdicenNnaiadimilionidicaraGerialgiornoinsistemicommerciali)..

Giornale

Page 25: E5 Transaz

BasidiDa(‐Sistemitransazionali25

T1,T2eT3sonoOK.PerT4eT5ilsistemadeveriportareidaNallostatocorreGoanteriorealloroinizio.

ESEMPIO

Page 26: E5 Transaz

METODIPERLAGESTIONEDELLETRANSAZIONI

BasidiDa(‐Sistemitransazionali26

1)UNDO/REDO2)UNDO/NOREDO3)NOUNDO/REDO4)NOUNDO/NOREDO

a)fareononfareUNDOdipendedallapoliNcadigesNonedellemodifiche.

b)fareononfareREDOdipendedallagesNonedelBUFFERedelCOMMIT.IlREDOvafaGoperchéanchesesiraggiungeilCOMMITsulLOG,nonsièsicurichelepaginesianostatetuGescaricaNdalbuffer.

Page 27: E5 Transaz

BasidiDa(‐Sistemitransazionali27

POLITICAa1FASE:(UNDO)lemodifichevengonoportatesubitosulDBdurantelosvolgimentodellatransazione,primadellaterminazione(STEAL).

StatovecchiodeidaN

LOG

DO(WAP) Stato

nuovodeidaN

t1 t3

t2t1<t2<t3

Statovecchio

LOG

UNDOStatonuovo

PoliNcadiundo(gesNonedellemodifiche)

Page 28: E5 Transaz

BasidiDa(‐Sistemitransazionali28

POLITICAa2FASI:(NOUNDO)tuGelemodifichesonoregistratesulLOGtemporaneamenteenonsulDB;soloselatransazioneterminacorreGamentealloravengonoportatesulDBstabile(conunaoperazioneatomica)(NOSTEAL).

StatovecchiodeidaN

LOG

DO StatonuovodeidaN

t1

t3t2

t1<t2<t3

PoliNcadiundo(gesNonedellemodifiche)

Page 29: E5 Transaz

PoliNcadicommit(gesNonedelbuffer)

BasidiDa(‐Sistemitransazionali29

COMMITposNcipato:(NOREDO)ilcommitèdefiniNvosolodopochelemodifichesonomigratesulDB(primalemodifiche,poiilcommitsullog)(FORCE)

COMMITanNcipato:(REDO)ilcommitèregistratosubitosulLOGprimachelemodifichesianocompletatesulDB(NOFORCE).

StatoincertodeidaN

LOG

REDOStatonuovodeidaN

t1 t3

t2

Page 30: E5 Transaz

PoliNchedirecovery

BasidiDa(‐Sistemitransazionali30

UNDO/REDOrichiedebeforeandajerimage,• lascialagesNonedellepaginealgestoredelbufferchepuòonmizzareiltrasferimentosudisco,• migliorailfunzionamentonormale,• peggiorailfunzionamentosiaincasodiguasNdisistemaalRESTARTchediguasNditransazioni,• permeGeunpiùsollecitorilasciodeilock.

UNDO/NOREDOrichiedeajerimage,• migliorailcasodiRESTART,• peggiorailcasodiguastoditransazione,• peggiorailfunzionamentonormaledelbufferpoiché

forzailgestoredelbufferascaricarelepagineperterminarelatransazione,• nonpermeGeunsollecitorilasciodeilock.

Page 31: E5 Transaz

BasidiDa(‐Sistemitransazionali31

NOUNDO/REDOnonrichiedebeforeimage,• favorisceicasidifallimenNdelletransazioni.

NOUNDO/NOREDO• NOREDO:tuGelemodifichedevonoesserenelDBprimachelatransazionesiaconsiderataterminata.

• NOUNDO:nessunamodificadeveessereportatasulDBprimachelatransazionesiaconsiderataterminata.• PerciòunaoperazioneatomicadevetrasferireidaNe

registrareilCommit.

Siusalatecnicadellepagineombra(SHADOWPAGES)cheèmoltovelocemarichiedemoltamemoria

PoliNchedirecovery

Page 32: E5 Transaz

BasidiDa(‐Sistemitransazionali32

po pn

pagetable

p.nuovep.ombra

doppiopuntatoredell’applicazioneallapagetable

po pnpo pn

commit undo

SHADOWPAGES

(operazioneatomica)

Page 33: E5 Transaz

INCERTEZZADELRECOVERYNELCASODISYSTEMCRASH

BasidiDa(‐Sistemitransazionali33

Metododel“CHECKPOINT”nellapoliNcaUNDO/REDO

IncasodisystemcrashilcontenutodellamemoriaprincipaleedegliI/Obuffersèperduto.

Page 34: E5 Transaz

CHECKPOINT

BasidiDa(‐Sistemitransazionali34

T3 e T5 sicuramente non sono state completate e devonoesseresoGoposteallaproceduradiUNDO.

Per T1, T2 e T4, che sono terminate, non è sicuro se gliaggiornamenNsonostaNdefiniNvamentecopiaNsumemoriaausiliaria.

Bisogna quindi controllare sul LOG e se queste hannoraggiuntoilCOMMIT(commitrecordnelLog)bisognafarneilREDO.

Quanto indietronel LOGbisognaandare,peressere sicuridieseguire il recoverydituGeletransazioniterminate inmodocorreGo?

Page 35: E5 Transaz

BasidiDa(‐Sistemitransazionali35

CHECKPOINTSYSTEMPeriodicamenteilsistemaesegueilcheckdelDB:

metodo1fa terminare le transazioni non ancora terminate e ricopiatuGoilcontenutodelbufferdimemoriacentraledesNnatoalDBsuldiscoedinserisceun"checkpointrecord"nelLOG.

Il sistemaDBMS,dopo il restartdel sistemadi calcolo, cercanelLOGl'ulNmocheckpointrecordedeseguelasuaproceduradi RECOVERY sulle transazioni iniziate dopo. Se il guastoavviene durante l’operazione di checkpoint è valido ilcheckpointprecedente.

CHECKPOINT

Page 36: E5 Transaz

BasidiDa(‐Sistemitransazionali36

CHECKPOINTSYSTEMPeriodicamenteilsistemaesegueilcheckdelDB:

metodo2ricopia tuGe le pagine di transazioni terminate sul disco edinserisce un "checkpoint record" nel LOG, registra nelcheckpoint record gli idenNficatori delle transazioni nonancoraterminate.

Il sistemaDBMS,dopo il restartdel sistemadi calcolo, cercanelLOGl'ulNmocheckpointrecordedeseguelasuaproceduradi RECOVERY sulle transazioni iniziate dopo e su quelleregistratenelcheckpointrecord.

CHECKPOINT

Page 37: E5 Transaz

BasidiDa(‐Sistemitransazionali37

checkpoint

T1èok,perT2eT4sifaREDO,perT3eT5UNDO

CHECKPOINT

Page 38: E5 Transaz

Funzionamentodelrecoverymanager

BasidiDa(‐Sistemitransazionali38

  Ilrecoverymanager,alrestartdelsistema,esegueunprotocollodelNpo:1  LeggesuunfilediRESTART(semprecontenutonelLOG)l'indirizzodell'ulNmoCHECKPOINT;nelrecorddicheckpointsonocontenuNgliidenNficatoridelletransazionianvealmomentodelcheckpoint.

2  Preparaduefile:UNDOLISTcongliidenNficatoridelletransazionianve,REDOLISTvuoto.

Page 39: E5 Transaz

BasidiDa(‐Sistemitransazionali39

3  LeggeilLOGpartendodall'ulNmocheckpoint:setrovaBeginTransacNonregistralatransazionesullaUNDOLIST,setrovaCommitlaportanellaREDOLIST.

  AlterminelaUNDOLISTconNenelalistadelletransazionidaDISFARE,laREDOLISTquelladelletransazionidarifare.

4  IlLOGvienerielaboratoall'indietropercompieregliUNDOconivecchivalori

5  IlLOGvienerielaboratoinavanNperrifare(REDO)letransazionidarifare.

  NessunutenteèanvoduranteilRESTART.

Funzionamentodelrecoverymanager

Page 40: E5 Transaz

Checkpoint

BasidiDa(‐Sistemitransazionali40

Almomentodelguastoedopo:

topdelgiornale

checkpoint

redolist

undolist

Page 41: E5 Transaz

Incasodiguastodisistema

BasidiDa(‐Sistemitransazionali41

aguastosoj:perditainmemoriacentralee

RIPRESA(RESTART)ACALDOproceduradirecoveryundo/redo comegiàvistooaltresimilineicasi noundo/redoecc.

bguastoharddanneggiamentodellamemoriadiscoe RIPRESAAFREDDO

Page 42: E5 Transaz

Ripresaafreddo

BasidiDa(‐Sistemitransazionali42

• siriprisNnanoidaNaparNredall’ulNmobackup

• sieseguonoleoperazioniregistratesullogfinoall'istantedelguasto;persicurezzasiNeneillogsuundiscodiversodaquellodeidaN(spessoilogsono2).

• siesegueunaripresaacaldo

Page 43: E5 Transaz

AltretecnichediRECOVERY

BasidiDa(‐Sistemitransazionali43

COPIEMULTIPLE: SimanNeneunnumerodisparidi copiedelDB. In casodiguasto, facendodei confronN fra levariecopie, inbaseadunprotocollodimaggioranzasionenelacopiacorreGa.Duranteunamodifica,unadellecopievieneuNlizzataperscrivereinuovivalori.UnflagvieneseGatoperindicareun"updateinprogress"ancheperlealtrecopie.Successivamentelamodificavieneestesainparallelo(perquantopossibile)atuGelealtrecopie.EssequindisonosemprecorreGe(eduguali),esclusigliistanNincuisieseguelascriGura.TecnicamoltouNlizzatanelleapplicazioniavanzate(spaziali,militari,etc....).

Page 44: E5 Transaz

FORWARDERRORRECOVERY

BasidiDa(‐Sistemitransazionali44

1)BACKWARDERRORRECOVERY: è quella già vista che stabilisce che il riprisNno del DBavvengaritornandoadunostatopassatocorreGo.(Senonèpossibile, si cerca di riportare il DB in uno stato almenoconsistente).SonoletecnicheusatedaiDBMSperisistemiaziendali.

2)FORWARDERRORRECOVERY: tecnicacheproseguenormalmentel'esecuzione(sepossibile)tentandounacompensazionedeglierrori.NonpermeGel'usoditecnichegeneralimasolodialgoritmispecifici.Usatainsistemistrategicioincasiincuinonc’ètempoperilrecoverybackward.

Page 45: E5 Transaz

AltretecnichediRECOVERY

BasidiDa(‐Sistemitransazionali45

HWCRASH:

SISTEMI RESILIENTI: sistemi completamente duplicaN chesvolgonoesaGamentelostessolavoro:ilsistema"slave"sosNtuisceimmediatamenteil"master"incasodiroGura.

In sistemi strategici i soGosistemi sono più di due: puòsussistereilproblema(grave)cheilmasternonlavoripiùinmodocorreGoeconsideriguasNglislavechealorovoltaloconsideranoguasto.Gli algoritmiper la gesNonediquestasituazionisonomoltocomplessi.

Page 46: E5 Transaz

BasidiDa(‐Sistemitransazionali46