Subject: [Dime] Load Balancing vs. Request Rejection

From: Hannes Tschofenig <[email-masked]>
Date: Tue, 16 Jul 2013 11:51:38 +0200

Hi Jean Jacques, 

I noticed that in discussions that two concepts get mixed together, namely conveying load information for load balancing and overload information for subsequently rejecting requests. 

In most cases what you would like to do is to keep load balancing within your own domain. In most cases a Diameter client does not even get to see whether you have one or multiple servers when it starts to send a request. All it gets to see is a single entry point. 

Passing load information that is useful for load balancing outside your own realm is 't particularly helpful because what should others do with that information? External nodes cannot easily (and should not) decide about which host they want to send their requests to.

Do you expect information used for load balancing to be distribute outside your own realm? 

With load balancing you can easily have a situation where one server suddenly cannot receive any further requests because one essential resource becomes unavailable, such as a connection to a database. Your active stand-by case is very similar. 

Overload information is, however, different since it is an optimization to what has been originally specified in the Diameter Base protocol. It allows the Diameter client to reject a portion of the requests independently. The question there is how much effort do you want to spend to optimize the protocol? How much do you want to optimize? 

Ciao
Hannes