[sldev] AppendedAcks

Carlo Wood carlo at alinoe.com
Thu Apr 2 07:51:06 PDT 2009


On Wed, Apr 01, 2009 at 03:15:14PM -0700, Philip Rosedale wrote:
> I have a special place in my heart, though, for anyone who spots a case where
> we are inefficiently sending data.  We need every byte we can get, both in
> terms of latency and total bandwidth implications.  One project I'd love to get
> to (and perhaps have community help with) is a careful examination of all
> existing messages to look for bytes we could save. 

Hey - well, I know an obvious case where we can save lots
and lots of bandwidth:

Stop re-sending the same textures over and over again.

I'm sure I have my cache not a single byte smaller than most
people (I have the slider all the way to the max, 1 GB), but
everytime I go to a new sim and then return home, everything
is gray and apparently has to be re-downloaded.

I frequent maybe 10 or so sims a lot - some more than
others. And the textures that are in those sims have to
be downloaded, again and again and again.

I'm not the only one either. It is completely normal that
friends (people who hang out in the same sims as me, and 
are all the time where I am) say "Sorry, still rezzing"
after they arrive, and are zombies, waiting for the same
data to have been downloaded, again, for a few minutes,
before they see things.

That this is necessary if I go to completely new sim that
I just found with search, of course - but this shouldn't
happen in places that I visit *every* day!

One "solution" would be blow up the cache to huge sizes,
but more logical would be to only blow it up to -say- five
or ten times the size that is needed for all the textures
in one sim, and somehow remember which sim a texture
was download on. The client should keep track of the
*sims* that are frequently visited and give textures
that are downloaded on these sims a special priority
and not erase them from the cache for textures with a
lower priorty.

In the simplest case, then priority could be single bit:
0 meaning "not frequently visited sim" and 1 meaning
"frequently visited sim", but I'd prefer to make a difference
between my home and a dancing that I visit maybe once
a week too (meaning, the textures in my home should
never be removed by textures from ANY other sim). So,
I'd go for at least 2 bit.

Thus, in pseudo-code,

if (new texture not already in cache)
{
  texture priority = priority of current region
  if (cache is full)
  {
     replace texture in cache with the lowest priority
  }
}

It appears to me that 1 GB is enough to contain
all textures of one sim.

I see no reason whatsoever to not increase the cache
(with the above changes) to 10 GB. Why 1 GB is the
*maximum* that is possible is beyond me.

-- 
Carlo Wood <carlo at alinoe.com>


More information about the SLDev mailing list