Jump to content

Scalability

From Wikipedia, the free encyclopedia

Scalabilityis the property of a system to handle a growing amount of work. One definition for software systems specifies that this may be done by adding resources to the system.[1]

In aneconomiccontext, a scalablebusiness modelimplies that a company can increase sales given increased resources. For example, a package delivery system is scalable because more packages can be delivered by adding more delivery vehicles. However, if all packages had to first pass through a single warehouse for sorting, the system would not be as scalable, because one warehouse can handle only a limited number of packages.[2]

In computing, scalability is a characteristic of computers, networks,algorithms,networking protocols,programsand applications. An example is asearch engine,which must support increasing numbers of users, and the number of topics itindexes.[3]Webscaleis a computer architectural approach that brings the capabilities of large-scale cloud computing companies into enterprise data centers.[4]

Indistributed systems,there are several definitions according to the authors, some considering the concepts of scalability a sub-part ofelasticity,others as being distinct.

In mathematics, scalability mostly refers toclosureunderscalar multiplication.

Inindustrial engineeringand manufacturing, scalability refers to the capacity of a process, system, or organization to handle a growing workload, adapt to increasing demands, and maintain operational efficiency. A scalable system can effectively manage increased production volumes, new product lines, or expanding markets without compromising quality or performance. In this context, scalability is a vital consideration for businesses aiming to meet customer expectations, remain competitive, and achieve sustainable growth. Factors influencing scalability include the flexibility of the production process, the adaptability of the workforce, and the integration of advanced technologies. By implementing scalable solutions, companies can optimize resource utilization, reduce costs, and streamline their operations. Scalability in industrial engineering and manufacturing enables businesses to respond to fluctuating market conditions, capitalize on emerging opportunities, and thrive in an ever-evolving global landscape.[citation needed]

Examples[edit]

TheIncident Command System(ICS) is used byemergency responseagencies in the United States. ICS can scale resource coordination from a single-engine roadside brushfire to an interstate wildfire. The first resource on scene establishes command, with authority to order resources and delegate responsibility (managing five to seven officers, who will again delegate to up to seven, and on as the incident grows). As an incident expands, more senior officers assume command.[5]

Dimensions[edit]

Scalability can be measured over multiple dimensions, such as:[6]

  • Administrative scalability:The ability for an increasing number of organizations or users to access a system.
  • Functional scalability:The ability to enhance the system by adding new functionality without disrupting existing activities.
  • Geographic scalability:The ability to maintain effectiveness during expansion from a local area to a larger region.
  • Load scalability:The ability for adistributed systemto expand and contract to accommodate heavier or lighter loads, including, the ease with which a system or component can be modified, added, or removed, to accommodate changing loads.
  • Generation scalability:The ability of a system to scale by adopting new generations of components.
  • Heterogeneous scalabilityis the ability to adopt components from different vendors.

Domains[edit]

  • Arouting protocolis considered scalable with respect to network size, if the size of the necessaryrouting tableon each node grows asO(logN), whereNis the number of nodes in the network. Some earlypeer-to-peer(P2P) implementations ofGnutellahad scaling issues. Each node queryfloodedits requests to all nodes. The demand on each peer increased in proportion to the total number of peers, quickly overrunning their capacity. Other P2P systems likeBitTorrentscale well because the demand on each peer is independent of the number of peers. Nothing is centralized, so the system can expand indefinitely without any resources other than the peers themselves.
  • A scalableonline transaction processingsystem ordatabase management systemis one that can be upgraded to process more transactions by adding new processors, devices and storage, and which can be upgraded easily and transparently without shutting it down.
  • The distributed nature of theDomain Name System(DNS) allows it to work efficiently, serving billions ofhostson the worldwideInternet.

Horizontal (scale out) and vertical scaling (scale up)[edit]

Resources fall into two broad categories: horizontal and vertical.[7]

Horizontal or scale out[edit]

Scaling horizontally (out/in) means adding more nodes to (or removing nodes from) a system, such as adding a new computer to a distributed software application. An example might involve scaling out from one web server to three.High-performance computingapplications, such asseismic analysisandbiotechnology,scale workloads horizontally to support tasks that once would have required expensivesupercomputers.Other workloads, such as large social networks, exceed the capacity of the largest supercomputer and can only be handled by scalable systems. Exploiting this scalability requires software for efficient resource management and maintenance.[6]

Vertical or scale up[edit]

Scaling vertically (up/down) means adding resources to (or removing resources from) a single node, typically involving the addition of CPUs, memory or storage to a single computer.[6]

Larger numbers of elements increases management complexity, more sophisticated programming to allocate tasks among resources and handle issues such as throughput and latency across nodes, while someapplications do not scale horizontally.

Network scalability[edit]

