CSC 456 Fall 2013/4a bc: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
Line 12: Line 12:


Server Load balancing pseudocode
Server Load balancing pseudocode
{
 


server_load_vec_desc = sort_descending(server_load_vec);
server_load_vec_desc = sort_descending(server_load_vec);
Line 36: Line 36:
     remove server_load_vec_desc[0] and corresponding entry in server_load_vec_asc   
     remove server_load_vec_desc[0] and corresponding entry in server_load_vec_asc   
   server_load_vec_desc = sort_descending(server_load_vec_desc);
   server_load_vec_desc = sort_descending(server_load_vec_desc);
}
}
}

Revision as of 15:40, 8 October 2013

Load Balancing

Static Vs. Dynamic Techniques

Static Load balancing

Dynamic Load Balancing

Real World applications of Load Balancing

Examples of Load Balancing in action

Server Load balancing pseudocode


server_load_vec_desc = sort_descending(server_load_vec); server_load_vec_asc = sort_ascending(server_load_vec); while (server_load_vec_desc[0].deviation > DEVIATION_THRESHOLD) {

 populate_range_load_vector(server_load_vec_desc[0].server_name);
 sort descending range_load_vec;
 i=0;
 while (server_load_vec_desc[0].deviation > DEVIATION_THRESHOLD &&
           i < range_load_vec.size()) {
   if (moving range_load_vec[i] from server_load_vec_desc[0] to server_load_vec_asc[0] reduces deviation) {
      add range_load_vec[i] to balance plan
      partial_deviation = range_load_vec[i].loadestimate * loadavg_per_loadestimate;
      server_load_vec_desc[0].loadavg -= partial_deviation;
      server_load_vec_desc[0].deviation -= partial_deviation;
      server_load_vec_asc[0].loadavg += partial_deviation;
      server_load_vec_asc[0].deviation += partial_deviation;
      server_load_vec_asc = sort_ascending(server_load_vec_asc); 
   }
   i++;
 }
 if (i == range_load_vec.size())
   remove server_load_vec_desc[0] and corresponding entry in server_load_vec_asc  
 server_load_vec_desc = sort_descending(server_load_vec_desc);

}