Sorry if perhaps too general for this group but I've been struggling with somewhere appropriate to ask. I have done quite a bit of reading but haven't found anywhere yet that answers my questions in a way my small brain can understand.
I understand what Asynchronous and Non-Blocking I/O means, *what I am trying to understand is when I can expect to see improvements in performance by adopting an Asynchronous and NIO framework such as Akka.* *I have the following assumptions - it would be great if anyone could agree/disagree (Assume a Request/Response in a Web Application that has some blocking calls in the business tier):* 1. Even though some actors will process their messages and quickly delegate to other child actors asynchronously, there will be some child actors that will eventually have to deal with blocking I/O at the boundaries of an application right? These actors will still be running in a thread which will block for the IO right? Such Actors would (at high level) be equivalent to the Workers in languages such as Node right? 2. In an asynchronous architecture, I'm assuming that I will only see improvements in the speed of a request/response round trip if there are several transactions (as part of the request) that I can now parallize (assuming multi-cores available). *ie. Lets say I have the following scenarios for my request/response:* *1 Single blocking call to do * - Even though messages used to deal with this transaction will largely be passed around the system asynchronously, I will likely not see an improvement in speed of the request/response round trip since the single piece of I/O work will still take as long as it takes right? *Multiple Blocking calls to do that I can run in parallel * - if (in servicing the request) I have several pieces of blocking work to do (maybe 1 web service call, 1 DB transaction, 1 cache call) AND I can run them in parallel then I will likely see an improvement in speed of the round trip based on the divide and conquer approach of the I/O stuff *Multiple Blocking calls to do that I CANNOT run in parallel * - if the several pieces of blocking work need to run in sequence then I am still unlikely to see an improvement in speed since I cannot parallelize the I/O right? Many thanks James -- >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>>>>>> Check the FAQ: >>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user --- You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to akka-user+unsubscr...@googlegroups.com. To post to this group, send email to akka-user@googlegroups.com. Visit this group at http://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout.