Home

lockingprotocollen

Lockingprotocollen zijn methoden om gelijktijdige toegang tot gedeelde bronnen te coordineren in omgevingen met meerdere processen of systemen, zoals relationele databases en gedistribueerde toepassingen. Het doel is het voorkomen van conflicterende bewerkingen die tot inconsistenties of onvoorspelbare resultaten kunnen leiden en het waarborgen van serialiseerbare transacties waar mogelijk.

Een kernonderdeel van lockingprotocollen is het gebruik van locks die kunnen worden gecategoriseerd als gedeeld (S)

Veelvoorkomende varianten betreffen pessimistische locking, waarbij men ervan uitgaat dat conflicten zullen voorkomen en locks vooraf

In de praktijk worden lockingprotocollen toegepast in databases en gedistribueerde systemen om consistentie en recoverabiliteit te

of
exclusief
(X).
Gedeelde
locks
staan
gelijktijdige
leesoperaties
toe,
terwijl
exclusieve
locks
schrijfbewerkingen
blokkeren
die
de
bron
kunnen
veranderen.
Lockgranulariteit
bepaalt
op
welk
niveau
de
lock
wordt
toegepast,
bijvoorbeeld
rij-
of
kolomniveau
in
een
database,
of
object-
en
bestandsniveau
in
gedistribueerde
systemen.
Bij
twee-fasen
locking
(2PL)
doorlopen
transacties
een
groeifase
van
het
verwerven
van
locks
gevolgd
door
een
afbouwfase
van
het
vrijgeven
van
locks;
strikt
2PL
houdt
de
locks
pas
vrij
na
commit
of
abort.
worden
verkregen,
versus
optimistische
concurrency
control,
waarbij
men
tijdens
de
uitvoering
geen
locks
behoudt
en
conflicten
achteraf
afhandelt.
Deadlocks
vormen
een
belangrijke
uitdaging:
strategieën
zoals
wacht-die,
wound-wait
of
drevend
detecteren
en
opheffen
helpen
deze
te
voorkomen
of
af
te
handelen.
waarborgen.
Ze
brengen
echter
kosten
mee
voor
blocking,
communicatie
en
complex
lockbeheer,
en
vereisen
afwegingen
tussen
throughput
en
latentie.
Alternatieven
zoals
timestamp-ordering
en
optimistic
concurrency
kaningen
worden
ingezet
afhankelijk
van
workload
en
gewenste
seriële
gedrag.