milicagnjatovic / master_rad

1 stars 0 forks source link

Menadžment velikog broja upita #16

Open milicagnjatovic opened 7 months ago

milicagnjatovic commented 7 months ago

Ovde će biti izložena razmatrana zapažanja iz #14 i #15. Biće izložena rešenja problema opterećenosti sistema.

milicagnjatovic commented 7 months ago

Ograničenje broja zahteva koje grader obrađuje u jednom trenutku

Iz dela #15.

Http Grizzly server može da ograniči broj upita koji se obrađuju u jednom trenutku na sledeći način:

  server.getListener("grizzly").getTransport()
                        .getWorkerThreadPoolConfig()
                        .setCorePoolSize(10)
                        .setMaxPoolSize(10);

Na osnovu testiranja je zaključeno da 10 paralelnih izvršavanja upita neće previše usporiti sistem. Usporavanje sistema pravi problem jer će izvršavanje upita preći vremensko ograničenje. Uklanjanje i uvećanje vremenskog ograničenja nema preterano smisla jer neefikasni upiti mogu da okupiraju sistem bez potrebe. Pre pokretanja gradera na serveru je potrebno izvršiti testiranje koliko zahteva može da se paralelizuje.

Smatram da je potrebno postaviti ograničenje na graderu koliko zahteva može da se obradi, a ne oslanjati se da server neće poslati previše zahteva.

Dodatno razmatranje bi bilo da li praviti red upita za izvršavanje, a ne oslanjati se na mogućnos bibiloteke. Generalno, bibiloteke imaju efikasnije implementiran sistem za oavakav menadžment, pa bi "ručna" implementacija dodatno usporiti. Ako razmatramo ove mogućnosti kada je pitanju konkretna implementacija: