Hi !
Featured games (85)
games approved by the League of Dukes
Games in Showcase (636)
Games in Android Showcase (178)
games submitted by our members
Games in WIP (686)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Client load-balance?  (Read 2422 times)
0 Members and 1 Guest are viewing this topic.
Offline Nero

Senior Newbie

« Posted 2007-04-27 17:08:16 »

How darkstar manages clients over clusters?

Is there one server that handles all the client connections, some kind of Loginserver? Load-balance clients connection through servers?

It´s quite curious for me because since there is no shard in SGS, somehow you wil need to redistribute clients through server clusters and that means disconnect users and manage them to another location or guess where a new client would be better to go.
Offline Jeff

JGO Coder

Got any cats?

« Reply #1 - Posted 2007-04-28 02:07:20 »

The full answer to that is probably one or more conference papers but here is a basic high level description.

When we talk about load balancing, we are talking about the multi-node production servers, not the SGS SDK.

The multi-node production servers use a distributed object store that makes all data available to all nodes.  You can think of it as a  kind of "clustering" but instead of physical memory being replicated, its as if a large bank of memory is available to all of the processing nodes.  In reality, ist more complicated and involves a combination of fast backing store and local caching.  Ths distributed object store is really the most "labsy' thing about the system.

Each user is assigned a  node through discovery that they connect to.  That node processes all their requests against the shared view of the world contained in the object store.  It gets objects as needed from the objects store and returns them when a task commits. 

In order to allow more efficient caching, the system is designed so load balancing logic can build affinity groups based on the users' access patterns and move then to the same node for processing.  In this regard it is *something* like the old hard-wired systems where a zone is located on a system, but it differs in many ways.  Key among theses are:

(1) it is not zone based but based on the actual data being accessed.
(2) Affinity groups are not  fixed and assigned to fixed machines but come into being as needed  by the access patterns of the data and are assigned wherever it makes the most sense according to the current load of the back end.
(3) The developer has to do *nothing* to create these groups.  he or she just writes their code and the system figures out the bast way at any given time to partition the processing available.
(4) If a processing node fails, the group just reforms  on one or more other nodes and continues processing without significant interruption of the user experience.
(5) Nodes can be added  "on the fly" to add extra capacity and the system balances out the load to include them.

In terms of the actual mechanism used to move clients, part of the client/server protocol is an instruction to the client to move the node it is connected to.  This happens inside of the client API and is invisible to the game coder.

I'm afraid to explain it any deeper is probably a few hours of lecture.  Ill be covering from the POV of the programmer in a bit more detail at my talk at JavaOne.,

Got a question about Java and game programming?  Just new to the Java Game Development Community?  Try my FAQ.  Its likely you'll learn something!
Offline noblemaster

« JGO Spiffy Duke »

Medals: 24
Projects: 10

Age of Conquest makes your day!

« Reply #2 - Posted 2007-04-28 02:39:02 »

Regarding load-balancing, has there testing been done on how well the system scales? Are there any limitations? Would the system be able to handle a really large userbase; let's say 1 million connected players?

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Jeff

JGO Coder

Got any cats?

« Reply #3 - Posted 2007-04-28 03:40:09 »

That is the goal.

We're load testing as we build. Seeing as how the whole system isn't done yet, no we haven't done whole system load tests yet.

Matter of saddling the horse before you can ride it.

Got a question about Java and game programming?  Just new to the Java Game Development Community?  Try my FAQ.  Its likely you'll learn something!
Offline Mr_Light

Senior Devvie

Medals: 1


« Reply #4 - Posted 2007-04-28 14:44:10 »

The full answer to that is probably one or more conference papers

are those papers avail online?

It's harder to read code than to write it. - it's even harder to write readable code.

The gospel of brother Riven: "The guarantee that all bugs are in *your* code is worth gold." Amen brother a-m-e-n.
Offline Jeff

JGO Coder

Got any cats?

« Reply #5 - Posted 2007-04-28 19:15:11 »

are those papers avail online?

No, sorry.  At least one isn't even really written yet.  We do intend a system architecture white paper, just again a question of available time.

Got a question about Java and game programming?  Just new to the Java Game Development Community?  Try my FAQ.  Its likely you'll learn something!
Offline Nero

Senior Newbie

« Reply #6 - Posted 2007-04-30 00:53:22 »

Thanks for the answers Jeff.

Another question about nodes:

In my country, the datacenter co-location racks are way too overpriced. It´s pretty hard to a small team with no money start a business here.
How much traffic, darkstar nodes will consume? Is it possible to rent dedicated servers at another country and the nodes communicated through internet?
It´s maybe hard to request a private network to get a pool of 3 or 4 servers and even if datacenter has this service, it may be way too high to afford. Scale maybe will be a problem for me.
Offline endolf

JGO Coder

Medals: 7
Exp: 15 years

Current project release date: sometime in 3003

« Reply #7 - Posted 2007-04-30 06:30:38 »


The propper back end sounds like it would not be sufficent to use normal hosted servers. Data centers normally use standard ethernet between machines, running at 100 or 1000 mbit, depending on how new they are. Darkstar nodes will be after something faster than that, like infiniband, which starts at 2gbit and goes up to 96gbit (according to wikipedia). I think that would be harder to find in a hosted environment, and certainly won't be cheap.

On the bright side, see this post by Jeff to see how us small devs will be able to get hold of back ends.



Offline Nero

Senior Newbie

« Reply #8 - Posted 2007-04-30 14:57:42 »

Interesting model. I will wait for more info but i think it´s a way to go with Playground. Sounds too good to be true  Smiley
Pages: [1]
  ignore  |  Print  
You cannot reply to this message, because it is very, very old.

Dwinin (63 views)
2015-11-07 13:29:08

Rems19 (77 views)
2015-10-31 01:36:56

Rems19 (69 views)
2015-10-31 01:32:37

williamwoles (103 views)
2015-10-23 10:42:59

williamwoles (91 views)
2015-10-23 10:42:45

Jervac_ (105 views)
2015-10-18 23:29:12

DarkCart (132 views)
2015-10-16 00:58:11

KaiHH (114 views)
2015-10-11 14:10:14

KaiHH (153 views)
2015-10-11 13:26:18

BurntPizza (167 views)
2015-10-08 03:11:46
Rendering resources
by Roquen
2015-11-13 14:37:59

Rendering resources
by Roquen
2015-11-13 14:36:58

Math: Resources
by Roquen
2015-10-22 07:46:10

Networking Resources
by Roquen
2015-10-16 07:12:30

Rendering resources
by Roquen
2015-10-15 07:40:48

Math: Inequality properties
by Roquen
2015-10-01 13:30:46

Math: Inequality properties
by Roquen
2015-09-30 16:06:05

HotSpot Options
by Roquen
2015-08-29 11:33:11 is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!