CSC 456 Fall 2013/4a bc: Difference between revisions
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);
}
}