How do indexes work in MongoDB

This year I have been working on Xbox Live Compute (or Thunderhead as we know it internally). This is a product that uses MongoDB as its main Database. So I have had to learn how to investigate performance and scalability issues with this document DB. It’s been very fun! Here are some of my learnings…

3

Using Service Bus / EventHub from Android devices

Last summer we had Jimmy Campbell join the Fundamentals team for a couple of months as part of his internship with Microsoft. I was assigned as his mentor and since I was working for the Azure Service Bus team I chose his project to be “Amqp for Android”. Jimmy did such a fast job that…

2

Azure Event Hub / Service Bus Performance – Http Batch Send 2

After the previous post on Http Batch send for Service Bus I received some emails with questions. I looked at the msdn documentation for both Service Bus and Event Hub and noted they are missing some information. Event Hub documentation does not even mention Batch Send. So here is another post about Batch Send.  …

2

Azure Service Bus Performance – Http Batch send

One of the easiest ways to increase throughput when using Azure Service Bus is by using the client-side batching feature in the Service Bus protocol (as you can read in our recommendations for increasing throughput). This feature reduces the number of protocol transmissions by batching many messages into one. Note that you will still have many…

1

ASP.NET Precompilation: Speeding up Orchard cold start

 Orchard is a “Content Management System” that you can use to easily host/customize your content (such as your blog for example). It is built by Microsoft and built on top of ASP.NET MVC. It is one of the Microsoft open source projects so it has a great community and many external modules you can easily…

1

Performance notes for MongoDB

Some performance tips for improving your usage of MongoDB  I spent the past year working with MongoDB. Since our service was used for Halo and Call of Duty we had very aggressive scale and performance targets. So as part of our stress runs we identified some scalability issues that had their root cause in our…


What does a performance developer do at Microsoft?

 Someone was just asking me this question the other day so I figured that I would answer it here for people that are interested in this role inside and outside the company.   I have been a performance developer at Microsoft for a little more than 4 years. During these years I have done performance…


Best practices for using HttpClient on Services

Since HttpClient was released back in 2012 it’s become the recommended way of talking to the web from C#. It follows the HTTP standard very closely and has very good support for the async programming model. During my years working in Services I’ve seen it used a lot. Sometimes people hit the same problems. Here…


Improving Latency in Http Proxy scenario

Stream to stream copying is a scenario that is not straightforward to implement. It is especially important in a Proxy scenario. Proxy Let’s start from the beginning. What is a proxy? A server that acts as an intermediary for requests from clients seeking resources from other servers (Wikipedia)   There are many reasons why you…


Optimizing memory footprint: Compression in .Net 4.5

Performance is about tradeoffs. If you need to do something faster you can probably do it if you use more memory. If you need to reduce the space that your data is using you can use CPU to compress it. But you will be paying the CPU cost. When I was working on Azure Service…