[Opensim-dev] terrain and blank assets, do they need to be non temporary?

Justin Clark-Casey jjustincc at googlemail.com
Wed Mar 12 16:01:15 UTC 2008


Sean Dague wrote:
> On Wed, Mar 12, 2008 at 02:09:42PM +0000, Justin Clark-Casey wrote:
>   
>> Sean Dague wrote:

>> I think we also need to build in a reaper at some point, which looks for
>> references to assets in the system, and deletes those not referenced.
>>   
>>     
>> It seems to me that there are two problems with reaping assets
>>
>> 1)  Many LSL functions allow you to reference assets directly by UUID, 
>> so they could not be referenced in the database yet are still expected 
>> to exist.
>>
>> 2)  In grid mode, currently disconnected regions may be references 
>> assets in their region stores.  Checking whether any of these reference 
>> an asset would be a difficult (if not effectively impossible) task.
>>     
>
> It's going to be hard, but something that will need to be sorted out at
> some point, otherwise you've got a massive denial of service attack of
> just uploading textures until you fill up the grid server filesystem.
> If you can never delete anything, ever, you'll blow all your storage at
> some point.
>   
I agree that this is an issue.  In Linden's case I guess this is 
controlled by the fact that you actually have to pay to upload.

Also, even if one were to reap unused assets, a grid which doesn't 
charge (or somehow quota) texture uploads is still vulnerable to an 
attack which retains references to the uploaded textures (in prims, 
inventory or some other means).
> The grid can easily cross reference with Inventory, as well as putting a
> parser in for scripts looking for UUID like things.
>   
UUIDs used in scripts may not be defined statically (e.g. UUIDs could be 
fed in from some external database).
> Then there should be some way for regions to tell the grid all the
> assets they are currently using (by looking at prims).
>
> While I think the problem is hard, I don't think it is intractably hard.
>   
I actually think the script issue does make it difficult.  Although 
possibly one could say that in order to use UUIDs in scripts, one has to 
somehow ensure a reference is retained in the database itself (e.g. 
those assets always remain in the inventory of some avatar).  If it's 
not referenced in such a way, then there is no guarantee that the asset 
exists.

Another possibility, as comes up for discussion every so often, is to 
move away from the model of centrally permanently storing assets in 
favour of a distributed asset storage model.  That is an entirely 
different discussion :-)

--
justincc



More information about the Opensim-dev mailing list