The myth of unlimited scalability Continued from Introduction A few years ago, it was widely held by proponents of open systems and downsizing that in a distributed system performance becomes less of a design issue. The new flexible, scalable application architectures, the argument went, would let us address any performance problem simply by moving parts of the processing to faster hardware. Actually, years of experience with high-performance transaction systems show that the opposite is true, because typically problems arise not in the individual system components but in the links connecting them. This is because of a fundamental fact of performance that is embodied in the locality principle, which deals with the importance of closeness. Because closer usually means faster, a core technique of performance involves bringing together components that need to be used together.
Locality is always crucial to performance no matter what the computing environment.
The grouping techniques used in designing databases, modules, and user interfaces all apply the locality principle. Hence the dilemma of distributed systems' performance, because distribution is the opposite of locality. The monolithic environment can also be a forgiving one. When every module is processed by the same machine, the precise location of the module boundaries has little effect on performance, because any communication between modules happens at processor speed. The distributed environment is much less tolerant of poor design decisions.