azerothcore / mod-ah-bot

AHBot for AzerothCore
http://azerothcore.org/
70 stars 82 forks source link

Item creation blocks DB? #71

Open ktr41n opened 1 year ago

ktr41n commented 1 year ago

I just got this running the other day and noticed that when the AH bot is creating auctions I am blocked from logging into the game.

If I am already in the game, I have an issue with my warlock where after summoning my voidwalker, his control panel never appears. He likewise never reacts to enemies.

It seems that creating auctions is overwhelming my world db? I tried adding more threads but that doesn't seem to do anything. Does anyone else have this issue? Is there a recommended config for mySQL?

kaijikan commented 1 year ago

I am running trickerer npc bot merged baseline, and have added the AH mod. I also find that I get intermittent issues with slow logins.

I am interested to know how you diagnosed your slow response issue? I have suspected it is a issue with the AH mod, but have not been able to work out what tracing would give me a root cause.

One thing I have done which seems to have improved it, is to use a shared auction house, set the minimum items to 8000, but change the AH bulk operation parameter from 200 to 6. This means it will only add 6 auctions a minute and drop feed the auction house, rather then cause mass bottleneck.

My findings are only anecdotal, but I think that has helped a lot (though not eliminated the slow login issue)

ktr41n commented 1 year ago

I still have some issues, but the biggest improvement for me was moving it from my RAID of HDDs to a single SSD. I guess my RAID couldn't keep up.

dedmen commented 11 months ago

Database transactions are asynchronous and put into a Queue. But seems like azerothcore doesn't have a priority system. So your queue ends up with 2000 auction insert's, followed by one request for character login. And the server won't process the character login before the auctions are all done.

Workaround for that could be, check how long the queue already is. And if its long, then skip adding auctions. The proper solution would be a priority system with database transactions but that would need to be done on AzerothCore side.