In telecommunications and software engineering, scalability is a desirable property of a system, a network, or a process, which indicates its ability to either handle growing amounts of work in a graceful manner, or to be readily enlarged. Software engineering is the application of a systematic disciplined quantifiable approach to the development operation and maintenance of Software. [1] For example, it can refer to the capability of a system to increase total throughput under an increased load when resources (typically hardware) are added. An analogous meaning is implied when the word is used in a commercial context, where scalability of a company implies that the underlying business model offers the potential for economic growth within the company. Commerce is a division of trade or production which deals with the exchange of goods and services from producer to final consumer A business model is a term used for a broad range of informal and formal descriptions that are used by enterprises to represent various aspects of its business including its purpose offerings Economic growth is the increase in the amount of the goods and services produced by an economy over time
Scalability, as a property of systems, is generally difficult to define [2] and in any particular case it is necessary to define the specific requirements for scalability on those dimensions which are deemed important. It is a highly significant issue in electronics systems, database, 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. In Mathematics, Computing, Linguistics and related subjects an algorithm is a sequence of finite instructions often used for Calculation In computing, a protocol is a convention or standard that controls or enables the connection Communication, and Data transfer between two computing Computer programs (also software programs, or just programs) are instructions for a Computer. g. a large input data set or large number of participating nodes in the case of a distributed system). If the design fails when the quantity increases then it does not scale.
Contents |
Scalability can be measured in various dimensions, such as:
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. Online transaction processing, or OLTP, refers to a class of systems that facilitate and manage transaction-oriented applications typically for data entry and retrieval A database management system ( DBMS) is Computer software designed for the purpose of managing Databases DBMSes may use any of a variety of Data models
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 routing protocol is a protocol that specifies how Routers communicate with each other to disseminate information that allows them to select routes between any two In Computer networking a routing table, or Routing Information Base (RIB, is an electronic table (file or database type object that is stored in a In mathematics big O notation (so called because it uses the symbol O) describes the limiting behavior of a function for very small or very large arguments
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". The Domain Name System (DNS is a hierarchical naming system for computers services or any resource participating in the Internet. A server is a Computer dedicated to providing one or more services over a computer network typically through a request-response routine The Internet is a global system of interconnected Computer networks
Some early P2P implementations of Gnutella had scaling issues. For other uses of the term see Peer-to-peer (disambiguation For peer-to-peer networks used for file sharing see File sharing Gnutella (nʊˈtɛlə with a silent g, or alternatively /gnʊˈtɛlə/ is a File sharing network Each node query flooded its requests to all peers. Query flooding is a method to search for a resource on a P2P network. 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 demand on each peer is independent of the total number of peers. BitTorrent is a Peer-to-peer File sharing protocol used to distribute large amounts of Data. There is no centralized bottleneck, so the system may expand indefinitely without the addition of supporting resources (other than the peers themselves).
Methods of adding more resources for a particular application fall into two broad categories:[3]
To scale vertically (or scale up) means to add resources to 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 leverage virtualization technology more effectively, as it provides more resources for the hosted set of operating system and application modules to share. An operating system (commonly abbreviated OS and O/S) is the software component of a Computer system that is responsible for the management and coordination
Taking advantage of such resources can also be called "scaling up", such as expanding the number of Apache daemon processes currently running.
To scale horizontally (or scale out) means to add more nodes to a system, such as adding a new computer to a distributed software application. An example might be scaling out from one web server system to three.
As computer prices drop and performance continues to increase, low cost "commodity" systems can be used for high performance computing applications such as seismic analysis and biotechnology workloads that could in the past only be handled by supercomputers. A supercomputer is a Computer that is at the frontline of processing capacity particularly speed of calculation (at the time of its introduction Hundreds of small computers may be configured in a cluster to obtain aggregate computing power which often exceeds that of traditional RISC processor based scientific computers. This model has further been fueled by the invention of high performance interconnects such as 10 Gigabit Ethernet and InfiniBand technologies. InfiniBand is a Switched fabric communications link primarily used in High-performance computing.
The scale-out model has created an increased demand for shared data storage with very high I/O performance, especially where processing of large amounts of data is required, such as in seismic analysis. See also Earthquake engineering Seismic Analysis is a subset of Structural analysis and is the calculation of the response of a building (or nonbuilding This has fueled the development of new storage technologies such as object storage devices. An O bject-based S torage D evice (OSD enables the creation of self-managed shared and secure storage for storage networks
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. However, the price differential between the two models is increasingly in favor of "scale out" computing for those applications that fit its paradigm.
A number of different approaches enable databases to grow to very large size while supporting an ever-increasing rate of transactions per second. A Computer Database is a structured collection of records or data that is stored in a computer system In a very generic sense the term Transactions Per Second refers to the number of Atomic actions performed by certain entity per second Not to be discounted, of course, is 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. In Computing, mass storage refers to the storage of large amounts of information in a persisting and Machine-readable fashion Beyond that, a variety of architectures are employed in the implementation of very large-scale databases.
One technique supported by most of the major DBMS products is the partitioning of large tables, based on ranges of values in a key field. A database management system ( DBMS) is Computer software designed for the purpose of managing Databases DBMSes may use any of a variety of Data models A partition is a division of a logical Database or its constituting elements into distinct independent parts In this manner, the database can be scaled out across a cluster of separate database servers. A database server is a Computer program that provides Database services to other computer programs or Computers as defined by the Client-server 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. A microprocessor incorporates most or all of the functions of a Central processing unit (CPU on a single Integrated A multi-core processor (or chip-level multiprocessor, CMP) combines two or more independent cores into a single package composed of a single Integrated In Computing, symmetric multiprocessing or SMP involves a Multiprocessor computer-architecture where two or more identical processors can connect to a single A thread in Computer science is short for a thread of execution. For other meanings see the disambiguation page at Transaction.
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. Network-attached storage ( NAS) is file-level Computer data storage connected to a Computer network providing data access to heterogeneous network clients In Information technology, a storage area network ( SAN) is an architecture to attach remote computer storage devices (such as Disk arrays tape libraries Fibre Channel, or FC, is a Gigabit -speed network technology primarily used for Storage networking. The widely supported X/Open XA standard employs a global transaction monitor to coordinate distributed transactions among semi-autonomous XA-compliant database resources. In computing the XA standard is a specification by The Open Group for Distributed transaction processing (DTP A distributed transaction is an Operations bundle, in which two or more network hosts are involved Oracle RAC uses a different model to achieve scalability, based on a "shared-everything" architecture that relies upon high-speed connections between servers. In Database Computing, Oracle Real Application Clusters (RAC — an option for the Oracle Database software produced by Oracle Corporation
While DBMS vendors debate the relative merits of their favored designs, some companies and researchers question the inherent limitations of relational database management systems. A Relational database management system (RDBMS is a Database management system (DBMS that is based on the Relational model as introduced by E GigaSpaces, for example, contends that an entirely different model of distributed data access and transaction processing, named Space based architecture, is required to achieve the highest performance and scalability. Space-Based Architecture ( SBA) is a software architecture pattern for achieving linear Scalability of stateful high-performance applications using the [4] On the other hand, Base One makes the case for extreme scalability without departing from mainstream database technology. Base One International Corp (BOIC develops software for constructing database applications and Distributed computing systems [5] In either case, there appears to be no end in sight to the limits of database 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. Performance tuning is the improvement of System Performance. This is typically a computer application but the same methods can be applied to economic markets bureaucracies But this approach can have diminishing returns (as discussed in performance engineering). Within Systems engineering, performance engineering encompasses the set of roles skills activities practices tools and deliverables applied at every phase of the Systems For example: suppose a portion of a program can be sped up by 70% if parallelized and run on four CPUs instead of one. If α is the fraction of a calculation that is sequential, and 1 − α is the fraction that can be parallelized, then the maximum speedup that can be achieved by using P processors is given according to Amdahl's Law:
. In Parallel computing, speedup refers to how much a Parallel algorithm is faster than a corresponding sequential Algorithm. Amdahl's law, also known as Amdahl's argument, is named after computer architect Gene Amdahl, and is used to find the maximum expected improvement Substituting the values for this example, we get
. If we double the compute power to 8 processors we get
. Doubling the processing power has only improved the speedup by roughly one-fifth. If the whole problem was parallelizable, we would, of course, expect the speed up to double also. Therefore, throwing in more hardware is not necessarily the optimal approach.
Scalability is also a property of natural and economic systems as described by Nassim Taleb in his book The Black Swan. Nassim Nicholas Taleb (born 1960) (نسيم نيقولا نجيب طالب (alternative spellings of first name Nessim or Nissim) is a literary The Black Swan The Impact of the Highly Improbable is a book about Randomness and Uncertainty by epistemologist Nassim Nicholas Taleb In that context, Taleb calls a property scalable when it is subject to extremes. One example of such a property in humans is net worth. For the film entitled Net Worth see Net Worth (film. In business net worth (sometimes called net assets) is the total Assets An example of a nonscalable property is weight.