Tamas
Tamas

Reputation: 6420

When are Windows Azure table store partitions served from separate machines?

Is there a way to force Windows Azure table store partitions to distinct physical hardware? Windows Azure MSDN blog says that the environment automatically load balances the partitions between servers, but I couldn't perform a stress test where I could quantifiably see that two partitions are on different actual machines.

Considering the following filter in a query:

(PartitionKey == "a" && RowKey == "1") || (PartitionKey == "b" && RowKey == "2")

If the two partitions are on different physical machines, the query can be executed in a parallel manner addressing the two partition servers simultaneously, so it evaluates faster. However, I can't seem to find a way to actually measure this performance gain.

What is more important in partitioning? The amount of data in the table or the 500 query/sec limit on partitions mentioned here.

Upvotes: 2

Views: 776

Answers (2)

user94559
user94559

Reputation: 60143

The query you mention is a bad one. Windows Azure storage doesn't optimize OR queries like that, so it will result in a full table scan. You'll definitely want to fire off two queries in parallel yourself and union the results (in this case, just the two entities that come back).

To actually answer your question, I know of no way to force table storage to rebalance partitions.

Upvotes: 2

AvkashChauhan
AvkashChauhan

Reputation: 20556

You can gain superior performance (under the limit 500 query/sec/partition and 5000/transactions/seconds/storage account) using Parallel Threaded Reading and add more threads per your stress test.

The link below has an experiment where "I was able to read 365,000 rows by using 365 threads, and I got the data in an average of about 7 seconds. For 30,000 rows spread over 30 partitions using 30 threads, I was averaging 1.4 seconds. Huge win! ", worth checking!!

Azure Table Storage Performance from Massively Parallel Threaded Reading

Upvotes: 0

Related Questions