Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Are Textures Purged?

Al Bravo
Retired
Join date: 29 Jun 2004
Posts: 373
01-26-2006 08:59
If I upload a texture then delete it from my inventory (and trash) and it is not referenced by any other object will that texture eventually be deleted from the database?
_____________________
Introvert Petunia
over 2 billion posts
Join date: 11 Sep 2004
Posts: 2,065
01-26-2006 09:16
I would expect not as there are only two means I can think of to accomplish that:
  1. Maintain reference counts to UUIDs as they are associated and disassociated with other UUIDs.
  2. "Garbage collect" the database by doing periodic reference checks and discarding unreferenced elements.
Method (1) is extremely costly on the asset server and wildly error-prone in that accidentally setting a reference count to zero would cause the item to be purged on the next sweep. Recall that there are 1000+ sims that would need to communicate reference / dereference information to the central asset server with attendant race conditions.

Method (2) for a database exceeding the millions (billions?) of entries would have a time complexity of O(n^2) and a space requirement of n bits, as every item could potentially reference any other item. As SL has no scheduled downtime, I cannot imagine when they'd fit in the mark and sweep which is astoundingly large to begin with.

I'm not saying therefore assets don't go away, just that it strikes me at first look to be computationally prohibitive.
Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
01-26-2006 10:05
And yet I've had clothes go to a "not found" texture, and when I went back to where I got them the lot was empty... I assumed that the texture had been deleted.
Introvert Petunia
over 2 billion posts
Join date: 11 Sep 2004
Posts: 2,065
01-27-2006 06:17
From: someone
And yet I've had clothes go to a "not found" texture, and when I went back to where I got them the lot was empty... I assumed that the texture had been deleted.
Given that example, if there were intentional deletion of textures, then that would be a bug in the deletion code as you clearly have an object in inventory that references the texture and therefore it ought not be deleted. There have been historic instances of large-scale database loss, some restored, some not; for obvious reasons, the large scale losses are more likely to be manually restored from backup than smaller ones.

As to whether these were DB bugs, SL bugs, or operator error is not clear, but no system of asset purging should have "untextured" clothes in your inventory.

I suspect that the OP was curious about using texture UUIDs in place of object contents names, in which case, the question is more reasonable because even if one of the purging mechanisms is used, looking into all scripts for a string like "08fa923..." would fail the halting problem and would be worse than computationally infeasible but would enter the realm of computationally impossible. I have an elegant proof for this which unfortunately this box is too small to contain.

Al, this question is probably best addressed to SecondLife Answers.