Jump to content

Observations from a systems engineer


Dupont
 Share

Recommended Posts

As I have been playing this game for the past week, I have been wondering about the internal mechanics of the server engine. Obviously without the code I can't know what is going on , but I can guess.

 

1.  There are numerous microservices in a distributed environment.

2. While load is light, these work just fine, very efficiently.

3. When load is heavy, the queues get very deep and cause deadlocks between different microservices

4.  Users start cancelling requests with other actions

5.  The old actions are clogging up the queues, more incomplete actions pile up between the microservices as users get frustrated and repeat actions quickly.

6. Everything grinds to a halt until a bunch of people are forced to lose connections or the servers are reset.

 

 

My suggestions:

1.  Have a max queue depth of no longer than 10 millisecond's worth of data. Deeper queues are NOT better.

2. consider using parallel queues, if one gets stuck for too long, just kill the whole thing and proceed with the unstuck one.

3. Use backpressure to notify fillers of the queue to wait. It is easier to cancel actions if portions of it haven't been submitted to other microservices yet.

4. Consider using tags to quickly remove cancelled requests from heavily used queues.

 

Anyways, I hope NQ can solve this as I love the game and want to see it thrive.

 

Link to comment
Share on other sites

The other thought I had was that messages seem to be dropped under load. I hope the backend isn't using Kafka.  Kafka will drop packets under load, as it wasn't designed for transactional type messages, only for fast streaming where dropping random video frames doesn't matter.

 

Link to comment
Share on other sites

and a hide d core(ship/cargo bum), despawn when on another planet or offline.

make sections of cities solid objects(no furniture prefabs on their end, removes excess loading on our end of useless per voxel block coordinate vs solid with a solid model with less invisible lines)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...