Paxos in Plain English

It is easier to understand Paxos in context of other solutions that try to solve the consensus problem but have shortcomings, so let’s talk about that. An intuitive way of reaching consensus is to take marriage vows: “Do you …?” “I do!” “I do!”“I now pronounce you …” Assume now that the marriage is not …

Paxos in Plain English Read More »

When in Doubt Iterate Faster

There is a little something that most people who are in the business of creating software understand, but outsiders seldom know. It is this — in software development you cannot get things right the first time. And I am not just talking about full products, but even tiny details. It is very rare in software to …

When in Doubt Iterate Faster Read More »

Offering Choices Considered Harmful

Here’s something that I wish more people involved in designing consumer software products realized — multiple choices in a product prevent the user from using the product and make him unhappy. Let me explain why. The other day my wife managed to drag me to get a new pair of jeans. We went to a Levi’s …

Offering Choices Considered Harmful Read More »

Notes on the CLR Garbage Collector

A few days ago, some of us in my group were discussing about the GC mechanism used in the CLR. It was an interesting discussion, and like most discussions, inconclusive. So I decided to put (almost) everything interesting to know about the GC on paper. Some of the people who read this, particularly Vinod – …

Notes on the CLR Garbage Collector Read More »

SQL Server: Non-preemptive Scheduling, UMS, CLR and Fiber Mode

On a recent mailing list discussion, Veer Wangoo asked: "DOT NET CLR only uses thread-based scheduling and does not support Fiber-mode scheduling; however, SQL Server can use Fiber-mode scheduling as well. How does SQL 2005 Handle this Limitation?" Answering this question led to a lot of soul-searching and I finally managed to answer this in …

SQL Server: Non-preemptive Scheduling, UMS, CLR and Fiber Mode Read More »