|
Home > Archive > Macromedia Flash Server > May 2005 > Syncing Shared Objects on Multiple Servers
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Syncing Shared Objects on Multiple Servers
|
|
| Harper, Chris 2005-05-16, 5:45 pm |
| Okay,
=20
I'm going ahead and building my own scalable/balancing chat system.
It's the lovely Master/Edge server scenario (sometimes called
Master/Slave) where you have the one Master server that just contains
the data from all the Edge servers that the user actually connects too.
=20
So now I have a person joining a room (application instance) on Edge
Server 1. Then somebody else joins the same room (application instance)
on Edge Server 2. They both get added to their respective shared
objects on the server. Now how do I merge the shared objects from both
servers so everybody can have the same data and see each other? Has
anybody found out what the best way of doing this is? Does anybody have
an example?
=20
Chris
=-----------------------------------------------------------
Supported by Fig Leaf Software - http://www.figleaf.com
=-----------------------------------------------------------
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
| |
| Peldi Guilizzoni 2005-05-16, 5:45 pm |
| I would definitely try and keep people in the same room on the same edge. If
the edge goes down, move the whole room to another edge (i.e.have people
automatically reconnect to the backup edge server). Or are you going to have
a single room with so many people in it that you need two or more machines
to handle it? That would be A LOT of people! ;)
Peldi
-----Original Message-----
From: flashcomm-bounces-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
[mailto:flashcomm-bounces-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org] On Behalf Of Harper, Chris
Sent: Monday, May 16, 2005 2:29 PM
To: FlashComm Mailing List
Subject: [FlashComm] Syncing Shared Objects on Multiple Servers
Okay,
I'm going ahead and building my own scalable/balancing chat system.
It's the lovely Master/Edge server scenario (sometimes called
Master/Slave) where you have the one Master server that just contains
the data from all the Edge servers that the user actually connects too.
So now I have a person joining a room (application instance) on Edge
Server 1. Then somebody else joins the same room (application instance)
on Edge Server 2. They both get added to their respective shared
objects on the server. Now how do I merge the shared objects from both
servers so everybody can have the same data and see each other? Has
anybody found out what the best way of doing this is? Does anybody have
an example?
Chris
=---------------------------------------------------------
Supported by Fig Leaf Software - http://www.figleaf.com
=---------------------------------------------------------
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
=-----------------------------------------------------------
Supported by Fig Leaf Software - http://www.figleaf.com
=-----------------------------------------------------------
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
| |
| Harper, Chris 2005-05-17, 2:45 am |
| Thanks Peldi but not really an option. CIO has mandated that it has to
be as scalable as possible. Plus, I want people to be able to preview
video streams in other rooms. I think I'm just gonna have all the edge
servers add to a shared object on the master when a user connects. the
master will then sort the users by room into separate arrays. After
that it will send the appropriate packet of info back to the
corresponding rooms on all the servers connected. Then those rooms will
update the shared object that the client is connected to. See any
pitfalls?
Chris
-----Original Message-----
From: flashcomm-bounces-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
[mailto:flashcomm-bounces-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org] On Behalf Of Peldi
Guilizzoni
Sent: Monday, May 16, 2005 4:21 PM
To: FlashComm Mailing List
Subject: RE: [FlashComm] Syncing Shared Objects on Multiple Servers
I would definitely try and keep people in the same room on the same
edge. If
the edge goes down, move the whole room to another edge (i.e.have people
automatically reconnect to the backup edge server). Or are you going to
have
a single room with so many people in it that you need two or more
machines
to handle it? That would be A LOT of people! ;)
Peldi
-----Original Message-----
From: flashcomm-bounces-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
[mailto:flashcomm-bounces-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org] On Behalf Of Harper,
Chris
Sent: Monday, May 16, 2005 2:29 PM
To: FlashComm Mailing List
Subject: [FlashComm] Syncing Shared Objects on Multiple Servers
Okay,
=20
I'm going ahead and building my own scalable/balancing chat system.
It's the lovely Master/Edge server scenario (sometimes called
Master/Slave) where you have the one Master server that just contains
the data from all the Edge servers that the user actually connects too.
=20
So now I have a person joining a room (application instance) on Edge
Server 1. Then somebody else joins the same room (application instance)
on Edge Server 2. They both get added to their respective shared
objects on the server. Now how do I merge the shared objects from both
servers so everybody can have the same data and see each other? Has
anybody found out what the best way of doing this is? Does anybody have
an example?
=20
Chris
=3D---------------------------------------------------------
Supported by Fig Leaf Software - http://www.figleaf.com
=3D---------------------------------------------------------
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
=3D-----------------------------------------------------------
Supported by Fig Leaf Software - http://www.figleaf.com
=3D-----------------------------------------------------------
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
=-----------------------------------------------------------
Supported by Fig Leaf Software - http://www.figleaf.com
=-----------------------------------------------------------
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
| |
| Stefan Richter 2005-05-17, 2:45 am |
| I have been working on a similar app for a while now. The difference I have
is that it's more of a live support app so I don't have the lobby/room
setup.
My app uses the master slave setup too (slave = node = edge). Initially I
have started with Peldi's code for 'which nodes are available' and have
modified it so that the nodes not only report their alive status but also
query themselves via the admin api for stats and send those stats along to
the master upon ping. The master keeps hold of all stats and once a client
connects it sends him all the stats. The client then makes a decision on
which node server to connect to by giving each node score out of 100 based
on connections, CPU and RAM usage.
There are still some small issues to iron out but all in all it seems to
work ok.
To make live a bit harder for myself I also threw Brian's ticketing
authentication in there...
I also use proxy SOs in my setup. The way it works is that I have 2 types of
clients: admin and customer. When an admin connects he goes through the
process above and then connects to an edge server. Once connected, the edge
reports to the master as to where this admin is connected to.
When a customer connects he asks if the admin is online. If the master
replies yes then the client is placed in a queue on the master. This queue
info is held inside a SO which is proxied to the slaves. That way any admin
can 'pick up' the call and send a request for the customer to come and
connect to his edge.
In the end the proxy SO part was very easy to implement. There were other
issues that made my life a lot harder - in particular finding out that CF
MX7 needs a hotfix or else Remoting can be seriously screwed. A wasted day
later and even that was working...
Obviously your cross server stream previews is another bridge that needs to
be crossed. In my setup this is not an issue as all each customer connects
to an admin on the same instance and server. I guess this is only workable
because I have not got rooms with lots of users. You probably need proxy
streams.
Stefan
> -----Original Message-----
> From: flashcomm-bounces-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org
> [mailto:flashcomm-bounces-1Ss2GqJETD3yZ38Mhd3e/9ZfFG6BLHNm@public.gmane.org] On Behalf Of
> Harper, Chris
> Sent: 17 May 2005 06:22
> To: FlashComm Mailing List
> Subject: RE: [FlashComm] Syncing Shared Objects on Multiple Servers
>
> Thanks Peldi but not really an option. CIO has mandated that
> it has to be as scalable as possible. Plus, I want people to
> be able to preview video streams in other rooms. I think I'm
> just gonna have all the edge servers add to a shared object
> on the master when a user connects. the master will then
> sort the users by room into separate arrays. After that it
> will send the appropriate packet of info back to the
> corresponding rooms on all the servers connected. Then those
> rooms will update the shared object that the client is
> connected to. See any pitfalls?
>
> Chris
>
=-----------------------------------------------------------
Supported by Fig Leaf Software - http://www.figleaf.com
=-----------------------------------------------------------
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
| |
| Dario De Agostini 2005-05-18, 5:49 pm |
| Interesting topic!
I developed a proxied videoconference system some month ago... (with
master-slave architecture)
> Obviously your cross server stream previews is another bridge that needs
> to
> be crossed. In my setup this is not an issue as all each customer connects
> to an admin on the same instance and server. I guess this is only workable
> because I have not got rooms with lots of users. You probably need proxy
> streams.
....and i found out that fcs introduces an horrible delay on live streams
when proxying them (and, no it doesn't depend on line speed because it goes
over 1 second in local network too).
oh, another thing is that proxying remote shared object between a windows
fcs and linux ones is... well... an experience to be made :D
so... good luck...
Dario De Agostini
=-----------------------------------------------------------
Supported by Fig Leaf Software - http://www.figleaf.com
=-----------------------------------------------------------
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcomm
|
|
|
|
|