Forums WoW Modding Support Archives Azerothcore Discord Archives [DiscordArchive] Agreed, and that's what I'm trying to do. I have already moved some functionality outside of the wor

[DiscordArchive] Agreed, and that's what I'm trying to do. I have already moved some functionality outside of the wor

[DiscordArchive] Agreed, and that's what I'm trying to do. I have already moved some functionality outside of the wor

rektbyfaith
Administrator
0
07-13-2023, 03:59 PM
#1
Archived author: walkline • Posted: 2023-07-13T15:59:43+00:00
Original source

Agreed, and that's what I'm trying to do. I have already moved some functionality outside of the worldserver, such as guilds, whisper chat, who packet, mails (almost done), and GUID generation. These functionalities have been split among several services.

Here are the things that need to be moved from the worldserver or reworked:
Parties (and raids)
Battleground and arena queue and functionality
Global channels
Friends list
Auction House
Looking For Group queue and functionality
Sync transports between gameservers/worldservers

Is this what you mean when you refer to "thread-unsafe functionality"?
rektbyfaith
07-13-2023, 03:59 PM #1

Archived author: walkline • Posted: 2023-07-13T15:59:43+00:00
Original source

Agreed, and that's what I'm trying to do. I have already moved some functionality outside of the worldserver, such as guilds, whisper chat, who packet, mails (almost done), and GUID generation. These functionalities have been split among several services.

Here are the things that need to be moved from the worldserver or reworked:
Parties (and raids)
Battleground and arena queue and functionality
Global channels
Friends list
Auction House
Looking For Group queue and functionality
Sync transports between gameservers/worldservers

Is this what you mean when you refer to "thread-unsafe functionality"?

rektbyfaith
Administrator
0
07-13-2023, 04:01 PM
#2
Archived author: Foe • Posted: 2023-07-13T16:01:03.008000+00:00
Original source

A good way to get a quick overview of what's safe/unsafe is to take a look at the opcode list, most of it is documented whether or not it's safe or unsafe. The thread-unsafe stuff generally happens directly in the world update loop, while the thread-safe is generally processed in the per-map context and is handled in the map update loop
rektbyfaith
07-13-2023, 04:01 PM #2

Archived author: Foe • Posted: 2023-07-13T16:01:03.008000+00:00
Original source

A good way to get a quick overview of what's safe/unsafe is to take a look at the opcode list, most of it is documented whether or not it's safe or unsafe. The thread-unsafe stuff generally happens directly in the world update loop, while the thread-safe is generally processed in the per-map context and is handled in the map update loop

rektbyfaith
Administrator
0
07-13-2023, 04:03 PM
#3
Archived author: Foe • Posted: 2023-07-13T16:03:37.859000+00:00
Original source

But yeah, those are things that all happen in the world update loop and would be good to split out to some extent
rektbyfaith
07-13-2023, 04:03 PM #3

Archived author: Foe • Posted: 2023-07-13T16:03:37.859000+00:00
Original source

But yeah, those are things that all happen in the world update loop and would be good to split out to some extent

rektbyfaith
Administrator
0
07-13-2023, 04:05 PM
#4
Archived author: Foe • Posted: 2023-07-13T16:05:57.742000+00:00
Original source

I would probably combine a few of those (ie. guild and chat) into a single service though, like "Social" service. I can't imagine there's enough of a performance benefit vs maintenance/complexity benefit to go *too* granular
rektbyfaith
07-13-2023, 04:05 PM #4

Archived author: Foe • Posted: 2023-07-13T16:05:57.742000+00:00
Original source

I would probably combine a few of those (ie. guild and chat) into a single service though, like "Social" service. I can't imagine there's enough of a performance benefit vs maintenance/complexity benefit to go *too* granular

rektbyfaith
Administrator
0
07-13-2023, 04:08 PM
#5
Archived author: Foe • Posted: 2023-07-13T16:08:31.747000+00:00
Original source

There's definitely a discussion to be had somewhere about the semi-monolithic approach and complete microservice approach. I'm not opposed to either, I think it's a neat concept regardless, but I could see there be some latency and overhead issues with too much granularity
rektbyfaith
07-13-2023, 04:08 PM #5

Archived author: Foe • Posted: 2023-07-13T16:08:31.747000+00:00
Original source

There's definitely a discussion to be had somewhere about the semi-monolithic approach and complete microservice approach. I'm not opposed to either, I think it's a neat concept regardless, but I could see there be some latency and overhead issues with too much granularity

rektbyfaith
Administrator
0
07-13-2023, 04:12 PM
#6
Archived author: Foe • Posted: 2023-07-13T16:12:17.001000+00:00
Original source

If the end goal is a complete microservice infrastructure, I would definitely keep K8S in mind from the get go
rektbyfaith
07-13-2023, 04:12 PM #6

Archived author: Foe • Posted: 2023-07-13T16:12:17.001000+00:00
Original source

If the end goal is a complete microservice infrastructure, I would definitely keep K8S in mind from the get go

rektbyfaith
Administrator
0
07-13-2023, 04:16 PM
#7
Archived author: Foe • Posted: 2023-07-13T16:16:44.327000+00:00
Original source

Also, something neat to keep in mind, the 3.3.5 client does support a world server relocate packet, it was just never used at the time
rektbyfaith
07-13-2023, 04:16 PM #7

Archived author: Foe • Posted: 2023-07-13T16:16:44.327000+00:00
Original source

Also, something neat to keep in mind, the 3.3.5 client does support a world server relocate packet, it was just never used at the time

Recently Browsing
 1 Guest(s)
Recently Browsing
 1 Guest(s)