Added FULL reply to load balancer when all servers out of bandwidth, servers that are out of bandwidth now no longer score at all.
This commit is contained in:
		
							parent
							
								
									2374e64552
								
							
						
					
					
						commit
						539ac17dc0
					
				
					 1 changed files with 13 additions and 4 deletions
				
			
		| 
						 | 
					@ -107,8 +107,12 @@ class hostDetails{
 | 
				
			||||||
      if (bwscore < 0){bwscore = 0;}
 | 
					      if (bwscore < 0){bwscore = 0;}
 | 
				
			||||||
      long long bw_sub = ((addBandwidth * 1000) / availBandwidth);
 | 
					      long long bw_sub = ((addBandwidth * 1000) / availBandwidth);
 | 
				
			||||||
      if (bwscore - bw_sub < 0){bw_sub = bwscore;}
 | 
					      if (bwscore - bw_sub < 0){bw_sub = bwscore;}
 | 
				
			||||||
      score += (bwscore - bw_sub);
 | 
					      if (bwscore - bw_sub > 0){
 | 
				
			||||||
      MEDIUM_MSG("CPU %u, RAM %u, Stream %u, BW %u (-%u) (max %llu MB/s)", 1000-cpu, 1000-((ramCurr * 1000) / ramMax), streams.count(s)?200:0, bwscore, bw_sub, availBandwidth / 1024 / 1024);
 | 
					        score += (bwscore - bw_sub);
 | 
				
			||||||
 | 
					      }else{
 | 
				
			||||||
 | 
					        score = 0;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      MEDIUM_MSG("CPU %u, RAM %u, Stream %u, BW %u (-%u) (max %llu MB/s) -> %u", 1000-cpu, 1000-((ramCurr * 1000) / ramMax), streams.count(s)?200:0, bwscore, bw_sub, availBandwidth / 1024 / 1024, score);
 | 
				
			||||||
      return score;
 | 
					      return score;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    void addViewer(std::string & s){
 | 
					    void addViewer(std::string & s){
 | 
				
			||||||
| 
						 | 
					@ -251,8 +255,13 @@ int handleRequest(Socket::Connection & conn){
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        INFO_MSG("%s scores %u", it->first.c_str(), score);
 | 
					        INFO_MSG("%s scores %u", it->first.c_str(), score);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      INFO_MSG("Winner: %s scores %u", bestHost.c_str(), bestScore);
 | 
					      if (bestScore == 0){
 | 
				
			||||||
      hosts[bestHost].addViewer(stream);
 | 
					        bestHost = "FULL";
 | 
				
			||||||
 | 
					        FAIL_MSG("All servers seem to be out of bandwidth!");
 | 
				
			||||||
 | 
					      }else{
 | 
				
			||||||
 | 
					        INFO_MSG("Winner: %s scores %u", bestHost.c_str(), bestScore);
 | 
				
			||||||
 | 
					        hosts[bestHost].addViewer(stream);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
      H.SetBody(bestHost);
 | 
					      H.SetBody(bestHost);
 | 
				
			||||||
      H.SendResponse("200", "OK", conn);
 | 
					      H.SendResponse("200", "OK", conn);
 | 
				
			||||||
      H.Clean();
 | 
					      H.Clean();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue