Server platform

Open: Focusing On "Big Picture" Technical Practicalities To Get Open Uru Online

Moderator: System Concepts Managers

User avatar
Mac_Fife
Member
Posts: 1239
Joined: Fri Dec 19, 2008 12:38 am
Location: Scotland
Contact:

Server platform

Post by Mac_Fife »

A revelation (to me at least :) ) that came out from the resolution of the problems some experienced after the Dec 2007 server move, was that the Cyan/GameTap servers were running Windows Server 2003.

Questions/observations that most immediately come to mind (and I guess we won't be able to address some of these until we get either code or documentation from Cyan) are:
  1. Can it be readily ported to a Linux platform? Possibly depends on the APIs used?
  2. Will it work on, e.g. WIn2k, XP, Vista without (significant) modification? Just trying to think of the fastest way we can get a workable installation going.
  3. If the answer to b) is "yes", are there licensing restictions on those platforms that limit the number of concurrent clients? I'm not sure on this, but I seem to recall an issue of this kind with those non-server versions of Windows.
When MO:UL first launched, there was something like 20 or so "game servers" (i.e. not including the data and auth servers), but by the end of 2007 this number seemed to have halved.
I don't remember there being any information available on the spec's of the servers Cyan/GT used (but given that they were originally set up a couple of years ago now, I guess in today's terms they probably weren't "top of the range", and it's likely that most machines fans can "donate" will be some way down even on that spec). Chogon referred to the scaleability of the MO:UL servers - it'd be interesting to know if there were any metrics on the number of explorers each server was expected to sustain. This might give some indication of how many machines might be required to create a workable system for a given number of players.

Probably many more questions need asked and answered, but I'm getting "brain fade" right now, and have to get with some other work :(
Mac_Fife
OpenUru.org wiki wrangler
realXCV
Member
Posts: 257
Joined: Sat Dec 13, 2008 2:07 am
Contact:

Re: Server platform

Post by realXCV »

a. Probably.
b. Probably but I don't think a single home machine will be the best thing for a server (if you expect more that 10 people)
c. Max 10 clients on XP pro but according to the eula, it only applies on xp services (file sharing, printing, web sharing, remote access,...)
User avatar
Mac_Fife
Member
Posts: 1239
Joined: Fri Dec 19, 2008 12:38 am
Location: Scotland
Contact:

Re: Server platform

Post by Mac_Fife »

realXCV wrote:c. Max 10 clients on XP pro but according to the eula, it only applies on xp services (file sharing, printing, web sharing, remote access,...)
Yeah, I seemed to recall 5 or 10 on that kind of basis from wayyy back in Windows NT 3.5 days.
Mac_Fife
OpenUru.org wiki wrangler
a'moaca'
Member
Posts: 163
Joined: Sat Dec 13, 2008 11:22 pm

Re: Server platform

Post by a'moaca' »

Of course it can be ported, but I don't think it will be trivial. Porting complex things between Windows and unix usually isn't. And it will be threaded, making it worse.

The Windows threads API differs in a number of ways from Posix threads. I believe some of these differences require changing logic, not just translating function names. It'll depend on what features were used.

Also there is no Posix standard, as far as I know (but I would be happy to be wrong), for a lightweight event notification system similar to the WaitObject stuff. Linux has something kind of like it with epoll, but nothing else has epoll. BSD systems have adopted kevent but of course Linux hasn't. But then, in my experience people think Linux is the end-all of Unix so I guess I will just be out of luck. (I do not know what OS X has.) Maybe they didn't use anything like that but I would be surprised.

Also also, and this is a guess, but I think they are using a Windows API feature that has no equivalent known to me in unix OSes. My guess is that they are using a feature that allows dup'ing a file descriptor to another process (not another thread). In unix you can only pass file descriptors to child processes when forking. But then, maybe Linux has cooked up something for this by now.

I'm sure there is more but those are the things that I go "eww" about.

- a'moaca' (who doesn't actually know the Windows API)
User avatar
pigbristles
Member
Posts: 1
Joined: Sat Dec 20, 2008 6:12 am
Location: 37.337N, 122.025W

Re: Server platform

Post by pigbristles »

a. The UU server ran on Linux, MOUL used Win2k3. Why did they switch to a proprietary O/S? If they needed something that W2k3 had but Linux didn't, well, that makes back-porting to Linux tougher.
b. If they went to W2k3 for server-specific APIs (see (a)), then it might not run out-of-the-box on XP, either. Otherwise, XP and W2k3 seem pretty interchangable in my experience.
c. this one I don't have to guess - on XP, the client restrictions only apply to IIS and Terminal Services (RDP). You can accept() connections till your heap implodes or your CPU melts.

I wonder what the thread-critical-mass needs to be before someone from Cyan does a drive-by with some quick answers? :)

(Oh, and hi, everyone! 1st post. Go Uru!)
User avatar
walts
Member
Posts: 8
Joined: Sat Dec 13, 2008 8:57 pm

Re: Server platform

Post by walts »

If we're considering a commercial host (for a production environment) the Windows and Linux platforms are competitive. About $120 a month buys
* Windows Server 2003 Standard
* IIS 6.0
* Celeron CPU
* 512 MB RAM
* 80 GB SATA Hard Drive
* 2000 GB Data Transfer
The Linux and Windows platforms are within a few dollars of each other for similar hardware.
That's one provider. I have no idea how many users such a server would support, and that is the minimum configuration for a dedicated server. We also need to figure out a way of paying for this, since it certainly will exceed the budgets of most of us to provide any kind of substantial server capacity for free.

As has been said, porting a Windows application of this complexity to Linux is certainly apt to be very complex. At this point, until we know a lot more, I think we should put the idea aside for a while.

The more I read in the forums, and the more I think about this project, it starts to look a lot like herding cats!

I really think that there should be ONE canonical project with Cyan's help and blessing, probably a consortium of the existing guilds. If other individuals want to take the server source and run with it, fine, that's what Open Source is all about, but if any order at all is to prevail, we must channel our efforts in a single direction.

Walt
User avatar
Dot
Member
Posts: 222
Joined: Sat Dec 13, 2008 7:42 am

Re: Server platform

Post by Dot »

Sorry, walts, but for various reasons I suspect that the 'one canonical project' is not going to materialise.

This Open Uru site gives us a good opportunity to pool resources and expertise from across the community, both from independents and from guild members. Let's work with what we've got, and see what transpires.
User avatar
T_S_Kimball
Member
Posts: 27
Joined: Sun Dec 21, 2008 2:05 am
Location: www.mysterium.net
Contact:

Re: Server platform

Post by T_S_Kimball »

Well, that was a fast activation. Thanks. :)

I had a chance to talk to Eric_L this past Mysterium. We briefly discussed the new servers, and I was also surprised about the move to Windows.

[WARNING - high-level conjecture at an equally high-level of technical knowledge]

Apparently the socket code was, again, changed. From what I understand of the discussion, Windows has the ability to take an active, connected file/socket descriptor and pass it to another process. Didn't even know such a thing exists in socket programming, but with Microsoft its kinda hard to discount it either.

Good luck with the backport. :? Personally, I hope I'm wrong...

[/WARNING]

--TSK
a'moaca'
Member
Posts: 163
Joined: Sat Dec 13, 2008 11:22 pm

Re: Server platform

Post by a'moaca' »

T_S_Kimball wrote:Apparently the socket code was, again, changed. From what I understand of the discussion, Windows has the ability to take an active, connected file/socket descriptor and pass it to another process. Didn't even know such a thing exists in socket programming, but with Microsoft its kinda hard to discount it either.
Yes, and I'm the one who told you about that. It's what I meant above by "dup'ing a file descriptor to another process". I want to make it clear to all that it is only MY hypothesis this is in use, not based on any assertion from people who would know for sure.

[Edit: see WSADuplicateSocket()]
User avatar
T_S_Kimball
Member
Posts: 27
Joined: Sun Dec 21, 2008 2:05 am
Location: www.mysterium.net
Contact:

Re: Server platform

Post by T_S_Kimball »

Noted, thanks. Way too much happened in that 36-hour period (along with the 13-hour flight home the evening before), so its been a bit hazy. :/

The statement itself stuck, because of how different the idea was to my (admittedly basic) understanding of network coding the past 20 years. The applications used at my work have very tight network tolerances, to the point that 10-20 ms delays are not tolerable. It's given me a different sense of perspective as a gamer.

--TSK
Post Reply

Return to “System Concepts”