Jump to content

Recommended Posts

  • Replies 159
  • Created
  • Last Reply

Top Posters In This Topic

Posted
Maps use lot memory and then triggring data swaping or not allow use disabled map unloading and use aditional time for map loading.
What are performance bottlenecks in Mangos anyway? Suppose we put _lots_ of memory into server, what will be the next candidate for optimization?
Posted
What are performance bottlenecks in Mangos anyway? Suppose we put _lots_ of memory into server, what will be the next candidate for optimization?

Youre DB, check it with Jet Profiler and find spikes and there reasons

Posted
Youre DB, check it with Jet Profiler and find spikes and there reasons
But it doesn't have anything to do with multiprocessing. It's more of database server's load balancing capabilities and it's deployment on a separate machine. I couldn't think of anything more than vmaps.
Posted
But it doesn't have anything to do with multiprocessing. It's more of database server's load balancing capabilities and it's deployment on a separate machine. I couldn't think of anything more than vmaps.

Thats correct, but you asked for bottelnecks, and the biggest bottleneck is a unoptimized DB, when youre mysql process stucks mangos can't do anything against this...multiprocessing might be better for multirealm system and there performance, but has no effect on the mysql service

Posted

Yes, MySQL can be slow, but most database stuff is loaded into memory anyway, so the only time it calls MySQL is for character data, which is fairly non-frequent (on loading a character and saving them, which is every few minutes) Optimizing mangos would make a big difference on large scale performance.

  • 2 weeks later...
Posted

Hi, I will add my little opinion here. I generally agree with Alex`s idea. So the really quick description of multimangos architecture:

1) realmd remains unchanged

2) all clients connects to the supervisior server (which would be the hardest part), announced as realm in realmlist

3) "behind" the supervisior there are several game(or map) servers (simillar to curent worldd)

4) supervisior handles the easy and fast packets (like chat)

5) more complicated opcodes are routed to game servers, where they are executed

6) the game server manages most of the game logic (ie AIs, spells, colision calculations)

7) 1 game server can run more maps (ie all instances, battleground server,...) 1 map = 1 thread

8) access to the world database perform all game server on their own

9) access to the character database is made via the supervisior, which solves the race conditions in creating new items (mails, characters...)

10) communication between supervisior and the map servers is made by TCP/IP sockets, probably 1 connection per map.

I hope this will help you deciding how to write it ;)

Cheers Tabak

Posted
8) access to the world database perform all game server on their own

may fail. because how to synchronisation between game servers? :-D

the worlddatabase is normaly not changed, only when you change something with a gm-command (like spawning creatures), and for this case you could implement a ZMSG_WORLD_DATABASE_CHANGED which will be send to the single map-servers.

4) supervisior handles the easy and fast packets (like chat)

i would create an own process for the chat too

  • 2 weeks later...
  • 2 months later...
Posted
Great work Derex, as usual.

Btw, can you pls shortly explain me what do you mean with "proxy" for MaNGOS?

Ty

don't know if i am right, but think it is the part redirect the packets send from client to the server cluster parts like maps or so

Posted
the worlddatabase is normaly not changed, only when you change something with a gm-command (like spawning creatures), and for this case you could implement a ZMSG_WORLD_DATABASE_CHANGED which will be send to the single map-servers.
It's not like we're using some binary protocol to send opcodes, so...

You people should jump on the IRC if you want to follow development more.

  • 3 weeks later...
Posted
yes, but in this, is necessary configure for work fine, if you use, git pull git://git.assembla.com/multimangos.git dont work.!

it is 'git clone' and not 'git pull' to get the repo the first time ;)

Posted

It is not stabile and will not be stabile soon, atm I am just adding map servers to the cluster, aka hacking mangos to work as a map server.

  • 2 months later...
Posted

if you want news about this I would recommend following the commits on the projects repo. If you look on there you will see that they are far from having anything ready and have set themselves a goal of June 2010 for the first release.

Cheers.

  • 6 months later...
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use