Practically that would simply mean: When the user enters the room he will ask the master: Give me the Server entity for that session (aka "getServerForSession")
There will be no attribute needed in the Rooms Entity for that, and there is no need to spread the server entity across all Users Entities. On a later stage the method "getServerForSession" could be modified so that if the user is of a specific organization, the default (even/uniform/constant load across all slaves/servers) implementation is overwritten with the server from the org. If you don't have any "servers" configured, so you run actually no cluster, it will simply return the current host (or null, what would mean not to change the server's adress at all). Sebastian 2012/11/27 [email protected] <[email protected]> > @Irina That is true. However we would not only need the regional > information about the first user but also about what kind of participants > will join in that room. For example: If the first user is an Australian, it > does not mean that all participants of the conference will be from > Australia. > > I think that for a first implementation an even/uniform/constant load > across all slaves/servers should be the goal. > Cause in that way it will minimize the number of servers needed to handle > a large user base and in that sense minimize costs to handle the cluster. > > Having them served on a server that is regionally next to them would be > another point. I guess on a second iteration we could think about a manual > possibility to bind an organization to several servers. But not on room or > Users level. > > Sebastian > > > > 2012/11/27 Irina Arkhipets <[email protected]> > >> Hi Sebastian, >> >> From my opinion, there is one more reason to have some "pre-defined" >> server >> for the user. If this is a distributed cluster with servers in the >> different >> locations, maybe it's more correct to make a conference on the server >> which >> is nearest to the given user... >> >> Best regards, >> Irina. >> >> -----Original Message----- >> From: [email protected] [mailto:[email protected]] >> Sent: Tuesday, November 27, 2012 11:36 AM >> To: [email protected] >> Subject: Re: [DISCUSS] Manual vs Dynamic (Software Based) Load Balancing >> >> same for "Users" entity. >> There is no need for a "Server" entity in the User object. >> >> Sebastian >> >> >> >> >> 2012/11/27 Maxim Solodovnik <[email protected]> >> >> > The only reason for having "server" for the user/room was balancing. >> > no need for them if it will be done automatically >> > >> > >> > On Tue, Nov 27, 2012 at 11:04 AM, [email protected] < >> > [email protected]> wrote: >> > >> > > Ok then lets go for it. >> > > It would mean that the attribute "server" in the "Rooms" Entity is >> gone. >> > > We would not need it anymore. >> > > >> > > Or is there any need to configure a specific server for a conference >> > room? >> > > >> > > >> > > 2012/11/27 Maxim Solodovnik <[email protected]> >> > > >> > > > I like this approach :) >> > > > >> > > > >> > > > On Tue, Nov 27, 2012 at 10:43 AM, [email protected] < >> > > > [email protected]> wrote: >> > > > >> > > > > Well you can include this meta information in the calculation. >> > > > > The calculation will use the capacity of the room to calculate how >> > > > "free" a >> > > > > conference room is. >> > > > > So the idea would be: >> > > > > Instead of calculating the server load be the number of users >> > currently >> > > > > online, we calc the server load by: >> > > > > 1) Checking which rooms are currently on which servers >> > > > > 2) Calculate the maxUser load based on the maxUsers per conference >> > room >> > > > and >> > > > > build the sum for every server. >> > > > > >> > > > > The first implementation would then just try to organize an >> > > > > even/uniform/constant load across all slaves/servers. >> > > > > >> > > > > Sebastian >> > > > > >> > > > > >> > > > > >> > > > > >> > > > > 2012/11/27 Maxim Solodovnik <[email protected]> >> > > > > >> > > > > > I believe room capacity check should also be added. >> > > > > > I mean in our configuration we have 10 rooms and 2 servers >> > > > > > 9 rooms has capacity of 1-10 >> > > > > > 1 room has capacity of 150 >> > > > > > >> > > > > > in such situation it is better to have room with capacity of 150 >> on >> > > > > > separate server. >> > > > > > >> > > > > > >> > > > > > On Tue, Nov 27, 2012 at 10:30 AM, [email protected] < >> > > > > > [email protected]> wrote: >> > > > > > >> > > > > > > I have a request to discuss regarding clustering. >> > > > > > > >> > > > > > > Status: The syncing of the sessions in the cluster from the >> > slaves >> > > to >> > > > > the >> > > > > > > master is basically ready. So the master of the cluster has a >> > light >> > > > > > version >> > > > > > > of the slave's session object, and it is possible for the >> master >> > to >> > > > > find >> > > > > > > out the load across the cluster. The master can also kick out >> > users >> > > > > from >> > > > > > a >> > > > > > > conference room that is hosted on any slave. >> > > > > > > >> > > > > > > The question is know: How do we calculate which conference >> room >> > is >> > > > > > assigned >> > > > > > > to which server? >> > > > > > > Basically there is no need to have a configuration value in >> the >> > > > > > > organization or conference room, that assigns the room to any >> > > server >> > > > in >> > > > > > the >> > > > > > > cluster. >> > > > > > > You can simply do that dynamically: *As soon as the first user >> > > enters >> > > > > the >> > > > > > > conference room, the cluster checks which server has free >> > > capacities >> > > > > and >> > > > > > > starts the conference room on that slave.* And then anybody >> > joining >> > > > the >> > > > > > > conference will be redirected to the same server. >> > > > > > > >> > > > > > > I basically like this idea, as it makes it more dynamic and it >> is >> > > > > likely >> > > > > > > that you will use your given resources better with such a >> > solution >> > > > then >> > > > > > by >> > > > > > > manually assigning slave/servers to conference rooms (often >> > nobody >> > > > uses >> > > > > > > those rooms and the slave/server will be just a zombie server >> > that >> > > is >> > > > > > > blocked but has nothing todo). >> > > > > > > >> > > > > > > What do you think? >> > > > > > > >> > > > > > > Sebastian >> > > > > > > -- >> > > > > > > Sebastian Wagner >> > > > > > > https://twitter.com/#!/dead_lock >> > > > > > > http://www.webbase-design.de >> > > > > > > http://www.wagner-sebastian.com >> > > > > > > [email protected] >> > > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > -- >> > > > > > WBR >> > > > > > Maxim aka solomax >> > > > > > >> > > > > >> > > > > >> > > > > >> > > > > -- >> > > > > Sebastian Wagner >> > > > > https://twitter.com/#!/dead_lock >> > > > > http://www.webbase-design.de >> > > > > http://www.wagner-sebastian.com >> > > > > [email protected] >> > > > > >> > > > >> > > > >> > > > >> > > > -- >> > > > WBR >> > > > Maxim aka solomax >> > > > >> > > >> > > >> > > >> > > -- >> > > Sebastian Wagner >> > > https://twitter.com/#!/dead_lock >> > > http://www.webbase-design.de >> > > http://www.wagner-sebastian.com >> > > [email protected] >> > > >> > >> > >> > >> > -- >> > WBR >> > Maxim aka solomax >> > >> >> >> >> -- >> Sebastian Wagner >> https://twitter.com/#!/dead_lock >> http://www.webbase-design.de >> http://www.wagner-sebastian.com >> [email protected] >> >> > > > -- > Sebastian Wagner > https://twitter.com/#!/dead_lock > http://www.webbase-design.de > http://www.wagner-sebastian.com > [email protected] > -- Sebastian Wagner https://twitter.com/#!/dead_lock http://www.webbase-design.de http://www.wagner-sebastian.com [email protected]
