Forums WoW Modding Support Archives Azerothcore Discord Archives [DiscordArchive] also splitting it is nice but would there be only 1 of each ?

[DiscordArchive] also splitting it is nice but would there be only 1 of each ?

[DiscordArchive] also splitting it is nice but would there be only 1 of each ?

Pages (3): Previous 1 2 3 Next
rektbyfaith
Administrator
0
07-13-2023, 04:35 PM
#11
Archived author: walkline • Posted: 2023-07-13T16:35:29.833000+00:00
Original source

Yes, I agree that there would be complexity and maintenance overhead associated with a microservice architecture. However, orchestration tools like k8s can help alleviate some of these challenges. My end goal is to provide a Helm chart package for this, which will further simplify deployment and management.

Regarding latency, there shouldn't be a significant difference between the semi-monolithic and microservice approach. At least, that's what I observe at the moment. Latency can increase if there is a long chain of requests between microservices. However, in this case, most of the microservices are independent, with small dependencies between them, such as the auction house relying on the mailing service. These dependencies are not latency-sensitive.

By the way, when I mention a microservice architecture, I don't mean rewriting the entire core with microservice architecture. The idea is to utilize microservice architecture only for the functionality that needs to be moved outside of the worldserver to achieve scalability.
rektbyfaith
07-13-2023, 04:35 PM #11

Archived author: walkline • Posted: 2023-07-13T16:35:29.833000+00:00
Original source

Yes, I agree that there would be complexity and maintenance overhead associated with a microservice architecture. However, orchestration tools like k8s can help alleviate some of these challenges. My end goal is to provide a Helm chart package for this, which will further simplify deployment and management.

Regarding latency, there shouldn't be a significant difference between the semi-monolithic and microservice approach. At least, that's what I observe at the moment. Latency can increase if there is a long chain of requests between microservices. However, in this case, most of the microservices are independent, with small dependencies between them, such as the auction house relying on the mailing service. These dependencies are not latency-sensitive.

By the way, when I mention a microservice architecture, I don't mean rewriting the entire core with microservice architecture. The idea is to utilize microservice architecture only for the functionality that needs to be moved outside of the worldserver to achieve scalability.

rektbyfaith
Administrator
0
07-13-2023, 04:37 PM
#12
Archived author: Rymercyble • Posted: 2023-07-13T16:37:44.815000+00:00
Original source

maybe im blind but how are instances handled in that schema ? is it meant to be worldserver lets say for map id 631 (ICC) ?
rektbyfaith
07-13-2023, 04:37 PM #12

Archived author: Rymercyble • Posted: 2023-07-13T16:37:44.815000+00:00
Original source

maybe im blind but how are instances handled in that schema ? is it meant to be worldserver lets say for map id 631 (ICC) ?

rektbyfaith
Administrator
0
07-13-2023, 04:38 PM
#13
Archived author: walkline • Posted: 2023-07-13T16:38:43.358000+00:00
Original source

In my case all services at the moment are scalable, there could be some consistency issues but I guess game design would tolereit them. But I'm okey with idea that some of services can be unscalable.
rektbyfaith
07-13-2023, 04:38 PM #13

Archived author: walkline • Posted: 2023-07-13T16:38:43.358000+00:00
Original source

In my case all services at the moment are scalable, there could be some consistency issues but I guess game design would tolereit them. But I'm okey with idea that some of services can be unscalable.

rektbyfaith
Administrator
0
07-13-2023, 04:40 PM
#14
Archived author: Rymercyble • Posted: 2023-07-13T16:40:01.004000+00:00
Original source

i dont rly care about scalability nobody in this community will ever run server that big and if yes blizz will shut him down anyway i meant it purely from that perspective of quality of life that in case of crash there is service to take over
rektbyfaith
07-13-2023, 04:40 PM #14

Archived author: Rymercyble • Posted: 2023-07-13T16:40:01.004000+00:00
Original source

i dont rly care about scalability nobody in this community will ever run server that big and if yes blizz will shut him down anyway i meant it purely from that perspective of quality of life that in case of crash there is service to take over

rektbyfaith
Administrator
0
07-13-2023, 04:41 PM
#15
Archived author: Rymercyble • Posted: 2023-07-13T16:41:29.034000+00:00
Original source

mainly for those small services like chat
rektbyfaith
07-13-2023, 04:41 PM #15

Archived author: Rymercyble • Posted: 2023-07-13T16:41:29.034000+00:00
Original source

mainly for those small services like chat

rektbyfaith
Administrator
0
07-13-2023, 04:42 PM
#16
Archived author: Rymercyble • Posted: 2023-07-13T16:42:00.075000+00:00
Original source

i dont think its very worth it to do that for world server and have multiple of them per map
rektbyfaith
07-13-2023, 04:42 PM #16

Archived author: Rymercyble • Posted: 2023-07-13T16:42:00.075000+00:00
Original source

