These are Performance and Feature Samples from the Tech-ed 13 talk "Getting the Most out of Windows
Azure Storage". These samples illustrate patterns to optimize both performance and latency for the Blob, Table, and Queue service as well as some interesting client side features.
Building the Samples
Refresh WindowsAzure.Storage Package via Tools-> "Library Package Manager" -> "Manage NuGet packages for Solution..." Install WindowsAzure.Storage Package for all projects.
Running the Samples
Update the SampleConstants.CS in the TechEd13.Storage.Common to include your Storage Account Name and Account Key. Then right click on a given project and select "Set as Startup Project"
There are a total of 9 different samples detailed below
- TechEd13.Storage.Blobs.BlobReadSize -> This sample illustrates how a user can tune the Blob read size See ~29:50 in presentation below.
- TechEd13.Storage.Blobs.NonSeekableStream -> This sample illustrates the impact of using seekable vs non-seekable streams when uploading blobs via the storage client library. See ~28:48 in presentation below.
- TechEd13.Storage.Blobs.Parallelism -> This sample allows the user to experiment with different access patterns when storing blobs with configurable Concurrency. This experiment will first run by uploading blobs individually while uploading blocks in
parallel, and then execute the same scenario by uploading N blobs simultaneously each using only one parallel block upload. See ~25:34 in the presentation below.
- TechEd13.Storage.Blobs.RoundtripLatency -> This sample will round trip blobs of a given size and collect latency statistics for upload and download operations. See ~27:10 in the presentation below.
- TechEd13.Storage.Blobs.Throughput -> This is a general purpose Blob Throughput example that allows the user to configure, BlobSize, BlockSize, Parallelism, Concurrency, Async or Sync, and Seekable or non-Seekable source streams. This sample can be used
to benchmark various access patterns against the storage service.
- TechEd13.Storage.Blobs.Debugging -> This sample illustrates how to configure client side logging and how to use Storage Analytics in conjunction with client side logging to diagnose client application issues. See ~56:00 in
the presentation below.
- TechEd13.Storage.Queues.MultiQueue -> This sample illustrates how to construct a simple round robin queue that will utilize N number of sub-queues allowing for a single queue. See ~52:00 in the presentation below.
- TechEd13.Storage.Tables.BatchSize -> This experiment allows clients to benchmark latencies for various batch sizes when inserting entities into Azure Tables. This sample allow s users to configure batch size, number of concurrent workers, insert mode,
payload size and timeout. See ~37:40 in the presentation below.
- TechEd13.Storage.Tables.CoolFeatures -> This sample illustrates various client side improvements in the client library including the new IQueryable implementation, the ability to serialize 3rd parth objects, simplified projection, Dynamic type safe query
construction, EntityAdapter, and compiled serializers. See ~40:10 in the presentation below.
Associated Presentation: (Tech-ed 13) "Getting the Most out of Windows Azure Storage".