Scalability is the capability of a system, network, or process to handle a growing amount of work, or its potential to be enlarged to accommodate that growth. [1] For example, a system is considered scalable if it is capable of increasing its total output under an increased load when resources are added. An analogous meaning is implied when the word is used in an economic context, where the company’s scalability implies that the underlying business model offers the potential for economic growth within the company.

Scalability, as a property of systems, is Generally difficulty to define [2] and in Any Particular case it is Necessary to define the specific requirements for scalability That we Those dimensions are deemed significant. It is a highly significant issue in electronics systems, databases, routers, and networking. A system whose performance improves after adding hardware, proportionally to the added capacity, is said to be a scalable system .

An algorithm , design, networking protocol , program , or other system is Said to scale if it is suitably efficient and practical When applied to wide situations (eg a wide input data set, a wide number of outputs or users, or a wide number of participating nodes in the case of a distributed system). If the design or system fails, it does not scale . In practice, if there are a wide number of things ( n ) That affect scaling, Then resource requirements (for example, algorithmic time-complexity) must grow less than n 2 have nIncreases. An example is a search engine, which scales not only for the number of users, but also for the number of objects it indexes. Scalability refers to the ability of a site to increase in size as demand warrants. [3]

The concept of scalability is desirable in technology as well as business settings. The base concept is consistent – the ability to a business or technology to accept increased volume without impacting the contribution margin (= revenue – variable costs ). For example, it is possible to have a capacity for 1-1000 users, while beyond 1000 users additional equipment is needed.

Scalability can be measured in various dimensions, such as:

  • Administrative scalability : The ability for an increasing number of organizations or users to share a single distributed system.
  • Functional scalability : The ability to enhance the system by adding new functionality at minimal effort.
  • Geographic scalability : The ability to maintain performance, usefulness, or usability regardless of expansion of a geographic area.
  • Load scalability : The ability to allocate and expand the system . Alternatively, the method may be modified, added, or removed, to accommodate changing load.
  • Generation scalability : The ability of a system to scale up by using new generations of components. Thereby, heterogeneous scalability is the ability to use the components from different vendors. [4]
  • A routing protocol is considered to be scalable with respect to network size, where the size of the routing is as many as O (log N ), where N is the number of nodes in the network.
  • A scalable online transaction processing system or database management system is one that can be upgraded to more processes by adding new processors, devices and storage, and which can be upgraded easily and transparently without shutting down.
  • Some early peer-to-peer (P2P) implementations of Gnutella had scaling issues. Each node query flooded its requests to all peers. The demand on each peer would be increased rapidly, rapidly overrunning the peers’ limited capacity. Other P2P systems like BitTorrent Scale. There is no centralized bottleneck, so the system may expand indefinitely with the addition of supporting resources (other than the peers themselves).
  • The distributed nature of of the Domain Name System Allows it to Work Efficiently Even When all hosts on the worldwide Internet are served, so it is Said to “scale well”.

Horizontal and vertical scaling

Methods of adding more resources for a particular application of horizontal and vertical scaling. [5]

  • To scale horizontally (or scale out / in ) means to add more nodes to a system, such as adding a new computer to a distributed software application. An example might be involved scaling out from one Web server system to three. As high-performance computing has become more and more efficient, it is necessary to have low-cost ” commodity ” systems that would have required supercomputers . System architects can configure hundreds of small computers in a clusterto obtain aggregate computing power, which is based on a single traditional processor. The development of high-performance interconnects Such As Gigabit Ethernet , InfiniBand and Myrinet further Top fueled this model. Such growth has resulted in more efficient I / O performance. Size scalability is the maximum number of processes that a system can accommodate. [4]
  • To scale vertically (or scale up / down ) means a single node in a system, typically involving the addition of CPUs or memory to a single computer. Such vertical scaling of Existing systems aussi Enables Them to use virtualization technology more Effectively, as It provides more resources for the set of hosted operating system and implementation modules to share. Taking advantage of such resources can also be called “scaling up”, such as expanding the number of Apache daemon processes currently running. Scalability application is the improved performance of running applications on a scaled-up version of the system.[4]

