Hajutamise lühimärkmed
Allikas: Lambda
								
												
				Miks hajutada?
Suurtes süsteemides võib juhtuda, et:
- üks server ei suuda vbl teenindada
 - ühte serverisse data ei mahu
 - CDN-i idee, data oleks kasutajatele füüsiliselt lähedal kiireks accessiks
 
Näiteks, skypes läks seda kohe alguses vaja.
Väikese süsteemi puhul ei juhtu neid asju kunagi.
Oluline (näite)süsteem: Memcached
Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.
key-value baas
{"http://xx.com/api/people":23,
 "bsesd": "dfsdfsdf",
 ...
} 
põhirakendus: päringute cachimine API päringud
- keyd
 - aeg, millal salvestati
 - data
 
memcachedit on lihtne panna korraga mitme masina peale 10 serverit, igaühes jookseb
variandid mis oleks:
- (memcached ei tee seda) iga server sisaldab kogu datat
 - (seda memcached teeb) iga server sisaldab osa datat
 
uus data tuleb mingi key "k1":
- peame otsustama mis serverisse panna
 -  päring otsib "k1"-te: peame teadma  mis serveris ta on ja sealt küsima. Selleks:
- arvutad key hashi
 - hash("k1") oleks ntx 192202
 - jagad serverite arvuga, saad jäägi: see on serveri nr
 
 
Alternatiivsüsteem: redis.
Veidi keerulisem datastruktuur ja päringud.
Replikeerimine baasides
Põhiststsenaarium:
- data ei mahu ära või
 - server ei jaksa vastata päringutele
 
Jagame osa datat ühte serverisse teise osa teise, kolmanda kolmandasse jne
Mis põhimõtte järgi? Variandid:
-  jagame väga suured tabelid a la memcachedi moodi ridade kaupa, näiteks kasutajanime esitähe järgi:
- a-c: server 1
 - d-k: server 2.
 - ...
 - x-z: server N
 
 
Ehk, osa datat replitseerida, osa jagada.
- osa tabeleid serverisse 1, osa serverisse 2, jne.
 
- eksootiline: osa tulpasid suurest tabelist server 1, osa server 2,