Pogledajte određenu poruku
Staro 27. 07. 2008.   #1
ivanhoe
Ivan Dilber
Sir Write-a-Lot
 
Avatar ivanhoe
 
Datum učlanjenja: 18.10.2005
Lokacija: Bgd
Poruke: 5.320
Hvala: 104
2.344 "Hvala" u 583 poruka
ivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svimaivanhoe je ime poznato svima
Pošaljite poruku preko Skype™ za ivanhoe
Default updejt cache-a i kako spreciti efekat lavine?

Krenuo sam da radim na jednom sistemu koji ce (bar se nadamo) da ima heavy load, i koristicu agresivno kesiranje gde god mogu. Jedna stvar koja me brine oko te arhitekture je situacija kad kesirani podatak postane nevalidan (expire-uje) i treba ga osveziti. Kod vecine cache sistema koje sam gledao (memcache, APC) ne postoji nikakav sistem zastite da spreci da svi klijenti krenu da istovremeno updejtuju cache, sto (teoretski) moze da stvori strasan peak na bazi (pogotovo ako se osvezavaju i podaci u bazi pa dodje do lockovanja), sto opet za posledicu ima da se sve uspori, pa jos klijenata naleti koji isto krenu da salju upite bazi i onda sve pukne najstrasnije...

koje su tehnike da se to spreci?

Jedna fora koju znam je da se cache ne updejtuje iz klijenta, nego periodicno iz cron procesa, ali to mi nije zgodno bas uvek (jer onda serviram zastarele podatke, sve dok cron ne odradi posao). Druga stvar koja mi je pala na pamet je da se doda neka vrsta semafora, pa kad prvi proces krene da updejtuje, on stavi lock, tako da drugi ne pokusavaju updejt, ali to bas nije trivijalno da se uradi u php-u.
Any other idea?
__________________
Leadership is the art of getting people to want to do what you know must be done.
ivanhoe je offline   Odgovorite uz citat