While traditional PCs have a file system and random access memory, Microsoft Azure is a bit more complicated. Storage dramatically affects application architecture and performance. Remember how replacing HDDs with modern SSDs allowed parallel reading on a single drive. There are numerous factors to consider when deciding which storage is best for different types of data. For example, a loop iteration counter has different requirements than a customer list.
Storage | App_Data (ASP.NET) | File Storage | Database (MS-SQL) | DocumentDB | Storage | Reliable Collection (Service Fabric) |
---|---|---|---|---|---|---|
Transactions | NO | NO | YES | YES | NO | YES |
Race condition durability | NO | NO | YES | YES | YES (Queue and Table), NO (Blob) | YES |
Retry logic | NO | NO | YES (.NET ≥ 4.6.1), NO (.NET ≤ 4.6) | NO | NO | NO |
Data structure | binary, string | binary, string | T-SQL data types, .NET data types (aka CLR UDT) | JSON | binary, string | .NET Data Contract |
Scale unit | file | file | table row | collection | blob (Blob) partition (Table), message (Queue) | item (Dictionary), message (Queue) |
Efficient querying | file path | file path | (by default none) column included in index | (by default every) property included in index | name (Blob), first item (Queue), entity row and partition keys (Table) | attached key of string or Uri (dictionary), first item (queue) |
Capacity limit | 1 GB | 5 TB | 2 GB (Basic), 250 GB (Standard), 500 GB (Premium), 1 TB (Premium P11), additional 500 TB by moving BLOBs to Storage | 1 TB | 500 TB (Blob), 200 TB (Queue), 100 TB (Table) | 19 GB (A0), 224 GB (A1), 489 GB (A2), 1 TB (A3), 2 TB (A4) |
Capacity quota | 1 GB per file | 1 TB per file | 1 TB per BLOB (FILESTREAM) | 250 GB per collection | NO (block blob), 1 TB (page blob), 64 KB per message (Queue), 1 MB per entity (Table) | 2 GB per collection |
I/O limit (bandwidth) | 5 Mb/s (A0), 100 Mb/s (A1), 200 Mb/s (A2), 300 Mb/s (A3), 400 Mb/s (A4) | 5 Mb/s (A0), otherwise 63 Mb/s | 5 Mb/s (A0), otherwise 8 Mb/s (Basic), 40 Mb/s (S0), 55 Mb/s (S1), 72 Mb/s (S2), 120 Mb/s (S3), 1,5 Tb/s (P1), 2,5 Tb/s (P2) | 2 Mb/s (S1), 5 Mb/s (A0), otherwise 8 Mb/s (S2), 20 Mb/s (S3) |
3 Gb/s per account, 480 Mb/s per blob or table partition | 5 Mb/s (A0), 100 Mb/s (A1), 200 Mb/s (A2), 300 Mb/s (A3), 400 Mb/s (A4) |
Price per 1 GB per 1 month | 63 € | 0.07 € | 2.1 € | 2.1 € | 0.02 € | 0.2 € |