Blobs

From Blazegraph
Jump to: navigation, search

Blobs

The RWStore blobs enable scalability are designed to be efficiently recyclable.

Efficiency of recycling involves two features. Firstly the operation should be quick and secondly the resource should be able to be re-used effectively.

This second point is one of the main rationales for the blob; by breaking a blob into smaller parts that can be readily used directly or as component parts of other blobs.

A blob header record contains references to the component allocations, so to "recycle" a blob, the header is read in and then each component is released before finally releasing the blob header.

An extra twist is that for very large blobs, the blob header record itself may need to be a blob. This enables stores even with small maximum fixed allocation sizes to allocate blobs of many gigabytes in size.