Design Considerations of a Blob Store

Lesson 83 of 25610 min readPremium lesson preview
In this lesson2 sections

Design Considerations of a Blob Store

Chunking makes large objects manageable, but it creates metadata and recovery work. This lesson follows those costs through partitioning, listing, replica placement, and garbage collection.

Introduction

The previous lesson outlined the major components of the blob store. This lesson examines implementation challenges, including storing large blobs, managing replicas, and optimizing retrieval latency. The following table summarizes the lesson objectives.

Design questions

SectionPurpose
Blob metadataThis is the metadata that’s maintained to ensure efficient storage and retrieval of blobs.
PartitioningThis determines how blobs are partitioned among different data nodes.
Blob indexingThis shows us how to efficiently search for blobs.
PaginationThis teaches us how to conceive a method for the retrieval of a limited number of blobs to ensure improved readability and loading time.
ReplicationThis teaches us how to replicate blobs and tells us how many copies we should maintain to improve availability.
Garbage collectionThis teaches us how to delete blobs without sacrificing performance.
StreamingThis teaches us how to stream large files chunk-by-chunk to facilitate interactivity for users.
| Caching | This shows us how to improve response time and throughput. |

The rest of this lesson is for Premium members

Premium opens every lesson in this course, along with all questions and solutions on PracHub.