You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
You're not explicitly specifying number of workers for HttpServer, which means it will create (number of cpu cores)-threads for handling incoming http requests.
Now, when next http request runs heavy database query through diesel it will block current thread. And for example, if my system has 4 cpu cores, it's enough to run 4 heavy http requests simultaneously to completely DoS entire server.
Is that correct?
The text was updated successfully, but these errors were encountered:
@art-in I am not the author, but this thing is not using actix 2.0 (currently in release candidate). It is using a pre 1.0 actix. The db call does not spawn a new task, and is blocking (see here). I do not believe that this app is what you should be looking at if you want to use async actix. I would recommend looking here: https://github.com/actix/examples.
@vadixidav So in this example I see that database query is wrapped into web::block(), which run queries on a thread pool while not blocking main http server workers pool.
But web::block() available even in currently released v1.0.9
Probably this project should use this approach too?..
Hi, I'm trying to figure this out, since apparently diesel doesn't support async (nor underlying postgres driver).
You're not explicitly specifying number of workers for
HttpServer
, which means it will create (number of cpu cores)-threads for handling incoming http requests.Now, when next http request runs heavy database query through diesel it will block current thread. And for example, if my system has 4 cpu cores, it's enough to run 4 heavy http requests simultaneously to completely DoS entire server.
Is that correct?
The text was updated successfully, but these errors were encountered: