On 12/6/2015 2:38 PM, Lorin Scraba wrote:
> Daca vrei un early fail gratios de ce nu intorci imediat o eroare daca
> n-ai gasit ce vrei in cache si pui si no-cache prin headere ? Nu stiu
> daca Varnish onoreaza parametrul, dar ar trebui. Asta presupunand ca
> datele care le fetch-uieste php-ul sunt cache-ate la randul lor si
> Varnish e doar dumb url cacher/lb in fata. Or ?
la asta ma si gandesc, singura chestie e ca nu vreau ca eroarea sa
ajunga la client, ca nu 'da bine'; incerc sa-l mai aburesc un pic pana e
gata procesarea initiala (primul request primit), si atunci ii pot servi
direct rezultatul deja existent; daca tot nu e gata dupa un timp
stabilit atunci pot sa-i servesc o eroare frumoasa, la fel cum i-as fi
servit-o in cazul in care toate cererile le tratam in paralel
adica:
- vine primul request, ma apuc sa-l procesez, dureaza 20-30 de secunde
sa zicem
- mai vin inca niste requesturi identice sau asemanatoare (deci posibil
diferite pentru varnish-ul din fata), vad ca se proceseaza deja unul, le
trimit putin la plimbare (pus in standby) pana e gata primul, dar
eliberez php-ul pentru alte cereri simple pe care le pot satisface instant
- primul request s-a terminat, bag rezultatele in cache pentru
urmatoarele cereri, face si varnish-ul un cache la requestul complet
- urmatoarele cereri identice sau asemanatoare se servesc rapid, pentru
ca am deja rezultatele, cel mult fac niste prelucrari minime, care nu
dureaza mult (asta daca mai ajung la php si nu le are deja varnish-ul in
cache)
(momentan excludem tratarea erorilor de procesare la primul request, ala
va fi felul doi sau dupa caz cireasa de pe tort)

la client nu pot sa ma bazez pe ajax, javascript, e musai sa fie
sincron, sau poate stiti voi de vreo metoda de retry HTTP PUR de care eu
nu stiu si sa si functioneze pe toate browserele (dupa cum ziceam nu
cunosc asa ceva, un 503 ramane eroare fatala)

apache-ul sau nginx-ul nu cred ca stiu sa faca ping-pong cu retry-uri,
varnishul cred ca ar merge sa fie convins (ramane de vazut partea cu
delay-ul); intr-adevar, sigur exista variante mult mai inteligente, dar
presupun modificari inclusiv pe partea de client, acolo unde schimbarile
sunt excluse

si nici partea cu cache warmup nu merge dupa cum am zis, ca sa-l citez
pe Petru, am prea multi pesti si rechini, nu pot prezice care asteapta
sa fie pescuit, si mai mult, nu am cum sa aflu daca e peste sau rechin
decat in php, cand deja e prea tarziu pentru decizii cu adevarat inteligente

Alex

_______________________________________________
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui