Home‎ > ‎Database‎ > ‎

Scalability

   An aspect of Database Design that focuses on the ability for a system to
adapt to future growth and changes.   By focusing on the scalability,
websites/systems can save money in the future. Instead of having to pay a
lot of money to create new systems every time a new client base
appears or there is a new to include much more data.

    Making systems that have good scalability can also prevent over-planning.
For example, if a company estimated 100 customers currently, but tried to put enough
functions to handle 10,000 people (which may be a future estimate,) it'd be wasting
a lot of resources.  

 
Scalability includes the ability to fully use all available resources when new hardware
(memory and processors) are added. It could also involve adding new nodes to the
system.

    There are many different dimensions of scalability,  such as load scalability,  geographic
scalability, administrative scalability, and function scalability.

From Wikipedia:
"

  • Load scalability: The ability for a distributed system to easily expand and contract its resource pool to accommodate heavier or lighter loads. Alternatively, the ease with which a system or component can be modified, added, or removed, to accommodate changing load.
  • 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.
  • Administrative scalability: The ability for an increasing number of organizations to easily share a single distributed system.
  • Functional scalability: The ability to enhance the system by adding new functionality at minimal effort."
    Depending on the model of the database, different dimensions would take priority.
For example, if adding new computers to the network, functional scalability may not
be as important as geographic scalability. If the amount of information stored in the
database does not change much, but the organization seeks more analysis on that data,
functional scalability may be more important.

   
There are two main methods of designing for scalability:

(1) Scaling up:
            Being able to handle new hardware added to the system (like adding more CPU
to the given computer that contains the database.) This is also called scaling vertically.
 
(2) Scaling out:
            Adding a new node (like adding a new computer to the network handling the
database.) This is also called scaling horizontally.

    Both methods of scaling the system have become cheaper in the last few years. This
is mainly due to the constant drop in prices in both computers and computer parts in
general.
    
    Scaling up is good for situations in which there is more data to be stored in an
environment with limited access needed to the database. Scaling out is good
when there is a lot more people who need to access data (example: data analysis,
input/output, etc.)  However, adding more computers to the network also makes it
more complicated to handle and maintain.

    Every different kind of database model has a different amount of potential for
scalability. The  Relational Database Model is considered to be weak once many nodes
are put into the system. With an increase in nodes, there are massive complexities
added.


Weaknesses of the relational database
.pdf with a summary about the importance of scalability
Wikipedia Entry
Comments