[sldev] Unexpected objects return in group land

Argent Stonecutter secret.argent at gmail.com
Thu Jul 9 18:43:38 PDT 2009

On 2009-07-09, at 04:23, Dale Mahalko wrote:
> On Wed, Jul 8, 2009 at 8:37 PM, Argent
> Stonecutter<secret.argent at gmail.com> wrote:
>> The correct solution (don't rez the object, leave it
>> in inventory) seems too obvious.

> This sounds like a potential race condition, since rez requests are
> not instant and load-in takes time. Assume two people want to rez
> objects on a parcel with limited space. Both attempt to rez a high
> prim object from inventory at the same time (or within milliseconds).

This is a problem that is covered in freshman CS, in the first  
database course you take.

> 1. The sim does a precheck for space availability for #1, finds enough
> room, starts the load-in
> 2. Asset system is being slow again
> 3. The sim does a precheck for space availability for #2, finds that
> another load-in is pending and not completed yet, and so aborts the
> rez attempt.
> 4. Object #`1 rezzes

That's it, the TRANSACTION-COMMIT operation every DBA is intimately  
familiar with.

With a transactionalized system, you can even allow overcommit, and  
abort (return) pending transactions when one completes. A sim in SL  
can handle up to 20,000 prims, because there ARE 20,000 prim sims in  
SL, so allowing up to 5000 prims of overcommit is acceptable.

So A says "I need 1000 prims" and it says "OK" and B says "I need 1000  
prims" and it says "OK, with 300 prims of overcommit". If be rezzes  
first, A gets returned. If you try to rez more than the buffer, then  
you get deferred. If you continue to do so, you get throttled.

More information about the SLDev mailing list