H7: Replication Flashcards
(30 cards)
Waarom gebruikt men replicatie? (3)
- Improved performance (minder latency tussen locaties bv.)
- Increased availability
- Data corruptie beveiliging (2f + 1 replicas nodig)
Wat is het CAP (aka Brewer) Theorema?
- Consistency: Nodes see the same data
- Availability: Every request receives a response
- Partition-tolerance: Garanties blijven ook als een fout de communicatie verstoord.
Onmogelijk alle 3 te geven.
Geef een voorbeeld van een toepassing van weak consistency en hoge availability en een voor omgekeerd.
- NMBS app
- Bank App
Welke 2 typen consistency models zijn er?
Client-Centric en Data-Centric
Wat is een consistency model?
Contract tussen client processes en replica datastore. Als client de regels volgt, zal de datastore correct werken. Geeft ook in regels hoe parelelle requests van andere clients geregeld worden.
Hoe werkt strict consistency?
- Identiek aan single machine
- Bij aanpassingen, meteen propageren
- Absolute tijd ordening met globale clock
- Read geeft laatste write in deze tijd ordening
Hoe werkt sequentiële consistency?
- Delay kan bestaan
- Order van operaties is fixed
- Alle processen zien dezelfde order
Wat is causale relatedness? Wat als niet causaal related?
Als hij van een ander proces afhangt, anders concurrent.
Hoe werkt causale consistency?
Alle causale writes in ordening, alles wat concurrent is mag in eender welke volgorde.
Wat is PRAM consistency?
Pipeline Random Access Memory consistency is dat FIFO geldt voor writes van hetzelfde process, voor de rest maakt het niet uit hoe het gebeurt.
Wat is feature per operation consistency? Welke methodes (4)?
Consistency per operatie, hieronder vallen:
- PRAM consistency
- Causaal consistency
- Sequentieel consistency
- Strict consistency
Wat is group consistency? Welke methodes? (3)
Consistency op een groep operaties:
- Weak
- Release
- Entry
Wat is weak consistency?
- Gebruikt synchronisatie variabele S
- Reads worden bij elke S gepropageerd, ervoor alleen lokaal
Wat doet de S- variabele? (3)
- Kan alleen gecalled worden als alle writes overal klaar zijn
- Je kan niet readen of writen totdat de S overal klaar is
- S ordening is sequentieel consistent
Wat is release consistency? Wat zijn de properties? (3)
- Gebruikt acquire en release methodes:
- Aqcuire(S): pullt state
- Release(S): pusht state
Properties:
1. Release kan alleen als Reads en Writes van hetzelfde proces klaar zijn
2. Read en write kunnen niet als niet alle acquires van het proces uitgevoert zijn
3. Synchronisatie operaties zijn altijd FIFO
Wat is lazy release consistency?
Zelfde, maar ipv updates te sturen bij release, wordt deze gedaan bij acquire. Zorgt voor efficientie als acquire en release telkens door zelfde client gedaan worden
Wat is entry consistency?
Data items hebben guarded synchronisatie values:
- Acquire(S): Geeft exclusieve write of niet exclusieve read access tot var. Synchroniseert door value te krijgen van owner (vorige die access had). Is alleen completed als data up to date is lokaal.
- Release(S): Laat access los.
- Wat zijn de 7 data-centric consistency models? Rank ze op sterkte.
- Strict
- Sequantial
- Causal
- PRAM
- Weak
- Release
- Entry
Wat is NoSQL?
Staat voor Not Only SQL, kan dus verschillende datastructuren hebben, is vaak distrirbuted en gebruikt meestal lossere consistency modellen.
Welke data consistency modellen gebruiken:
- MongoDB
- FoundationDB
- Strict
- Sequential
Verschil Client-centric vs Data centric data store?
Client-centric focusses on how the client sees the data, Data-centric op de datastore zelf.
Waarom Client-Centric gebruiken? (4)
- Reads»_space; Writes in aantal
- Heel weinig Write Write confllicts, en als ze er zijn zijn ze easy te resolven
- Data items hebben een owner
- Goed voor slechte netwerk performance en reliability
Wat is eventual consistency?
Alle clients worden uiteindelijk consistent
Wat is monotonische read consistency?
Elke read operatie van een client gaat alleen maar een zelfde of nieuwere versie kunnen returnen.