There are tradeoffs between the two models. Larger numbers of computers, increased complexity, and more complex programming models and issues such as throughput and latency between nodes; also, some applications do not lend themselves to a distributed computing model . In the past, the price difference between the two models has been favored “scale up” computing for those applications that fit its paradigm, but recent advances in virtualization technology have blurred that advantage, since deploying a new virtual system over a hypervisor (where possible) is often a real one. Configuring an existing idle system has been less expensive than buying, installing, and configuring a new one, regardless of the model.

Note that NFV defines these terms differently (eg, virtual machine), whereas scaling up / down is the ability to scale resources (eg memory / CPU / storage) capacity) [6]

Database scalability

A number of different approaches enable databases to grow to very large size while Supporting an ever-Increasing rate of transactions per second . The rapid pace of hardware and the speed of mass storage devices is also important.

One technique supported by most of the major database management system (DBMS) is the partitioning of large tables, based on ranges of values ​​in a key field. In this manner, the database can be scaled out across a cluster of separate database servers . Also, with the advent of 64-bit microprocessors , multi-core CPUs, and large SMP multiprocessors , DBMS vendors have been at the forefront of supporting multi-threaded implementations that substantially scale up transaction processing capacity.

Network-attached storage (NAS) and Storage area networks (SANs) coupled with fast local area networks and Fiber Channel technology enable more large, more loosely coupled configurations of databases and distributed computing power. The widely supported X / Open XA standard employs a global transaction monitor to coordinate distributed transactions among semi-autonomous XA-compliant database resources. Oracle RAC uses a different model to achieve scalability, based on a “shared-everything” architecture that links to high-speed connections between servers.

While DBMS vendors debate the relative merits of their favored designs, some companies and researchers question the inherent limitations of relational database management systems . GigaSpaces , for example, contends that a completely different model of distributed data access and transaction processing, space-based architecture , is required to achieve the highest performance and scalability. On the other hand, Base One makes the case for extreme scalability without departing from mainstream relational database technology. [7] For specialized applications, NoSQL architectures such as Google’s Bigtablecan further enhance scalability. Google’s horizontally distributed Spannertechnology, an as-relational alternative to Bigtable [8] , supports general-purpose database transactions and provides a more standard SQL -based query. [9]

Strong versus eventual consistency (storage)

In the context of scale-out data storage , the scalability is defined as the maximum storage cluster size . Clusters which provide “lazy” redundancy by “asynchronous fashion” are called “eventually consistent” . This type of scale-out is one of the most popular, and one of the most important, tools for web hosting and web caches ( if you want the latest version, wait for seconds for it to propagate ). For all classical transaction-oriented applications, this design should be avoided. [10]

Many open source and even commercial scale-out storage clusters, especially those built on standard PC hardware and networks, provide eventual consistency only. Like some NoSQL databases like CouchDB and others mentioned above. Write operations invalidate other copies, but often do not wait for their acknowledgments. Read operations typically do not check every redundant copy prior to answering, potentially missing the preceding write operation. The large amount of metadata signal traffic would require specialized hardware and short distances to be handled with acceptable performance (ie act like a non-clustered storage device or database).

Whenever strong data consistency is expected, look for these indicators:

  • the use of InfiniBand, Fibrechannel or similar low-latency networks to avoid performance degradation with increasing cluster size and number of redundant copies.
  • shortening cable lengths and limited physical extent, avoiding signal runtime performance degradation.
  • the majority of the cluster becomes unavailable.

Indicators for eventually consistent designs (not suitable for transactional applications!) Are:

  • write performance increases linearly with the number of connected devices in the cluster.
  • while the clustered storage is partitioned, all parts remain responsive. There is a risk of conflicting updates.

Performance tuning versus hardware scalability

It is often written to focus system design on hardware scalability rather than on capacity. It is typically cheaper to add a new node to a system in order to achieve performance than to share in performance tuning to improve the ability of each node can handle. Aim this approach can-have diminishing returns (as Discussed in performance engineering ). For example: suppose 70% of a program can be paralleled and run on multiple CPUs instead of one. If{\ displaystyle \ alpha} is the fraction of a calculation that is sequential, and {\ displaystyle 1- \ alpha}That is the fraction can be parallelized, the maximum speedup That Can Be Achieved by using P processors is Given selon Amdahl’s Law :

