Simon Linden announced today that Region Idling will roll out to the Blue Steel Release Channel this Wednesday. If all goes well it will be completely invisble to Second Life users. So, if we can’t see it what good is it? Well, I’ll ‘splain.
When a region has no avatars in it and no one is looking into the region, what good does it do to run full blast? None. So, the plan is to have a region slow from 45 FPS to 10 FPS and release the CPU to spend more time on other regions. Ideally, the other regions running in the simulator will benefit from the extra CPU cycles.
You can read the announcement here: Region Idling coming to Second Life.
The only likely problem the Lindens are expecting is scripts that use the function llGetRegionTimeDilation() may have a problem. The function is not going to fail. But, if the script is using it as a region monitor to signal a problem with a region, it is likely going to be fooled and report a false positive. Normally 10 FPS is an indication there is a problem. Now going to 10 FPS to idle is an expected behavior. The scripts will have to rewritten.
The FAQ’s on Region Idling
There is a FAQ page up: Region Idling FAQ
Are meeroos going to starve or get fat? That depends on how the scripts are written. Writing scripts to count frames rather than watch a clock is not a good idea. So, I suspect most scripts will be just fine.
How fast is the recovery and how long does it take a region to slow down? The change is fast. At 10 FPS the server is checking every 1/10th of a second, every 100 milliseconds. As soon as the region needs to send data to an avatar it switches back to 45 FPS. When the region has a frame with no avatar requests to fill it slows down. So, if you are standing on the far side of a region with a draw distance of 256m+ looking into a distant region that region will have to send you data and will run at 45 FPS.
If you have HTTP tasks and email and Subscribers running in the region they will bring the region up to 45 FPS ….whenever… they make a network connection. In others words, while a subscriber is sending stuff, the region will run at 45 FPS. If I understand correctly the system is so fast some of the tasks throttles may be long enough that the region will execute a task at 45 FPS and while waiting on the throttle to time out run at 10 FPS. The system should be picking up frames here and there without slowing subscribers or other networking tasks.
In general this looks like a good thing for Second Life.