Hi,

i proposed a reaping strategy that is both type and time based. 
There was no direct response to it, but current development on new 
de-duping cable beach plugins may go a long way to curb asset 
proliferation and the reaper can be developed on that basis. 
Refcounting may be feasible as a positive indication, e.g. to 
indicate something is _definitely_ safe to delete, but a reaper will 
still be required.

Melanie

Buckaroo Mu wrote:
> Melanie wrote:
>> This is something i have though about. However, it would not work in 
>> OSGrid. Regions may go away, and they may go away permanently. 
>> Anything in a prim inventory at that time is refcounted and would 
>> not be released. Ever.
>>   
> In what what in particular would this be worse than the current 
> situation? Yes, some assets would end up staying around forever. 
> However, unlike the current scheme, some... would not.
>> So, you'd need a ref list, to purge invalid refs. That is where the 
>> inpracticability begins. A redf list for each and every asset, 
>> listing either avatar UUID or region UUID?
>>
>>   
> Eep, no - wasn't considering suggesting this.
>> If assets are 51 mio, how long will the reflist table be?
>>
>> Melanie
>>
>> Buckaroo Mu wrote:
>>   
>>> Here's my L$0.02, for what it's worth - why not maintain a 'reference 
>>> count' in the asset entry?
>>>
>>> Resident A creates a prim, takes it into inventory. Asset is created, 
>>> inventory item pointing to asset is created, asset->useagecount++. User 
>>> gives away 15 copies of item, asset->usagecount+=15. Resident A deletes 
>>> original item, inventory item goes away, asset->usagecount--.
>>>
>>> Resident B rezzes item on sim. If item is no-copy, asset->usagecount--. 
>>> If it's copy, and Resident B (or Resident C) takes it back into 
>>> inventory, asset->usagecount++ (they would have two copies of it). 
>>> Resident B deletes both copies from inventory, asset->usagecount -=2.
>>>
>>> If asset->usagecount == 0, asset gets deleted.
>>>
>>> Tell me why this wouldn't work. I'm sure there's a simple reason, but I 
>>> can't think of it. All of this is assuming that the asset is no-mod - 
>>> any change to the asset creates a new UUID, correct? But if the asset is 
>>> rezzed, then taken back into inventory, it should have the same UUID, 
>>> thus adding one to the usage count.
>>>
>>> -Buckaroo
>>>
>>> Melanie wrote:
>>>     
>>>> All you described is design behavior.
>>>>
>>>>
>>>> Prim items in world are not assets. They are stored exclusively in
>>>> the prims tables of the region.
>>>>
>>>> Once taken, they become an asset. The name is totally meaningless,
>>>> it reflects whatever was the name at creation. Nothing else. It
>>>> never changes from there on.
>>>>
>>>> On deleting the inventory item, assets remain. There is no easy or
>>>> practicable way to conclusively say that an asset is trash, because
>>>> we don't know.
>>>>
>>>> In your test case, your (human) mind could know this for a fact,
>>>> however, the silicon mind of the asset server can't.
>>>>
>>>> This is because you may have given the object to another user, or
>>>> put a copy into a prim.
>>>>
>>>> These copies would refer to the same asset, that is what "implictily
>>>> shared" means.
>>>>
>>>> So, any asset may, at any time, have any number of links to it, even
>>>> zero.
>>>>
>>>> Like a website, you don't know who linked to it. If you remove it,
>>>> you leave dead links. Assets are the same. Except, you get "Asset
>>>> missing from database".
>>>>
>>>> So, assetas are NOT 1-to-1 with inventory items, and they _never_
>>>> get deleted.
>>>>
>>>> They have to be reaped, and there is a big discussion over how to
>>>> best do that, running right now.
>>>>
>>>> Melanie
>>>>
>>>>
>>>> Dirk Krause wrote:
>>>>   
>>>>       
>>>>> Hi,
>>>>>
>>>>> I did a little test with a fresh OpenSim installation (yes, thanks for
>>>>> the installer!),
>>>>> to get a grip on what I learned from Melanie yesterday.
>>>>>
>>>>> I wrote a little python script to help me monitor these tables:
>>>>>   inventoryStore/inventoryItems
>>>>>   assetStorage/assets
>>>>> http://pastebin.com/mc9e6574 , be warned: ugly code.
>>>>>
>>>>> I started OpenSim and logged in a 'Test User' with the SL viewer.
>>>>>
>>>>> (Just to mention it - first time log in in as test users creates
>>>>> 4 'blank' entries in assets.)
>>>>>
>>>>> The inventoryItems table was initially empty.
>>>>>
>>>>> Now I rezzed a cube and renamed it to 'p1'.
>>>>> inventoryStore/inventoryItems was still empty.
>>>>> To my surprise no new entry shows up in assetStorage/assets.
>>>>>
>>>>> Picking up the cube ('take') created an entry named 'p1' in the
>>>>> inventory and in the asset table.
>>>>>
>>>>> Now I renamed the cube in Test Users inventory to 'p2'.
>>>>> The name in inventoryStore/inventoryItems changes to 'p2'.
>>>>> The entry in assetStorage/assets stays 'p1'. As mentioned on the list
>>>>> before,
>>>>> the asset name is useless, since the user only sees the name in the
>>>>> inventory.
>>>>>
>>>>> Now I deleted 'p2' in my inventory - 'p2's parentfolderID changes to
>>>>> 'Trash'.
>>>>> Now I emptied the trash - the inventory table is empty again, which is
>>>>> fine,
>>>>> but here's the big one:
>>>>>    the assetStorage/assets still holds the reference to 'p1'.
>>>>>
>>>>> Just to make sure I shut down the simulator and opened it again, and it
>>>>> was still there.
>>>>>
>>>>> Now, doesn't that mean, that the database increases over time with no
>>>>> hope to find
>>>>> these assets that actually should be gone? or is there some magic
>>>>> purging that happens,
>>>>> and that I missed?
>>>>>
>>>>> This would mean that any grid runs into a severe problem over time.
>>>>>
>>>>> Best,
>>>>>   Dirk/Bart
>>>>> _______________________________________________
>>>>> Opensim-dev mailing list
>>>>> Opensim-dev@lists.berlios.de
>>>>> https://lists.berlios.de/mailman/listinfo/opensim-dev
>>>>>
>>>>>
>>>>>     
>>>>>         
>>>> _______________________________________________
>>>> Opensim-dev mailing list
>>>> Opensim-dev@lists.berlios.de
>>>> https://lists.berlios.de/mailman/listinfo/opensim-dev
>>>>
>>>>
>>>>   
>>>>       
>>> _______________________________________________
>>> Opensim-dev mailing list
>>> Opensim-dev@lists.berlios.de
>>> https://lists.berlios.de/mailman/listinfo/opensim-dev
>>>
>>>
>>>     
>> _______________________________________________
>> Opensim-dev mailing list
>> Opensim-dev@lists.berlios.de
>> https://lists.berlios.de/mailman/listinfo/opensim-dev
>>
>>
>>   
> 
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev@lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-dev
> 
> 
_______________________________________________
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev

Reply via email to