Se dau N servere, fiecare server are disponibila o largime de banda fixa. Se doreste hostarea de fisiere in mod mirror (CDN) astfel incat o sursa unica sa intoarca o redirectare spre diverse servere unde fiserul este duplicat.
Regula de redirectare trebuie sa fie controlata procentual dupa traficul disponibil pentru un anume server.
Rezolvarea problemei:
Se dau N numere/variabile reprezentand N parti inegale dintr-un intreg: n1=7, n2=20, n3=90, … ni=K
Deci valoarea intregului este: 7+20+90+…K = M;
Daca M reprezinta 100% , se poate deduce cat reprezinta procentual fiecare variabila. Adica procentul pentru n1 este: (n1*100)/M .
Acum problema de rezolvat:
Sa se selecteze in mod aleator una dintre variabile, n1,n2,n3, … ni astfel incat frecventa de selectarea/alegere sa urmareasca procentul reprezentat de variabila.
Ex.
Avem 3 variabile, a=10, b=40, c=50 , intregul este 100.
Dintre 100 de numere alese 10 identifica pe a, 40 pe b si 50 pe c.
Daca numarul aleator are valoarea 49 care este variabila selectata a, b sau c ?
* valoarile ptr a,b,c sunt alese astfel incat sa fie usor de urmarit, dar ele pot sa fie cu valori diferite: a=41, b=123, c= 330, unde intregul devine suma celor 3, adica 494 !
“tradus” in limbajul IT, echivalam astfel:
- a = server 1, b = server 2 si c= server 3
- server 1 = 10 Mbps
- server 2 = 40Mbps
- server 3 = 50 Mbps
trebuie sa alegem in mod aleator un server, dar frecventa de aparitie a serverelor sa respecte proportia asociata cu largimea de banda disponibila pe serverul respectiv … foarte simplu, nu !?
P.S. Solutia in cod php intr-un articol (sau update) viitor !
Be First to Comment