Definition - What does Clustering mean?
Clustering, in the context of databases, refers to the ability of several servers or instances to connect to a single database. An instance is the collection of memory and processes that interacts with a database, which is the set of physical files that actually store data.
Clustering offers two major advantages, especially in high-volume database environments:
- Fault tolerance: Because there is more than one server or instance for users to connect to, clustering offers an alternative, in the event of individual server failure.
- Load balancing: The clustering feature is usually set up to allow users to be automatically allocated to the server with the least load.
Techopedia explains Clustering
Clustering takes different forms, depending on how the data is stored and allocated resources. The first type is known as the shared-nothing architecture. In this clustering mode, each node/server is fully independent, so there is no single point of contention. An example of this would be when a company has multiple data centers for a single website. With many servers across the globe, no single server is a “master.” Shared-nothing is also known as “database sharding.”
Contrast this with shared-disk architecture, in which all data is stored centrally and then accessed via instances stored on different servers or nodes.
The distinction between the two types has become blurred recently with the introduction of grid computing or distributed caching. In this setup, data is still centrally managed but controlled by a powerful “virtual server” that is comprised of many servers that work together as one.