Home

Serialiseerbaarheidsbeheersing

Serialiseerbaarheidsbeheersing verwijst naar de verzameling mechanismen die garanderen dat gelijktijdige uitvoering van transacties resulteert in een toestand die bovendien overeenkomt met een volgorde waarin die transacties achter elkaar zouden zijn uitgevoerd. Het doel is om de integriteit van de databank te waarborgen, zodat de uitkomst niet afhankelijk is van de specifieke interleaving van lees- en schrijfoperaties. Een uitvoering die voldoet aan deze eigenschap wordt een serial schedule genoemd; een schema is serialiseerbaar als het equivalente gedrag heeft aan een der seriale schema’s.

Belangrijke concepten

Serialiseerbaarheid vereist dat de zichtbare veranderingen van transacties consistent zijn met een volgorde waarin alle transacties

Methoden en technieken

Two-Phase Locking (2PL) houdt aan dat een transactie in een opbouwfase alle benodigde locks aanvraagt en tijdens

Toepassingsgebied en overwegingen

Serialiseerbaarheidsbeheersing is de standaardisolatieniveau in veel relationele databases. Het biedt de sterkste garantie maar kan de

één
voor
één
zouden
zo
gefabriceerd.
Een
schema
kan
serialiseerbaar
zijn
ondanks
interleaving
als
er
geen
ontregelde
afhankelijkheden
zijn
tussen
lees-
en
schrijfoperaties.
Veelvoorkomende
anomalieën
zoals
dirty
reads,
non-repeatable
reads
en
phantom
reads
worden
voorkomen
door
serialiseerbaarheidsbeheersing.
de
afbraakfase
locks
vrijgeeft;
Strict
2PL
bewaart
locks
tot
na
commit,
wat
herhaalde
aborts
voorkomt
en
herstelbaarheid
garandeert.
Timestamp
ordering
(TO)
kent
elke
transactie
een
tijdstempel
toe
en
bepaalt
voltooide
volgorde
op
basis
van
deze
tijdstempels,
waarbij
conflicterende
operaties
leiden
tot
abort.
Multiversion
Concurrency
Control
(MVCC)
houdt
meerdere
versies
van
data
bij
zodat
lezers
niet
blokkeren
en
schrijvers
nieuwere
versies
aanmaken;
serialiseerbaarheid
kan
behouden
blijven
met
passende
verificatie.
Optimistic
Concurrency
Control
(OCC)
laat
transacties
zonder
voorsteldeLocks
draaien
en
valideert
bij
commit
of
er
geen
conflicten
zijn;
bij
conflicten
volgt
een
abort.
throughput
beïnvloeden
bij
hoge
contention;
MVCC
en
OCC
bieden
vaak
betere
leesconcurrentie,
terwijl
2PL
monotone
blocking
kan
veroorzaken
en
deadlocks
mogelijk
maakt.