i dont think its very worth it to do that for world server and have multiple of them per map

rektbyfaith
Administrator
0
07-13-2023, 04:44 PM
#17
Archived author: Foe • Posted: 2023-07-13T16:44:27.237000+00:00
Original source

I agree, in the end the "worldserver" should in essence only handle the map-related stuff in a semi-monolithic fashion, with designated/assigned maps, I would even go as far as renaming it the "Map" service
rektbyfaith
07-13-2023, 04:44 PM #17

Archived author: Foe • Posted: 2023-07-13T16:44:27.237000+00:00
Original source

I agree, in the end the "worldserver" should in essence only handle the map-related stuff in a semi-monolithic fashion, with designated/assigned maps, I would even go as far as renaming it the "Map" service

rektbyfaith
Administrator
0
07-13-2023, 04:44 PM
#18
Archived author: Foe • Posted: 2023-07-13T16:44:43.566000+00:00
Original source

Everything else that happens in the world update loop could essentially be moved into separate services
rektbyfaith
07-13-2023, 04:44 PM #18

Archived author: Foe • Posted: 2023-07-13T16:44:43.566000+00:00
Original source

Everything else that happens in the world update loop could essentially be moved into separate services

rektbyfaith
Administrator
0
07-13-2023, 04:47 PM
#19
Archived author: Foe • Posted: 2023-07-13T16:47:22.638000+00:00
Original source

But yes, in general there's a ton of leeway in the latency aspect with something like an mmo, all the precision really happens in the map update loop anyway. The server runs just fine on a 50ms internal latency vs a 1ms internal latency, so I don't think it's a massive issue
rektbyfaith
07-13-2023, 04:47 PM #19

Archived author: Foe • Posted: 2023-07-13T16:47:22.638000+00:00
Original source

But yes, in general there's a ton of leeway in the latency aspect with something like an mmo, all the precision really happens in the map update loop anyway. The server runs just fine on a 50ms internal latency vs a 1ms internal latency, so I don't think it's a massive issue

rektbyfaith
Administrator
0
07-13-2023, 05:45 PM
#20
Archived author: walkline • Posted: 2023-07-13T17:45:57.763000+00:00
Original source

I can explain how this is implemented in ToCloud9 at the moment. Each worldserver needs to have information in its configuration about the maps it can theoretically handle. In most cases, this value would be set to include all maps. Upon startup, the worldservers register themselves with the servers-registry service and provides information about maps that it can handled. Using the knowledge of the worldservers and the maps they can handle, the servers-registry dynamically distributes all the maps among them, taking into account map weights (https://github.com/walkline/ToCloud9/blo...weights.go).

For example, if you have four servers, the maps should be distributed something like this:

Server 1 Map IDs: 0 (Eastern Kingdoms), 33, 34, and some other maps with medium amounts of low weight.
Server 2 Map IDs: 1 (Kalimdor), 209, 229, and some other maps with medium amounts of low weight.
Server 3 Map IDs: 530 (Outlands), 531, 532, and some other maps with a high amount of low weight.
Server 4 Map IDs: 571 (Northrend), 572, 574, and some other maps with a low amount of low weight.
In summary, the maps should be evenly distributed based on their weight.

However, if you specifically want to assign only one server to handle a particular map, you can start a worldserver and specify that it can theoretically handle that specific map. In your case, it would be map 631.
rektbyfaith
07-13-2023, 05:45 PM #20

Archived author: walkline • Posted: 2023-07-13T17:45:57.763000+00:00
Original source

I can explain how this is implemented in ToCloud9 at the moment. Each worldserver needs to have information in its configuration about the maps it can theoretically handle. In most cases, this value would be set to include all maps. Upon startup, the worldservers register themselves with the servers-registry service and provides information about maps that it can handled. Using the knowledge of the worldservers and the maps they can handle, the servers-registry dynamically distributes all the maps among them, taking into account map weights (https://github.com/walkline/ToCloud9/blo...weights.go).

For example, if you have four servers, the maps should be distributed something like this:

Server 1 Map IDs: 0 (Eastern Kingdoms), 33, 34, and some other maps with medium amounts of low weight.
Server 2 Map IDs: 1 (Kalimdor), 209, 229, and some other maps with medium amounts of low weight.
Server 3 Map IDs: 530 (Outlands), 531, 532, and some other maps with a high amount of low weight.
Server 4 Map IDs: 571 (Northrend), 572, 574, and some other maps with a low amount of low weight.
In summary, the maps should be evenly distributed based on their weight.

However, if you specifically want to assign only one server to handle a particular map, you can start a worldserver and specify that it can theoretically handle that specific map. In your case, it would be map 631.

Pages (3): Previous 1 2 3 Next
Recently Browsing
 1 Guest(s)
Recently Browsing
 1 Guest(s)