Evaluation of Blob Store Design

Examine how blob store design fulfills the requirements.

Let’s evaluate how our design helps us achieve our requirements.

Availability

The replication part of our design makes the system available. For reading the data, we kept four replicas for each blob. Having replicas, we can distribute the request load. If one node fails, the other replica node can serve the request.

Moreover, our replica placement strategy handles a whole data center failure and can even handle the situation of region unavailability due to natural disastersNatural disasters include floods, earthquakes, wildfires, tornadoes, nuclear reactor meltdowns, and so on.. We ensure that enough replicas are available at any point in time using our monitoring service that makes a copy of the data in a timely manner if the number of failed replicas exceeds a threshold.

For writes, we replicate the data within the cluster in a fault-tolerant way and quickly respond to the user, making the system available for write requests.

To keep the master node available, we keep a backup of its state. In case of the master node failure, we start a new instance of the master node initializing it from the saved state.

Durability

The replication and monitoring service ensure the durability of the data. The data, once uploaded, is synchronously replicated within a storage cluster. If the data loss happens at one node, we can recover the data from the other nodes. The monitoring service monitors the storage disks. If any disks fail, it alerts the administrators to change the disk and sends messages to the master node to copy the content on that disk to the other available disk or the newly added disk. The master node then updates the mapping accordingly.

Create a free account to access the full course.

By signing up, you agree to Educative's Terms of Service and Privacy Policy