[Opensim-dev] region status tracking in GridServer

Brian Wolfe brianw at terrabox.com
Sun Feb 10 18:00:31 UTC 2008


openDHT looks interesting. :) I'll have to bookmark that for digging
through later. 

On Sun, 2008-02-10 at 15:06 +0100, Dalien Talbot wrote:
> Why not to think about a code to register the region in OpenDHT, and
> periodically update that ? ("last online")
> 
> This way not only this becomes quite scalable, but as well lays the
> foundation for the "everything connected" for the future...
> 
> Grid-wide pings should not be that much of a problem if they are paced
> by the grid server, not by the sims - of course, with the increase of
> the regions the detection time will increase...
> 
> I've looked and apparently the code for talking to opendht is in
> examples in XML-RPC.Net - so we should be able use it quite easily -
> and start pushing the "unscalable" structures/interactions onto the
> OpenDHT ?
> 
> just a couple of cents.
> 
> /d
> 
> 
> 
> On Feb 10, 2008 9:10 AM, Stefan Andersson <stefan at tribalmedia.se>
> wrote:
>         I would not say this is 'fatally flawed' just because it can
>         be the result of one clients connectivity problems; it's still
>         an indication that somebody somewhere had troubles reching the
>         target. That's why it should only be seen as a ping trigger,
>         not as status authoritative.
>          
>         Also, it's not the client that reports on the trouble, it's
>         the source region - which means, that if the client can
>         re-connect to the source region but not to the target, chances
>         are that there's something wrong with the target.
>         
>         If a grid server is the authority for say 6000 servers,
>         frequent grid wide pings becomes quite the task, not to
>         mention the fact that the grid server itself can (and in an
>         heterogenous grid setting, will) experience connectivity
>         problems, just as the client can.
>          
>         Best,
>         /Stefan
>         
>          
>         
>         ______________________________________________________________
>         
>         > Subject: RE: [Opensim-dev] region status tracking in
>         GridServer
>         > From: brianw at terrabox.com
>         > To: stefan at tribalmedia.se
>         > CC: opensim-dev at lists.berlios.de
>         > Date: Sat, 9 Feb 2008 18:22:45 -0600
>         
>         
>         > 
>         > Unfortunately this is fatally flawed since teleports can
>         fail due to
>         > internet routing issues taht affect only one person, amongst
>         other
>         > movement failures that would cause the client to think a
>         region is
>         > offline vs the server knowing it's offline or online.
>         > 
>         > I'm posting a patch to mantis that lays the foundation for
>         regions beign
>         > online or offline and when they were last heard from by the
>         grid server.
>         > 
>         > 
>         > 
>         > On Sat, 2008-02-09 at 21:25 +0100, Stefan Andersson wrote:
>         > > Ok, I was to do some research before I replied on this
>         thread, but off
>         > > the top of my head;
>         > > 
>         > > first of all, we should define what we want the region
>         status data
>         > > for; the data should guide choice of implementation.
>         > > 
>         > > That said, there is quite a distinct possibility that we
>         can use the
>         > > _clients_ as our agents for detecting offline region
>         servers.
>         > > 
>         > > Whenever someone tries to teleport off a region, the
>         source region is
>         > > informed of this, to be able to downgrade avatar presence
>         to child.
>         > > 
>         > > If the teleport fails (the target region is unresponsive)
>         the
>         > > connection comes back to the region so it should upgrade
>         the avatar
>         > > presence to root again.
>         > > 
>         > > (Incidentally, I've filed a mantis on this, since we
>         actually don't
>         > > handle that, and failed teleports results in you coming
>         back to a
>         > > region, but as a 'child' ie being stuck there and possibly
>         causing all
>         > > kind of havoc with the ClientView)
>         > > 
>         > > Now, if we handled the failed teleport correctly, this
>         could also
>         > > notify the grid service that a failed teleport has
>         occurred.
>         > > 
>         > > The grid service could then ping the target region, to
>         check on its
>         > > state.
>         > > 
>         > > This is an alternative or complement to grid-wide ping
>         sweeps; you
>         > > probably want both, but could do the sweeps much less
>         frequently.
>         > > 
>         > > Combine this with proper region signon/signoff and I say
>         you got
>         > > options.
>         > > 
>         > > Best,
>         > > /Stefan
>         > > 
>         > > 
>         > > 
>         > >
>         ______________________________________________________________________
>         > > 
>         > > > From: brianw at terrabox.com
>         > > > To: opensim-dev at lists.berlios.de
>         > > > Date: Sat, 9 Feb 2008 12:56:10 -0600
>         > > > Subject: [Opensim-dev] region status tracking in
>         GridServer
>         > > > 
>         > > > After much IRC discussion I would like to make a couple
>         changes to
>         > > the
>         > > > regions table.
>         > > > 
>         > > > online bool NOT NULL deafult false
>         > > > last_seen int(11) NULL
>         > > > 
>         > > > The online column would be updated as a region logs in
>         and out of
>         > > > GridServers. This way an external management/status
>         application
>         > > doesn't
>         > > > have to pester the grid server for the full list of
>         regions and
>         > > their
>         > > > status. This would also provide data to regions
>         requesting map
>         > > blocks as
>         > > > to the status of a region (a.ka. LL's Red Regions in the
>         map view).
>         > > > 
>         > > > The last_seen column would be of asistance to these same
>         management
>         > > apps
>         > > > in helping the administrator to determine which regions
>         were long
>         > > term
>         > > > MIA or just plain not wanted anymore by walk away grid
>         members.
>         > > > 
>         > > > My main concern is load placed on the grid server and
>         having to ping
>         > > > regions by external applications having to probe every
>         region
>         > > currently
>         > > > to tell if it's still around or not.
>         > > > 
>         > > > To acomplish this i'm workign on a patch to implement
>         region_logout
>         > > > XMLRPC that would be called via
>         > > Region.Communications.DeregisterRegion
>         > > > (which is currently empty).
>         > > > 
>         > > > I woudl also add an update of RegionProfileData as each
>         RPC call si
>         > > made
>         > > > by a region to GridManager. Database updates would only
>         happen
>         > > > periodicly as regions login and logout.
>         > > > 
>         > > > Are there any objections or reasons not to implement
>         this?
>         > > > 
>         > > > _______________________________________________
>         > > > Opensim-dev mailing list
>         > > > Opensim-dev at lists.berlios.de
>         > > > https://lists.berlios.de/mailman/listinfo/opensim-dev
>         > > 
>         > 
>         
>         
>         
>         _______________________________________________
>         Opensim-dev mailing list
>         Opensim-dev at lists.berlios.de
>         https://lists.berlios.de/mailman/listinfo/opensim-dev
>         
> 




More information about the Opensim-dev mailing list