Search⌘ K
AI Features

Sharing Problems and their Solution

Understand the challenges of sharing in distributed systems and learn how reducing sharing through shared-nothing architectures can enhance scalability and availability. Explore techniques like decomposing stateful and stateless components, and balancing partitioning with replication to manage data efficiently.

Problems with sharing

At this point, it must have become evident that sharing leads to coordination, which is one of the main factors that inhibit high availability, performance, and scalability.

For example, we have already explained how distributed databases can scale to larger datasets more cost-efficiently than centralized, single-node databases. At the same time, some form of sharing is sometimes necessary and even beneficial for the same characteristics. For instance, a system can increase its overall availability by reducing sharing through partitioning since the various partitions can have independent failure modes. However, when looking at a single data item, availability can be increased by increasing sharing via replication.

Solution

A key takeaway from all of the above problems is reducing sharing.

Reducing sharing

Reducing sharing can be very beneficial when applied properly. Some system architectures follow this principle to the extreme to reduce ...