• All submissions to this site are governed by Second Life Project Contribution Agreement. By submitting patches and other information using this site, you acknowledge that you have read, understood, and agreed to those terms.
Issue Details (XML | Word | Printable)

Key: SVC-4467
Type: New Feature New Feature
Status: Open Open
Priority: Normal Normal
Assignee: Unassigned
Reporter: TigroSpottystripes Katsu
Votes: 2
Watchers: 2
Operations

If you were logged in you would be able to see more operations.
2. Second Life Service - SVC

Replace forced sleeps on lsl commands with less restrictive dynamic adaptive throttles on addtional calls of each command

Created: 27/Jun/09 03:29 PM   Updated: 12/Jul/09 01:35 PM
Return to search
Component/s: Performance, Scripts
Affects Version/s: None
Fix Version/s: None

Issue Links:
Relates


 Description  « Hide
the idea is to instead freezing the whole script each time a command has been run, start delaying the repeated execution of an individual command if the previous calls by that same script have been too heavy on the systems.

If it's just a small burst, let it happen, the throtle should only kick in for sustained usage over a significant period of time, and it should be gradual instead of jumping to maximum blockage at first sign of potential overload. It should also be aware of how heavily the systems are loaded at the moment, changing the angle of the gradient to better reflect actual need (increasing the throttle faster if the system is under heavy load, or making the throtle weaker if the system is running light).

Except on cases where a huge enough number of resis agree it would be ok, the throttles at their maximum should not be stronger than the old forced sleeps.

Each different command got it's own throtle, running several different commands that each currently got their own forced sleep shouldn't trigger throtling under normal circunstances.



 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
Lee Ponzu added a comment - 30/Jun/09 11:15 AM
Wonderful idea.

Jahar Aabye added a comment - 12/Jul/09 10:39 AM
I'm not certain that I understand how this proposal would work, exactly. Part of the problem is that there are many different forced sleeps, of many different durations, for many different reasons. There are also other non-sleep based throttles such as the Grey Goo Fence.

Forced sleeps actually have some advantages. They allow for scripters to more accurately estimate the delay that a function will cause. As it is, some scripts will run more slowly under a heavy load, but at least the scripts will sleep uniformly. If you start implementing these "gradient" throttles for every command that currently implements a sleep....oy. Loads of older scripts that were expecting automatic sleeps could suddenly start executing far to quickly on relatively empty regions....except that newer objects that tried to fix that problem would wind up running too slowly in regions with heavy load.

As it is, estimating the effects that automatic script sleeps and/or heavy-use regions will place on a script can be very difficult. Implementing this proposal would only make it more difficult.