Recommendations
- Leverage multiple storage accounts for greater scalability, either for increased size (> 100 TB) or for more throughput (> 5,000 operations per second).
- Design the ability for adding additional storage accounts as a configuration change, not as a code change.
- Carefully select partitioning functions for table storage to enable the desired scale in terms of insert and query performance.
- Choose short column names for table properties as the metadata (property names) are stored in-band (the column names also count towards the maximum row size of 1 MB).
- When possible, batch operations into storage.
- Aggressively cache information in the configuration database into a distributed cache.
- If application performance or reliability is dependent on having a certain segment of data available in the cache, your application should refuse incoming requests until the cache has been pre-populated.
- Partition the data either vertically (by table) or horizontally (segment table across multiple shards) to spread the load across multiple databases.