Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Nostale
You last visited: Today at 00:44

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Server Architecture Review

Discussion on Server Architecture Review within the Nostale forum part of the MMORPGs category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jun 2017
Posts: 119
Received Thanks: 138
Server Architecture Review

Hello,

As I know that some developers are here and some might have some background about MMO servers architecture

// GONNA REVIEW DIAGRAM TO ADD MORE DETAILS FOR OPENNOS ARCHITECTURE

This is the one I've started to make.



Architecture :
Quote:
Container based (Docker) for easy deployment
Clustered
LoadBalancing
Fully EventDriven (love nginx architecture) // Might use socket sharding

Languages considered :
Quote:
Kotlin :
JVM is really ressource consuming anyway it's stable, easy to run
Verbose, Java is too "Object Oriented" (that's why I wanna use Kotlin on some features)
UnitTesting is easy

NodeJS :
Might be used for watchdogs/webapi/Master
Easy to develop, not much time spending
Aswell, this "architecture" is totally generic and designed to be used to be shared as an OpenSource future framework/lib for people that wanna make their own emulator/scalable MMO servers easly.

I would love some feedbacks about what do you guys think.
It's a feedback post, which intent a minimum of constructive feedback, if you just wanna flame, just don't post.

Feel free to ask for any information if you guys think that there are no enough information.

More information will be written on this post soon (as i'm finishing the cluster documentation)

Thanks.
BlowaXD is offline  
Thanks
7 Users
Old 10/08/2017, 23:01   #2
 
Cryless~'s Avatar
 
elite*gold: 0
Join Date: Sep 2015
Posts: 480
Received Thanks: 529
The most interesting thread of the entire section.

The first scheme is poor because ON is slightly more complex than what you have drawn but it does not matter since it has nothing to do with the discussion. The second scheme is not very clear and I recommend you to redesign it highlighting the importance of each component and connection.

Redis is a great choice (for cache) and will be useful several times.

For the cluster I can not argue much because I have never studied it but I would appreciate if you could link me to the documentation you are reading.
Cryless~ is offline  
Thanks
1 User
Old 10/09/2017, 01:20   #3
 
elite*gold: 0
Join Date: Jun 2017
Posts: 119
Received Thanks: 138
Quote:
Originally Posted by SystemX64™ View Post
The most interesting thread of the entire section. I think the first scheme is poor because ON is slightly more complex than what you have drawn but it does not matter.
Yeah, I know that, I had to rewrite many many things on OpenNos, mostly the way "servers" are communicating with each other, the database relational mapper (which is now 2 files)


I've finished a big project, i'll have time to continue that documentation, i'll improve the more specific ones (about how world are designed on OpenNos and one some other MMO servers and how my architecture will handle the charge...)


Thanks for reading,
Gonna give some more information tomorrow.
BlowaXD is offline  
Old 10/09/2017, 13:37   #4
 
0Lucifer0's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 1,005
Received Thanks: 1,019
The main issue with your architecture is that shared memory between many physical distinct server is not worth it. The first schema is not really how opennos works
0Lucifer0 is offline  
Thanks
1 User
Old 10/09/2017, 14:01   #5
 
elite*gold: 0
Join Date: Jun 2017
Posts: 119
Received Thanks: 138
Thanks for your feedbacks, i've done some revamping on diagrams.

Since we are in Nostale Session, i'll put examples related to Nostale (which is known by everyone HERE)

Once i've enough worked my diagrams, i'll make those generic so you will have an idea of that architecture.
BlowaXD is offline  
Old 10/09/2017, 18:16   #6
 
Cryless~'s Avatar
 
elite*gold: 0
Join Date: Sep 2015
Posts: 480
Received Thanks: 529
Quote:
Originally Posted by BlowaXD View Post
Thanks for your feedbacks, i've done some revamping on diagrams.

Since we are in Nostale Session, i'll put examples related to Nostale (which is known by everyone HERE)

Once i've enough worked my diagrams, i'll make those generic so you will have an idea of that architecture.
In my opinion you are making it too complicated.

Cryless~ is offline  
Old 10/09/2017, 18:37   #7
 
elite*gold: 0
Join Date: Jun 2017
Posts: 119
Received Thanks: 138
Quote:
Originally Posted by SystemX64™ View Post
In my opinion you are making it too complicated.

What does your REDIS server do on this architecture ? It's kinda useless for only login/master.

The purpose of using a REDIS server is to cache the database for many requests (for world server for sure)

Aswell, you do not have any safety Daemon/Watcher which are kinda necessary in production usages.
This architecture is used for little amount of load for network programming but when you are developing something that need to handle a huge of amount of requests.

I'll push some more updates this evening I have to finish those diagram on something else than PowerPoint (might use readable UML)
BlowaXD is offline  
Old 10/10/2017, 22:49   #8
 
elite*gold: 0
Join Date: Jun 2017
Posts: 119
Received Thanks: 138
We have chosen Kotlin for the langage that we will use, aswell we changed some things in architecture.

Concerning unrelated static datas, it will be stored in a MongoDB server, the "instanciated" (Characters, ItemInstances...) objects will be stored on a PostgreSQL server (which is much faster)

Again, I would repeat that we will cache our database through a database caching engine such as REDIS or our own one, mainly for reducing the charge and scheduling save to the database through queueing requests

Concerning the cluster "complicated design" it will be used, don't know how you can think it's complicated, it's used everywhere on production servers in many companies (some i've worked some for an example)

Last thing is that the "shared memory" is not as drawed anymore.
BlowaXD is offline  
Thanks
2 Users
Old 10/13/2017, 21:23   #9
 
elite*gold: 0
Join Date: Jun 2017
Posts: 119
Received Thanks: 138
We started our development, actually, i've finished a basic architecture, tomorrow will tryout a pattern to see how it can fit.

We have actually some cool things that are gaining much performance through functional recursive programing instead of iterative way.

I'll keep that thread updated and change the diagrams once finished the real basis.
BlowaXD is offline  
Old 10/14/2017, 20:21   #10
 
MANUEL PERES's Avatar
 
elite*gold: 0
Join Date: May 2012
Posts: 297
Received Thanks: 74
where is the load balancing. you needs more failovers of MySQL, needs everything to be scalable, in redis also because it depends on the server ram itself and it is better to scale in a cluster is just my opinion https://en.wikipedia.org/wiki/Load_b...ng_(computing)
MANUEL PERES is offline  
Old 10/14/2017, 21:02   #11

 
FI0w's Avatar
 
elite*gold: 50
Join Date: Jul 2014
Posts: 1,670
Received Thanks: 1,139
Quote:
Originally Posted by MANUEL PERES View Post
where is the load balancing. you needs more failovers of MySQL, needs everything to be scalable, in redis also because it depends on the server ram itself and it is better to scale in a cluster is just my opinion https://en.wikipedia.org/wiki/Load_b...ng_(computing)
@ never saw so much **** from you :l i mean 4y ago but c'mon
FI0w is offline  
Old 10/14/2017, 21:56   #12
 
MANUEL PERES's Avatar
 
elite*gold: 0
Join Date: May 2012
Posts: 297
Received Thanks: 74
Quote:
Originally Posted by xSensitivex View Post
@ never saw so much **** from you :l i mean 4y ago but c'mon
I do not say use that
MANUEL PERES is offline  
Thanks
1 User
Old 10/14/2017, 22:08   #13

 
FI0w's Avatar
 
elite*gold: 50
Join Date: Jul 2014
Posts: 1,670
Received Thanks: 1,139
Quote:
Originally Posted by MANUEL PERES View Post
I do not say use that
I mean the login dia is From systemx64 sry if you got it wrong
FI0w is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
Server Architecture Rant
08/12/2014 - CO2 Private Server - 15 Replies
Hey everyone, I've been thinking for a while about server architectures. I've been thinking about what TQ Digital did incorrectly when they maintained a game company. I mean, yes... the game concept flaws are apparent throughout all of their games, especially in Conquer Online due to its past popularity. We all know that the game was designed to be small and limiting... but it was designed a decade ago, so we really can't be harsh on TQ, right? Well... looking at how they managed their...



All times are GMT +2. The time now is 00:44.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.