aboutsummaryrefslogtreecommitdiff
path: root/pipermail/nel/2001-February/000217.html
blob: abdd65c145ca2a05b98f7c439f11fb185284d748 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
 <HEAD>
   <TITLE> [Nel] Dynamic load balancing?</TITLE>
   <LINK REL="Index" HREF="index.html" >
   <LINK REL="made" HREF="mailto:jmark4%40home.com">
   <LINK REL="Previous"  HREF="000232.html">
   <LINK REL="Next" HREF="000229.html">
 </HEAD>
 <BODY BGCOLOR="#ffffff">
   <H1>[Nel] Dynamic load balancing?</H1>
    <B>Jared Mark</B> 
    <A HREF="mailto:jmark4%40home.com"
       TITLE="[Nel] Dynamic load balancing?">jmark4@home.com</A><BR>
    <I>Mon, 19 Feb 2001 15:43:59 -0600</I>
    <P><UL>
        <LI> Previous message: <A HREF="000232.html">[Nel] Dynamic load balancing?</A></li>
        <LI> Next message: <A HREF="000229.html">[Nel] Dynamic load balancing?</A></li>
         <LI> <B>Messages sorted by:</B> 
              <a href="date.html#217">[ date ]</a>
              <a href="thread.html#217">[ thread ]</a>
              <a href="subject.html#217">[ subject ]</a>
              <a href="author.html#217">[ author ]</a>
         </LI>
       </UL>
    <HR>  
<!--beginarticle-->
<PRE>Okay, so what you're saying is basically this...

By seperating the services, you can have a cluster of machines, each running
different services, and thus, keeping the load down across the board.  You
would have a single system, for example, handling just combat resolution,
and you would have another system that would keep track of the database...
or on an even more molecular level (assuming you have a very large world
with huge database demands) a database service that is strictly dedicated to
handling certain types of objects (like dynamic world objects such as rocks
and such, as opposed to character objects like their posessions in their
backpacks for example).

You would have other servers running the service managers for the AI of the
monsters, etc, etc, etc...

So instead of dividing up the world into geographical sectors and having a
single system handle each sector... you would divide the world up into
different processes, and have each system handle the specific process for
the entire world.

Let me know if I'm getting pretty close to what you're trying to say here.
;)  My only question on the whole thing would be... what happens if you run
into a problem where activity on a process gets to be too much for a
server... would you be forced to upgrade that server?  Or could you
theoretically split the process between two systems?  (running the same
serice twice in the same cluster, on different systems).

----- Original Message -----
From: &quot;Vincent Archer&quot; &lt;<A HREF="mailto:archer@nevrax.com">archer@nevrax.com</A>&gt;
To: &lt;<A HREF="mailto:nel@nevrax.org">nel@nevrax.org</A>&gt;
Sent: Monday, February 19, 2001 10:33 AM
Subject: Re: [Nel] Dynamic load balancing?


&gt;<i> According to Glaze:
</I>&gt;<i> &gt; Hello,
</I>&gt;<i> &gt;
</I>&gt;<i> &gt; I have one &quot;small&quot; question and I hope this is the right place to ask
</I>it. I
&gt;<i> &gt; was just wonder how (or if) you will solve the question of how to
</I>balance
&gt;<i> &gt; the workload on the game servers, will you use some kind of dynamic load
</I>&gt;<i> &gt; balancing or have you opted for another approach.
</I>&gt;<i>
</I>&gt;<i> Hmm, I realise I've explained what is dynamic load balancing, but I
</I>&gt;<i> haven't answered this question.
</I>&gt;<i>
</I>&gt;<i> Let's hope we have a good discussion on this :)
</I>&gt;<i>
</I>&gt;<i> If you look at some of the basics in the... ok in the future design
</I>&gt;<i> documents, you see we're working with a kind of ORB approach, with
</I>&gt;<i> a naming service, which lets you discuss with specific services.
</I>&gt;<i>
</I>&gt;<i> We're aiming for a functional approach, not the classic EQ/UO/AC
</I>&gt;<i> geographical approach. In that classic model, each processus is a
</I>&gt;<i> complete copy of the code. It contains everything, from spell effects
</I>&gt;<i> to pathfinding to combat code. Each process serves a specific &quot;area&quot;,
</I>&gt;<i> which is defined by an X/Y/Z box (or, for EQ, a zone ID number, since
</I>&gt;<i> each area is strictly separate).
</I>&gt;<i>
</I>&gt;<i> We're not going to use this approach. Chiefly because static allocation
</I>&gt;<i> fails when you put too many objects in the same area (be it because a
</I>&gt;<i> guild has decided to hold a meeting of all its 350 members there, or
</I>&gt;<i> because we want to have an event with an army of 100 mobs spawning).
</I>&gt;<i> And, as I explained somewhere else, dynamic allocation means:
</I>&gt;<i> 1) A complete lack of control on what process is doing what, and
</I>&gt;<i> 2) A need for a very fast way of finding who is near you and under
</I>&gt;<i>    which process control
</I>&gt;<i>
</I>&gt;<i> What we're aiming for is a functional approach. That is, each service
</I>&gt;<i> provides specific functions. For example, all items in the game are
</I>&gt;<i> handled by a single service. Combat runs on a separate service.
</I>&gt;<i> And so on.
</I>&gt;<i>
</I>&gt;<i> I'll let you imagine how this works, and then will further explain as
</I>&gt;<i> you try to shoot holes into that design. :)
</I>&gt;<i>
</I>&gt;<i> --
</I>&gt;<i> Vincent Archer                                         Email:
</I><A HREF="mailto:archer@nevrax.com">archer@nevrax.com</A>
&gt;<i>
</I>&gt;<i> Nevrax France.                              Off on the yellow brick road
</I>we go!
&gt;<i> _______________________________________________
</I>&gt;<i> Nel mailing list
</I>&gt;<i> <A HREF="mailto:Nel@nevrax.org">Nel@nevrax.org</A>
</I>&gt;<i> <A HREF="http://www.nevrax.org/mailman/listinfo.cgi/nel">http://www.nevrax.org/mailman/listinfo.cgi/nel</A>
</I>&gt;<i>
</I>

</pre>






<!--endarticle-->
    <HR>
    <P><UL>
        <!--threads-->
	<LI> Previous message: <A HREF="000232.html">[Nel] Dynamic load balancing?</A></li>
	<LI> Next message: <A HREF="000229.html">[Nel] Dynamic load balancing?</A></li>
         <LI> <B>Messages sorted by:</B> 
              <a href="date.html#217">[ date ]</a>
              <a href="thread.html#217">[ thread ]</a>
              <a href="subject.html#217">[ subject ]</a>
              <a href="author.html#217">[ author ]</a>
         </LI>
       </UL>
</body></html>