-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Deadlocks #18
Comments
I found this same problem here: SignalR/SignalR#4402. I suspect it's doing pretty much the same kind of logic? I tried increasing table count. Doesn't help. I ran the SQL profiler and I really have to wonder what is going on. In approximately 38 seconds I only had 4 (very small) messages get added. But there was a total of 1382 queries. The vast majority are either the payload select statement or "end conversation". There are only about 50 servers using the backplane, so I really have to wonder what all this traffic is about. And I suspect it's related to the deadlocks. Edit: Forgot that I had more processes that counted as servers than I thought. Still, even with 50, I was thinking there'd be at most 200 queries to retrieve messages. |
The thought had occurred to me that I only want one server to listen for messages. That might fix my problems by cutting down on so many queries, but I don't see an option to disable receiving of messages. |
If you're seeing polling queries occur, you've likely not enabled Service Broker per the documentation.
I'm going to say that you've already exceeded the capabilities of this project, again per the documentation.
That's not how SignalR works. Every server that clients can connect to has to be receiving messages from the backplane. |
Thanks for the response. I do have Service Broker enabled. It's not clear in the docs what "very high degrees of scale-out" means, but I suppose with 50 servers you might be right. I was thinking with the relatively low throughput I need that it wouldn't be a problem. But perhaps my definition of a server might affect whether that's the case as 49 out of the 50 of these servers have no clients. Clients connect to a web server, but these other servers need to get messages to the clients. I envision a non-backplane solution where the 49 servers connect to the web server hub as if they were clients, send their messages to the web server, then the web server forwards the messages to the clients. I was hoping to use the backplane instead of this because of at least these reasons:
None of these are reasons are deal-breakers, especially with the limited types of messages I'm trying to send. So, I guess I'll go in that direction. |
I'm randomly seeing deadlocks in the database. Has anyone else seen this:
The text was updated successfully, but these errors were encountered: