[sldev] Proposition of cache improvment

Rob Lanphier robla at lindenlab.com
Tue Apr 21 10:21:54 PDT 2009


On 04/21/2009 09:42 AM, Joshua Bell wrote:
> Here's another crazy idea that intrepid coders could play with - a two 
> level cache, with per-region bucketing and reference counting. Assume 
> the resident visits a limited number of regions very frequently, and 
> assume that region contents change infrequently on the whole. Implement 
> a cache bucket per region. Have items age out of the cache within 
> buckets as infrequently as possible (and reference counted, so assets 
> used in two regions are only purged if it ages out of both). Limit the 
> number of region cache buckets - and possibly make that user-selectable 
> (advanced option) - and weight those by time-spent-in-region.
>   

That looks like a variation of 2Q caching:
https://wiki.secondlife.com/wiki/Texture_cache#Analysis

I'm going to guess this would be a fine improvement. I'd be hesitant to
implement a more complicated algorithm than 2Q just given the fact that
this area gets so much research, and complicated algorithms rarely
perform as well as you might think they would. I suppose that in the
case of the viewer, texture cache accounting overhead is pretty trivial
(as compared to say, a database with thousands of transactions per
second), so there's more wiggle room to get fancier, but I'll bet the
cost of development + QA + ongoing maintenance of a clever solution
can't be justified by the improvement.

Rob


More information about the SLDev mailing list