{\ displaystyle {\ frac {1} {\ alpha + {\ frac {1- \ alpha} {P}}}}}

Substituting the value for this example, using 4 processors we get

{\ displaystyle {\ frac {1} {0.3 + {\ frac {1-0.3} {4}}} = 2.105.}

If we double the power to 8 processors we get

{\ displaystyle {\ frac {1} {0.3 + {\ frac {1-0.3} {8}}} = 2.581.

Doubling the processing power has only improved the speedup by roughly one-fifth. If the whole problem was parallelizable, the speed would also double. Therefore, throwing in more hardware is not necessarily the optimal approach.

Weak versus strong scaling

In the context of high performance computing there are two common notions of scalability:

  • The first is strong scaling , qui is defined as how the solution time varies with the number of processors for a fixed total problem size.
  • The second is weak scaling , which is defined as the solution time varies with the number of processors for a fixed problem size per processor . [11]

See also

  • Computational complexity theory
  • Extensibility
  • Gustafson’s law
  • List of system quality attributes
  • Load balancing (computing)
  • Lock (computer science)
  • NoSQL
  • Scalable Video Coding (SVC)
  • Similarity (model)


  1. Jump up^ Bondi, André B. (2000). Characteristics of scalability and their impact on performance . Proceedings of the second international workshop on Software and Performance – WOSP ’00. p. 195. doi : 10.1145 / 350391.350432 . ISBN  158113195X .
  2. Jump up^ See for instance,Hill, Mark D. (1990). “What is scalability?” ACM SIGARCH Computer Architecture News . 18 (4): 18. doi : 10.1145 / 121973.121975 . andDuboc, Leticia; Rosenblum, David S .; Wicks, Tony (2006). A framework for modeling and analysis of software systems scalability . Proceedings of the International Conference on Software Engineering – ICSE ’06. p. 949. doi: 10.1145 / 1134285.1134460 . ISBN  1595933751 .
  3. Jump up^ Laudon, Kenneth Craig; Traver, Carol Guercio (2008). E-commerce: Business, Technology, Society . Pearson Prentice Hall / Pearson Education. ISBN  9780136006459 .
  4. ^ Jump up to:c Hesham El-Rewini and Mostafa Abd-El-Barr (April 2005). Advanced Computer Architecture and Parallel Processing . John Wiley & Sons . p. 66. ISBN  978-0-471-47839-3 .
  5. Jump up^ Michael, Maged; Moreira, Jose E .; Shiloach, Doron; Wisniewski, Robert W. (March 26, 2007). Scale-up x Scale-out: A Case Study using Nutch / Lucene . 2007 IEEE International Parallel and Distributed Processing Symposium. p. 1. doi : 10.1109 / IPDPS.2007.370631 . ISBN  1-4244-0909-8 .
  6. Jump up^ “Network Functions Virtualization (NFV); Terminology for Main Concepts in NFV” (PDF) . dead link ]
  7. Jump up^ Base One (2007). “Database Scalability – Dispelling myths about the limits of database-centric architecture” . Retrieved May 23, 2007 .
  8. Jump up^ Google (2018). “Choosing a storage option” . Retrieved January 24,2018 .
  9. Jump up^ “Spanner: Google’s Globally-Distributed Database” (PDF) . OSDI’12 Proceedings of the 10th USENIX Conference on Operating Systems Design and Implementation. 2012: 251-264. ISBN  978-1-931971-96-6 . Retrieved September 30, 2012 .
  10. Jump up^ Sadek Drobi (January 11, 2008). “Eventual consistency by Werner Vogels” . InfoQ . Retrieved April 8, 2017 .
  11. Jump up^ “The Weak Scaling of DL_POLY 3” . STFC Computational Science and Engineering Department. Archived from the original on March 7, 2014 . Retrieved March 8, 2014 .

Leave a Reply

Your email address will not be published. Required fields are marked *

Copyright 2018
Shale theme by Siteturner