Shadow Paging

Als Shadow Paging wird in der Informatik ein Verfahren bezeichnet, um in Datenbanksystemen die beiden ACID-Eigenschaften Atomarität und Dauerhaftigkeit zu unte…

Shadow Paging

Als Shadow Paging wird in der Informatik ein Verfahren bezeichnet, um in Datenbanksystemen die beiden ACID-Eigenschaften Atomarität und Dauerhaftigkeit zu unterstützen.

Eine Seite (Page) bezeichnet in diesem Kontext eine Einheit physischen Speicher (beispielsweise auf einer Festplatte), üblicherweise in der Größenordnung bis Bytes.

Shadow Paging ist ein Copy-On-Write-Verfahren, um in-place Updates auf Seiten zu vermeiden. Stattdessen wird, wenn eine Seite modifiziert werden soll, eine Shadow-Page allokiert. Da auf die Shadow-Page keine Referenzen (anderer Seiten) zeigen, kann sie beliebig modifiziert werden, ohne Konsistenzbedingungen zu verletzen etc. Wenn eine Seite dauerhaft (persistent) werden soll, werden alle Seiten, die sich auf das Original bezogen, aktualisiert, sodass sie sich stattdessen auf die neue Seite beziehen. Da die Seite nur "aktiviert" wird, wenn sie bereit ist, verläuft der Vorgang atomar.

Wenn die bezugnehmenden Seiten auch mittels Shadow Paging aktualisiert werden müssen, kann sich dieser Vorgang rekursiv wiederholen, was hohe Kosten verursachen kann. Beim WAFL-Dateisystem kommt die Write Anywhere Lösung zum Einsatz, welche die Seiten nur soweit persistent macht, wie gerade nötig ist (d. h. write-behind caching). Dies erhöht die Leistung maßgeblich, da viele Schreibvorgänge auf Hotspots hoch oben in der referenziellen Hierarchie vermieden werden (z. B. dem Superblock eines Dateisystems). Der Preis ist eine hohe Verzögerungszeit beim Commit.

Write ahead logging ist eine beliebtere Lösung, welche in-place Updates verwendet.

Shadow Paging ähnelt der old master-new master Stapelverarbeitung, die bei Datenbanken auf Großrechnern verwendet wird. Bei diesen Systemen wurde das Ergebnis jeder Stapelverarbeitung (u. U. ein Tag Arbeit) auf zwei separate Festplatten (oder andere Datenspeicher) geschrieben. Eine wurde zur Datensicherung aufbewahrt, die andere wurde als Ausgangspunkt für die nächste Stapelverarbeitung verwendet.

Shadow Paging ähnelt rein funktionalen Datenstrukturen auch insofern, als in-place Updates vermieden werden.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.