[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