Citiraj:
Autor Garko
Dakle imas mjerenja koja potvrdjuju da je raspodjela citanja sektora takva da svaki sektor ima jednaku vjerojatnost da bude procitan u sljedecem requestu? Ako imas molio bih te da ga linkas, bas me zanima.
Jos jedno pitanje - sto ti mislis zasto uopce postoji na racunalima memorijska hijerarhija odnosno cache?
|
Cek, nisam te bas shvatio. Otkud tebi ta tvrdnja o jednakoj raspodjeli citanja sektora, ja ju nisam niti u jednom trenutku rekao, niti sam insinuirao na istu. Ne mogu bas povezati sa nicime sto sam rekao, a da bih ti mogao smisleno odgovoriti. Ajde pojasni malo sto si mislio pitati?
Inace, kako sam vec ranije napomenuo - sve ovisi o primjeni.
Ako imas allaround sustav (recimo tipicni PC), onda imas vise tipova memorije - tvrdi disk, disk cache, RAM, L2 cache, L1 cache. No ovdje je puno lakse odrediti koji podaci ce biti procitani u sljedecem IO ciklusu jer je sve tu visemanje slijedno citanje.
Ako pak imas nekakav audio/video sustav (recimo nekakav video-on-demand sustav), tu mozes komotno veci dio cachea baciti u read-cache jer ce sustav 80% vremena raditi u modu sekvencijalnog citanja i onda nije nikakva mudrost odrediti koji ce biti sljedeci procitani podatak. E, da, iTunes je pak sa druge strane puno zeznutiji sustav koji bi granicio sa OLTP sustavima po svojim karakteristikama, no ovaj bi imao kombinaciju OLTP-a i sekvencijalnog citanja, tako da ces imati velike koristi od read-cachea.
Ali ako imas izrazito stohastican sustav (reci ti meni, jel tebe ovo zivcira ili zabavlja ili samo trollas bezveze?), po tvom - sustav u kojem svaki podatak ima podjednaku vjerojatnost da ce biti sljedeci, sto na velikoj kolicini podataka cini bilokakvo predvidjanje besmislenim, tada je takvom sustavu read-cache doslovno beskoristan. Jedino u slucaju da cache-hit ratio od 0.002% smatras velikim uspjehom. No, vjerojatno postoji ista sansa da ce se meni ispuhati guma od auta preko noci. Nije nevjerojatno, ali je vjerojatnost toliko mala da ce se to desiti da se uopce ne isplati zafrkavati sa time.
Inace, ako te bas zanima, ovi malo veci enterprise sustavi koji imaju brda i brda cachea (>128GB) taj cache koriste vecim dijelom za write-cache, jednim velikim dijelom za cache koji se koristi kod replikacije (sinkrone ili asinkrone) ili izrade klonova/snapshota, i jako malim dijelom za cisti read-cache.
Replikacija - to ti je zapravo repliciranje write-cachea izmedju dva storagea.
Izrada klonova - e, za ovo ti recimo treba read-cache, no to nije nimalo random okolina, vec imas cisto slijedno citanje, tako da imas nesto i za predvidjeti da ti sansa bude veca od 50% da ces pogoditi sljedeci podatak. Izrada snapshota se svodi na random write, i nema bas neke veze sa read operacijama.