15)Are there any performance limitations for containers with a lot of blobs?
- 質問:
コンテナー内に大量のブロブを配置した場合にパフォーマンスが落ちますか?[上級][ストレージ]
- 回答:
原理上はパフォーマンスは落ちません。
- 解説:
ストレージサービスのデータはパーティショニングされて別々の場所に配置されます。同一の場所に配置されていればデータの取得が容易でパフォーマンスが上がりますが、別々の場所の場合はそれぞれに対してデータを取得する必要があるため、パフォーマンスが落ちます。一方、同じ場所に大量のデータを配置した場合は、アクセスが集中してパフォーマンスが落ちてしまいます。そのため、データの効率的な分散が重要になります。
各ストレージサービスの中で、ブロブストレージの場合はブロブごとにパーティショニングされます。そのため、コンテナー内にブロブをどれだけ配置したとしても原理上は別々のVMに配置されるため、1つのコンテナーの中に大量のブロブを配置したとしてもパフォーマンスに影響はでません。
なお、さらにパフォーマンスを上げるためにはCDNの適用が有効になります。
16)Can a storage container be renamed?
- 質問:
コンテナーの名称は変更可能ですか?[中級][ストレージ]
- 回答:
変更できません。
- 解説:
コンテナーの名称自体は変更できないため、新しいコンテナーを作成してコピーする形でコンテナーの名称を変更するしかありません。今後の改善が楽しみです。
17)CreateIfNotExists - concurrency safe?
- 質問:
CreateTableIfNotExist()は同時実行制御されていますか?[中級][ストレージ]
- 回答:
同時実行制御されていませんので、CreateTable()を使用して、TableAlreadyExistsの例外でこの現象を検知してください。
- 解説:
私もなんども悩まされたことがあるのですが、CreateTableIfNotExist()を複数の箇所から同時に発行されると、DataServiceRequestExceptionの例外が発生してTableAlreadyExistsが返る場合があります。
この場合、以下のようなコードで例外処理を行って対応します。
try { client.CreateTable("tablename"); } catch (StorageClientException e) { if (e.StatusCode == HttpStatusCode.Conflict && e.ExtendedErrorInformation.ErrorCode == TableErrorCodeStrings.TableAlreadyExists) { // } else { throw; } }
このようにUSのフォーラムでバグ報告がされているケースがあります。Tipsからバグ報告まで多種多様な報告がされているのがフォーラムのメリットだと思います。フォーラムの情報は多岐に渡っているため追いかけるのは大変ですが、フォーラム内部だけの検索も可能なため、何かトラブルがあった際に闇雲に検索するよりもフォーラムを検索したほうが解決が早くなる可能性があります。
18)Classic ASP files and AspPDF on Azure
- 質問:
ASPはAzureで使用可能ですか?[初級][開発]
- 回答:
現在は使用できませんが、Elevated Privilegesがリリースされれば使用可能になります。
- 解説:
現在、AzureではASP.NETしか使用できません。ASPは使用できないため、ASPを使用している古いアプリケーションの移行ができません。ですが、今後ASPが使用できるようになれば、移行対象に成り得るのではないかと期待しています。特に古いアプリケーションの場合は、ハードウェアの老朽化で移行が必要になりますが、Windows Azureが対象になればハードウェアの制限を意識せずにイニシャルコストを抑えて移行できるので、かなり有力な選択肢になり得るのではないかと期待しています。
まとめ
今回はやはりPDCの影響が大きかったです。それに、フォーラム分割の影響があるのかますます質問のやりとりが増えてきています。どちらにせよWindows Azureがとても注目されていることは間違いありません。
また、やりとりの内容がかなり細かく実践的になってきていて、開発中の質問と思われる質問も来ています。段々とAzureが実際に使われていくようになってきていることが実感できます。
そして、原稿執筆中にAzureSDK1.3のリリースがあり、これまで分かりにくかった問題が解決されてしまい、この記事で紹介していた内容に変更や削除が発生しました。ますますAzureは進化していますので、今後が楽しみです。