alexey
alexey

Reputation: 8480

Is Azure CloudTable thread-safe?

I'm writing to Azure Table storage using Storage SDK 2.0 from different threads (ASP.NET application).

Is CloudTable object thread-safe? Can I initialize CloudStorageAccount, CloudTableClient and CloudTable only once (for example, in static constuctor) and then use them in different threads?

Or is it better to create all CloudStorageAccount, CloudTableClient and CloudTable objects each time from a blank (like it's shown in this article)? Does it affect the performance in any way?

What is a prefered way of getting instance of CloudTable each time executing an operation against the table?

Upvotes: 24

Views: 5541

Answers (2)

AK913
AK913

Reputation: 71

  1. Unfortunately, they are not thread safe
  2. Fortunately, it doesn't matter at all: The communication is based on HTTP, which means no connection is reused and everytime the app just creates a new HTTP connection. So just recreate everything per thread. And I have tested even in one thread, recreating everything for each query just costs nothing more.

Upvotes: 7

Yossi Dahan
Yossi Dahan

Reputation: 5357

CloudStorageAccount

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

CloudTableClient

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Upvotes: 13

Related Questions