[ 
https://issues.apache.org/jira/browse/GUACAMOLE-102?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15895446#comment-15895446
 ] 

Nick Couchman commented on GUACAMOLE-102:
-----------------------------------------

So, I was looking at the history of this as well as the commit request that was 
originally opened for this and was thinking about a potential approach.  It 
seems like the changes to the Guacamole Client code could remain pretty minimal:
- Implement a connection weight field for individual connections, but only 
reference it when the connection is part of a Connection Group of type 
BALANCING.  I haven't dug into the parameter vs. attribute vs. arbitrary data 
issue mentioned in the commit request, but a simple connection weight field 
that is a positive integer should do the trick.
- Tweak the Guacamole balancer algorithm from round-robin to weighted 
round-robin, where the default weight of each connection is 1 if not defined, 
can be set manually for the connection, or can be externally manipulated.

The part that I think bears further discussion is the "some other means" of 
manipulating the weight.  Is that something that really belongs in the 
Guacamole Client code, or is it something that, if hooks are provided, might 
belong to some other component or external application?  When you start talking 
about an agent that goes on a remote server to monitor the server and adjust 
the weight, the scope of the "guacamole client" expands a little bit.

Also, if we decide load monitoring/balancing is within the scope of the 
guacamole client, there might be some other existing ways to monitor load that 
don't require reinventing the wheel.  SNMP comes to mind, since agents are 
readily available and easily configurable on most platforms, and there are also 
things like WinRM and WMI that might also provide the required information for 
Windows hosts.  However, if you use existing technologies like SNMP that would 
require something else - either code inside Guacamole or another 
daemon/job/script - to periodically poll the servers in the connection group 
and adjust the weight.

Thoughts?

> Loadbalancing based on resource
> -------------------------------
>
>                 Key: GUACAMOLE-102
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-102
>             Project: Guacamole
>          Issue Type: New Feature
>          Components: guacamole, guacamole-auth-jdbc, 
> guacamole-auth-jdbc-mysql, guacamole-auth-jdbc-postgresql, guacamole-client, 
> RDP
>    Affects Versions: 0.9.10-incubating
>         Environment: CentOS Linux 7 (Core)
> Linux 3.10.0-327.10.1.el7.x86_64
>            Reporter: Werner Novak
>            Priority: Minor
>
> Implementation of an resource based (CPU, Memory, I/O, Loggedin User) 
> balancing in opposite to the current implemented guacamole connections round 
> robin. This is needed because of an large RDP infrastructure (300+ TS), where 
> the terminal server been accessed via multiple RDP load balancers during 
> migration.
> A prototype has been developed in a guacamole fork
> https://github.com/wnovak/incubator-guacamole-client.git



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to