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);

}

}