Scalability - wikipedia Scalability This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. ( March 2012 ) Complex systems Topics Emergence Emergence Self - organization Collective consciousness Collective behaviour Social dynamics Collective intelligence Collective action Self - organized criticality Herd mentality Phase transition Agent - based modelling Synchronization Ant colony optimization Particle swarm optimization Swarm behaviour Networks Scale - free networks Social network analysis Small - world networks Community identification Centrality Motifs Graph Theory Scaling Robustness Systems biology Dynamic networks Adaptive networks Evolution and adaptation Artificial neural networks Evolutionary computation Genetic algorithms Genetic programming Artificial life Machine learning Evolutionary developmental biology Artificial intelligence Evolutionary robotics Evolvability Pattern formation Spatial fractals Reaction - diffusion systems Partial differential equations Dissipative structures Percolation Cellular automata Spatial ecology Self - replication Spatial evolutionary biology Geomorphology Systems theory Homeostasis Operationalization Feedback Self - reference Goal - oriented System dynamics Sensemaking Entropy Cybernetics Autopoiesis Information theory Computation theory Complexity measurement Nonlinear dynamics Time series analysis Ordinary differential equations Iterative maps Phase space Attractors Stability analysis Population dynamics Chaos Multistability Bifurcation Coupled map lattices Game theory Prisoner 's dilemma Rational choice theory Bounded rationality Irrational behaviour Evolutionary game theory 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. For example, a system is considered scalable if it is capable of increasing its total output under an increased load when resources ( typically hardware ) are added. An analogous meaning is implied when the word is used in an economic context, where a 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 difficult to define and in any particular case it is necessary to define the specific requirements for scalability on those dimensions that are deemed important. It is a highly significant issue in electronics systems, databases, routers, and networking. A system whose performance improves after adding hardware, proportionally to the capacity added, 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 large situations ( e.g. a large input data set, a large number of outputs or users, or a large number of participating nodes in the case of a distributed system ). If the design or system fails when a quantity increases, it does not scale. In practice, if there are a large number of things ( n ) that affect scaling, then resource requirements ( for example, algorithmic time - complexity ) must grow less than n as n increases. 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. The concept of scalability is desirable in technology as well as business settings. The base concept is consistent -- the ability for a business or technology to accept increased volume without impacting the contribution margin ( = revenue − variable costs ). For example, a given piece of equipment may have a capacity for 1 -- 1000 users, while beyond 1000 users additional equipment is needed or performance will decline ( variable costs will increase and reduce contribution margin ). Another example is the Incident Command System ( ICS ), the emergency management system used across response agencies in the United States. ICS can scale resource coordination from a single - engine roadside brushfire to an interstate wildland fire, for example. The first resource on scene establishes IC, with authority to order resources and delegate responsibility within the span of control ( managing five to seven officers, who will again delegate to up to seven, and on as the incident grows ). Senior officers assume command at the top as complexity warrants. This proven system is remarkably simple, fully scalable and has been saving lives and property for nearly half a century. ( 1 ) Scalability can be measured in various dimensions, such as : Administrative scalability : The ability for an increasing number of organizations or users to easily 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 from concentration in a local area to a more distributed geographic pattern. Load scalability : The ability for a distributed system to easily expand and contract its resource pool to accommodate heavier or lighter loads or number of inputs. Alternatively, the ease with which a system or component can 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. A routing protocol is considered scalable with respect to network size, if the size of the necessary routing table on each node grows 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 process more transactions by adding new processors, devices and storage, and which can be upgraded easily and transparently without shutting it 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 increase in proportion to the total number of peers, quickly overrunning the peers ' limited capacity. Other P2P systems like BitTorrent scale well because the demand on each peer is independent of the total number of peers. There is no centralized bottleneck, so the system may expand indefinitely without the addition of supporting resources ( other than the peers themselves ). The distributed nature 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 ''. Contents 1 Horizontal and vertical scaling 2 Database scalability 3 Strong versus eventual consistency ( storage ) 4 Performance tuning versus hardware scalability 5 Weak versus strong scaling 6 See also 7 References 8 External links Horizontal and vertical scaling Methods of adding more resources for a particular application fall into two broad categories : horizontal and vertical scaling. To scale horizontally ( or scale out / in ) means to add more nodes to ( or remove 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 system to three. As computer prices have dropped and performance continues to increase, high - performance computing applications such as seismic analysis and biotechnology workloads have adopted low - cost `` commodity '' systems for tasks that once would have required supercomputers. System architects may configure hundreds of small computers in a cluster to obtain aggregate computing power that often exceeds that of computers based on a single traditional processor. The development of high - performance interconnects such as Gigabit Ethernet, InfiniBand and Myrinet further fueled this model. Such growth has led to demand for software that allows efficient management and maintenance of multiple nodes, as well as hardware such as shared data storage with much higher I / O performance. Size scalability is the maximum number of processors that a system can accommodate. To scale vertically ( or scale up / down ) means to add resources to ( or remove resources from ) a single node in a system, typically involving the addition of CPUs or memory to a single computer. Such vertical scaling of existing systems also enables them to use virtualization technology more effectively, as it provides more resources for the hosted set of operating system and application 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. Application scalability is the improved performance of running applications on a scaled - up version of the system. There are tradeoffs between the two models. Larger numbers of computers means increased management complexity, as well as a more complex programming model 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 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 less expensive than actually buying and installing a real one. Configuring an existing idle system has always been less expensive than buying, installing, and configuring a new one, regardless of the model. Note that NFV defines these terms differently : scaling out / in is the ability to scale by add / remove 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 ) 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 advances in both the speed and capacity of mass storage devices, as well as similar advances in CPU and networking speed is also important. One technique supported by most of the major database management system ( DBMS ) products 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 Fibre Channel technology enable still larger, 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 relies upon 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 an entirely 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. For specialized applications, NoSQL architectures such as Google 's Bigtable can further enhance scalability. Google 's horizontally distributed Spanner technology, positioned as an relational alternative to Bigtable, supports general - purpose database transactions and provides a more conventional SQL - based query language. Strong versus eventual consistency ( storage ) In the context of scale - out data 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. 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. Idem some NoSQL databases like CouchDB and others mentioned above. Write operations invalidate other copies, but often do n't wait for their acknowledgements. Read operations typically do n'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 ). 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. 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 : 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 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 in performance tuning to improve the capacity that each node can handle. But this approach can have diminishing returns ( as discussed in performance engineering ). For example : suppose 70 % of a program can be sped up if parallelized and run on multiple CPUs instead of one. If α ( displaystyle alpha ) is the fraction of a calculation that is sequential, and 1 − α ( displaystyle 1 - alpha ) is the fraction that can be parallelized, the maximum speedup that can be achieved by using P processors is given according to Amdahl 's Law : 1 α + 1 − α P. ( displaystyle ( \frac ( 1 ) ( alpha + ( \frac ( 1 - alpha ) ( P ) ) ) ). ) Substituting the value for this example, using 4 processors we get 1 0.3 + 1 − 0.3 4 = 2.105. ( displaystyle ( \frac ( 1 ) ( 0.3 + ( \frac ( 1 - 0.3 ) ( 4 ) ) ) ) = 2.105. ) If we double the compute power to 8 processors we get 1 0.3 + 1 − 0.3 8 = 2.581. ( 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, which 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 how the solution time varies with the number of processors for a fixed problem size per processor. 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 ) Similitude ( model ) References 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. 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. and Duboc, Leticia ; Rosenblum, David S. ; Wicks, Tony ( 2006 ). A framework for modelling and analysis of software systems scalability. Proceedings of the 28th international conference on Software engineering -- ICSE ' 06. p. 949. doi : 10.1145 / 1134285.1134460. ISBN 1595933751. Jump up ^ Laudon, Kenneth Craig ; Traver, Carol Guercio ( 2008 ). E-commerce : Business, Technology, Society. Pearson Prentice Hall / Pearson Education. ISBN 9780136006459. ^ Jump up to : 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. 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. Jump up ^ `` Network Functions Virtualisation ( NFV ) ; Terminology for Main Concepts in NFV '' ( PDF ). Jump up ^ Base One ( 2007 ). `` Database Scalability - Dispelling myths about the limits of database - centric architecture ''. Retrieved May 23, 2007. Jump up ^ Google ( 2018 ). `` Choosing a storage option ''. Retrieved January 24, 2018. 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. Jump up ^ Sadek Drobi ( January 11, 2008 ). `` Eventual consistency by Werner Vogels ''. InfoQ. Retrieved April 8, 2017. 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. External links Look up scalability in Wiktionary, the free dictionary. Architecture of a Highly Scalable NIO - Based Server -- an article about writing scalable server in Java ( java.net ). Links to diverse learning resources -- page curated by the memcached project. Scalable Definition -- by The Linux Information Project ( LINFO ) Scale in Distributed Systems B. Clifford Neumann, In : Readings in Distributed Computing Systems, IEEE Computer Society Press, 1994 GND : 4520890 - 6 RAID Redundant array of independent disks Disk arrays Data striping Disk mirroring Parity drive RAID levels Standard RAID 1 RAID 2 RAID 3 RAID 4 RAID 5 RAID 6 Nested RAID 01 RAID 03 RAID 10 RAID 50 RAID 60 RAID 100 Non-standard RAID 1E RAID 5E RAID 5EE RAID 6E RAID - DP RAID - Z Linux MD RAID 10 Principles Availability Fault tolerance Data redundancy Degraded mode Failover Parity data Replication Scalability Throughput Non-RAID drive architectures Parallel computing General Distributed computing Parallel computing Massively parallel Cloud computing High - performance computing Multiprocessing Manycore processor GPGPU Computer network Systolic array Levels Bit Instruction Thread Task Data Memory Loop Pipeline Multithreading Temporal Simultaneous ( SMT ) Speculative ( SpMT ) Preemptive Cooperative Clustered Multi-Thread ( CMT ) Hardware scout Theory PRAM model Analysis of parallel algorithms Amdahl 's law Gustafson 's law Cost efficiency Karp -- Flatt metric Slowdown Speedup Elements Process Thread Fiber Instruction window Coordination Multiprocessing Memory coherency Cache coherency Cache invalidation Barrier Synchronization Application checkpointing Programming Stream processing Dataflow programming Models Implicit parallelism Explicit parallelism Concurrency Non-blocking algorithm Hardware Flynn 's taxonomy SISD SIMD SIMT MISD MIMD Dataflow architecture Pipelined processor Superscalar processor Vector processor Multiprocessor symmetric asymmetric Memory shared distributed distributed shared UMA NUMA COMA Massively parallel computer Computer cluster Grid computer APIs Ateji PX Boost. Thread Chapel Charm++ Cilk Coarray Fortran CUDA Dryad C++ AMP Global Arrays MPI OpenMP OpenCL OpenHMPP OpenACC TPL PLINQ PVM POSIX Threads RaftLib UPC TBB ZPL Problems Deadlock Livelock Deterministic algorithm Embarrassingly parallel Parallel slowdown Race condition Software lockout Scalability Starvation Category : parallel computing Media related to Parallel computing at Wikimedia Commons Complex systems Background Emergence Self - Organization Collective Behaviour Social dynamics Collective intelligence Collective action Collective consciousness Self - organized criticality Herd mentality Phase transition Agent - based modelling Synchronization Ant colony optimization Particle swarm optimization Swarm behaviour Evolution & Adaptation Artificial neural networks Evolutionary computation Genetic algorithms Genetic programming Artificial life Machine learning Evolutionary developmental biology Artificial intelligence Evolutionary robotics Evolvability Game Theory Prisoner 's dilemma Rational choice theory Bounded rationality Irrational behaviour Evolutionary game theory Networks Social network analysis Small - world networks Community identification Centrality Motifs Graph Theory Scaling Robustness Systems biology Dynamic networks Adaptive networks Nonlinear Dynamics Time series analysis Ordinary differential equations Iterative maps Phase space Attractors Stability analysis Population dynamics Chaos Multistability Bifurcation Coupled map lattices Pattern formation Spatial fractals Reaction - diffusion systems Partial differential equations Dissipative structures Percolation Cellular automata Spatial ecology Self - replication Spatial evolutionary biology Geomorphology Systems Theory Homeostasis Operationalization Feedback Self - reference Goal - oriented System dynamics Sensemaking Entropy Cybernetics Autopoiesis Information theory Computation theory Complexity measurement Retrieved from `` https://en.wikipedia.org/w/index.php?title=Scalability&oldid=844544791 '' Categories : Computer architecture Computational resources Computer systems Hidden categories : All articles with dead external links Articles with dead external links from April 2017 Articles needing additional references from March 2012 All articles needing additional references Wikipedia articles with GND identifiers Talk Contents About Wikipedia Azərbaycanca Български Català Čeština Dansk Deutsch Español Euskara فارسی Français हिन्दी Bahasa Indonesia Italiano עברית Magyar Nederlands 日本 語 Norsk Polski Português Română Русский Slovenščina Українська اردو 中文 18 more Edit links This page was last edited on 5 June 2018, at 16 : 23 ( UTC ). Text is available under the Creative Commons Attribution - ShareAlike License ; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia ® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization. About Wikipedia

Question: adding a cpu to a single node is which type of scalability
Answer: vertical