Anar al contingut

Registre d'escritura anticipada

De L'Enciclopèdia, la wikipedia en valencià

En informàtica, el registre d'escritura anticipada (WAL) és una família de tècniques per a proporcionar atomicidad i durabilitat (dos de les propietats ACID) en sistemes de bases de senyes.[1] Pot vore's com una implementació de l'arquitectura "Event Sourcing", en la que l'estat d'un sistema és el resultat de l'evolució dels events entrantes a partir d'un estat inicial. Un registre d'escritura anticipada és una estructura resident en disc auxiliar que només permet afegir informació i que s'utilisa per a la recuperació de falles i de transaccions. Els canvis es registren primer en el registre, que deu escriure's en un almagasenament estable, abans d'escriure els canvis en la base de senyes.[2]

[3] La funcionalitat principal d'un registre d'escritura anticipada es pot resumir aixina:

  • Permetre que la caché de pàgines almagasene en un búfer les actualisacions a les pàgines que residixen en el disc i, al mateix temps, garantisar una semàntica de durabilitat en el context més ampli d'un sistema de base de senyes.
  • Conservar totes les operacions en el disc fins que les còpies en caché de les pàgines afectades per estes operacions se sincronisen en el disc. Cada operació que modifique l'estat de la base de senyes deu agregar-se al registre en el disc ans que es puguen modificar els continguts de les pàgines associades.
  • Permetre que els canvis perduts en la memòria es reconstruïxquen a partir del registre d'operacions en cas d'un fallo.

En un sistema que utilisa WAL, totes les modificacions s'escriuen en un registre abans d'aplicar-se. Usualment, tant l'informació de refer com la de desfer s'almagasenen en el registre.

L'objectiu d'açò es pot ilustrar en un eixemple. Imagine un programa que està realisant alguna operació quan la màquina en la que s'està eixecutant pert energia. En reiniciar, és possible que eixe programa necessite saber si l'operació que estava realisant va tindre èxit, o èxit parcial o va fallar. Si s'utilisa un registre d'escritura anticipada, el programa pot verificar este registre i comparar lo que se suponia que devia fer quan inesperadament es va perdre l'energia en lo que realment es va fer. Sobre la base d'esta comparació, el programa podria decidir desfer lo que havia escomençat, completar lo que havia escomençat o mantindre les coses com estan.

Despuix de certa cantitat d'operacions, el programa deu agregar un punt de control, escrivint tots els canvis especificats en el WAL en la base de senyes i borrant el registre.

WAL permet que les actualisacions d'una base de senyes es realisen in situ . Una atra forma d'implementar actualisacions atòmiques és en paginació amagada, que no es fa in situ. La principal ventaja de realisar actualisacions in situ és que reduïx la necessitat de modificar índexs i llistes de bloqueig.

ARIES és un algoritme popular de la família WAL.

Els sistemes d'archius moderns solen utilisar una variant de WAL a lo manco para els metadatos del sistema d'archius; a açò se li crida dur un diari .


Referències

[editar | editar còdic]
  1. Hellerstein, Joseph M.; Stonebraker, {{{nom2}}}; Hamilton, {{{nom3}}} (2007). Architecture of a database system, Now. OCLC 191079239. ISBN 978-1-60198-079-3.
  2. «30.3. Write-Ahead Logging (WAL)» (en en). PostgreSQL Documentation. Consultat el 2023-06-05.
  3. Petrov, Alex (2019). Database Internals : a deep dive into how distributed data systems work, O'Reilly Mija. OCLC 1103591515. ISBN 978-1492040347.