Subject: [Dime] Discussion on draft-ietf-dime-load-02

From: "Gunn, Janet P" <[email-masked]>
Date: Thu, 21 Jul 2016 14:08:06 +0000

I do not think I am going to be able to remotely participate in Friday's DIME meeting, but I do want to make a high level  comment on the discussion about draft-ietf-dime-load-02.

A lot of the current discussion seems to be focusing on the best load balancing ALGORITHM, and the right way to calculate the load VALUE.

I think that this ID needs to focus on the means for SHARING load information, without pre-supposing the way in which the "load value" will be used, or how I is caclulated

I suspect that most of the environments in which load balancing will be deployed will be "walled gardens", so there is not an overwhelming need for  nodes in different environments to use the load value in the same way, or even use the same load balancing approach.

I look forward to reading the minutes, and further discussion on line.

Janet

This electronic message transmission contains information from CSRA that may be attorney-client privileged, proprietary or confidential. The information in this message is intended only for use by the individual(s) to whom it is addressed. If you believe you have received this message in error, please contact me immediately and be aware that any use, disclosure, copying or distribution of the contents of this message is strictly prohibited. NOTE: Regardless of content, this email shall not operate to bind CSRA to any order or other contract unless pursuant to explicit written agreement or government initiative expressly permitting the use of email for such purpose.

---

From: Alan DeKok <[email-masked]>
Date: Thu, 21 Jul 2016 16:37:23 +0200

> A lot of the current discussion seems to be focusing on the best load balancing ALGORITHM, and the right way to calculate the load VALUE.

  I don't see much in the way of a load-balancing algorithm in the draft.  Just a discussion that the systems can use the load values to do load-balancing, and a small discussion on active/active vs active/passive.

  Which part refers to specific algorithms?

> I think that this ID needs to focus on the means for SHARING load information, without pre-supposing the way in which the "load value" will be used, or how I is calculated

  The systems should use "load value" to do load balancing.  That necessitates some discussion of how that value is used.

> I suspect that most of the environments in which load balancing will be deployed will be "walled gardens", so there is not an overwhelming need for  nodes in different environments to use the load…

  I suspect that there are very few stable load-balancing algorithms.  As such, I think everyone will end up implementing pretty much the same thing.

  I do have other concerns with the graph.  Using inverted numbers for "load" is confusing.  Perhaps an explanation that the numbers refer to *capacity* would be good.  And capacity is measured on an arbitrary scale from 0..65535.

  Section A.10 is also confusing:

  When removing a node in a controlled way (e.g. for maintenance
   purpose, so outside a failure case), it might be appropriate to
   progressively reduce the traffic to this node by routing traffic to
   other nodes.  Simple load information (load percentage) would be not
   sufficient.

  Why?  The load numbers of 0 (loaded) to 65535 (unloaded) are just load percentage described in a 16-bit fixed-width number.  Why does a percentage make any difference?

  Further:

   The handling of the node removal is implementation
   specific but it can rely on the evolution of the load information
   received from the node to be removed

  I suspect the simple way to implement node removal is for the node to just gradually report loads leading to 0.  Once the reported load is zero, and it has no active traffic, it can be safely removed.  This should be suggested in the draft as a safe way to remove nodes.

  Also, A.9 says:

  The previous scenarios assume that traffic can be load balanced among
   all peers that are eligible to handle a request.  That is, the peers
   operate in an "active-active" configuration.  In an "active-standby"
   configuration, traffic would be load-balanced among active peers.
   Requests would only be sent to peers in a "standby" state if the
   active peers became unavailable.  For example, requests might be
   diverted to a stand-by peer if one or more active peers becomes
   overloaded.

  If it's possible for the nodes to signal the active/passive state in the protocol, it would help a lot.  It would mean that the difference between active/active and active/passive is just signalling, and not configuration.

  i.e. a node may signal load 65535, but also desire itself to be in the "passive" state.  Perhaps some way of having references would be good.  i.e. "load on system B is 0, unless the load on system A is also 0, in which case load on B is 65535".

  I'm not sure how to implement that, tho.

  Alan DeKok.