User:TigroSpottystripes Katsu/ideas/sandbox/off-world storage
Summary
The idea is instead of relying on only LL servers to store data (anything, textures, prim parameters and so on), you would instead only store the URL to where the data is stored and relay that to the clients and other machines that ask for it (things sims would need to read from often and/or quickly would be cached locally on the LL servers).
Some of the benefits of this approach
- People would be able to customize the access control (for example, only sending the data to certain people, or only for people inside a certain sim, or only people that paid for access etc)
- It would even allow for automatic selective self-censoring of avatars (so for example someone could be naked to the eyes of adults, scantly clad for teens and fully covered for kiddies, all at the same time)
- People would be able to host content on their own machines (the URL would need to be updated when the IP changes, or they would need to use a service like DynDNS)
- LL would be offloaded from the burden of hosting potentially controversial content
- LL wouldn't need to spend so much money with storage space and bandwidth
- The same place could be rendered differently for different people, like for example "skinning" a store, so each customer gets the walls in their color of choice, different objects decorating the store etc.
Editing
There would be the need to standardize a protocol for the client to communicate with servers to edit data to allow for clients to still edit things like how it can be done currently; perhaps somthing like PGP signing the messages containing instructions for performing the changes would be a good idea (servers would have the liberty of allowing for more than one person to edit things if the respective admins desires)
For things that can be edited by multiple users at once, there would be the need for clients to handle potential conflicts.
Updating content
It could happen in different ways:
- Push: Servers would push new data to known clients
- Polling: Clients would poll the server for changes (either downloading the same data and doing comparison locally or asking the server if there has been a change)
And possibly other ways. The choice would be the result of a negotiation between client and server.