If you are new to the blockchain technology, taking our Introduction to Blockchain Technology self-paced course is highly recommended. Also, for a comprehensive coverage of blockchain development in Ethereum or mastering Solidity programming, taking our below self paced courses is highly recommended:
In our previous article (Review of Cap Theorem in Distributed Systems), we covered the three properties of the CAP theorem and how they were used in different distributed database systems.
In this article, we learn about differences between horizontal and vertical scaling in distributed systems.
One of the most difficult and most challenging problems in a distributed system is scalability. Scalability refers to the capability that a distributed system can handle a growing amount of workload without degrading the overall system performance, and has the potential to accommodate that growth.
In case of a typical three-tier application, as shown is the following diagram, the web server accepts the requests coming from the users. Depending upon the request, the application server will process the same, and the final state will be updated in the underlying database of the database server. When users increase drastically, let's say 5-10 concurrent users suddenly access the system, how do you scale the multi-tier applications and meet the required service level agreement?
There are two ways to scale the system, and so this means the designer or architect of the multi-tier application needs to ensure each tier can scale independently and, as a whole, it can meet the desired performance when the number of concurrent users increases. One technique is vertical scaling. In this case, you can increase the computing capacity in each layer, by increasing memory, storage, using a more advanced CPU, and so on. Another technique is horizontal scaling, where additional servers can be provisioned and added to the server farm in each layer:
There are trade-offs between these two techniques. Vertical scaling makes the server management straightforward, while horizontal scaling increases the server management complexity. Horizontal scaling is considered to be more advantageous, since with today's cloud and virtualization technology, it is possible to scale the system up and down, based on the user traffic. However, in the vertical scaling case, it is not easy to increase or decrease the system capacity.
In the case of a distributed database, with both an RDBMS and NoSQL type database, a number of different approaches, like partitions and shading, and design trade-offs, enable them to grow to a very large size while being able to scale out, up, and down.
Many of the scaling techniques were applied to solve the scalability challenges in the Ethereum blockchain too. Now it is time for us to go over the different Ethereum salability solutions and proposals, and get an understanding of how the Ethereum community addresses the scalability issues.
In our next article (How to Scale up Ethereum Blockchain Applications), we discuss how to scale up Ethereum blockchain applications.
This article is written in collaboration with Brian Wu who is a leading author of “Learn Ethereum: Build your own decentralized applications with Ethereum and smart contracts” book. He has written 7 books on blockchain development.
Here is the list of our free webinars that are highly recommended:
Here is the list of our 10 free self-paced courses that are highly recommended:
If you like to learn more about Hyperledger Fabric, Hyperledger Sawtooth, Ethereum or Corda, taking the following self-paced classes is highly recommended:
If you want to master Hyperledger Fabric, Ethereum or Corda, taking the following live classes is highly recommended:
If you like to learn more about blockchain technology and how it works, reading the following articles is highly recommended:
If you like to learn more about blockchain development in Ethereum with Solidity, reading the following articles and tutorials is highly recommended:
If you like to learn more about blockchain development with Hyperledger, reading the following articles and tutorials is highly recommended:
If you like to learn more about blockchain development on Corda , reading the following articles and tutorials is highly recommended:
If you like to learn more about blockchain development in other platforms, reading the following articles and tutorials is highly recommended:
We offer private custom tutoring classes both online and in DC, MD and VA for almost all of our courses or bootcamps. Give us a call or email us to discuss your needs.
$50 Limited OfferREGISTER NOW