Network function virtualizationdefines these terms differently: scaling out/in is the ability to scale by adding/removing resource instances (e.g., virtual machine), whereas scaling up/down is the ability to scale by changing allocated resources (e.g., memory/CPU/storage capacity).[8]

Database scalability[edit]

Scalability for databases requires that the database system be able to perform additional work given greater hardware resources, such as additional servers, processors, memory and storage. Workloads have continued to grow and demands on databases have followed suit.

Algorithmic innovations have include row-level locking and table and index partitioning. Architectural innovations includeshared-nothingand shared-everything architectures for managing multi-server configurations.

Strong versus eventual consistency (storage)[edit]

In the context of scale-outdata storage,scalability is defined as the maximum storage cluster size which guarantees full data consistency, meaning there is only ever one valid version of stored data in the whole cluster, independently from the number of redundant physical data copies. Clusters which provide "lazy" redundancy by updating copies in an asynchronous fashion are called'eventually consistent'.This type of scale-out design is suitable when availability and responsiveness are rated higher than consistency, which is true for many web file-hosting services or web caches (if you want the latest version, wait some seconds for it to propagate). For all classical transaction-oriented applications, this design should be avoided.[9]

Many open-source and even commercial scale-out storage clusters, especially those built on top of standard PC hardware and networks, provide eventual consistency only, such as some NoSQL databases likeCouchDBand others mentioned above. Write operations invalidate other copies, but often don't wait for their acknowledgements. Read operations typically don't 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 (i.e., act like a non-clustered storage device or database).[citation needed]

Whenever strong data consistency is expected, look for these indicators:[citation needed]

  • the use of InfiniBand, Fibrechannel or similar low-latency networks to avoid performance degradation with increasing cluster size and number of redundant copies.
  • short cable lengths and limited physical extent, avoiding signal runtime performance degradation.
  • majority / quorum mechanisms to guarantee data consistency whenever parts of the cluster become inaccessible.

Indicators for eventually consistent designs (not suitable for transactional applications!) are:[citation needed]

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

Performance tuning versus hardware scalability[edit]

It is often advised 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 improved performance than to partake inperformance tuningto improve the capacity that each node can handle. But this approach can have diminishing returns (as discussed inperformance engineering). For example: suppose 70% of a program can be sped up if parallelized and run on multiple CPUs instead of one. Ifis the fraction of a calculation that is sequential, andis the fraction that can be parallelized, the maximumspeedupthat can be achieved by using P processors is given according toAmdahl's Law:

Substituting the value for this example, using 4 processors gives

Doubling the computing power to 8 processors gives

Doubling the processing power has only sped up the process 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[edit]

High performance computinghas two common notions of scalability:

  • Strong scalingis defined as how the solution time varies with the number of processors for a fixedtotalproblem size.
  • Weak scalingis defined as how the solution time varies with the number of processors for a fixed problem sizeper processor.[10]

See also[edit]

References[edit]

  1. ^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.ISBN158113195X.
  2. ^Hill, Mark D. (1990)."What is scalability?"(PDF).ACM SIGARCH Computer Architecture News.18(4): 18.doi:10.1145/121973.121975.S2CID1232925.and
    Duboc, Leticia; Rosenblum, David S.; Wicks, Tony (2006).A framework for modelling and analysis of software systems scalability(PDF).Proceedings of the 28th international conference on Software engineering – ICSE '06. p. 949.doi:10.1145/1134285.1134460.ISBN1595933751.
  3. ^Laudon, Kenneth Craig; Traver, Carol Guercio (2008).E-commerce: Business, Technology, Society.Pearson Prentice Hall/Pearson Education.ISBN9780136006459.
  4. ^"Why web-scale is the future".Network World.2020-02-13.Retrieved2017-06-01.
  5. ^Bigley, Gregory A.; Roberts, Karlene H. (2001-12-01). "The Incident Command System: High-Reliability Organizing for Complex and Volatile Task Environments".Academy of Management Journal.44(6): 1281–1299.doi:10.5465/3069401(inactive 2024-06-26).ISSN0001-4273.{{cite journal}}:CS1 maint: DOI inactive as of June 2024 (link)
  6. ^abcHesham El-Rewini and Mostafa Abd-El-Barr (April 2005).Advanced Computer Architecture and Parallel Processing.John Wiley & Sons.p. 66.ISBN978-0-471-47839-3.
  7. ^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.ISBN978-1-4244-0909-9.
  8. ^"Network Functions Virtualisation (NFV); Terminology for Main Concepts in NFV".Archived fromthe original(PDF)on 2020-05-11.Retrieved2016-01-12.
  9. ^Sadek Drobi (January 11, 2008)."Eventual consistency by Werner Vogels".InfoQ.RetrievedApril 8,2017.
  10. ^"The Weak Scaling of DL_POLY 3".STFC Computational Science and Engineering Department. Archived fromthe originalon March 7, 2014.RetrievedMarch 8,2014.

External links[edit]