Utsatt oppdatering vs umiddelbar oppdatering
Utsatt oppdatering og øyeblikkelig oppdatering er to teknikker som brukes til å vedlikeholde transaksjonsloggfiler til databasestyringssystemer (DBMS). Transaksjonslogg (også referert til som journalloggen eller omloggingsloggen) er en fysisk fil som lagrer transaksjons-ID, tidsstemplet for transaksjonen, den gamle verdien og de nye verdiene til dataene. Dette gjør at DBMS kan holde rede på dataene før og etter hver transaksjon. Når transaksjonene er begått og databasen returneres til en konsistent tilstand, kan loggen bli avkortet for å fjerne de forpliktede transaksjonene.
Utsatt oppdatering
Utsatt oppdatering også kalt NO-UNDO / REDO er en teknikk som brukes til å gjenopprette / støtte transaksjonsfeil som oppstår på grunn av operativsystem, strøm, minne eller maskinfeil. Når en transaksjon kjører, gjøres ikke oppdateringer eller endringer i databasen av transaksjonen umiddelbart. De blir registrert i loggfilen. Dataendringer registrert i loggfilen blir brukt på databasen ved forpliktelse. Denne prosessen kalles “Re-doing”. Ved tilbakestilling blir alle endringer i data som er registrert i loggfilen kastet. Derfor blir ingen endringer brukt i databasen. Hvis en transaksjon mislykkes og den ikke er begått på grunn av noen av grunnene nevnt ovenfor, blir postene i loggfilen kastet og transaksjonen startet på nytt. Hvis endringene i en transaksjon er begått før de krasjer, så etter at systemet har startet på nytt,endringer registrert i loggfilen blir brukt på databasen.
Umiddelbar oppdatering
Umiddelbar oppdatering også kalt UNDO / REDO, er også en annen teknikk som brukes til å gjenopprette / støtte transaksjonsfeil som oppstår på grunn av operativsystem, strøm, minne eller maskinfeil. Når en transaksjon kjører, blir noen av oppdateringene eller endringene gjort av transaksjonen skrevet direkte inn i databasen. Både de opprinnelige verdiene og de nye verdiene blir også registrert i loggfilen før det gjøres endringer i databasen. Ved forpliktelse blir alle endringer i databasen gjort permanente, og postene i loggfilen blir kastet. Ved tilbakeføring gjenopprettes gamle verdier i databasen ved hjelp av de gamle verdiene som er lagret i loggfilen. Alle endringene som gjøres av transaksjoner i databasen blir forkastet, og denne prosessen kalles “Un-doing”. Når systemet starter på nytt etter et krasj, blir alle databaseendringene gjort permanente for forpliktede transaksjoner. For uforpliktede transaksjoner gjenopprettes originale verdier ved hjelp av verdiene i loggfilen.
Hva er forskjellen mellom utsatt oppdatering og øyeblikkelig oppdatering
Selv om utsatt oppdatering og øyeblikkelig oppdatering er to metoder for å gjenopprette etter systemfeil, er prosessen hver metode bruker forskjellig. I forskjellig oppdateringsmetode blir alle endringer som er gjort i dataene ved en transaksjon, først registrert i en loggfil og brukt på databasen ved forpliktelse. I metoden for umiddelbar oppdatering blir endringer gjort av en transaksjon direkte brukt i databasen, og gamle verdier og nye verdier blir registrert i loggfilen. Disse postene brukes til å gjenopprette gamle verdier ved tilbakestilling. I forskjellige oppdateringsmetoder kastes poster i loggfilen etter tilbakevending og blir aldri brukt i databasen. En ulempe med utsatt oppdateringsmetode er den økte tiden det tar å gjenopprette i tilfelle systemfeil. På den annen side er hyppige I / O-operasjoner mens transaksjonen er aktiv, en ulempe i metoden for umiddelbar oppdatering.