Berreskuratzea: CHECKPOINT eta teknikak

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en vasco con un tamaño de 3,95 KB

Berreskuratze-prozesua — CHECKPOINT

CHECKPOINT (I)

Aldiro-aldiro DBKS-ek egiaztatze-puntu bat idazten du egunkarian. Horretarako:

  • m minutuz behin
  • egunkarian n sarrera berri idatzi ondoren

Egunkariaren sarrera-mota berri bat da: [CHECKPOINT, …].

  • Transakzio aktiboen identifikatzaileak idatzten dira.
  • Gainera, transakzio bakoitzeko lehenengo eta azken sarreren egunkariko helbideak ere idazten dira.

CHECKPOINT (II)

Egiaztatze-puntu bat idazteko urrats nagusiak:

  • Transakzio guztien exekuzioa aldi baterako eten egiten da.
  • Egunkarian [CHECKPOINT] erregistro bat idazten da, eta egunkaria diskoan idaztera behartzen da.
  • Memoriako buffer globala (aldaketak barne) diskoan idaztera behartzen da.
  • Ondoren, transakzioen exekuzioa berriro abiarazten da.

CHECKPOINT (III)

Egiaztatze-puntuen ondorengo berreskuratze-estrategia:

  • Egunkaria azken egiaztatze-puntuatik aztertzen da — ez hasi hasiera-hasieratik.
  • Azken egiaztatze-puntuaren aurretik COMMIT egin zuten transakzio guztiak alde batera uzten dira; haiek berreskuratzea ez da beharrezkoa.

Berreskuratze-teknikak

Hutsegite-motak:

  1. Konkurrentzia-kontrola betearaztea
  2. Transakzioaren errorea
  3. Software errorea
  4. Hardware errorea
  5. Katastrofeak

Hutsegite motetatik berreskuratzea

1. edo 2. motako hutsegiteetatik berreskuratzeko:

  • Hutsegitea eragin zuten transakzioak atzera egin: eragiketa batzuk desegin (egunkaria erabiliz).
  • Beharrezkoa bada, transakzio batzuk berretsi: eragiketa batzuk berregin (egunkaria erabiliz).

3., 4. edo 5. motako hutsegiteetatik berreskuratzeko:

  • DB-ko azken babeskopia leheneratu.
  • Azken egoera kontsistente batera berreskuratu: beharrezko transakzio batzuk berretsi (egunkaria erabiliz).

Aldatze-atzeratua (I)

DB-a ez da aldatzen COMMIT egin arte; beraz, transakzioek egindako aldaketak ezin dira diskora idatzi hitzartu arte.

Aldatze-atzeratua (II)

  • Hutsegitea gertatzen bada transakzioa hitzartze-puntura ailegatu aurretik, transakzioaren aldaketak desegitea ez da beharrezkoa — aldaketak ez direlako diskora kopiatu.
  • Hutsegitea gertatzen bada transakzioa hitzartze-puntura ailegatu ondoren, transakzioa berretsi egin behar da — transakzioaren aldaketak berregin behar dira.

Ez-desegin / Berregin algoritmoa (I)

Urrats nagusiak:

  1. Bi zerrenda huts sortu: Aktiboak eta Hitzartuak.
  2. Aktiboak zerrenda hasieratu egiaztatze-puntuan (checkpoint) agertzen den transakzio-zerrendarekin.
  3. Egunkaria aztertu azken egiaztatze-puntuetik (checkpoint):
    1. [START,] aurkitzen bada, T Aktiboak zerrendan sartu.
    2. [COMMIT,] aurkitzen bada, T Aktiboak zerrendatik Hitzartuak zerrendara eraman.
  4. Egunkaria bukaera arte aztertu ondoren:
    1. Hitzartuak zerrendako transakzioak berretsi: [WRITE, …] eragiketak berregin, egunkarian agertzen diren ordena erabiliz.
    2. Aktiboak zerrendako transakzioak berrabiarazi.

Ez-desegin / Berregin algoritmoa (II)

  • Egunkariko [WRITE, …] erregistroek normalean balio berria (newValue) baino ez dute gordetzen (berregin daitezke, baina desegin ez).
  • Transakzio bat berrabiarazteak esan nahi du, berraurreratuko balitz bezala, exekutatzea.
  • Eragiketak egunkarian agertzen diren ordena erabiliz berregin behar dira.
  • Transakzioak ez dira bakarka berreskuratzen, baizik eta behar denean batera.

Berehalako aldatzea (I)

DB-a alda daiteke COMMIT egin aurretik; izan ere, transakzioak egindako aldaketak diskora idatzi daitezke hitzartu aurretik.

Entradas relacionadas: