These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

Player Features and Ideas Discussion

 
  • Topic is locked indefinitely.
 

Moving away from single-blade systems to a fully distributed model?

Author
Fas Attarac
Perkone
Caldari State
#1 - 2014-02-13 20:23:57 UTC
The fundamental design of the EVE server architecture hasn't changed (that I am aware) since I started paying attention to it years ago. Each system appears to be limited to (at most) a single piece of hardware, and the ability for people to do things in that system is constrained by what that one piece of hardware can do. This design made a lot of sense years ago when EVE was conceived, but I wonder if anyone is considering moving beyond that?

I work at a company designing and supporting massively scalable computer clusters. We distribute storage. We distribute compute. We achieve amazingly low latencies. Computing at this scale has changed a lot in the last ten years, and I suspect it's at the point where running EVE fully distributed across a cluster of machines is achievable. Has any thought been given to doing this?

If this could be accomplished, the resulting architecture seems like it would have some interesting benefits:
- more efficient use of machines, since you could decouple aspects of a single system that used to require 1:1 correspondences due to machine locality
- eliminate session hand-offs between machines; the EVE universe would operate as one machine effectively
- improve robustness to hardware problems, since the architecture could be designed with no "unique" components that would cause a poor user experience if it failed; the request would just get re-routed to another replica of the same service
- instantaneously pack an unbounded amount of action (combat) in a small space; no single machine's constraints would factor into this
- opens the door for changes in game play, like making stargate travel optional if you're willing to operate in empty space for hours between systems.

I'm happy going into some more detail if there's any interest. There may still be insurmountable technical challenges to doing something like this, but solving those is what I do.
Dolorous Tremmens
The Scope
Gallente Federation
#2 - 2014-02-13 20:31:04 UTC
IIRC, Eve runs legacy code that puts rube goldberg machines to shame. The code doesn't support more than one hampster per wheel, or so i've heard.

Get some Eve. Make it yours.

Antillie Sa'Kan
Imperial Shipment
Amarr Empire
#3 - 2014-02-13 20:32:11 UTC
I'm sure CCP will be interested once they finish rewriting the entire back end server architecture to take advantage of multi-threading and distributed computing. That can't take that long right?
Derath Ellecon
University of Caille
Gallente Federation
#4 - 2014-02-13 20:37:52 UTC
I'm sure CCP doesn't have any network engineers or such that both understand the limitations of their code and architecture and just slap stuff together hoping it works.
Sigras
Conglomo
#5 - 2014-02-13 20:41:32 UTC
wow! how revolutionary!

I cant believe nobody had thought of distributed computing in the last 10 years...

Ok, all sarcasm aside, several CCP Devs have said that it would require a complete rewrite of their server software to move a solar system off of a single server.

Not to mention the need for tick by tick synchronization which may mean massive attrition.
Crasniya
Center for Advanced Studies
Gallente Federation
#6 - 2014-02-13 21:09:14 UTC
It's one of those "Nobody remembers how we made this work in the first place, so we aren't going to touch it" problems.

Soraya Xel - Council of Planetary Management 1 - soraya@biomassed.net

Fas Attarac
Perkone
Caldari State
#7 - 2014-02-13 21:12:05 UTC
Sigras wrote:
several CCP Devs have said that it would require a complete rewrite of their server software to move a solar system off of a single server.

I'm certain it would. Are you saying that CCP isn't interested in doing this?

I don't mean to sound like I'm introducing something entirely new to people that I have every reason to believe are quite competent. I spent a lot of time searching these forums, blog posts and articles for any meaningful technical discussion of this and came up largely empty, and couldn't think of a better way to start the discussion than just asking.

Quote:
Not to mention the need for tick by tick synchronization which may mean massive attrition.


Tight synchronization is only necessary for a very specific subset of the game mechanics, and you may have some domains where synchronization is needed within the domain, but not necessarily between domains. Combat is an obviously important example, where you don't want an enemy to get off one last shot before they die simply because of a weakness in the synchronization model, but there are many solutions to this type of problem in distributed systems. The market is another example, but distributed low-latency transactions are well-understood, and the EVE market itself is unlikely to demand much computation anyway; you could probably handle all of the transactions occurring in the game on a single machine.

Anyways, sorry if my post seems irritating. I'm not trying to suggest I know better than the EVE engineers, I'm just trying to float an idea that I didn't see discussed elsewhere before. My main question was "has anyone been thinking about this", to which the answer could simply be "yes."
Trii Seo
Goonswarm Federation
#8 - 2014-02-14 02:02:28 UTC
The biggest culprit behind large load spikes is actually tied to the updates of characters and how that's handled. Given how old this particular piece of code is - requiring pausing of your skill queue to clonejump, for instance, and until recently same thing for plugging in implants - they need to rewrite it from scratch. And probably have it on the timetable - thing is, given how vital this bit is they need to nail it spot-on perfect.

The lack of technical discussion can be easily explained by two facts: CCP isn't too keen on revealing how things run. This is not surprising - the fact that the community is largely tech savvy aside this is not the sort of stuff you want to make public. Also, whenever those threads do crop up there's bound to be an amusing, bleating horde of people that think servers are single-threaded and that multithreading is the silver bullet to all lag woes.

(For starters, they could change the damn cyno icon and make the forums not devour your posts.)

Proud pilot of the Imperium

Arek'Jaalan: Heliograph

Linkxsc162534
Apollo United Systems
#9 - 2014-02-14 05:16:11 UTC
Just always remember.
From the introduction guide I got with a particular FPGA,

Quote:
A programmer had a problem. He thought, "I know, I'll use threads." Now the programmer has two problems.



Yeah I'll leave it at that. Thouhg Ironically FPGAs don't use threads. They don't have code, they are just a fancy electric circuit and everything they do happens simultaneously.
Seliah
Red Cloud Vigil
#10 - 2014-02-14 08:27:06 UTC
Fas Attarac wrote:

- opens the door for changes in game play, like making stargate travel optional if you're willing to operate in empty space for hours between systems.


I don't understand what you mean by that ?
Fas Attarac
Perkone
Caldari State
#11 - 2014-02-14 16:23:10 UTC
Seliah wrote:
I don't understand what you mean by that ?

The use of stargates seems to me to be a technical necessity: the move from one system to another is potentially moving you from one machine in the EVE cluster to another, which involves a bunch of data transfer and hand-off and is disruptive to game play. You need timers and elements added to the game ("gate cloak") to make the session change fair in case the hand-off is slow, and have an in-game "story" behind it to explain the interruption. If the game mechanics were fully distributed, you wouldn't need these movements from server to server as you moved from system to system and the technical need for a "jump" could potentially go away.

