The Wilder List displays incorrect information


xHerobrine
Guardian

Joined: over 3 years ago
21 topics
45 posts

by xHerobrine » over 3 years ago

1. A one-sentence summary of bug: 

2. Priority to fix?:
Medium

3. Which server?:
All of them(?)

4. Steps to Reproduce: 
Use the /wlist command and message some players or go to the servers they are shown. Some players shown on the list are not actually online, or the list did not display the world they are in correctly. 

5. Expected Outcome: 
To have accurate information on what players are online, and which world they are in.

6. Actual Outcome: 
Players who were offline were displayed, or players were not in the world they were predicted to be in.

7. Proposed Fix (Optional): 


8. Notes (Optional):
I listed this as a medium priority bug, though I'm not sure if others would see it that way. I will simply say that the wilder list command (/wlist) is supposed to be a convenient way to see what players are online no matter the world they're in. Since the server has so many different worlds, some of which you can't even send messages between to check if someone is there (you have to manually go to expanse/skyblock/creative to see if someone is there because messages cant be sent to those worlds between other worlds via /msg), the command would be very much helpful to have incase you're searching for a friend or another player. It's quite frustrating that the information displayed is inaccurate, and I hope it's not pushed to low priority fix. 

9. Screenshots (Preferred): 






RE: The Wilder List displays incorrect information


tigerbalmv
Elder

Joined: over 3 years ago
8 topics
29 posts

by tigerbalmv » over 3 years ago

Hi. I'm posting here as a person who knows a little bit about how databases work, not as a helper. I'm an enormous nerd about this kind of thing, and I enjoy the discussion. I don't know what your experience with software is, so I hope I don't look like I'm talking down to you. Also, I'm generalizing a bit, so chances are what I'm saying isn't 100% accurate for Wildercraft. Take it with a grain of salt.

When stuff happens in Minecraft, whatever it is, it gets posted to a database. These transactions are not instantaneous. They can't be for several reasons.

Database transactions are serial. They happen one after the other (in industry parlance, they are serialized). They have to be, because the results of one transaction may affect the results of the next one. If a bank didn't serialize its transactions, it would risk having everyone deducting money at once, sending the bank's reserves below zero instead of halting withdrawals when there was no money. Also, every database transaction means a certain amount of work for the computers that run the database. That work may cost Wildercraft money in some cases.

Transactions are not instantaneous. Most systems tend to batch these transactions, accumulating several of them and processing them all at once as resouces allow. Processing a transaction can get pretty complicated, especially when you account for all the work done to make sure that all the data will survive a crash or sudden reboot and come up accurate.

When you type /wlist, you're adding another transaction to the load by reading what's been logged in the database. By the time you read the output (and humans are much slower at reading than computers are at spitting out info), someone has probably moved or logged off, and that information is being batched into transactions that will get handled as resources allow.

Any database is tuned according to a set of trade-offs. It may be that instanantly processing player log on/off and server hopping messages will create lag in the game. I don't know if this is the case, but it's a decent bet. Lag can be a serious problem. I've noticed very little lag in WC itself. Players complaining that lag killed them are almost always experiencing local networking problems. Blame their ISP's. But WC lag is hardly noticible unless you're near my sugar cane and pumpkin farms. If Redbau tuned the database layer to keep up with player data, it might result in more players dying lag deaths, more sadness over lost items, and more work for mods.

Transaction batching and lag show up in interesting ways. For instance, when someone hits the store and buys a a bunch of stuff, you tend to see the in-game messages pouring out all at once. A player once asked rhetorically how someone hit the "buy" key so fast. The answer is probably that they didn't. You're seeing the results of the purchases getting batched at several points, including the credit card processor and WC's database layer.

This doesn't mean that there shouldn't be some attention to making the results more accurate, but I think it helps for people to have a picture of what happens in the ugly sausage grinder of software and systems, and why we have to live with imperfection sometimes. Also, the ultimate answer might not be improving wlist but in a persistent message service that notifies them no matter where they are and hits them up when they log in if they're not on. Maybe something like that is in the works for vanilla minecraft or through a major plug-in already. Just a thought.




Last edited: over 3 years ago


Want to Reply?

Join our friendly community to get access to your profile page, apply for staff, and post a reply here!

Login or Register Account