Application scalability is the ability to increase application throughput by increasing the hardware support to the host application. Put it differently, if an application is able to handle 100 users on a single CPU hardware, then the application should on be able to handle 200 users when the number of process are doubled. Major server vendors continue to provide increasingly larger and more powerful machines. Recently, scale-out solutions, in the form of clusters of smaller machines, have gained increased acceptance. Vertical scalability is adding more memory and CPUs to a single box, or scaling up. Vertical scalability or scaling up is well suited for database tier. Horizontal scalability or scaling out is adding more boxes of similar memory and CPU. Scale out is ideal for web-tier. Researches have shown that "pure" scale-up approach is not very effective in usin...