Home

gebeurtenisordering

Gebeurtenisordering is een begrip uit de informatica dat verwijst naar het bepalen van de volgorde waarin gebeurtenissen zich voordoen. Dit is cruciaal voor het begrijpen van de toestand van een systeem, voor correctie van operationele processen en voor betrouwbare communicatie in gedistribueerde omgevingen. In een enkel proces kan de volgorde vaak duidelijk zijn, maar bij meerdere machines en netwerkvertragingen wordt een eenduidige volgorde moeilijker te bepalen.

Formele benaderingen gebruiken de happen-before-relatie van Lamport, die een partiële volgorde definieert op basis van causaliteit:

Toepassingen omvatten gedistribueerde databases en replicatie, waarin ordering nodig is voor serialisatie en consistentie; event-driven systemen

Uitdagingen zijn onder meer gelijktijdige gebeurtenissen, netwerklatentie en onzekerheden in de volgorde. Systemen gebruiken mechanismen zoals

als
gebeurtenis
a
invloed
heeft
op
b,
dan
ligt
a
voor
b.
Vector
clocks
onderscheiden
meerdere
processen
en
kunnen
causaliteit
nauwkeuriger
aangeven.
Lamport-timestamps
geven
een
globale
volgorde,
maar
laten
soms
onvoldoende
zien
welke
gebeurtenissen
elkaar
daadwerkelijk
hebben
veroorzaakt.
Fysieke
klokken
worden
gesynchroniseerd
(bijv.
met
NTP),
maar
vertragingen
en
klokskew
blijven
een
beperking;
daarom
combineren
systemen
vaak
logische
tijdstempels
met
fysieke
tijdsgegevens
om
een
betrouwbare
ordering
te
bereiken.
vereisen
een
deterministische
verwerking;
en
consensusprotocols
zoals
Paxos
en
Raft
brengen
een
totale
orde
van
voorstellen
en
beslissingen
tot
stand
zodat
alle
knooppunten
dezelfde
staat
hebben.
transacties,
locking
en
snapshot
isolation,
en
passen
vaak
consensus
toe
om
een
gemeenschappelijke
orde
af
te
dwingen.
Het
onderwerp
raakt
tevens
aan
causaliteit,
tijd
en
auditbaarheid
in
systeemontwerp.