Skip to content
Home » Distributed Data Systems

Distributed Data Systems

Introduction

Distributed systems are becoming increasingly common because of the world’s ever-expanding technical advancements when considering scalability, high availability, and low latency.

This article aims to familiarize you with the fundamentals of distributed data systems by giving you a brief overview of their many classifications without getting too technical.

What is a distributed system?

In its most basic form, distributed systems are just collections of interconnected computers that function as if they were one computer to end users. 

These computers or infrastructures use shared-nothing architecture (SNA), consisting of multiple computer nodes that do not share resources. In SNA, a node is independent and self-sufficient to perform the required task. This means that a failure in one node does not affect the uptime of the whole system.

To better understand the SNA system, let’s observe the diagram below.

Distributed systems
Distributed Systems

We have two architectures – a single machine architecture and a distributed architecture, where each machine has no shared resources. It is obvious what happens if the system crashes for the single machine architecture; the application goes offline. However, for the SNA system, the application still runs without downtime if a machine goes down by sending traffic to the running machines.

Why distributed systems?

A distributed system is necessary to build a robust, scalable, and fault tolerance system. The truth of the matter is that managing distributed systems is hard. But, if hard, why consider it?

From the diagram above, it was easy to tell the disadvantage of single-machine architecture, traffic only happens on one computer node. Therefore, it makes the application vulnerable to failure, data loss, and inability to scale.

On the other hand, a distributed system allows traffic from multiple nodes making the system fault tolerant – it ensures at least one node is receiving traffic. Comprehensively, here are the benefits of a distributed system:

Fault-tolerant or high availability: The diagram shows that the application continues working even after #machine1 goes down.

fault tolerant

Scalability: If the application grows larger and requires more computing capacity to complement the workload, distributed systems allow horizontal scaling. Scaling horizontally means adding more computers node rather than upgrading the hardware of a single one. In addition, horizontal scaling is cost-effective since the additional machine may be shut down when the workload decreases.

Horizontal Scaling

Latency: Distributed systems allow computer nodes to be distributed across multiple regions to reduce latency.

Distributed systems

Now, what is a distributed data system?:

A distributed data system is simply data storage that is not limited to a single node, but the data is across multiple nodes. Therefore, all the concepts discussed above apply to a distributed data system. The two common ways to distribute data across different nodes are replication and partitioning. In the diagram below, we split and spread the data into two partitions with three replicas per partition.

partitioning and replication
A database split into two partitions, with three replicas per partition

Replication:

In distributed data systems, replication keeps copies of the same data across multiple nodes. Replication provides redundancy and ensures that if some nodes have failed, the data can still be accessed from the remaining nodes.

Partitioning:

Partitioning is splitting large data into small chunks and distributing it across multiple nodes. This is also known as sharding.

Conclusion

After the reading, you understand how a distributed system works and its benefits to data systems. Distributed data systems are positioned to dominate computing. The need for high availability with a low latency data system is ever-expanding, and distributed system is the most promising way of achieving it.

4 thoughts on “Distributed Data Systems”

  1. This is awesome and very helpful. Very well explained. I, however, want to ask, from the last illustration you made, can we also refer to the “three replicas” as “three nodes”?

  2. Amazing article on distributed systems. The adoption of distributed operations into various architecture stresses how important it is. We currently have some form of distribution across various architectures to improve latency concerns, aid scalability and increase availability as highlighted in the article. Kubernetes takes advantage of distributed systems in its operation.
    Again, great article!

Leave a Reply

Your email address will not be published. Required fields are marked *