Switching from geographically-based to owner-based simulation
|
Jesrad Seraph
Nonsense
Join date: 11 Dec 2004
Posts: 1,463
|
09-06-2007 14:45
I find one of the single, largest drawback of SL is its rather large granularity. We have thousands upon thousands of servers happily running simulations of hectares of empty areas, running perpetual loops in thousands of scripts for nothing, etc... while loaded regions cringe under the stress of dozens of client connections in the same area.
A more rational balancing of such a load would easily make SL two or three times more performant, while improving its scalability.
Of course, SL regions cannot simply be duplicated to ease the load, like the shards of various popular MMORPGs, where people are in the same area but don't see each other because they're in a "alternate universe" running on a copy server. They also cannot simply drop empty areas because of the few useful scripts running there.
So I propose a solution: changing the basis upon which stuff is simulated inside SL, by switching from the region-based to owner-based.
That means decoupling the physics, the script running, the asset serving and tracking from being done by the region whichever or whoever happens to be in, but by whichever server the owner of the stuff being simulated or his/her avatar actually has reserved, according to the surface of land owned there as a share of the processing power of this server. Unused processing power (when less people are connected, when prim allotments are not maxed out, etc...) then benefits all people in SL everywhere.
Let me explain this more clearly: say I own one fourth of the land in Everlite. That allocates one fourth of the processing power, or simulation capacity, of Everlite (the actual machine running it at the moment, interchangeably) to simulate my avatar and my objects and run my objects' scripts, wherever those are, and telling people in viewing range of their updates. (Collisions and mere presence would continue being handled by the geographically-local server)
And futhermore, there need not even be an actual machine assigned to be Everlite that will also run my stuff, it can be swapped with any other (for example you could get the less used servers allocated first upon login of avatars), only the amount of processing power matters - meaning you don't necessarily have to split your stuff across multiple servers even if you own land in multiple regions. Side-bonus: the type of servers need not be homogenous, we can have some "big" servers for people who own lots of land, and "small" for people with less tier, and any kind of mix in between. Free accounts can be managed and allocated seperately, which makes it easier for LL to control their costs (avatars and assets could even be run seperately, I guess: a bank of machines dedicated to simulating avatars, another bank for stuff).
One predictable advantage of this is that it makes it possible to keep track and control all of your own objects, wherever they are in SL. Your "worldly" possessions become as easy to access as your inventory, theoretically. When your viewer comes upon object it has no data for, it just asks which server runs sim for the owner of it and opens a connection, which it can later just drop on timeout without having to make any complicated check.
It's much fairer, too, because then you can always at least afford the visitors and interaction you pay for in tier - proportional to the surface of land (which is something SL currently aims to do, but has trouble achieving).
Another advantage that is less evident, is the bandwidth usage. By making each avatar's assigned server take care of informing other viewers of your avatar and associated stuff, people who cram into the same area don't get that info from the local server - saving on the load. Bonus: if you disable collisions locally, then there's a whole lot of bandwidth saving since the servers don't even need to communicate between themselves anymore about interactions, or hardly need to (presence will still have to be tracked), and you can pile even more people there smoothly. Bonus 2: the way it works makes lag happen more on the upstream than downstream - if you saturate your processing power allotment (tier-based) then you only look lagged to other people who are watching you on their viewers, while your own experience is only dependent on the other people's performance share and mainly the local server's performance, so you might see some people being laggy and their stuff being grey, while the rest is smooth and loads up in a snap. That allows land owners to have more control on the experience they can provide to their visitors.
Additionally this solves or at least mitigates another problem: that of having the region's performance go down for everyone because of an obnoxious neighbour: that person's stuff need not be simulated by the same server as yours. It also allows for seamless crossing of region borders because you are always connected to "your" server, independantly of the region you happen to get into: you just open additional connections to more servers as you come into contact of other people and their stuff (not inherently different than the current system, in terms of things rezzing around you with some delay).
The biggest drawback I can see is that heightmap has to be taken care of independantly of the region simulators, because there isn't anything quite like a "region simulator" anymore in this system. That makes it more complicated... but then, heightmap is a kind of data that is rather easy to store, track and deliver.
It also changes the way sim crashes affect people: instead of having a region go down on the map with everything in it, it's specific people and all their stuff tied to the crashed machine that go down. That's where having alts might be useful, for presence backup.
[Edit] Oh, yeah, it also makes it easy-as-pie to ignore a specific person and all their objects. Ad farms ? Me see no ad farms.
Thoughts ?
_____________________
Either Man can enjoy universal freedom, or Man cannot. If it is possible then everyone can act freely if they don't stop anyone else from doing same. If it is not possible, then conflict will arise anyway so punch those that try to stop you. In conclusion the only strategy that wins in all cases is that of doing what you want against all adversity, as long as you respect that right in others.
|
Draco18s Majestic
Registered User
Join date: 19 Sep 2005
Posts: 2,744
|
09-06-2007 19:18
In simpler terms:
Running SL as if regions were instances that can move from one server (hardware) to another in the blink of an eye.
Kinda like how D&D Online manages its instances.
I've suggested this before.
|
ed44 Gupte
Explorer (Retired)
Join date: 7 Oct 2005
Posts: 638
|
09-06-2007 22:11
Am I correct in understanding this to mean that you want to slice up the universe by residents rather than geographic area.
If so, surely this would require so much reprogramming that we are looking at a totally new system with new bugs but perhaps also new scalability. I would not expect this to be popular with the Lindens who have put so much effort into the current system.
Perhaps a better way would be dividing the grid into continents and running each on a powerful sun work station. Think of how much processing is saved by having no sim border crossings. You might be able to run the whole of SL on 10 mini computers!
|
AWM Mars
Scarey Dude :¬)
Join date: 10 Apr 2004
Posts: 3,398
|
09-07-2007 05:14
In a nutshell... are you describing Unicasting the servers? That would make sense, howerver the correct use of load balancers would be more cost effective and less stress on the internal connection hosting/routing. Processing power is just that.. Ram and HD is what seperates the simulators.
_____________________
*** Politeness is priceless when received, cost nothing to own or give, yet many cannot afford - Why do you only see typo's AFTER you have clicked submit? ** http://www.wba-advertising.com http://www.nex-core-mm.com http://www.eml-entertainments.com http://www.v-innovate.com
|
Jesrad Seraph
Nonsense
Join date: 11 Dec 2004
Posts: 1,463
|
09-07-2007 13:35
From: AWM Mars In a nutshell... are you describing Unicasting the servers? Nope. Multicasting, but done differently.
_____________________
Either Man can enjoy universal freedom, or Man cannot. If it is possible then everyone can act freely if they don't stop anyone else from doing same. If it is not possible, then conflict will arise anyway so punch those that try to stop you. In conclusion the only strategy that wins in all cases is that of doing what you want against all adversity, as long as you respect that right in others.
|
Draco18s Majestic
Registered User
Join date: 19 Sep 2005
Posts: 2,744
|
09-07-2007 16:25
From: Jesrad Seraph Nope. Multicasting, but done differently. That's like peanut butter, but not! I'm sorry, but the obsurdity of "it's is but isn't" is, well, obsurd. I think what you're looking for is decentralized object location and routing. It was designed to facilitate large internet applications with millions of users physically distributed around the globe and using a variety of wireless and wired interfaces, specifically in situations where a traditional unstructured network of popular Domain name system servers would fail to perform well.
|
Jesrad Seraph
Nonsense
Join date: 11 Dec 2004
Posts: 1,463
|
09-09-2007 23:24
Let me explain it more simply then:
You login to SL: your viewer gets connected to the server that runs your scripts, manages the permissions and modifications and physics of your objects (using a share of its total processing power corresponding to the share of land you own in total).
Your avatar's movement, the land height map, your inventory and your HUD, are all processed by this same server wherever you go in the Grid.
Let's say you go to a public sandbox. Your viewer connects to the server running that place, and it sends you presence information - it can be just a single UUID key for the owner of stuff and avatar that happen to be there and have requested or sent info within the last minute. When your viewer connects there your own UUID key gets added to the presence list, for example. From this list, your SL client gets* addresses of the various servers to connect to in order to receive the streamed content that happens to be there, instead of receiving everything from the server that runs the place, alone. This is how the massive load of crowded places gets balanced across multiple servers, and how empty places can contribute to relieving that same load.
The local server, which "runs the place" where you are, just has to manage the land owner's content and avatar, this presence list (add ownerkey when an avatar TPs in, or an object crosses sim borders into there, and remove on timeout, for example), keep a connection to the servers corresponding to those ownerkeys so it can provide them with collision info (the same way the sim controls your avatar's movement today) and relay chat.
This method also makes it possible to make someone's entire SL existence and impact disappear from just your viewer - avatar, prims, scripts and particles included. No rendering done, no traffic wasted on it, nothing, if you simply block (blacklist) your viewer from resolving its ownerkey into a server address.
* This supposes a way for associating owner key and server address. Since you've already suggested decentralised routing and name resolution, that's how I'd also suggest it to be done (something like Tapestry, for example). In practice it'd also be cached locally, since the local server has to keep connections to those servers already, for collision and chat.
_____________________
Either Man can enjoy universal freedom, or Man cannot. If it is possible then everyone can act freely if they don't stop anyone else from doing same. If it is not possible, then conflict will arise anyway so punch those that try to stop you. In conclusion the only strategy that wins in all cases is that of doing what you want against all adversity, as long as you respect that right in others.
|
Draco18s Majestic
Registered User
Join date: 19 Sep 2005
Posts: 2,744
|
09-10-2007 08:29
I think I understood that.
Yes, it should be a more distributed load, but the grid was never designed to handle that kind of bandwidth (i.e. bad design) and thus they did things differently to try and keep their internal links from exploding with data.
And thus the pressure is on the sims and they can't rebuild it correctly without taking the entire grid down for weeks.
|
Jesrad Seraph
Nonsense
Join date: 11 Dec 2004
Posts: 1,463
|
09-11-2007 02:15
Let me try to understand this: LL designed their Grid so that sims don't need to communicate too much between each other, and yet each sim is talking all the time to other regions connected by a side, transmitting whole loads of content when people cross sim borders - all things that would be gone under my proposed design.
A sim often have to track, simulate (send the stremed content) and run the collision on dozens of avatars, all connected here and transmitting and receiving traffic heavily, yet managing the very same kind of connection locally, between sim servers, isn't possible ?
I agree that such a profound change would be costly in time and efforts spent reworking the server software, but I doubt it requires any hardware change. I think it even makes it possible to save up a lot more on the outgoing bandwidth (especially the maximum capacity, because the multicasting evens up the traffic loads: lower peaks) of each server than the internal bandwidth it could require to add.
_____________________
Either Man can enjoy universal freedom, or Man cannot. If it is possible then everyone can act freely if they don't stop anyone else from doing same. If it is not possible, then conflict will arise anyway so punch those that try to stop you. In conclusion the only strategy that wins in all cases is that of doing what you want against all adversity, as long as you respect that right in others.
|
Talarus Luan
Ancient Archaean Dragon
Join date: 18 Mar 2006
Posts: 4,831
|
09-11-2007 03:49
What you are talking about is called a "zoneless" world system, and it would require a MASSIVE refactoring of the simulation code to even have a shot of working.
Short response: won't happen in SL; already happening in competing products, though.
|
Draco18s Majestic
Registered User
Join date: 19 Sep 2005
Posts: 2,744
|
09-11-2007 07:59
From: Jesrad Seraph Let me try to understand this: LL designed their Grid so that sims don't need to communicate too much between each other, and yet each sim is talking all the time to other regions connected by a side, transmitting whole loads of content when people cross sim borders - all things that would be gone under my proposed design. How many times do I have to say it: Yes, your system is better, but they can't just flip a switch and migrate over.
|
Jesrad Seraph
Nonsense
Join date: 11 Dec 2004
Posts: 1,463
|
09-13-2007 00:23
Well, I sure hope SL v2 is built this way  It'd make it so easy to shrug off grid attacks, too (enter the perp's key in your viewer blacklist, his content disappear from your world and land).
_____________________
Either Man can enjoy universal freedom, or Man cannot. If it is possible then everyone can act freely if they don't stop anyone else from doing same. If it is not possible, then conflict will arise anyway so punch those that try to stop you. In conclusion the only strategy that wins in all cases is that of doing what you want against all adversity, as long as you respect that right in others.
|
Draco18s Majestic
Registered User
Join date: 19 Sep 2005
Posts: 2,744
|
09-13-2007 06:57
From: Jesrad Seraph Well, I sure hope SL v2 is built this way  It'd make it so easy to shrug off grid attacks, too (enter the perp's key in your viewer blacklist, his content disappear from your world and land). What about hte physics?
|
Haravikk Mistral
Registered User
Join date: 8 Oct 2005
Posts: 2,482
|
09-13-2007 07:40
Was just wondering that too. Unfortunately it's somewhat unfeasible to do. If physics are owner-based and there is a sim with physical objects for 15 different owners then it would be a nightmare to try and calculate. Even if 15 avatars were in a room, if I bump into an avatar then then that could result in having to result in loads of queries to resolve it. Physics by their very nature require a space-based model to compute. However, avatar physics are an interesting case. I've posted a JIRA issue here: http://jira.secondlife.com/browse/VWR-2435Detailing it, be sure to read the comment from that. Basically; the simulator doesn't care how the avatar is moving about, it only cares where it is at any given time so it can communicate this to others, collide things with it (physical objects) or perform sim-crossings.
_____________________
Computer (Mac Pro): 2 x Quad Core 3.2ghz Xeon 10gb DDR2 800mhz FB-DIMMS 4 x 750gb, 32mb cache hard-drives (RAID-0/striped) NVidia GeForce 8800GT (512mb)
|
Jesrad Seraph
Nonsense
Join date: 11 Dec 2004
Posts: 1,463
|
09-13-2007 12:41
When A's object is rolling over B's land, A's server does the computing and controlling for the object according to B's obstacle info.
I mean, this is basic online FPS algorithm problem, right ? But then, such a capacity is not in SL yet.
Alternatively, there are decentralised physics simulation, or multiagent simulations, in which seperate objects run each on their own side and confront their results with each other to resolve collisions. That would be the better option.
_____________________
Either Man can enjoy universal freedom, or Man cannot. If it is possible then everyone can act freely if they don't stop anyone else from doing same. If it is not possible, then conflict will arise anyway so punch those that try to stop you. In conclusion the only strategy that wins in all cases is that of doing what you want against all adversity, as long as you respect that right in others.
|
Haravikk Mistral
Registered User
Join date: 8 Oct 2005
Posts: 2,482
|
09-13-2007 13:14
But you'd be talking about a physics system where you suffer network latency, what about objects that are moving at high speed? Objects currently can travel fast enough that'd easily be passing through 6 or seven different parcels of land /at least/. My concern is that in that case you run the risk of having boundary crossing issues, but on individual parcels/sections of simulators.
Perhaps with avatar and vehicle movement offload onto your client, or somewhere that is specific to you, this could be some ways do-able. But it has the potential to cripple things like rail-networks or anything else that may use high-speed physical items.
I'm not sure, it's a very interesting possibility, as there is potential for these problems to be designed around. The load-balancing of content by person is a logistical nightmare, but it could be possible. LL have had a long time to look at such strategies so who knows.
It's the kind of thing that could warrant an SL 2.0, but which wouldn't actually require us to lose any content.
_____________________
Computer (Mac Pro): 2 x Quad Core 3.2ghz Xeon 10gb DDR2 800mhz FB-DIMMS 4 x 750gb, 32mb cache hard-drives (RAID-0/striped) NVidia GeForce 8800GT (512mb)
|
Jesrad Seraph
Nonsense
Join date: 11 Dec 2004
Posts: 1,463
|
09-14-2007 01:48
From: Haravikk Mistral But you'd be talking about a physics system where you suffer network latency, what about objects that are moving at high speed? Here we're talking about internal network latency between different sims (about a millisecond), also the parcels supposedly change server only when region changes, if the landowners only have land in this particular region. You're right about collision handling though, even if the same server keeps running physics for your avatar as you cross parcels and region boundaries, it'll only be able to keep up with collision with other stuff for as fast as it can get info about it by connecting to other servers. BUT that's already the case with the current model, so it's no drawback.
_____________________
Either Man can enjoy universal freedom, or Man cannot. If it is possible then everyone can act freely if they don't stop anyone else from doing same. If it is not possible, then conflict will arise anyway so punch those that try to stop you. In conclusion the only strategy that wins in all cases is that of doing what you want against all adversity, as long as you respect that right in others.
|
Jesrad Seraph
Nonsense
Join date: 11 Dec 2004
Posts: 1,463
|
09-19-2007 01:54
After reading the thread about airspace and waterspace I think it would make sense to implement my suggestion step by step.
One thing that could be done is to limit the height at which a sim server keeps track of things and people, so that "airspace" (above 768m) becomes managed by another server, just as if it were another region, except it extends over the whole Grid continuously including non-regions. This way you can fly everywhere in SL without hurdles, and if there is no region "under" the airspace you simply can't get below 768m just like you currently cannot cross the "end of world wall" into the ocean or can't land on a parcel from which you are banned.
As this airspace becomes quickly crowded, it can be sharded. Then the shards can be made to communicate the presence of objects and avatars to each other so they can see each other, and then interact and collide with each other too.
Then another step is to add a modified version of this airspace region (or regions) into a waterspace that borders continents ?
And then this server model can be applied to the rest of the sims ?
Side effects: - estate owners could be offered the option to connect their sim to the airspace / waterspace or not, default would be based on whether the sim is visible or not - another layer of clouds could be added in the airspace
_____________________
Either Man can enjoy universal freedom, or Man cannot. If it is possible then everyone can act freely if they don't stop anyone else from doing same. If it is not possible, then conflict will arise anyway so punch those that try to stop you. In conclusion the only strategy that wins in all cases is that of doing what you want against all adversity, as long as you respect that right in others.
|
Haravikk Mistral
Registered User
Join date: 8 Oct 2005
Posts: 2,482
|
09-19-2007 06:47
I'd definitely like to see this done for sea-areas, it is also the most ideal way of testing the feasibility of such of a system on the live grid. As it is currently, while boats are around, there are few good places to really use them. That and water-space by its very nature requires very little actual processing since its mostly empty space anyway. Even if an area of water-space were created (ie not connected to anything) for trying it out, with a few machines governing pieces based on traffic, then it would be extremely interesting to see.
_____________________
Computer (Mac Pro): 2 x Quad Core 3.2ghz Xeon 10gb DDR2 800mhz FB-DIMMS 4 x 750gb, 32mb cache hard-drives (RAID-0/striped) NVidia GeForce 8800GT (512mb)
|