With the elimination of system "boundaries" as a technical factor in movement between systems, it becomes possible to make travel between systems work exactly the same as travel between areas within a system. That is, given enough time, you could just warp there. 2.5ly is about 150k AUs, so at 3 AU/second (not counting the time you'd have to stop and recharge your cap), it'd take ~15 hours, which is probably too long, but in the right order of magnitude if you want to introduce new ship equipment like a "long-range warp drive" that can cut that down to an hour or two or something. It opens new opportunities for sneaking into systems or taking "direct" routes between nearby stars that would normally take you a round-about course by way of a sparsely-connected and potentially camped gate network, but it could also be riskier if you encounter hazards along the way with the nearest ally too far away to get to you in time.

Things like local, and system security status, would probably have to change since system borders would no longer be "hard". Probably they'd have to operate based on proximity: maybe security status drops the farther you get from a "patrolled area", which would include all of the stations, belts, etc. in a high-sec system, falling off to 0.0 or something in interstellar space.
Derath Ellecon
University of Caille
Gallente Federation
#12 - 2014-02-14 16:29:47 UTC
Fas Attarac wrote:
Seliah wrote:
I don't understand what you mean by that ?

The use of stargates seems to me to be a technical necessity: the move from one system to another is potentially moving you from one machine in the EVE cluster to another, which involves a bunch of data transfer and hand-off and is disruptive to game play. You need timers and elements added to the game ("gate cloak") to make the session change fair in case the hand-off is slow, and have an in-game "story" behind it to explain the interruption. If the game mechanics were fully distributed, you wouldn't need these movements from server to server as you moved from system to system and the technical need for a "jump" could potentially go away.

With the elimination of system "boundaries" as a technical factor in movement between systems, it becomes possible to make travel between systems work exactly the same as travel between areas within a system. That is, given enough time, you could just warp there. 2.5ly is about 150k AUs, so at 3 AU/second (not counting the time you'd have to stop and recharge your cap), it'd take ~15 hours, which is probably too long, but in the right order of magnitude if you want to introduce new ship equipment like a "long-range warp drive" that can cut that down to an hour or two or something. It opens new opportunities for sneaking into systems or taking "direct" routes between nearby stars that would normally take you a round-about course by way of a sparsely-connected and potentially camped gate network, but it could also be riskier if you encounter hazards along the way with the nearest ally too far away to get to you in time.

Things like local, and system security status, would probably have to change since system borders would no longer be "hard". Probably they'd have to operate based on proximity: maybe security status drops the farther you get from a "patrolled area", which would include all of the stations, belts, etc. in a high-sec system, falling off to 0.0 or something in interstellar space.



The use of stargates seems to me to be a real component of the EVE universe, lore and in game universe mechanics. Regardless of the hardware it runs on, how do you explain an ability for a subcap to be able to make the jump many light years without the gates? Aside from potential technical issues, things like jump gates have a real gameplay element to EVE and make total sense to have.

Bottom line is this whole discussion is largely pointless. It's one thing to talk about in game features. We know the features in the game etc. But outside of CCP nobody really knows the technical back end, what it truly looks like, what it can and cannot do. So to try and give ideas in this area is largely a waste of time.
Linkxsc162534
Apollo United Systems
#13 - 2014-02-14 16:48:08 UTC
Well its all well and good to say "in between spacce" but even with an interceptor sitting at warp the whole trip your still looking at a half hour or so to go between 2 systems. Not withstanding you'd need several stops to recharge your cap. With battleships though these trips would become several hours long, and heavens forbid trying to slowboat it between systems in a cap
Fas Attarac
Perkone
Caldari State
#14 - 2014-02-14 16:57:30 UTC
Derath Ellecon wrote:

The use of stargates seems to me to be a real component of the EVE universe, lore and in game universe mechanics. Regardless of the hardware it runs on, how do you explain an ability for a subcap to be able to make the jump many light years without the gates? Aside from potential technical issues, things like jump gates have a real gameplay element to EVE and make total sense to have.

It can be both. I'm not suggesting removing them or making travel without them easy, nor is this whole notion of gateless travel a requirement at all. I just presented it as one of the ways the game could change given the loss of a technical constraint. If the idea really bothers you, it might be more productive to wait until someone actually plans to do it before objecting.
Fas Attarac
Perkone
Caldari State
#15 - 2014-02-14 17:11:04 UTC
Derath Ellecon wrote:
Bottom line is this whole discussion is largely pointless. It's one thing to talk about in game features. We know the features in the game etc. But outside of CCP nobody really knows the technical back end, what it truly looks like, what it can and cannot do. So to try and give ideas in this area is largely a waste of time.

Thanks for the feedback. If you're interested in learning more about the EVE infrastructure there are actually a lot of interesting interviews and articles with some technical depth to them. For starters, I found the limitations of the "SOL" servers were summarized fairly well here:

http://www.gamasutra.com/view/feature/132563/infinite_space_an_argument_for_.php
JetStream Drenard
Jerkasaurus Wrecks Inc.
Sedition.
#16 - 2014-02-14 17:26:26 UTC
This idea has both validity and COST. Reducing Lag would make a lot of people happy. Just a thought here. Maybe you should approach CCP through your company to formalize a business arrangement instead of using the forum. Or just apply to CCP itself.