<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>*general enthusiasm regarding implementing more and stable protocol*<BR><BR>
/Stefan<BR><BR><BR>

<HR id=stopSpelling>
<BR>
> Date: Fri, 18 Jan 2008 18:26:14 -0500<BR>> From: teravus@gmail.com<BR>> To: opensim-dev@lists.berlios.de<BR>> Subject: [Opensim-dev] Hey all, Grid Comms, border crossings, Request for comments, red regions and tolerance to network failure.<BR>> <BR>> Hi everyone<BR>> <BR>> People are practically begging for more reliable grid comms. So,<BR>> naturally, I want to give it to them. I really want to do it with<BR>> the least amount of work/turnaround time as possible. We've all got<BR>> only so much time to work on something.<BR>> <BR>> So, at least with border crossings, I've observed a few phenomena<BR>> <BR>> 1. Fly off into infinity<BR>> 2. Get put arbitrarily in a spot in the region you were previously in<BR>> and get stuck there<BR>> <BR>> Item one is almost exclusively from child agent disconnects (where a<BR>> region that you're a child agent in says, 'close was called' but you<BR>> didn't actually want it to). Eventually the region will turn red on<BR>> your minimap.<BR>> <BR>> Item number two seems to be corruption of some kind. It could be a<BR>> race condition or lack of synchronization with the client.<BR>> <BR>> Fact: When a region disconnects on your minimap in llsimulators, the<BR>> region will appear again.<BR>> <BR>> If you watch the console you'll see that the region that you're a root<BR>> agent in sends the 'disable simulator' message and then the 'enable<BR>> simulator' message.<BR>> <BR>> This implies that when you get disconnected as a child agent from the<BR>> region you're a child in, 'that region' mentions the fact that 'it<BR>> lost you' to the region you're a root agent in. Then the region<BR>> you're a root agent in sends the 'disable simulator message' and then<BR>> sends the 'enable simulator' message to reconnect you to that region.<BR>> <BR>> Fact: When a region goes red on your minimap with opensim, the region<BR>> will never be available again until you relog and when you try to<BR>> cross the border, you will fly off into infinity. Even if the region<BR>> hasn't turned red *yet*, you will still fly off into infinity.<BR>> <BR>> So, MW suggested I post a request for comments on this topic since it<BR>> has some potential to affect everyone.<BR>> <BR>> Here's what I propose<BR>> <BR>> When sending a child agent notification, the current region is also<BR>> included so that, when a child agent disconnects, the region can tell<BR>> the neighbor that the child is a root agent in to re-inform the agent<BR>> of the neighbor.<BR>> <BR>> Add a routine that the clientview.close method calls in the scene<BR>> which checks for a child agent and sends a 'I lost em' message to the<BR>> region the agent came from. From there the simulator with the root<BR>> agent in it can make the choice to send the child the reconnect<BR>> messages or not.<BR>> <BR>> This will ensure that a child agent connection is established.<BR>> <BR>> Ensuring that a child agent connection is established will make border<BR>> crossings more successful and less of Item one from above will occur.<BR>> <BR>> I'm not looking to re-do the protocol entirely. I want to make it<BR>> more tolerant to the inevitable network failure. I'm not looking to<BR>> change much.<BR>> <BR>> I also don't really want to change any of the existing protocol stuff.<BR>> We need a child agent data update anyway.. and it's half<BR>> implemented already in the OSG1 code(for a month now).<BR>> <BR>> The child agent data update contains things like.. child throttles..<BR>> so the neighbor sims don't flood the avatar, where the avatar is in<BR>> world and what their draw distance is so that we can enable sending<BR>> prim to agents in other regions.<BR>> <BR>> I'm not looking to make OSG2 here. I'm looking to make OSG1 work better.<BR>> <BR>> With that.. comments anyone?<BR>> _______________________________________________<BR>> Opensim-dev mailing list<BR>> Opensim-dev@lists.berlios.de<BR>> https://lists.berlios.de/mailman/listinfo/opensim-dev<BR><BR></body>
</html>