The three pillars of a distributed system
By Lumai Mubanga. [email protected]
In a previous article, I pointed out that distributed systems are the foundation of the bitcoin/block chain technology. It is now common knowledge, despite many current debates for and against this technology that the world is at a verge of a major breakthrough in technological advancement. For example, think for a moment what will happen if Facebook, Google and many other global systems was decentralized!
As farfetched those thoughts can be, it now appears likely that high tech developments begins with a simple thought that becomes actualized later. These fears are mainly expressed by those who may stand to lose out. For example, post office owners feared the idea of emails, and for a good reason. Today, the post offices have to be innovative to remain relevant as more and more individuals use emails to communicate, send documents and other items that were previously handled by post offices. The same scenario stands today with block chain . So, what are three pillars of distributed systems that may empower block chain technology as the next technological breakthrough?
a. Concurrency. Recall that a distributed system has to be spread across networks and has to be accessed by many users, or nodes previously unknown to each other. Such a system must be able to agree on a common truth without trusting a single machine or authority. Thisis what is known as consensus. The network must beable to reach consensus by trusting, not a central authority but protocols and the mathematics behind it. As others put it, its trust without trust. For such a decision to be made, all nodes involved do a lot of algorithmic “talk.” Whether this is done perfectly or not, is debatable.
Concurrency enables these separate nodes that work independently of each other to “think ” in tune. Componentsin the network process information concurrently as opposed to a single process. Thisis why consensus to a larger degree is important. For example, think about a plane in autopilot with two computersin control. These computers must work in “agreement” despite operating as independent entities. Should one computer fail, the other computer should still keep the plane on course without any adverse effects. Thisis only possible if the two computers had recorded the same height, speed and other parameters.
b. Absence of Global Clock. Distributed systems are located in different geographical locations with different time zones. In a distributed system, each node is responsible for maintaining its own time. There isno central node to access for the current time but all nodes strive to work in synch. The effect of this on a distributed system has continued to be a subject of debate.
c. Protocols. With thousands of individual nodes running 24/7, the possibility of failure is high. There are special protocols designed to minimize or prevent individual nodes from crashingor breaking down. These protocols ensure that these nodes achieve their goals.
These three characteristics are what makes distributed systems what they are today. With more ongoing research, there are additional designs that will reinforce this technology.
Leave a Reply
Want to join the discussion?Feel free to contribute!