Why not to think about a code to register the region in OpenDHT, and periodically update that ? ("last online")<br><br>This way not only this becomes quite scalable, but as well lays the foundation for the "everything connected" for the future...<br>
<br>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...<br><br>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 ?<br>
<br>just a couple of cents.<br><br>/d<br><br><br><br><div class="gmail_quote">On Feb 10, 2008 9:10 AM, Stefan Andersson <<a href="mailto:stefan@tribalmedia.se">stefan@tribalmedia.se</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">




<div>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.<br>

 <br>
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.<br>
<br>
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.<br>

 <br>
Best,<br>
/Stefan<br>
<br> <br>

<hr>
<br>
> Subject: RE: [Opensim-dev] region status tracking in GridServer<br>> From: <a href="mailto:brianw@terrabox.com" target="_blank">brianw@terrabox.com</a><br>> To: <a href="mailto:stefan@tribalmedia.se" target="_blank">stefan@tribalmedia.se</a><br>
> CC: <a href="mailto:opensim-dev@lists.berlios.de" target="_blank">opensim-dev@lists.berlios.de</a><br>> Date: Sat, 9 Feb 2008 18:22:45 -0600<div><div></div><div class="Wj3C7c"><br>> <br>> Unfortunately this is fatally flawed since teleports can fail due to<br>
> internet routing issues taht affect only one person, amongst other<br>> movement failures that would cause the client to think a region is<br>> offline vs the server knowing it's offline or online.<br>> <br>
> I'm posting a patch to mantis that lays the foundation for regions beign<br>> online or offline and when they were last heard from by the grid server.<br>> <br>> <br>> <br>> On Sat, 2008-02-09 at 21:25 +0100, Stefan Andersson wrote:<br>
> > Ok, I was to do some research before I replied on this thread, but off<br>> > the top of my head;<br>> > <br>> > first of all, we should define what we want the region status data<br>> > for; the data should guide choice of implementation.<br>
> > <br>> > That said, there is quite a distinct possibility that we can use the<br>> > _clients_ as our agents for detecting offline region servers.<br>> > <br>> > Whenever someone tries to teleport off a region, the source region is<br>
> > informed of this, to be able to downgrade avatar presence to child.<br>> > <br>> > If the teleport fails (the target region is unresponsive) the<br>> > connection comes back to the region so it should upgrade the avatar<br>
> > presence to root again.<br>> > <br>> > (Incidentally, I've filed a mantis on this, since we actually don't<br>> > handle that, and failed teleports results in you coming back to a<br>> > region, but as a 'child' ie being stuck there and possibly causing all<br>
> > kind of havoc with the ClientView)<br>> > <br>> > Now, if we handled the failed teleport correctly, this could also<br>> > notify the grid service that a failed teleport has occurred.<br>> > <br>
> > The grid service could then ping the target region, to check on its<br>> > state.<br>> > <br>> > This is an alternative or complement to grid-wide ping sweeps; you<br>> > probably want both, but could do the sweeps much less frequently.<br>
> > <br>> > Combine this with proper region signon/signoff and I say you got<br>> > options.<br>> > <br>> > Best,<br>> > /Stefan<br>> > <br>> > <br>> > <br>> > ______________________________________________________________________<br>
> > <br>> > > From: <a href="mailto:brianw@terrabox.com" target="_blank">brianw@terrabox.com</a><br>> > > To: <a href="mailto:opensim-dev@lists.berlios.de" target="_blank">opensim-dev@lists.berlios.de</a><br>
> > > Date: Sat, 9 Feb 2008 12:56:10 -0600<br>> > > Subject: [Opensim-dev] region status tracking in GridServer<br>> > > <br>> > > After much IRC discussion I would like to make a couple changes to<br>
> > the<br>> > > regions table.<br>> > > <br>> > > online bool NOT NULL deafult false<br>> > > last_seen int(11) NULL<br>> > > <br>> > > The online column would be updated as a region logs in and out of<br>
> > > GridServers. This way an external management/status application<br>> > doesn't<br>> > > have to pester the grid server for the full list of regions and<br>> > their<br>> > > status. This would also provide data to regions requesting map<br>
> > blocks as<br>> > > to the status of a region (a.ka. LL's Red Regions in the map view).<br>> > > <br>> > > The last_seen column would be of asistance to these same management<br>> > apps<br>
> > > in helping the administrator to determine which regions were long<br>> > term<br>> > > MIA or just plain not wanted anymore by walk away grid members.<br>> > > <br>> > > My main concern is load placed on the grid server and having to ping<br>
> > > regions by external applications having to probe every region<br>> > currently<br>> > > to tell if it's still around or not.<br>> > > <br>> > > To acomplish this i'm workign on a patch to implement region_logout<br>
> > > XMLRPC that would be called via<br>> > Region.Communications.DeregisterRegion<br>> > > (which is currently empty).<br>> > > <br>> > > I woudl also add an update of RegionProfileData as each RPC call si<br>
> > made<br>> > > by a region to GridManager. Database updates would only happen<br>> > > periodicly as regions login and logout.<br>> > > <br>> > > Are there any objections or reasons not to implement this?<br>
> > > <br>> > > _______________________________________________<br>> > > Opensim-dev mailing list<br>> > > <a href="mailto:Opensim-dev@lists.berlios.de" target="_blank">Opensim-dev@lists.berlios.de</a><br>
> > > <a href="https://lists.berlios.de/mailman/listinfo/opensim-dev" target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br>> > <br>> <br><br></div></div></div>
<br>_______________________________________________<br>Opensim-dev mailing list<br><a href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a><br><a href="https://lists.berlios.de/mailman/listinfo/opensim-dev" target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br>
<br></blockquote></div><br>