[sldev] Proposition of cache improvment

Dale Mahalko dmahalko at gmail.com
Tue Apr 21 11:45:08 PDT 2009


I recall these discussions years ago on the SL forums back when nobody
who could actually foment change read them, so this seems old news to
me.

SL tries to be completely stateless. In an ideal world the client
would never cache anything and the whole world would be streamed
constantly from central command. Actually this sounds like the new
"play any 3D video games from a streaming server" idea I hear being
thrown around. It's very bandwidth intensive, and SL seems to be
holding out for a future when everyone has 100 megabit to the home.


If you want a world you can load up from a cache and then only get
updates for changes, the stateless design principle is going to have
to change to something more transactional. This might be too
fundamental of a change for the current design to deal with.

Per-prim transaction tracking is probably way too intensive. But break
the sim up into 8x8 meter chunks (no height limit), and timestamp any
prim changes within each chunk, and now you've got a fast, practical
cache method that doesn't get overly granular.

Client says: I have these cached chunks of the current sim, and I have
these timestamps for each chunk.
Sim says: Here is a list of chunks have changed since your last vist.
All others are unchanged.
Client loads the unchanged cached chunks from disk.
Sim only sends prim data for the changed chunks.


The lurking problem that is not going to go away and can not be solved
is the intellectual property issues. A cache of the world can be
ripped. But hey, a stream of the world using the existing methods can
be ripped too. So might as well make caching fast and reliable
regardless of the fact that it is rippable, because the current
stateless stream method offers no better content protection anyway.
Not improving caching for the sake of trying to prevent content
ripping is basically an invalid premise.

- Dale Mahalko / Scalar Tardis


More information about the SLDev mailing list