Universal Scalability Law
IO blocking at all levels, is proven to be a very bad thing and must be avoided at all costs as dictated by Gunther and Amdahl's laws […].
It's been proven that blocking of any kind, anywhere in the system will measurably impact scale due to:
- Contention; waiting for queues or shared resources.
- Coherency; the delay for data to become consistent
Originally this was first shown by computer architect Gene Amdahl who theorized that blocking will cause diminishing returns with regards to scaling, which became known as Amdahl's Law. Neil J. Gunther, a computer system researcher further proved further that the blocking would actually reduce concurrency as a system is scaled, this holds true today and is called Gunther's Law but is widely known as The Universal Scalability Law. The reason for this is point 2 from the above in that the cost of the coherency as the system grows becomes a drag on the overall system and actually causes a loss over overall scale, […].
This means that no matter how much hardware you throw at the problem, you will actually make a blocking system worse.
from "Reactive Application Development"
Quoted on Mon Mar 9th, 2015