Serialisierung von DDL Operationen - primär Partitionierung
Bei einem System, das seine Daten in partitionierten Tabellen vorhält mit jederzeit gleichzeitiger Verarbeitungen für Daten verschiedener Partionswerte, ist grundsätzlich eine Kollision nicht auszuschließen zwischen 2 Partionierungsoperationen aus verschiedenen Datenbanksessions nicht auszuschließen, wobei die Partitionierungswerte der verschiedenen Sessions jeweils unterschiedlich sind. Eine Situation mit gleichen Partitionierungswerten in verschiedenen Sessions wird durch die
Verarbeitungssteuerung bereits ausgeschlossen. Bei einer derartigen Kollision wird die erste Session mit einer Partionierungsoperation problemlos erfolgreich sein, während die 2. Session und eventuelle weitere mit einer Exception abbrechen werden.
Derartige Kollisionen können durch die Verwendung von Locks vermieden werden. Für die Abstimmung mit der
Datenbank werden dabei Exckusive Table Locks eingesetzt, weil die Datenbank das inzwischen bei "ADD PARTITION"
selbst schon dafür einsetzt und dadurch wegen des freien Einsatzes für alle Arten von Partionierungsoperationen
Probleme auf dieser ebene vermieden werden. Für Tool-interne weitere Absicherung werden noch PL/SQL User-Locks
im Exclusiv-Modus für einen wohldefinierten Ablauf vorgeschaltet, weil durch eine DB-interne Verwendung von
Exckusive Table Locks deren Allokation durch das Tool erst mal unterbunden wird.
Zur Vermeidung von Cursor Invalidations werden vor parallelen Selects auf diesen Tables noch PL/SQL User-Locks im Shared-Modus allokiert.
Die Präsentation findet am Donnerstag, den 22. September 2022 um 14:00 Uhr (CEST) im Raum Krakau statt.
Der Referent ist Dr. Kurt Franke, targens GmbH
Mehr:
Keine Kommentare:
Kommentar veröffentlichen