4
votes

The Microsoft documentation on Azure Blobs clearly explains that you have a maximum block size (and a maximum number of blocks in each block/append/page blob), but it does not mention any lower bound.

Suppose you have a large number of small binary blobs (from 10 to 512 bytes), is the storage accounted on the exact disk space occupied by the blob data, or is there a minimum chunk size? Or a known fixed "per block" overhead?

For example, is it possible to create a 10 byte block blob? How much space is it actually accounted on billing for it: 10 bytes or another minimum amount (say 4k)?

Is such a minimum block size exists, how does it apply to Append Blobs? And to Page blobs?

2

2 Answers

5
votes

As mentioned by Fabrizio in the answer, minimum size of a blob can be zero bytes but even a zero byte blob occupies space that you're charged for. From the blog post by storage team here: https://blogs.msdn.microsoft.com/windowsazurestorage/2010/07/08/understanding-windows-azure-storage-billing-bandwidth-transactions-and-capacity/, this is how the storage space for a blob is calculated:

124 bytes + Len(BlobName) * 2 bytes + For-Each Metadata[3 bytes + Len(MetadataName) + Len(Value)] + 8 bytes + number of committed and uncommitted blocks * Block ID Size in bytes + SizeInBytes(data in unique committed data blocks stored) + SizeInBytes(data in uncommitted data blocks)

Not to mention that you would incur transaction charges for each blob you save.

0
votes

The lower limit is... zero :)
Only for testing, I created a 0 byte and a 1 byte BlockBlob without any problem. Update: however a zero byte blockblob has a cost.