Scalability is a design indicator for the computing and processing capabilities of software systems. high scalability represents elasticity. In the process of system expansion and growth, the software can ensure vigorous vitality, with few changes or even the addition of hardware devices, the processing capability of the entire system can be linearly increased to achieve high throughput and low latency and high performance.
There is an essential difference between scalability and pure performance tuning. scalability is a comprehensive consideration and balance among many factors such as high performance, low cost, and maintainability. scalability focuses on smooth and linear performance improvement, it focuses more on horizontal scaling of the system and achieves distributed computing through cheap servers. General performance optimization is only the performance indicator optimization of a single machine. All they have in common is to focus on selection between throughput and latency based on the characteristics of the application system. Of course, after horizontal scaling partition, Cap theorem constraints will be imposed.
The Design of Software scalability is very important, but difficult to grasp. The industry attempts to save developers' energy through cloud computing or high concurrency languages. However, no matter what technology is used, if the application system is built on a hardware board, for example, if the system is heavily dependent on the database, the system will reach a certain access scale, and the load will be concentrated on one or two database servers, it will be difficult to scale the partitions, as the creator of the Hibernate framework said: relational databases are the least extensible.
Http://www.jdon.com/scalable.html