Shared Nothing Architecture Explained

Introduction

Why are companies such as Google and Facebook using the Shared Nothing Architecture, and how does it differ from other models?

Read on to learn what Shared Nothing is, how it compares to other architectures, and its advantages and disadvantages.

Shared Nothing Architecture.

What Is Shared Nothing Architecture?

Shared Nothing Architecture (SNA) is a distributed computing architecture that consists of multiple separated nodes that don’t share resources. The nodes are independent and self-sufficient as they have their own disk space and memory.

In such a system, the data set/workload is split into smaller sets (nodes) distributed into different parts of the system. Each node has its own memory, storage, and independent input/output interfaces. It communicates and synchronizes with other nodes through a high-speed interconnect network. Such a connection ensures low latency, high bandwidth, as well as high availability (with a backup interconnect available in case the primary fails).

Since data is horizontally partitioned, the system supports incremental growth. You can add new nodes to scale the distributed system horizontally and increase the transmission capacity.

Shared Nothing Architecture Diagram

The best way to understand the architecture of the shared-nothing model is to see it side by side with other types of architectures.

Below you see the difference in shared vs. non-shared components in different models - Shared Everything, Shared Storage, and Shared Nothing.

Unlike the others, SNA has no shared resources. The only thing connecting the nodes is the network layer, which manages the system and communication among nodes.

Shared Nothing Architecture diagram.

Other Shared Architecture Types Explained

The concept of “shared nothing” was first introduced by Michael Stonebraker in his 1986 research paper, in which he contrasted shared disk and shared memory architecture. While comparing these two options, Stonebraker included the possibility of creating a system in which neither memory nor storage is shared.

When deciding whether SNA is the solution for your use case, it is best to compare it with other cluster types. Alternative options include:

  • Shared Disk Architecture
  • Shared Memory Architecture
  • Shared Everything Architecture

Shared-Disk Architecture

Shared disk is a distributed computing architecture in which all the nodes in the system are linked to the same disk device but have their own private memory. The shared data is accessible from all cluster nodes and usually represents a shared disk (such as a database) or a shared filesystem (like a storage area network or network-attached storage). The shared disk architecture is best for use cases in which data partitioning isn’t an option. Compared to SNA, it is far less scalable.

Shared-disk architecture.

Shared-Memory Architecture

Shared memory is an architectural model in which nodes within the system use one shared memory resource. This setup offers simplicity and load balancing as it includes point-to-point connections between devices and the main memory. Fast and efficient communication among processors is key to ensure efficient transmission of data and to avoid redundancy. Such communication is carried out through an interconnection network and managed by a single operating system.

Note: Load balancing is a method for distributing network traffic across multiple servers in a pool, improving performance and preventing bottlenecks. Learn more about load balancing and the different types of load balancers.

Shared-Everything Architecture

On the opposite side of the spectrum, there is the shared everything architecture. This architectural model consists of nodes that share all resources within the system. Each node has access to the same computing resources and shared storage. The main idea behind such a system is maximizing resource utilization. The disadvantage is that shared resources also lead to reduced performance due to contention.

Shared-everything architecture.

Advantages and Disadvantages of Shared Nothing Architecture

When compared to different shared architectures mentioned above, it is clear the Shared Nothing Architecture comes with many benefits. Take a look at some of the advantages, as well as disadvantages of such a model.

Advantages

There are many advantages of SNA, the main ones being scalability, fault tolerance, and less downtime.

Easier to Scale

There is no limit when it comes to scaling in the shared-nothing model. Unlimited scalability is one of the best features of this type of architecture. Since nodes are independent and don’t share resources, scaling up your application won’t disrupt the entire system or lead to resource contention.

Eliminates Single Points of Failure

If one of the nodes in the application fails, it doesn’t affect the functionality of others as each node is self-reliant. Although node failure can impact performance, it doesn’t disrupt the overall behavior of the app as a whole.

Simplifies Upgrades and Prevents Downtime

There is no need to shut down the system while working on or upgrading individual nodes. Thanks to redundancy, upgrading one node at a time doesn’t impact the effectiveness of others. What’s more, having redundant copies of data on different nodes prevents unexpected downtime caused by disk failure or data loss.

Disadvantages

Once you considered the benefits of SNA, take a look at a couple of disadvantages that can help you decide whether it is the best option for you.

Cost

A node consists of its individual processor, memory, and disk. Having dedicated resources essentially means higher costs when it comes to setting up the system. Additionally, transmitting data that requires software interaction is more expensive compared to architectures with shared disk space and/or memory.

Decreased Performance

Scaling up your system can eventually affect the overall performance if the cross-communication layer isn’t set up correctly.

Conclusion

After reading this article, you should have a better understanding of Shared Nothing Architecture and how it works. Take into account all the advantages and disadvantages of the model before deciding on the architecture for your application.

Was this article helpful?
YesNo
Sofija Simic
Sofija Simic is an aspiring Technical Writer at phoenixNAP. Alongside her educational background in teaching and writing, she has had a lifelong passion for information technology. She is committed to unscrambling confusing IT concepts and streamlining intricate software installations.
Next you should read
Raid Levels and Types: Advantages and Disadvantages of 0,1,5,10
July 23, 2019

RAID (redundant array of independent disks) is a setup consisting of multiple disks for data storage...
Read more
What Is Load Balancing? Definition and How It Works
June 30, 2021

Load balancing is a method for distributing network traffic across multiple servers in a pool...
Read more
How to Set Up Hardware RAID Using MegaCLI
November 20, 2019

This article explains how to set up hardware RAID using MegaCLI. RAID (redundant array of independent disks)...
Read more
10 Docker Security Best Practices
September 14, 2020

This article provides 10 container security tips that can help you prevent attacks and privilege breaches...
Read more
  • © 2021 Copyright phoenixNAP | Global IT Services. All Rights Reserved.