Asymmetric Load Balancing – Problema de mate, numere aleatoare

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.

Servers Load BalancingRezolvarea 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 !

 

byrev Written by:

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *