We discussed about table entity properties in the previous post. Before we discuss partitions, it will be good to learn some more details about the entity properties.
We also discussed about the PartitionKey and RowKey properties in the previous post. These two properties create a clustered index on the table. The data is sorted in ascending order by the PartitionKey and the RowKey values.
Let’s discuss some concepts about table partitions.
Partitions can be identified by the same PartitionKey value. Each partition is served by a partition server, while one partition server can serve multiple partitions. A partition server can serve a fixed number of entities from a partition over time. This rate of serving entities is around 2000 entities per second. The entity serve rate can vary depending on the load on the partition.
To optimally scale Azure table storage, it is recommended to create multiple partitions. Since, the entity serve rate of the partition is dependent on the load on the partition server, Azure Storage utilizes load balancing strategy to spread the traffic evenly across multiple partition servers. Having multiple partitions helps improve the performance due to better load balancing.
Another important concept related to partitioning in Azure table storage is, Range partitions. This will be discussed in a future post.