User:Vernes Veranes/Static Content Cache
Static Content Cache
Additional caching procedure, implemented on server- as well as viewer-side. Idea is focused on increasing performance for island-sims, mainland implementations not worked out.
Objects can be tagged as being "static". Example: Roads, Walls, Floors, Signs
Assumtions: Cache stores not only prim definitions, but also the uuid of the prim. Servers can handle unsupported messagetypes.
Server: The sim owner tags objects he/she deems to be static accordingly. This will result in a list of uuid's that get collected under a common timestamp along with the sim/region the list is associated to.
Client: I've been told clients do not fare well when unsupported message are presented.
Clients that support this feature will need to request this information from the server. This request contains optionally the timestamp of the previously received uuid-list, or is kept empty. In the case where an timestamp is included, the server checks if it matches with the current list. If it does match, it will only reply with an acknowledgement. If it doesn't match it will reply with a timestamp followed by a list of uuid's This list is stored locally. The timestamped list of uuid's serves as an exclusion list for the pruning mechanism the cache currently applies.
This list is stored indefinitely or until one of the two events occur:
- The sim owner manipulates an object (or any of its sub-parts), causing the sim to drop the timestamped entity.This causes the server to drop it's timestamped list, and responds negative to the client's request for a timestamped list for that sim/region.
- The User manually forces its viewer to dump the timestamped list for a certain sim/region, no longer excluding the associated cache from the pruning mechanism.
Expected result: When a viewer connects to a sim/region of which it has a timestamped uuid list, it will also have all its cached data. Cached data doesn't have to be received by the sim. The assumption is that locally stored content loads faster into the scene then streamed content. Time waiting for the whole scene to load through streaming is made shorter. The user is able to start navigating sooner after arriving.
The server could skip 90% of the time spend streaming static content to viewers that already have the data.
Additional: Is it possible to insert premade cache-files?