[sldev] Texture Garbage Collection (was Re: UMA Grid - Offline for a bit)

John Hurliman jhurliman at wsu.edu
Sun Apr 8 19:44:02 PDT 2007


Jason Giglio wrote:
> Callum Lerwick wrote:
>> Not sure how SL generates UUIDs, there's no exact standard, but if
>
> I bet you 5 lindens they just pull 16 bytes out of /dev/urandom, then 
> if it collides do a sequential count down to the next open slot.
>
> I don't think any UUIDs are generated client side.
>
> -Jason 

Send the money to Eddy Stryker in-world, none of the above is correct. 
http://opensecondlife.org:8180/source/xref/linden/indra/llmath/lluuid.cpp

The current time and a random seed are used as input which are MD5ed to 
get the final UUID. UUIDs are used for almost everything and a collision 
usually doesn't matter unless it's in the same context (two assets can't 
have the same UUID, two simulators can't have the same UUID, two parcels 
can't have the same UUID, etc). There is no good way for the client to 
do collision checking for asset uploads, in the extremely rare case of a 
collision while uploading a texture or whatever I believe the server 
will just return an error (or maybe the whole asset cluster will fail, 
haven't tested). The client generally does not get to create UUIDs that 
are stored on the server, the odd case is the client-generated 
transactionID that goes in to the combine() function with the 
secureSessionID (MD5 of the two) to create an assetID. Causing a 
collision here would be theoretically possible, but rainbow table 
attacks are defeated by the secureSessionID salt, and brute forcing to 
create a collision before the secureSessionID expires isn't very feasible.

John Hurliman


More information about the SLDev mailing list